Files
scrap/webui/dist/assets/index-ZvFbjZEA.js
Gilles Soulier 740c3d7516 before claude
2026-01-18 06:26:17 +01:00

19 lines
147 KiB
JavaScript

(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const a of r.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function s(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function n(i){if(i.ep)return;i.ep=!0;const r=s(i);fetch(i.href,r)}})();/**
* @vue/shared v3.5.26
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function li(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const me={},os=[],vt=()=>{},Vl=()=>!1,un=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),oi=e=>e.startsWith("onUpdate:"),Pe=Object.assign,ri=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Xr=Object.prototype.hasOwnProperty,ae=(e,t)=>Xr.call(e,t),K=Array.isArray,rs=e=>Ns(e)==="[object Map]",fs=e=>Ns(e)==="[object Set]",zi=e=>Ns(e)==="[object Date]",Q=e=>typeof e=="function",_e=e=>typeof e=="string",ht=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",Bl=e=>(pe(e)||Q(e))&&Q(e.then)&&Q(e.catch),Wl=Object.prototype.toString,Ns=e=>Wl.call(e),ea=e=>Ns(e).slice(8,-1),Gl=e=>Ns(e)==="[object Object]",ai=e=>_e(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,gs=li(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cn=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},ta=/-\w/g,Lt=cn(e=>e.replace(ta,t=>t.slice(1).toUpperCase())),sa=/\B([A-Z])/g,qt=cn(e=>e.replace(sa,"-$1").toLowerCase()),Kl=cn(e=>e.charAt(0).toUpperCase()+e.slice(1)),In=cn(e=>e?`on${Kl(e)}`:""),Ft=(e,t)=>!Object.is(e,t),zs=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},zl=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},dn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},na=e=>{const t=_e(e)?Number(e):NaN;return isNaN(t)?e:t};let Zi;const fn=()=>Zi||(Zi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Jt(e){if(K(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],i=_e(n)?ra(n):Jt(n);if(i)for(const r in i)t[r]=i[r]}return t}else if(_e(e)||pe(e))return e}const ia=/;(?![^(]*\))/g,la=/:([^]+)/,oa=/\/\*[^]*?\*\//g;function ra(e){const t={};return e.replace(oa,"").split(ia).forEach(s=>{if(s){const n=s.split(la);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Se(e){let t="";if(_e(e))t=e;else if(K(e))for(let s=0;s<e.length;s++){const n=Se(e[s]);n&&(t+=n+" ")}else if(pe(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const aa="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",ua=li(aa);function Zl(e){return!!e||e===""}function ca(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=$s(e[n],t[n]);return s}function $s(e,t){if(e===t)return!0;let s=zi(e),n=zi(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=ht(e),n=ht(t),s||n)return e===t;if(s=K(e),n=K(t),s||n)return s&&n?ca(e,t):!1;if(s=pe(e),n=pe(t),s||n){if(!s||!n)return!1;const i=Object.keys(e).length,r=Object.keys(t).length;if(i!==r)return!1;for(const a in e){const u=e.hasOwnProperty(a),d=t.hasOwnProperty(a);if(u&&!d||!u&&d||!$s(e[a],t[a]))return!1}}return String(e)===String(t)}function ui(e,t){return e.findIndex(s=>$s(s,t))}const Yl=e=>!!(e&&e.__v_isRef===!0),I=e=>_e(e)?e:e==null?"":K(e)||pe(e)&&(e.toString===Wl||!Q(e.toString))?Yl(e)?I(e.value):JSON.stringify(e,Jl,2):String(e),Jl=(e,t)=>Yl(t)?Jl(e,t.value):rs(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,i],r)=>(s[Tn(n,r)+" =>"]=i,s),{})}:fs(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Tn(s))}:ht(t)?Tn(t):pe(t)&&!K(t)&&!Gl(t)?String(t):t,Tn=(e,t="")=>{var s;return ht(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
* @vue/reactivity v3.5.26
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Ke;class da{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ke,!t&&Ke&&(this.index=(Ke.scopes||(Ke.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=Ke;try{return Ke=this,t()}finally{Ke=s}}}on(){++this._on===1&&(this.prevScope=Ke,Ke=this)}off(){this._on>0&&--this._on===0&&(Ke=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function fa(){return Ke}let ge;const En=new WeakSet;class ql{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,Ke&&Ke.active&&Ke.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,En.has(this)&&(En.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Xl(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Yi(this),eo(this);const t=ge,s=ot;ge=this,ot=!0;try{return this.fn()}finally{to(this),ge=t,ot=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)fi(t);this.deps=this.depsTail=void 0,Yi(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?En.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Kn(this)&&this.run()}get dirty(){return Kn(this)}}let Ql=0,bs,ys;function Xl(e,t=!1){if(e.flags|=8,t){e.next=ys,ys=e;return}e.next=bs,bs=e}function ci(){Ql++}function di(){if(--Ql>0)return;if(ys){let t=ys;for(ys=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;bs;){let t=bs;for(bs=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function eo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function to(e){let t,s=e.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),fi(n),pa(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}e.deps=t,e.depsTail=s}function Kn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(so(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function so(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ks)||(e.globalVersion=ks,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Kn(e))))return;e.flags|=2;const t=e.dep,s=ge,n=ot;ge=e,ot=!0;try{eo(e);const i=e.fn(e._value);(t.version===0||Ft(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{ge=s,ot=n,to(e),e.flags&=-3}}function fi(e,t=!1){const{dep:s,prevSub:n,nextSub:i}=e;if(n&&(n.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let r=s.computed.deps;r;r=r.nextDep)fi(r,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function pa(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let ot=!0;const no=[];function kt(){no.push(ot),ot=!1}function At(){const e=no.pop();ot=e===void 0?!0:e}function Yi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ge;ge=void 0;try{t()}finally{ge=s}}}let ks=0;class ma{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class pi{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(!ge||!ot||ge===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ge)s=this.activeLink=new ma(ge,this),ge.deps?(s.prevDep=ge.depsTail,ge.depsTail.nextDep=s,ge.depsTail=s):ge.deps=ge.depsTail=s,io(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=ge.depsTail,s.nextDep=void 0,ge.depsTail.nextDep=s,ge.depsTail=s,ge.deps===s&&(ge.deps=n)}return s}trigger(t){this.version++,ks++,this.notify(t)}notify(t){ci();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{di()}}}function io(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)io(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const zn=new WeakMap,Zt=Symbol(""),Zn=Symbol(""),As=Symbol("");function $e(e,t,s){if(ot&&ge){let n=zn.get(e);n||zn.set(e,n=new Map);let i=n.get(s);i||(n.set(s,i=new pi),i.map=n,i.key=s),i.track()}}function wt(e,t,s,n,i,r){const a=zn.get(e);if(!a){ks++;return}const u=d=>{d&&d.trigger()};if(ci(),t==="clear")a.forEach(u);else{const d=K(e),v=d&&ai(s);if(d&&s==="length"){const m=Number(n);a.forEach((b,w)=>{(w==="length"||w===As||!ht(w)&&w>=m)&&u(b)})}else switch((s!==void 0||a.has(void 0))&&u(a.get(s)),v&&u(a.get(As)),t){case"add":d?v&&u(a.get("length")):(u(a.get(Zt)),rs(e)&&u(a.get(Zn)));break;case"delete":d||(u(a.get(Zt)),rs(e)&&u(a.get(Zn)));break;case"set":rs(e)&&u(a.get(Zt));break}}di()}function ns(e){const t=re(e);return t===e?t:($e(t,"iterate",As),st(e)?t:t.map(rt))}function pn(e){return $e(e=re(e),"iterate",As),e}function Rt(e,t){return Pt(e)?Yt(e)?cs(rt(t)):cs(t):rt(t)}const va={__proto__:null,[Symbol.iterator](){return Rn(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return ns(this).concat(...e.map(t=>K(t)?ns(t):t))},entries(){return Rn(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return bt(this,"every",e,t,void 0,arguments)},filter(e,t){return bt(this,"filter",e,t,s=>s.map(n=>Rt(this,n)),arguments)},find(e,t){return bt(this,"find",e,t,s=>Rt(this,s),arguments)},findIndex(e,t){return bt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return bt(this,"findLast",e,t,s=>Rt(this,s),arguments)},findLastIndex(e,t){return bt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return bt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Nn(this,"includes",e)},indexOf(...e){return Nn(this,"indexOf",e)},join(e){return ns(this).join(e)},lastIndexOf(...e){return Nn(this,"lastIndexOf",e)},map(e,t){return bt(this,"map",e,t,void 0,arguments)},pop(){return ms(this,"pop")},push(...e){return ms(this,"push",e)},reduce(e,...t){return Ji(this,"reduce",e,t)},reduceRight(e,...t){return Ji(this,"reduceRight",e,t)},shift(){return ms(this,"shift")},some(e,t){return bt(this,"some",e,t,void 0,arguments)},splice(...e){return ms(this,"splice",e)},toReversed(){return ns(this).toReversed()},toSorted(e){return ns(this).toSorted(e)},toSpliced(...e){return ns(this).toSpliced(...e)},unshift(...e){return ms(this,"unshift",e)},values(){return Rn(this,"values",e=>Rt(this,e))}};function Rn(e,t,s){const n=pn(e),i=n[t]();return n!==e&&!st(e)&&(i._next=i.next,i.next=()=>{const r=i._next();return r.done||(r.value=s(r.value)),r}),i}const ha=Array.prototype;function bt(e,t,s,n,i,r){const a=pn(e),u=a!==e&&!st(e),d=a[t];if(d!==ha[t]){const b=d.apply(e,r);return u?rt(b):b}let v=s;a!==e&&(u?v=function(b,w){return s.call(this,Rt(e,b),w,e)}:s.length>2&&(v=function(b,w){return s.call(this,b,w,e)}));const m=d.call(a,v,n);return u&&i?i(m):m}function Ji(e,t,s,n){const i=pn(e);let r=s;return i!==e&&(st(e)?s.length>3&&(r=function(a,u,d){return s.call(this,a,u,d,e)}):r=function(a,u,d){return s.call(this,a,Rt(e,u),d,e)}),i[t](r,...n)}function Nn(e,t,s){const n=re(e);$e(n,"iterate",As);const i=n[t](...s);return(i===-1||i===!1)&&gi(s[0])?(s[0]=re(s[0]),n[t](...s)):i}function ms(e,t,s=[]){kt(),ci();const n=re(e)[t].apply(e,s);return di(),At(),n}const ga=li("__proto__,__v_isRef,__isVue"),lo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ht));function ba(e){ht(e)||(e=String(e));const t=re(this);return $e(t,"has",e),t.hasOwnProperty(e)}class oo{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const i=this._isReadonly,r=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return r;if(s==="__v_raw")return n===(i?r?Ma:co:r?uo:ao).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const a=K(t);if(!i){let d;if(a&&(d=va[s]))return d;if(s==="hasOwnProperty")return ba}const u=Reflect.get(t,s,De(t)?t:n);if((ht(s)?lo.has(s):ga(s))||(i||$e(t,"get",s),r))return u;if(De(u)){const d=a&&ai(s)?u:u.value;return i&&pe(d)?Jn(d):d}return pe(u)?i?Jn(u):vi(u):u}}class ro extends oo{constructor(t=!1){super(!1,t)}set(t,s,n,i){let r=t[s];const a=K(t)&&ai(s);if(!this._isShallow){const v=Pt(r);if(!st(n)&&!Pt(n)&&(r=re(r),n=re(n)),!a&&De(r)&&!De(n))return v||(r.value=n),!0}const u=a?Number(s)<t.length:ae(t,s),d=Reflect.set(t,s,n,De(t)?t:i);return t===re(i)&&(u?Ft(n,r)&&wt(t,"set",s,n):wt(t,"add",s,n)),d}deleteProperty(t,s){const n=ae(t,s);t[s];const i=Reflect.deleteProperty(t,s);return i&&n&&wt(t,"delete",s,void 0),i}has(t,s){const n=Reflect.has(t,s);return(!ht(s)||!lo.has(s))&&$e(t,"has",s),n}ownKeys(t){return $e(t,"iterate",K(t)?"length":Zt),Reflect.ownKeys(t)}}class ya extends oo{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const xa=new ro,_a=new ya,wa=new ro(!0);const Yn=e=>e,js=e=>Reflect.getPrototypeOf(e);function Ca(e,t,s){return function(...n){const i=this.__v_raw,r=re(i),a=rs(r),u=e==="entries"||e===Symbol.iterator&&a,d=e==="keys"&&a,v=i[e](...n),m=s?Yn:t?cs:rt;return!t&&$e(r,"iterate",d?Zn:Zt),{next(){const{value:b,done:w}=v.next();return w?{value:b,done:w}:{value:u?[m(b[0]),m(b[1])]:m(b),done:w}},[Symbol.iterator](){return this}}}}function Us(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Sa(e,t){const s={get(i){const r=this.__v_raw,a=re(r),u=re(i);e||(Ft(i,u)&&$e(a,"get",i),$e(a,"get",u));const{has:d}=js(a),v=t?Yn:e?cs:rt;if(d.call(a,i))return v(r.get(i));if(d.call(a,u))return v(r.get(u));r!==a&&r.get(i)},get size(){const i=this.__v_raw;return!e&&$e(re(i),"iterate",Zt),i.size},has(i){const r=this.__v_raw,a=re(r),u=re(i);return e||(Ft(i,u)&&$e(a,"has",i),$e(a,"has",u)),i===u?r.has(i):r.has(i)||r.has(u)},forEach(i,r){const a=this,u=a.__v_raw,d=re(u),v=t?Yn:e?cs:rt;return!e&&$e(d,"iterate",Zt),u.forEach((m,b)=>i.call(r,v(m),v(b),a))}};return Pe(s,e?{add:Us("add"),set:Us("set"),delete:Us("delete"),clear:Us("clear")}:{add(i){!t&&!st(i)&&!Pt(i)&&(i=re(i));const r=re(this);return js(r).has.call(r,i)||(r.add(i),wt(r,"add",i,i)),this},set(i,r){!t&&!st(r)&&!Pt(r)&&(r=re(r));const a=re(this),{has:u,get:d}=js(a);let v=u.call(a,i);v||(i=re(i),v=u.call(a,i));const m=d.call(a,i);return a.set(i,r),v?Ft(r,m)&&wt(a,"set",i,r):wt(a,"add",i,r),this},delete(i){const r=re(this),{has:a,get:u}=js(r);let d=a.call(r,i);d||(i=re(i),d=a.call(r,i)),u&&u.call(r,i);const v=r.delete(i);return d&&wt(r,"delete",i,void 0),v},clear(){const i=re(this),r=i.size!==0,a=i.clear();return r&&wt(i,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=Ca(i,e,t)}),s}function mi(e,t){const s=Sa(e,t);return(n,i,r)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(ae(s,i)&&i in n?s:n,i,r)}const ka={get:mi(!1,!1)},Aa={get:mi(!1,!0)},Pa={get:mi(!0,!1)};const ao=new WeakMap,uo=new WeakMap,co=new WeakMap,Ma=new WeakMap;function Ia(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ta(e){return e.__v_skip||!Object.isExtensible(e)?0:Ia(ea(e))}function vi(e){return Pt(e)?e:hi(e,!1,xa,ka,ao)}function Ea(e){return hi(e,!1,wa,Aa,uo)}function Jn(e){return hi(e,!0,_a,Pa,co)}function hi(e,t,s,n,i){if(!pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=Ta(e);if(r===0)return e;const a=i.get(e);if(a)return a;const u=new Proxy(e,r===2?n:s);return i.set(e,u),u}function Yt(e){return Pt(e)?Yt(e.__v_raw):!!(e&&e.__v_isReactive)}function Pt(e){return!!(e&&e.__v_isReadonly)}function st(e){return!!(e&&e.__v_isShallow)}function gi(e){return e?!!e.__v_raw:!1}function re(e){const t=e&&e.__v_raw;return t?re(t):e}function Ra(e){return!ae(e,"__v_skip")&&Object.isExtensible(e)&&zl(e,"__v_skip",!0),e}const rt=e=>pe(e)?vi(e):e,cs=e=>pe(e)?Jn(e):e;function De(e){return e?e.__v_isRef===!0:!1}function te(e){return Na(e,!1)}function Na(e,t){return De(e)?e:new $a(e,t)}class $a{constructor(t,s){this.dep=new pi,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:re(t),this._value=s?t:rt(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||st(t)||Pt(t);t=n?t:re(t),Ft(t,s)&&(this._rawValue=t,this._value=n?t:rt(t),this.dep.trigger())}}function fo(e){return De(e)?e.value:e}const Da={get:(e,t,s)=>t==="__v_raw"?e:fo(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const i=e[t];return De(i)&&!De(s)?(i.value=s,!0):Reflect.set(e,t,s,n)}};function po(e){return Yt(e)?e:new Proxy(e,Da)}class Fa{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new pi(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ks-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ge!==this)return Xl(this,!0),!0}get value(){const t=this.dep.track();return so(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function La(e,t,s=!1){let n,i;return Q(e)?n=e:(n=e.get,i=e.set),new Fa(n,i,s)}const Vs={},Xs=new WeakMap;let Kt;function Oa(e,t=!1,s=Kt){if(s){let n=Xs.get(s);n||Xs.set(s,n=[]),n.push(e)}}function Ha(e,t,s=me){const{immediate:n,deep:i,once:r,scheduler:a,augmentJob:u,call:d}=s,v=_=>i?_:st(_)||i===!1||i===0?Ct(_,1):Ct(_);let m,b,w,C,O=!1,g=!1;if(De(e)?(b=()=>e.value,O=st(e)):Yt(e)?(b=()=>v(e),O=!0):K(e)?(g=!0,O=e.some(_=>Yt(_)||st(_)),b=()=>e.map(_=>{if(De(_))return _.value;if(Yt(_))return v(_);if(Q(_))return d?d(_,2):_()})):Q(e)?t?b=d?()=>d(e,2):e:b=()=>{if(w){kt();try{w()}finally{At()}}const _=Kt;Kt=m;try{return d?d(e,3,[C]):e(C)}finally{Kt=_}}:b=vt,t&&i){const _=b,W=i===!0?1/0:i;b=()=>Ct(_(),W)}const N=fa(),M=()=>{m.stop(),N&&N.active&&ri(N.effects,m)};if(r&&t){const _=t;t=(...W)=>{_(...W),M()}}let D=g?new Array(e.length).fill(Vs):Vs;const L=_=>{if(!(!(m.flags&1)||!m.dirty&&!_))if(t){const W=m.run();if(i||O||(g?W.some((J,le)=>Ft(J,D[le])):Ft(W,D))){w&&w();const J=Kt;Kt=m;try{const le=[W,D===Vs?void 0:g&&D[0]===Vs?[]:D,C];D=W,d?d(t,3,le):t(...le)}finally{Kt=J}}}else m.run()};return u&&u(L),m=new ql(b),m.scheduler=a?()=>a(L,!1):L,C=_=>Oa(_,!1,m),w=m.onStop=()=>{const _=Xs.get(m);if(_){if(d)d(_,4);else for(const W of _)W();Xs.delete(m)}},t?n?L(!0):D=m.run():a?a(L.bind(null,!0),!0):m.run(),M.pause=m.pause.bind(m),M.resume=m.resume.bind(m),M.stop=M,M}function Ct(e,t=1/0,s){if(t<=0||!pe(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,De(e))Ct(e.value,t,s);else if(K(e))for(let n=0;n<e.length;n++)Ct(e[n],t,s);else if(fs(e)||rs(e))e.forEach(n=>{Ct(n,t,s)});else if(Gl(e)){for(const n in e)Ct(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ct(e[n],t,s)}return e}/**
* @vue/runtime-core v3.5.26
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Ds(e,t,s,n){try{return n?e(...n):e()}catch(i){mn(i,t,s)}}function at(e,t,s,n){if(Q(e)){const i=Ds(e,t,s,n);return i&&Bl(i)&&i.catch(r=>{mn(r,t,s)}),i}if(K(e)){const i=[];for(let r=0;r<e.length;r++)i.push(at(e[r],t,s,n));return i}}function mn(e,t,s,n=!0){const i=t?t.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:a}=t&&t.appContext.config||me;if(t){let u=t.parent;const d=t.proxy,v=`https://vuejs.org/error-reference/#runtime-${s}`;for(;u;){const m=u.ec;if(m){for(let b=0;b<m.length;b++)if(m[b](e,d,v)===!1)return}u=u.parent}if(r){kt(),Ds(r,null,10,[e,d,v]),At();return}}ja(e,s,i,n,a)}function ja(e,t,s,n=!0,i=!1){if(i)throw e;console.error(e)}const Ue=[];let pt=-1;const as=[];let Nt=null,is=0;const mo=Promise.resolve();let en=null;function ls(e){const t=en||mo;return e?t.then(this?e.bind(this):e):t}function Ua(e){let t=pt+1,s=Ue.length;for(;t<s;){const n=t+s>>>1,i=Ue[n],r=Ps(i);r<e||r===e&&i.flags&2?t=n+1:s=n}return t}function bi(e){if(!(e.flags&1)){const t=Ps(e),s=Ue[Ue.length-1];!s||!(e.flags&2)&&t>=Ps(s)?Ue.push(e):Ue.splice(Ua(t),0,e),e.flags|=1,vo()}}function vo(){en||(en=mo.then(go))}function Va(e){K(e)?as.push(...e):Nt&&e.id===-1?Nt.splice(is+1,0,e):e.flags&1||(as.push(e),e.flags|=1),vo()}function qi(e,t,s=pt+1){for(;s<Ue.length;s++){const n=Ue[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;Ue.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function ho(e){if(as.length){const t=[...new Set(as)].sort((s,n)=>Ps(s)-Ps(n));if(as.length=0,Nt){Nt.push(...t);return}for(Nt=t,is=0;is<Nt.length;is++){const s=Nt[is];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Nt=null,is=0}}const Ps=e=>e.id==null?e.flags&2?-1:1/0:e.id;function go(e){try{for(pt=0;pt<Ue.length;pt++){const t=Ue[pt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ds(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;pt<Ue.length;pt++){const t=Ue[pt];t&&(t.flags&=-2)}pt=-1,Ue.length=0,ho(),en=null,(Ue.length||as.length)&&go()}}let tt=null,bo=null;function tn(e){const t=tt;return tt=e,bo=e&&e.type.__scopeId||null,t}function yo(e,t=tt,s){if(!t||e._n)return e;const n=(...i)=>{n._d&&on(-1);const r=tn(t);let a;try{a=e(...i)}finally{tn(r),n._d&&on(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function q(e,t){if(tt===null)return e;const s=xn(tt),n=e.dirs||(e.dirs=[]);for(let i=0;i<t.length;i++){let[r,a,u,d=me]=t[i];r&&(Q(r)&&(r={mounted:r,updated:r}),r.deep&&Ct(a),n.push({dir:r,instance:s,value:a,oldValue:void 0,arg:u,modifiers:d}))}return e}function Vt(e,t,s,n){const i=e.dirs,r=t&&t.dirs;for(let a=0;a<i.length;a++){const u=i[a];r&&(u.oldValue=r[a].value);let d=u.dir[n];d&&(kt(),at(d,s,8,[e.el,u,e,t]),At())}}function Ba(e,t){if(Be){let s=Be.provides;const n=Be.parent&&Be.parent.provides;n===s&&(s=Be.provides=Object.create(n)),s[e]=t}}function Zs(e,t,s=!1){const n=qo();if(n||us){let i=us?us._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return s&&Q(t)?t.call(n&&n.proxy):t}}const Wa=Symbol.for("v-scx"),Ga=()=>Zs(Wa);function Ge(e,t,s){return xo(e,t,s)}function xo(e,t,s=me){const{immediate:n,deep:i,flush:r,once:a}=s,u=Pe({},s),d=t&&n||!t&&r!=="post";let v;if(Ts){if(r==="sync"){const C=Ga();v=C.__watcherHandles||(C.__watcherHandles=[])}else if(!d){const C=()=>{};return C.stop=vt,C.resume=vt,C.pause=vt,C}}const m=Be;u.call=(C,O,g)=>at(C,m,O,g);let b=!1;r==="post"?u.scheduler=C=>{je(C,m&&m.suspense)}:r!=="sync"&&(b=!0,u.scheduler=(C,O)=>{O?C():bi(C)}),u.augmentJob=C=>{t&&(C.flags|=4),b&&(C.flags|=2,m&&(C.id=m.uid,C.i=m))};const w=Ha(e,t,u);return Ts&&(v?v.push(w):d&&w()),w}function Ka(e,t,s){const n=this.proxy,i=_e(e)?e.includes(".")?_o(n,e):()=>n[e]:e.bind(n,n);let r;Q(t)?r=t:(r=t.handler,s=t);const a=Fs(this),u=xo(i,r.bind(n),s);return a(),u}function _o(e,t){const s=t.split(".");return()=>{let n=e;for(let i=0;i<s.length&&n;i++)n=n[s[i]];return n}}const wo=Symbol("_vte"),Co=e=>e.__isTeleport,xs=e=>e&&(e.disabled||e.disabled===""),Qi=e=>e&&(e.defer||e.defer===""),Xi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,el=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,qn=(e,t)=>{const s=e&&e.to;return _e(s)?t?t(s):null:s},So={name:"Teleport",__isTeleport:!0,process(e,t,s,n,i,r,a,u,d,v){const{mc:m,pc:b,pbc:w,o:{insert:C,querySelector:O,createText:g,createComment:N}}=v,M=xs(t.props);let{shapeFlag:D,children:L,dynamicChildren:_}=t;if(e==null){const W=t.el=g(""),J=t.anchor=g("");C(W,s,n),C(J,s,n);const le=(H,z)=>{D&16&&m(L,H,z,i,r,a,u,d)},ve=()=>{const H=t.target=qn(t.props,O),z=ko(H,t,g,C);H&&(a!=="svg"&&Xi(H)?a="svg":a!=="mathml"&&el(H)&&(a="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(H),M||(le(H,z),Ys(t,!1)))};M&&(le(s,J),Ys(t,!0)),Qi(t.props)?(t.el.__isMounted=!1,je(()=>{ve(),delete t.el.__isMounted},r)):ve()}else{if(Qi(t.props)&&e.el.__isMounted===!1){je(()=>{So.process(e,t,s,n,i,r,a,u,d,v)},r);return}t.el=e.el,t.targetStart=e.targetStart;const W=t.anchor=e.anchor,J=t.target=e.target,le=t.targetAnchor=e.targetAnchor,ve=xs(e.props),H=ve?s:J,z=ve?W:le;if(a==="svg"||Xi(J)?a="svg":(a==="mathml"||el(J))&&(a="mathml"),_?(w(e.dynamicChildren,_,H,i,r,a,u),wi(e,t,!0)):d||b(e,t,H,z,i,r,a,u,!1),M)ve?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Bs(t,s,W,v,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ee=t.target=qn(t.props,O);ee&&Bs(t,ee,null,v,0)}else ve&&Bs(t,J,le,v,1);Ys(t,M)}},remove(e,t,s,{um:n,o:{remove:i}},r){const{shapeFlag:a,children:u,anchor:d,targetStart:v,targetAnchor:m,target:b,props:w}=e;if(b&&(i(v),i(m)),r&&i(d),a&16){const C=r||!xs(w);for(let O=0;O<u.length;O++){const g=u[O];n(g,t,s,C,!!g.dynamicChildren)}}},move:Bs,hydrate:za};function Bs(e,t,s,{o:{insert:n},m:i},r=2){r===0&&n(e.targetAnchor,t,s);const{el:a,anchor:u,shapeFlag:d,children:v,props:m}=e,b=r===2;if(b&&n(a,t,s),(!b||xs(m))&&d&16)for(let w=0;w<v.length;w++)i(v[w],t,s,2);b&&n(u,t,s)}function za(e,t,s,n,i,r,{o:{nextSibling:a,parentNode:u,querySelector:d,insert:v,createText:m}},b){function w(g,N,M,D){N.anchor=b(a(g),N,u(g),s,n,i,r),N.targetStart=M,N.targetAnchor=D}const C=t.target=qn(t.props,d),O=xs(t.props);if(C){const g=C._lpa||C.firstChild;if(t.shapeFlag&16)if(O)w(e,t,g,g&&a(g));else{t.anchor=a(e);let N=g;for(;N;){if(N&&N.nodeType===8){if(N.data==="teleport start anchor")t.targetStart=N;else if(N.data==="teleport anchor"){t.targetAnchor=N,C._lpa=t.targetAnchor&&a(t.targetAnchor);break}}N=a(N)}t.targetAnchor||ko(C,t,m,v),b(g&&a(g),t,C,s,n,i,r)}Ys(t,O)}else O&&t.shapeFlag&16&&w(e,t,e,a(e));return t.anchor&&a(t.anchor)}const Za=So;function Ys(e,t){const s=e.ctx;if(s&&s.ut){let n,i;for(t?(n=e.el,i=e.anchor):(n=e.targetStart,i=e.targetAnchor);n&&n!==i;)n.nodeType===1&&n.setAttribute("data-v-owner",s.uid),n=n.nextSibling;s.ut()}}function ko(e,t,s,n){const i=t.targetStart=s(""),r=t.targetAnchor=s("");return i[wo]=r,e&&(n(i,e),n(r,e)),r}const _t=Symbol("_leaveCb"),Ws=Symbol("_enterCb");function Ya(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return yi(()=>{e.isMounted=!0}),nn(()=>{e.isUnmounting=!0}),e}const et=[Function,Array],Ao={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:et,onEnter:et,onAfterEnter:et,onEnterCancelled:et,onBeforeLeave:et,onLeave:et,onAfterLeave:et,onLeaveCancelled:et,onBeforeAppear:et,onAppear:et,onAfterAppear:et,onAppearCancelled:et},Po=e=>{const t=e.subTree;return t.component?Po(t.component):t},Ja={name:"BaseTransition",props:Ao,setup(e,{slots:t}){const s=qo(),n=Ya();return()=>{const i=t.default&&To(t.default(),!0);if(!i||!i.length)return;const r=Mo(i),a=re(e),{mode:u}=a;if(n.isLeaving)return $n(r);const d=tl(r);if(!d)return $n(r);let v=Qn(d,a,n,s,b=>v=b);d.type!==Ve&&Ms(d,v);let m=s.subTree&&tl(s.subTree);if(m&&m.type!==Ve&&!zt(m,d)&&Po(s).type!==Ve){let b=Qn(m,a,n,s);if(Ms(m,b),u==="out-in"&&d.type!==Ve)return n.isLeaving=!0,b.afterLeave=()=>{n.isLeaving=!1,s.job.flags&8||s.update(),delete b.afterLeave,m=void 0},$n(r);u==="in-out"&&d.type!==Ve?b.delayLeave=(w,C,O)=>{const g=Io(n,m);g[String(m.key)]=m,w[_t]=()=>{C(),w[_t]=void 0,delete v.delayedLeave,m=void 0},v.delayedLeave=()=>{O(),delete v.delayedLeave,m=void 0}}:m=void 0}else m&&(m=void 0);return r}}};function Mo(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ve){t=s;break}}return t}const qa=Ja;function Io(e,t){const{leavingVNodes:s}=e;let n=s.get(t.type);return n||(n=Object.create(null),s.set(t.type,n)),n}function Qn(e,t,s,n,i){const{appear:r,mode:a,persisted:u=!1,onBeforeEnter:d,onEnter:v,onAfterEnter:m,onEnterCancelled:b,onBeforeLeave:w,onLeave:C,onAfterLeave:O,onLeaveCancelled:g,onBeforeAppear:N,onAppear:M,onAfterAppear:D,onAppearCancelled:L}=t,_=String(e.key),W=Io(s,e),J=(H,z)=>{H&&at(H,n,9,z)},le=(H,z)=>{const ee=z[1];J(H,z),K(H)?H.every(U=>U.length<=1)&&ee():H.length<=1&&ee()},ve={mode:a,persisted:u,beforeEnter(H){let z=d;if(!s.isMounted)if(r)z=N||d;else return;H[_t]&&H[_t](!0);const ee=W[_];ee&&zt(e,ee)&&ee.el[_t]&&ee.el[_t](),J(z,[H])},enter(H){let z=v,ee=m,U=b;if(!s.isMounted)if(r)z=M||v,ee=D||m,U=L||b;else return;let ue=!1;const we=H[Ws]=be=>{ue||(ue=!0,be?J(U,[H]):J(ee,[H]),ve.delayedLeave&&ve.delayedLeave(),H[Ws]=void 0)};z?le(z,[H,we]):we()},leave(H,z){const ee=String(e.key);if(H[Ws]&&H[Ws](!0),s.isUnmounting)return z();J(w,[H]);let U=!1;const ue=H[_t]=we=>{U||(U=!0,z(),we?J(g,[H]):J(O,[H]),H[_t]=void 0,W[ee]===e&&delete W[ee])};W[ee]=e,C?le(C,[H,ue]):ue()},clone(H){const z=Qn(H,t,s,n,i);return i&&i(z),z}};return ve}function $n(e){if(vn(e))return e=Ot(e),e.children=null,e}function tl(e){if(!vn(e))return Co(e.type)&&e.children?Mo(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&Q(s.default))return s.default()}}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 To(e,t=!1,s){let n=[],i=0;for(let r=0;r<e.length;r++){let a=e[r];const u=s==null?a.key:String(s)+String(a.key!=null?a.key:r);a.type===ie?(a.patchFlag&128&&i++,n=n.concat(To(a.children,t,u))):(t||a.type!==Ve)&&n.push(u!=null?Ot(a,{key:u}):a)}if(i>1)for(let r=0;r<n.length;r++)n[r].patchFlag=-2;return n}function Qt(e,t){return Q(e)?Pe({name:e.name},t,{setup:e}):e}function Eo(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const sn=new WeakMap;function _s(e,t,s,n,i=!1){if(K(e)){e.forEach((O,g)=>_s(O,t&&(K(t)?t[g]:t),s,n,i));return}if(ws(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&_s(e,t,s,n.component.subTree);return}const r=n.shapeFlag&4?xn(n.component):n.el,a=i?null:r,{i:u,r:d}=e,v=t&&t.r,m=u.refs===me?u.refs={}:u.refs,b=u.setupState,w=re(b),C=b===me?Vl:O=>ae(w,O);if(v!=null&&v!==d){if(sl(t),_e(v))m[v]=null,C(v)&&(b[v]=null);else if(De(v)){v.value=null;const O=t;O.k&&(m[O.k]=null)}}if(Q(d))Ds(d,u,12,[a,m]);else{const O=_e(d),g=De(d);if(O||g){const N=()=>{if(e.f){const M=O?C(d)?b[d]:m[d]:d.value;if(i)K(M)&&ri(M,r);else if(K(M))M.includes(r)||M.push(r);else if(O)m[d]=[r],C(d)&&(b[d]=m[d]);else{const D=[r];d.value=D,e.k&&(m[e.k]=D)}}else O?(m[d]=a,C(d)&&(b[d]=a)):g&&(d.value=a,e.k&&(m[e.k]=a))};if(a){const M=()=>{N(),sn.delete(e)};M.id=-1,sn.set(e,M),je(M,s)}else sl(e),N()}}}function sl(e){const t=sn.get(e);t&&(t.flags|=8,sn.delete(e))}fn().requestIdleCallback;fn().cancelIdleCallback;const ws=e=>!!e.type.__asyncLoader,vn=e=>e.type.__isKeepAlive;function Qa(e,t){Ro(e,"a",t)}function Xa(e,t){Ro(e,"da",t)}function Ro(e,t,s=Be){const n=e.__wdc||(e.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(hn(t,n,s),s){let i=s.parent;for(;i&&i.parent;)vn(i.parent.vnode)&&eu(n,t,s,i),i=i.parent}}function eu(e,t,s,n){const i=hn(t,e,n,!0);No(()=>{ri(n[t],i)},s)}function hn(e,t,s=Be,n=!1){if(s){const i=s[e]||(s[e]=[]),r=t.__weh||(t.__weh=(...a)=>{kt();const u=Fs(s),d=at(t,s,e,a);return u(),At(),d});return n?i.unshift(r):i.push(r),r}}const Mt=e=>(t,s=Be)=>{(!Ts||e==="sp")&&hn(e,(...n)=>t(...n),s)},tu=Mt("bm"),yi=Mt("m"),su=Mt("bu"),nu=Mt("u"),nn=Mt("bum"),No=Mt("um"),iu=Mt("sp"),lu=Mt("rtg"),ou=Mt("rtc");function ru(e,t=Be){hn("ec",e,t)}const au=Symbol.for("v-ndc");function xe(e,t,s,n){let i;const r=s,a=K(e);if(a||_e(e)){const u=a&&Yt(e);let d=!1,v=!1;u&&(d=!st(e),v=Pt(e),e=pn(e)),i=new Array(e.length);for(let m=0,b=e.length;m<b;m++)i[m]=t(d?v?cs(rt(e[m])):rt(e[m]):e[m],m,void 0,r)}else if(typeof e=="number"){i=new Array(e);for(let u=0;u<e;u++)i[u]=t(u+1,u,void 0,r)}else if(pe(e))if(e[Symbol.iterator])i=Array.from(e,(u,d)=>t(u,d,void 0,r));else{const u=Object.keys(e);i=new Array(u.length);for(let d=0,v=u.length;d<v;d++){const m=u[d];i[d]=t(e[m],m,d,r)}}else i=[];return i}const Xn=e=>e?Qo(e)?xn(e):Xn(e.parent):null,Cs=Pe(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=>Xn(e.parent),$root:e=>Xn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Do(e),$forceUpdate:e=>e.f||(e.f=()=>{bi(e.update)}),$nextTick:e=>e.n||(e.n=ls.bind(e.proxy)),$watch:e=>Ka.bind(e)}),Dn=(e,t)=>e!==me&&!e.__isScriptSetup&&ae(e,t),uu={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:r,accessCache:a,type:u,appContext:d}=e;if(t[0]!=="$"){const w=a[t];if(w!==void 0)switch(w){case 1:return n[t];case 2:return i[t];case 4:return s[t];case 3:return r[t]}else{if(Dn(n,t))return a[t]=1,n[t];if(i!==me&&ae(i,t))return a[t]=2,i[t];if(ae(r,t))return a[t]=3,r[t];if(s!==me&&ae(s,t))return a[t]=4,s[t];ei&&(a[t]=0)}}const v=Cs[t];let m,b;if(v)return t==="$attrs"&&$e(e.attrs,"get",""),v(e);if((m=u.__cssModules)&&(m=m[t]))return m;if(s!==me&&ae(s,t))return a[t]=4,s[t];if(b=d.config.globalProperties,ae(b,t))return b[t]},set({_:e},t,s){const{data:n,setupState:i,ctx:r}=e;return Dn(i,t)?(i[t]=s,!0):n!==me&&ae(n,t)?(n[t]=s,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:i,props:r,type:a}},u){let d;return!!(s[u]||e!==me&&u[0]!=="$"&&ae(e,u)||Dn(t,u)||ae(r,u)||ae(n,u)||ae(Cs,u)||ae(i.config.globalProperties,u)||(d=a.__cssModules)&&d[u])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:ae(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function nl(e){return K(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let ei=!0;function cu(e){const t=Do(e),s=e.proxy,n=e.ctx;ei=!1,t.beforeCreate&&il(t.beforeCreate,e,"bc");const{data:i,computed:r,methods:a,watch:u,provide:d,inject:v,created:m,beforeMount:b,mounted:w,beforeUpdate:C,updated:O,activated:g,deactivated:N,beforeDestroy:M,beforeUnmount:D,destroyed:L,unmounted:_,render:W,renderTracked:J,renderTriggered:le,errorCaptured:ve,serverPrefetch:H,expose:z,inheritAttrs:ee,components:U,directives:ue,filters:we}=t;if(v&&du(v,n,null),a)for(const ne in a){const ce=a[ne];Q(ce)&&(n[ne]=ce.bind(s))}if(i){const ne=i.call(s,s);pe(ne)&&(e.data=vi(ne))}if(ei=!0,r)for(const ne in r){const ce=r[ne],Me=Q(ce)?ce.bind(s,s):Q(ce.get)?ce.get.bind(s,s):vt,Ie=!Q(ce)&&Q(ce.set)?ce.set.bind(s):vt,We=B({get:Me,set:Ie});Object.defineProperty(n,ne,{enumerable:!0,configurable:!0,get:()=>We.value,set:Fe=>We.value=Fe})}if(u)for(const ne in u)$o(u[ne],n,s,ne);if(d){const ne=Q(d)?d.call(s):d;Reflect.ownKeys(ne).forEach(ce=>{Ba(ce,ne[ce])})}m&&il(m,e,"c");function Ce(ne,ce){K(ce)?ce.forEach(Me=>ne(Me.bind(s))):ce&&ne(ce.bind(s))}if(Ce(tu,b),Ce(yi,w),Ce(su,C),Ce(nu,O),Ce(Qa,g),Ce(Xa,N),Ce(ru,ve),Ce(ou,J),Ce(lu,le),Ce(nn,D),Ce(No,_),Ce(iu,H),K(z))if(z.length){const ne=e.exposed||(e.exposed={});z.forEach(ce=>{Object.defineProperty(ne,ce,{get:()=>s[ce],set:Me=>s[ce]=Me,enumerable:!0})})}else e.exposed||(e.exposed={});W&&e.render===vt&&(e.render=W),ee!=null&&(e.inheritAttrs=ee),U&&(e.components=U),ue&&(e.directives=ue),H&&Eo(e)}function du(e,t,s=vt){K(e)&&(e=ti(e));for(const n in e){const i=e[n];let r;pe(i)?"default"in i?r=Zs(i.from||n,i.default,!0):r=Zs(i.from||n):r=Zs(i),De(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[n]=r}}function il(e,t,s){at(K(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function $o(e,t,s,n){let i=n.includes(".")?_o(s,n):()=>s[n];if(_e(e)){const r=t[e];Q(r)&&Ge(i,r)}else if(Q(e))Ge(i,e.bind(s));else if(pe(e))if(K(e))e.forEach(r=>$o(r,t,s,n));else{const r=Q(e.handler)?e.handler.bind(s):t[e.handler];Q(r)&&Ge(i,r,e)}}function Do(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:i,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,u=r.get(t);let d;return u?d=u:!i.length&&!s&&!n?d=t:(d={},i.length&&i.forEach(v=>ln(d,v,a,!0)),ln(d,t,a)),pe(t)&&r.set(t,d),d}function ln(e,t,s,n=!1){const{mixins:i,extends:r}=t;r&&ln(e,r,s,!0),i&&i.forEach(a=>ln(e,a,s,!0));for(const a in t)if(!(n&&a==="expose")){const u=fu[a]||s&&s[a];e[a]=u?u(e[a],t[a]):t[a]}return e}const fu={data:ll,props:ol,emits:ol,methods:hs,computed:hs,beforeCreate:He,created:He,beforeMount:He,mounted:He,beforeUpdate:He,updated:He,beforeDestroy:He,beforeUnmount:He,destroyed:He,unmounted:He,activated:He,deactivated:He,errorCaptured:He,serverPrefetch:He,components:hs,directives:hs,watch:mu,provide:ll,inject:pu};function ll(e,t){return t?e?function(){return Pe(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function pu(e,t){return hs(ti(e),ti(t))}function ti(e){if(K(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function He(e,t){return e?[...new Set([].concat(e,t))]:t}function hs(e,t){return e?Pe(Object.create(null),e,t):t}function ol(e,t){return e?K(e)&&K(t)?[...new Set([...e,...t])]:Pe(Object.create(null),nl(e),nl(t??{})):t}function mu(e,t){if(!e)return t;if(!t)return e;const s=Pe(Object.create(null),e);for(const n in t)s[n]=He(e[n],t[n]);return s}function Fo(){return{app:null,config:{isNativeTag:Vl,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 vu=0;function hu(e,t){return function(n,i=null){Q(n)||(n=Pe({},n)),i!=null&&!pe(i)&&(i=null);const r=Fo(),a=new WeakSet,u=[];let d=!1;const v=r.app={_uid:vu++,_component:n,_props:i,_container:null,_context:r,_instance:null,version:Yu,get config(){return r.config},set config(m){},use(m,...b){return a.has(m)||(m&&Q(m.install)?(a.add(m),m.install(v,...b)):Q(m)&&(a.add(m),m(v,...b))),v},mixin(m){return r.mixins.includes(m)||r.mixins.push(m),v},component(m,b){return b?(r.components[m]=b,v):r.components[m]},directive(m,b){return b?(r.directives[m]=b,v):r.directives[m]},mount(m,b,w){if(!d){const C=v._ceVNode||Ae(n,i);return C.appContext=r,w===!0?w="svg":w===!1&&(w=void 0),e(C,m,w),d=!0,v._container=m,m.__vue_app__=v,xn(C.component)}},onUnmount(m){u.push(m)},unmount(){d&&(at(u,v._instance,16),e(null,v._container),delete v._container.__vue_app__)},provide(m,b){return r.provides[m]=b,v},runWithContext(m){const b=us;us=v;try{return m()}finally{us=b}}};return v}}let us=null;const gu=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Lt(t)}Modifiers`]||e[`${qt(t)}Modifiers`];function bu(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||me;let i=s;const r=t.startsWith("update:"),a=r&&gu(n,t.slice(7));a&&(a.trim&&(i=s.map(m=>_e(m)?m.trim():m)),a.number&&(i=s.map(dn)));let u,d=n[u=In(t)]||n[u=In(Lt(t))];!d&&r&&(d=n[u=In(qt(t))]),d&&at(d,e,6,i);const v=n[u+"Once"];if(v){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,at(v,e,6,i)}}const yu=new WeakMap;function Lo(e,t,s=!1){const n=s?yu:t.emitsCache,i=n.get(e);if(i!==void 0)return i;const r=e.emits;let a={},u=!1;if(!Q(e)){const d=v=>{const m=Lo(v,t,!0);m&&(u=!0,Pe(a,m))};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!r&&!u?(pe(e)&&n.set(e,null),null):(K(r)?r.forEach(d=>a[d]=null):Pe(a,r),pe(e)&&n.set(e,a),a)}function gn(e,t){return!e||!un(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,qt(t))||ae(e,t))}function rl(e){const{type:t,vnode:s,proxy:n,withProxy:i,propsOptions:[r],slots:a,attrs:u,emit:d,render:v,renderCache:m,props:b,data:w,setupState:C,ctx:O,inheritAttrs:g}=e,N=tn(e);let M,D;try{if(s.shapeFlag&4){const _=i||n,W=_;M=mt(v.call(W,_,m,b,C,w,O)),D=u}else{const _=t;M=mt(_.length>1?_(b,{attrs:u,slots:a,emit:d}):_(b,null)),D=t.props?u:xu(u)}}catch(_){Ss.length=0,mn(_,e,1),M=Ae(Ve)}let L=M;if(D&&g!==!1){const _=Object.keys(D),{shapeFlag:W}=L;_.length&&W&7&&(r&&_.some(oi)&&(D=_u(D,r)),L=Ot(L,D,!1,!0))}return s.dirs&&(L=Ot(L,null,!1,!0),L.dirs=L.dirs?L.dirs.concat(s.dirs):s.dirs),s.transition&&Ms(L,s.transition),M=L,tn(N),M}const xu=e=>{let t;for(const s in e)(s==="class"||s==="style"||un(s))&&((t||(t={}))[s]=e[s]);return t},_u=(e,t)=>{const s={};for(const n in e)(!oi(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function wu(e,t,s){const{props:n,children:i,component:r}=e,{props:a,children:u,patchFlag:d}=t,v=r.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&d>=0){if(d&1024)return!0;if(d&16)return n?al(n,a,v):!!a;if(d&8){const m=t.dynamicProps;for(let b=0;b<m.length;b++){const w=m[b];if(a[w]!==n[w]&&!gn(v,w))return!0}}}else return(i||u)&&(!u||!u.$stable)?!0:n===a?!1:n?a?al(n,a,v):!0:!!a;return!1}function al(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let i=0;i<n.length;i++){const r=n[i];if(t[r]!==e[r]&&!gn(s,r))return!0}return!1}function Cu({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Oo={},Ho=()=>Object.create(Oo),jo=e=>Object.getPrototypeOf(e)===Oo;function Su(e,t,s,n=!1){const i={},r=Ho();e.propsDefaults=Object.create(null),Uo(e,t,i,r);for(const a in e.propsOptions[0])a in i||(i[a]=void 0);s?e.props=n?i:Ea(i):e.type.props?e.props=i:e.props=r,e.attrs=r}function ku(e,t,s,n){const{props:i,attrs:r,vnode:{patchFlag:a}}=e,u=re(i),[d]=e.propsOptions;let v=!1;if((n||a>0)&&!(a&16)){if(a&8){const m=e.vnode.dynamicProps;for(let b=0;b<m.length;b++){let w=m[b];if(gn(e.emitsOptions,w))continue;const C=t[w];if(d)if(ae(r,w))C!==r[w]&&(r[w]=C,v=!0);else{const O=Lt(w);i[O]=si(d,u,O,C,e,!1)}else C!==r[w]&&(r[w]=C,v=!0)}}}else{Uo(e,t,i,r)&&(v=!0);let m;for(const b in u)(!t||!ae(t,b)&&((m=qt(b))===b||!ae(t,m)))&&(d?s&&(s[b]!==void 0||s[m]!==void 0)&&(i[b]=si(d,u,b,void 0,e,!0)):delete i[b]);if(r!==u)for(const b in r)(!t||!ae(t,b))&&(delete r[b],v=!0)}v&&wt(e.attrs,"set","")}function Uo(e,t,s,n){const[i,r]=e.propsOptions;let a=!1,u;if(t)for(let d in t){if(gs(d))continue;const v=t[d];let m;i&&ae(i,m=Lt(d))?!r||!r.includes(m)?s[m]=v:(u||(u={}))[m]=v:gn(e.emitsOptions,d)||(!(d in n)||v!==n[d])&&(n[d]=v,a=!0)}if(r){const d=re(s),v=u||me;for(let m=0;m<r.length;m++){const b=r[m];s[b]=si(i,d,b,v[b],e,!ae(v,b))}}return a}function si(e,t,s,n,i,r){const a=e[s];if(a!=null){const u=ae(a,"default");if(u&&n===void 0){const d=a.default;if(a.type!==Function&&!a.skipFactory&&Q(d)){const{propsDefaults:v}=i;if(s in v)n=v[s];else{const m=Fs(i);n=v[s]=d.call(null,t),m()}}else n=d;i.ce&&i.ce._setProp(s,n)}a[0]&&(r&&!u?n=!1:a[1]&&(n===""||n===qt(s))&&(n=!0))}return n}const Au=new WeakMap;function Vo(e,t,s=!1){const n=s?Au:t.propsCache,i=n.get(e);if(i)return i;const r=e.props,a={},u=[];let d=!1;if(!Q(e)){const m=b=>{d=!0;const[w,C]=Vo(b,t,!0);Pe(a,w),C&&u.push(...C)};!s&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!r&&!d)return pe(e)&&n.set(e,os),os;if(K(r))for(let m=0;m<r.length;m++){const b=Lt(r[m]);ul(b)&&(a[b]=me)}else if(r)for(const m in r){const b=Lt(m);if(ul(b)){const w=r[m],C=a[b]=K(w)||Q(w)?{type:w}:Pe({},w),O=C.type;let g=!1,N=!0;if(K(O))for(let M=0;M<O.length;++M){const D=O[M],L=Q(D)&&D.name;if(L==="Boolean"){g=!0;break}else L==="String"&&(N=!1)}else g=Q(O)&&O.name==="Boolean";C[0]=g,C[1]=N,(g||ae(C,"default"))&&u.push(b)}}const v=[a,u];return pe(e)&&n.set(e,v),v}function ul(e){return e[0]!=="$"&&!gs(e)}const xi=e=>e==="_"||e==="_ctx"||e==="$stable",_i=e=>K(e)?e.map(mt):[mt(e)],Pu=(e,t,s)=>{if(t._n)return t;const n=yo((...i)=>_i(t(...i)),s);return n._c=!1,n},Bo=(e,t,s)=>{const n=e._ctx;for(const i in e){if(xi(i))continue;const r=e[i];if(Q(r))t[i]=Pu(i,r,n);else if(r!=null){const a=_i(r);t[i]=()=>a}}},Wo=(e,t)=>{const s=_i(t);e.slots.default=()=>s},Go=(e,t,s)=>{for(const n in t)(s||!xi(n))&&(e[n]=t[n])},Mu=(e,t,s)=>{const n=e.slots=Ho();if(e.vnode.shapeFlag&32){const i=t._;i?(Go(n,t,s),s&&zl(n,"_",i,!0)):Bo(t,n)}else t&&Wo(e,t)},Iu=(e,t,s)=>{const{vnode:n,slots:i}=e;let r=!0,a=me;if(n.shapeFlag&32){const u=t._;u?s&&u===1?r=!1:Go(i,t,s):(r=!t.$stable,Bo(t,i)),a=t}else t&&(Wo(e,t),a={default:1});if(r)for(const u in i)!xi(u)&&a[u]==null&&delete i[u]},je=$u;function Tu(e){return Eu(e)}function Eu(e,t){const s=fn();s.__VUE__=!0;const{insert:n,remove:i,patchProp:r,createElement:a,createText:u,createComment:d,setText:v,setElementText:m,parentNode:b,nextSibling:w,setScopeId:C=vt,insertStaticContent:O}=e,g=(p,h,x,S=null,k=null,A=null,F=void 0,y=null,E=!!h.dynamicChildren)=>{if(p===h)return;p&&!zt(p,h)&&(S=ut(p),Fe(p,k,A,!0),p=null),h.patchFlag===-2&&(E=!1,h.dynamicChildren=null);const{type:P,ref:G,shapeFlag:j}=h;switch(P){case bn:N(p,h,x,S);break;case Ve:M(p,h,x,S);break;case Js:p==null&&D(h,x,S,F);break;case ie:U(p,h,x,S,k,A,F,y,E);break;default:j&1?W(p,h,x,S,k,A,F,y,E):j&6?ue(p,h,x,S,k,A,F,y,E):(j&64||j&128)&&P.process(p,h,x,S,k,A,F,y,E,jt)}G!=null&&k?_s(G,p&&p.ref,A,h||p,!h):G==null&&p&&p.ref!=null&&_s(p.ref,null,A,p,!0)},N=(p,h,x,S)=>{if(p==null)n(h.el=u(h.children),x,S);else{const k=h.el=p.el;h.children!==p.children&&v(k,h.children)}},M=(p,h,x,S)=>{p==null?n(h.el=d(h.children||""),x,S):h.el=p.el},D=(p,h,x,S)=>{[p.el,p.anchor]=O(p.children,h,x,S,p.el,p.anchor)},L=({el:p,anchor:h},x,S)=>{let k;for(;p&&p!==h;)k=w(p),n(p,x,S),p=k;n(h,x,S)},_=({el:p,anchor:h})=>{let x;for(;p&&p!==h;)x=w(p),i(p),p=x;i(h)},W=(p,h,x,S,k,A,F,y,E)=>{if(h.type==="svg"?F="svg":h.type==="math"&&(F="mathml"),p==null)J(h,x,S,k,A,F,y,E);else{const P=p.el&&p.el._isVueCE?p.el:null;try{P&&P._beginPatch(),H(p,h,k,A,F,y,E)}finally{P&&P._endPatch()}}},J=(p,h,x,S,k,A,F,y)=>{let E,P;const{props:G,shapeFlag:j,transition:V,dirs:Z}=p;if(E=p.el=a(p.type,A,G&&G.is,G),j&8?m(E,p.children):j&16&&ve(p.children,E,null,S,k,Fn(p,A),F,y),Z&&Vt(p,null,S,"created"),le(E,p,p.scopeId,F,S),G){for(const de in G)de!=="value"&&!gs(de)&&r(E,de,null,G[de],A,S);"value"in G&&r(E,"value",null,G.value,A),(P=G.onVnodeBeforeMount)&&ft(P,S,p)}Z&&Vt(p,null,S,"beforeMount");const se=Ru(k,V);se&&V.beforeEnter(E),n(E,h,x),((P=G&&G.onVnodeMounted)||se||Z)&&je(()=>{P&&ft(P,S,p),se&&V.enter(E),Z&&Vt(p,null,S,"mounted")},k)},le=(p,h,x,S,k)=>{if(x&&C(p,x),S)for(let A=0;A<S.length;A++)C(p,S[A]);if(k){let A=k.subTree;if(h===A||Zo(A.type)&&(A.ssContent===h||A.ssFallback===h)){const F=k.vnode;le(p,F,F.scopeId,F.slotScopeIds,k.parent)}}},ve=(p,h,x,S,k,A,F,y,E=0)=>{for(let P=E;P<p.length;P++){const G=p[P]=y?$t(p[P]):mt(p[P]);g(null,G,h,x,S,k,A,F,y)}},H=(p,h,x,S,k,A,F)=>{const y=h.el=p.el;let{patchFlag:E,dynamicChildren:P,dirs:G}=h;E|=p.patchFlag&16;const j=p.props||me,V=h.props||me;let Z;if(x&&Bt(x,!1),(Z=V.onVnodeBeforeUpdate)&&ft(Z,x,h,p),G&&Vt(h,p,x,"beforeUpdate"),x&&Bt(x,!0),(j.innerHTML&&V.innerHTML==null||j.textContent&&V.textContent==null)&&m(y,""),P?z(p.dynamicChildren,P,y,x,S,Fn(h,k),A):F||ce(p,h,y,null,x,S,Fn(h,k),A,!1),E>0){if(E&16)ee(y,j,V,x,k);else if(E&2&&j.class!==V.class&&r(y,"class",null,V.class,k),E&4&&r(y,"style",j.style,V.style,k),E&8){const se=h.dynamicProps;for(let de=0;de<se.length;de++){const oe=se[de],Ee=j[oe],Re=V[oe];(Re!==Ee||oe==="value")&&r(y,oe,Ee,Re,k,x)}}E&1&&p.children!==h.children&&m(y,h.children)}else!F&&P==null&&ee(y,j,V,x,k);((Z=V.onVnodeUpdated)||G)&&je(()=>{Z&&ft(Z,x,h,p),G&&Vt(h,p,x,"updated")},S)},z=(p,h,x,S,k,A,F)=>{for(let y=0;y<h.length;y++){const E=p[y],P=h[y],G=E.el&&(E.type===ie||!zt(E,P)||E.shapeFlag&198)?b(E.el):x;g(E,P,G,null,S,k,A,F,!0)}},ee=(p,h,x,S,k)=>{if(h!==x){if(h!==me)for(const A in h)!gs(A)&&!(A in x)&&r(p,A,h[A],null,k,S);for(const A in x){if(gs(A))continue;const F=x[A],y=h[A];F!==y&&A!=="value"&&r(p,A,y,F,k,S)}"value"in x&&r(p,"value",h.value,x.value,k)}},U=(p,h,x,S,k,A,F,y,E)=>{const P=h.el=p?p.el:u(""),G=h.anchor=p?p.anchor:u("");let{patchFlag:j,dynamicChildren:V,slotScopeIds:Z}=h;Z&&(y=y?y.concat(Z):Z),p==null?(n(P,x,S),n(G,x,S),ve(h.children||[],x,G,k,A,F,y,E)):j>0&&j&64&&V&&p.dynamicChildren&&p.dynamicChildren.length===V.length?(z(p.dynamicChildren,V,x,k,A,F,y),(h.key!=null||k&&h===k.subTree)&&wi(p,h,!0)):ce(p,h,x,G,k,A,F,y,E)},ue=(p,h,x,S,k,A,F,y,E)=>{h.slotScopeIds=y,p==null?h.shapeFlag&512?k.ctx.activate(h,x,S,F,E):we(h,x,S,k,A,F,E):be(p,h,E)},we=(p,h,x,S,k,A,F)=>{const y=p.component=Vu(p,S,k);if(vn(p)&&(y.ctx.renderer=jt),Bu(y,!1,F),y.asyncDep){if(k&&k.registerDep(y,Ce,F),!p.el){const E=y.subTree=Ae(Ve);M(null,E,h,x),p.placeholder=E.el}}else Ce(y,p,h,x,k,A,F)},be=(p,h,x)=>{const S=h.component=p.component;if(wu(p,h,x))if(S.asyncDep&&!S.asyncResolved){ne(S,h,x);return}else S.next=h,S.update();else h.el=p.el,S.vnode=h},Ce=(p,h,x,S,k,A,F)=>{const y=()=>{if(p.isMounted){let{next:j,bu:V,u:Z,parent:se,vnode:de}=p;{const Qe=Ko(p);if(Qe){j&&(j.el=de.el,ne(p,j,F)),Qe.asyncDep.then(()=>{p.isUnmounted||y()});return}}let oe=j,Ee;Bt(p,!1),j?(j.el=de.el,ne(p,j,F)):j=de,V&&zs(V),(Ee=j.props&&j.props.onVnodeBeforeUpdate)&&ft(Ee,se,j,de),Bt(p,!0);const Re=rl(p),qe=p.subTree;p.subTree=Re,g(qe,Re,b(qe.el),ut(qe),p,k,A),j.el=Re.el,oe===null&&Cu(p,Re.el),Z&&je(Z,k),(Ee=j.props&&j.props.onVnodeUpdated)&&je(()=>ft(Ee,se,j,de),k)}else{let j;const{el:V,props:Z}=h,{bm:se,m:de,parent:oe,root:Ee,type:Re}=p,qe=ws(h);Bt(p,!1),se&&zs(se),!qe&&(j=Z&&Z.onVnodeBeforeMount)&&ft(j,oe,h),Bt(p,!0);{Ee.ce&&Ee.ce._def.shadowRoot!==!1&&Ee.ce._injectChildStyle(Re);const Qe=p.subTree=rl(p);g(null,Qe,x,S,p,k,A),h.el=Qe.el}if(de&&je(de,k),!qe&&(j=Z&&Z.onVnodeMounted)){const Qe=h;je(()=>ft(j,oe,Qe),k)}(h.shapeFlag&256||oe&&ws(oe.vnode)&&oe.vnode.shapeFlag&256)&&p.a&&je(p.a,k),p.isMounted=!0,h=x=S=null}};p.scope.on();const E=p.effect=new ql(y);p.scope.off();const P=p.update=E.run.bind(E),G=p.job=E.runIfDirty.bind(E);G.i=p,G.id=p.uid,E.scheduler=()=>bi(G),Bt(p,!0),P()},ne=(p,h,x)=>{h.component=p;const S=p.vnode.props;p.vnode=h,p.next=null,ku(p,h.props,S,x),Iu(p,h.children,x),kt(),qi(p),At()},ce=(p,h,x,S,k,A,F,y,E=!1)=>{const P=p&&p.children,G=p?p.shapeFlag:0,j=h.children,{patchFlag:V,shapeFlag:Z}=h;if(V>0){if(V&128){Ie(P,j,x,S,k,A,F,y,E);return}else if(V&256){Me(P,j,x,S,k,A,F,y,E);return}}Z&8?(G&16&&nt(P,k,A),j!==P&&m(x,j)):G&16?Z&16?Ie(P,j,x,S,k,A,F,y,E):nt(P,k,A,!0):(G&8&&m(x,""),Z&16&&ve(j,x,S,k,A,F,y,E))},Me=(p,h,x,S,k,A,F,y,E)=>{p=p||os,h=h||os;const P=p.length,G=h.length,j=Math.min(P,G);let V;for(V=0;V<j;V++){const Z=h[V]=E?$t(h[V]):mt(h[V]);g(p[V],Z,x,null,k,A,F,y,E)}P>G?nt(p,k,A,!0,!1,j):ve(h,x,S,k,A,F,y,E,j)},Ie=(p,h,x,S,k,A,F,y,E)=>{let P=0;const G=h.length;let j=p.length-1,V=G-1;for(;P<=j&&P<=V;){const Z=p[P],se=h[P]=E?$t(h[P]):mt(h[P]);if(zt(Z,se))g(Z,se,x,null,k,A,F,y,E);else break;P++}for(;P<=j&&P<=V;){const Z=p[j],se=h[V]=E?$t(h[V]):mt(h[V]);if(zt(Z,se))g(Z,se,x,null,k,A,F,y,E);else break;j--,V--}if(P>j){if(P<=V){const Z=V+1,se=Z<G?h[Z].el:S;for(;P<=V;)g(null,h[P]=E?$t(h[P]):mt(h[P]),x,se,k,A,F,y,E),P++}}else if(P>V)for(;P<=j;)Fe(p[P],k,A,!0),P++;else{const Z=P,se=P,de=new Map;for(P=se;P<=V;P++){const Le=h[P]=E?$t(h[P]):mt(h[P]);Le.key!=null&&de.set(Le.key,P)}let oe,Ee=0;const Re=V-se+1;let qe=!1,Qe=0;const Ut=new Array(Re);for(P=0;P<Re;P++)Ut[P]=0;for(P=Z;P<=j;P++){const Le=p[P];if(Ee>=Re){Fe(Le,k,A,!0);continue}let ze;if(Le.key!=null)ze=de.get(Le.key);else for(oe=se;oe<=V;oe++)if(Ut[oe-se]===0&&zt(Le,h[oe])){ze=oe;break}ze===void 0?Fe(Le,k,A,!0):(Ut[ze-se]=P+1,ze>=Qe?Qe=ze:qe=!0,g(Le,h[ze],x,null,k,A,F,y,E),Ee++)}const Ls=qe?Nu(Ut):os;for(oe=Ls.length-1,P=Re-1;P>=0;P--){const Le=se+P,ze=h[Le],Xt=h[Le+1],ps=Le+1<G?Xt.el||zo(Xt):S;Ut[P]===0?g(null,ze,x,ps,k,A,F,y,E):qe&&(oe<0||P!==Ls[oe]?We(ze,x,ps,2):oe--)}}},We=(p,h,x,S,k=null)=>{const{el:A,type:F,transition:y,children:E,shapeFlag:P}=p;if(P&6){We(p.component.subTree,h,x,S);return}if(P&128){p.suspense.move(h,x,S);return}if(P&64){F.move(p,h,x,jt);return}if(F===ie){n(A,h,x);for(let j=0;j<E.length;j++)We(E[j],h,x,S);n(p.anchor,h,x);return}if(F===Js){L(p,h,x);return}if(S!==2&&P&1&&y)if(S===0)y.beforeEnter(A),n(A,h,x),je(()=>y.enter(A),k);else{const{leave:j,delayLeave:V,afterLeave:Z}=y,se=()=>{p.ctx.isUnmounted?i(A):n(A,h,x)},de=()=>{A._isLeaving&&A[_t](!0),j(A,()=>{se(),Z&&Z()})};V?V(A,se,de):de()}else n(A,h,x)},Fe=(p,h,x,S=!1,k=!1)=>{const{type:A,props:F,ref:y,children:E,dynamicChildren:P,shapeFlag:G,patchFlag:j,dirs:V,cacheIndex:Z}=p;if(j===-2&&(k=!1),y!=null&&(kt(),_s(y,null,x,p,!0),At()),Z!=null&&(h.renderCache[Z]=void 0),G&256){h.ctx.deactivate(p);return}const se=G&1&&V,de=!ws(p);let oe;if(de&&(oe=F&&F.onVnodeBeforeUnmount)&&ft(oe,h,p),G&6)gt(p.component,x,S);else{if(G&128){p.suspense.unmount(x,S);return}se&&Vt(p,null,h,"beforeUnmount"),G&64?p.type.remove(p,h,x,jt,S):P&&!P.hasOnce&&(A!==ie||j>0&&j&64)?nt(P,h,x,!1,!0):(A===ie&&j&384||!k&&G&16)&&nt(E,h,x),S&&Je(p)}(de&&(oe=F&&F.onVnodeUnmounted)||se)&&je(()=>{oe&&ft(oe,h,p),se&&Vt(p,null,h,"unmounted")},x)},Je=p=>{const{type:h,el:x,anchor:S,transition:k}=p;if(h===ie){Y(x,S);return}if(h===Js){_(p);return}const A=()=>{i(x),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(p.shapeFlag&1&&k&&!k.persisted){const{leave:F,delayLeave:y}=k,E=()=>F(x,A);y?y(p.el,A,E):E()}else A()},Y=(p,h)=>{let x;for(;p!==h;)x=w(p),i(p),p=x;i(h)},gt=(p,h,x)=>{const{bum:S,scope:k,job:A,subTree:F,um:y,m:E,a:P}=p;cl(E),cl(P),S&&zs(S),k.stop(),A&&(A.flags|=8,Fe(F,p,h,x)),y&&je(y,h),je(()=>{p.isUnmounted=!0},h)},nt=(p,h,x,S=!1,k=!1,A=0)=>{for(let F=A;F<p.length;F++)Fe(p[F],h,x,S,k)},ut=p=>{if(p.shapeFlag&6)return ut(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const h=w(p.anchor||p.el),x=h&&h[wo];return x?w(x):h};let Ht=!1;const ct=(p,h,x)=>{let S;p==null?h._vnode&&(Fe(h._vnode,null,null,!0),S=h._vnode.component):g(h._vnode||null,p,h,null,null,null,x),h._vnode=p,Ht||(Ht=!0,qi(S),ho(),Ht=!1)},jt={p:g,um:Fe,m:We,r:Je,mt:we,mc:ve,pc:ce,pbc:z,n:ut,o:e};return{render:ct,hydrate:void 0,createApp:hu(ct)}}function Fn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function Bt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ru(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function wi(e,t,s=!1){const n=e.children,i=t.children;if(K(n)&&K(i))for(let r=0;r<n.length;r++){const a=n[r];let u=i[r];u.shapeFlag&1&&!u.dynamicChildren&&((u.patchFlag<=0||u.patchFlag===32)&&(u=i[r]=$t(i[r]),u.el=a.el),!s&&u.patchFlag!==-2&&wi(a,u)),u.type===bn&&(u.patchFlag!==-1?u.el=a.el:u.__elIndex=r+(e.type===ie?1:0)),u.type===Ve&&!u.el&&(u.el=a.el)}}function Nu(e){const t=e.slice(),s=[0];let n,i,r,a,u;const d=e.length;for(n=0;n<d;n++){const v=e[n];if(v!==0){if(i=s[s.length-1],e[i]<v){t[n]=i,s.push(n);continue}for(r=0,a=s.length-1;r<a;)u=r+a>>1,e[s[u]]<v?r=u+1:a=u;v<e[s[r]]&&(r>0&&(t[n]=s[r-1]),s[r]=n)}}for(r=s.length,a=s[r-1];r-- >0;)s[r]=a,a=t[a];return s}function Ko(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ko(t)}function cl(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function zo(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?zo(t.subTree):null}const Zo=e=>e.__isSuspense;function $u(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Va(e)}const ie=Symbol.for("v-fgt"),bn=Symbol.for("v-txt"),Ve=Symbol.for("v-cmt"),Js=Symbol.for("v-stc"),Ss=[];let Ze=null;function R(e=!1){Ss.push(Ze=e?null:[])}function Du(){Ss.pop(),Ze=Ss[Ss.length-1]||null}let Is=1;function on(e,t=!1){Is+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Yo(e){return e.dynamicChildren=Is>0?Ze||os:null,Du(),Is>0&&Ze&&Ze.push(e),e}function $(e,t,s,n,i,r){return Yo(o(e,t,s,n,i,r,!0))}function yn(e,t,s,n,i){return Yo(Ae(e,t,s,n,i,!0))}function rn(e){return e?e.__v_isVNode===!0:!1}function zt(e,t){return e.type===t.type&&e.key===t.key}const Jo=({key:e})=>e??null,qs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?_e(e)||De(e)||Q(e)?{i:tt,r:e,k:t,f:!!s}:e:null);function o(e,t=null,s=null,n=0,i=null,r=e===ie?0:1,a=!1,u=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Jo(t),ref:t&&qs(t),scopeId:bo,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:tt};return u?(Ci(d,s),r&128&&e.normalize(d)):s&&(d.shapeFlag|=_e(s)?8:16),Is>0&&!a&&Ze&&(d.patchFlag>0||r&6)&&d.patchFlag!==32&&Ze.push(d),d}const Ae=Fu;function Fu(e,t=null,s=null,n=0,i=null,r=!1){if((!e||e===au)&&(e=Ve),rn(e)){const u=Ot(e,t,!0);return s&&Ci(u,s),Is>0&&!r&&Ze&&(u.shapeFlag&6?Ze[Ze.indexOf(e)]=u:Ze.push(u)),u.patchFlag=-2,u}if(zu(e)&&(e=e.__vccOpts),t){t=Lu(t);let{class:u,style:d}=t;u&&!_e(u)&&(t.class=Se(u)),pe(d)&&(gi(d)&&!K(d)&&(d=Pe({},d)),t.style=Jt(d))}const a=_e(e)?1:Zo(e)?128:Co(e)?64:pe(e)?4:Q(e)?2:0;return o(e,t,s,n,i,a,r,!0)}function Lu(e){return e?gi(e)||jo(e)?Pe({},e):e:null}function Ot(e,t,s=!1,n=!1){const{props:i,ref:r,patchFlag:a,children:u,transition:d}=e,v=t?Hu(i||{},t):i,m={__v_isVNode:!0,__v_skip:!0,type:e.type,props:v,key:v&&Jo(v),ref:t&&t.ref?s&&r?K(r)?r.concat(qs(t)):[r,qs(t)]:qs(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ie?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:d,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ot(e.ssContent),ssFallback:e.ssFallback&&Ot(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return d&&n&&Ms(m,d.clone(m)),m}function Ye(e=" ",t=0){return Ae(bn,null,e,t)}function Ou(e,t){const s=Ae(Js,null,e);return s.staticCount=t,s}function Te(e="",t=!1){return t?(R(),yn(Ve,null,e)):Ae(Ve,null,e)}function mt(e){return e==null||typeof e=="boolean"?Ae(Ve):K(e)?Ae(ie,null,e.slice()):rn(e)?$t(e):Ae(bn,null,String(e))}function $t(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ot(e)}function Ci(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(K(t))s=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),Ci(e,i()),i._c&&(i._d=!0));return}else{s=32;const i=t._;!i&&!jo(t)?t._ctx=tt:i===3&&tt&&(tt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Q(t)?(t={default:t,_ctx:tt},s=32):(t=String(t),n&64?(s=16,t=[Ye(t)]):s=8);e.children=t,e.shapeFlag|=s}function Hu(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const i in n)if(i==="class")t.class!==n.class&&(t.class=Se([t.class,n.class]));else if(i==="style")t.style=Jt([t.style,n.style]);else if(un(i)){const r=t[i],a=n[i];a&&r!==a&&!(K(r)&&r.includes(a))&&(t[i]=r?[].concat(r,a):a)}else i!==""&&(t[i]=n[i])}return t}function ft(e,t,s,n=null){at(e,t,7,[s,n])}const ju=Fo();let Uu=0;function Vu(e,t,s){const n=e.type,i=(t?t.appContext:e.appContext)||ju,r={uid:Uu++,vnode:e,type:n,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new da(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Vo(n,i),emitsOptions:Lo(n,i),emit:null,emitted:null,propsDefaults:me,inheritAttrs:n.inheritAttrs,ctx:me,data:me,props:me,attrs:me,slots:me,refs:me,setupState:me,setupContext:null,suspense:s,suspenseId:s?s.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 r.ctx={_:r},r.root=t?t.root:r,r.emit=bu.bind(null,r),e.ce&&e.ce(r),r}let Be=null;const qo=()=>Be||tt;let an,ni;{const e=fn(),t=(s,n)=>{let i;return(i=e[s])||(i=e[s]=[]),i.push(n),r=>{i.length>1?i.forEach(a=>a(r)):i[0](r)}};an=t("__VUE_INSTANCE_SETTERS__",s=>Be=s),ni=t("__VUE_SSR_SETTERS__",s=>Ts=s)}const Fs=e=>{const t=Be;return an(e),e.scope.on(),()=>{e.scope.off(),an(t)}},dl=()=>{Be&&Be.scope.off(),an(null)};function Qo(e){return e.vnode.shapeFlag&4}let Ts=!1;function Bu(e,t=!1,s=!1){t&&ni(t);const{props:n,children:i}=e.vnode,r=Qo(e);Su(e,n,r,t),Mu(e,i,s||t);const a=r?Wu(e,t):void 0;return t&&ni(!1),a}function Wu(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,uu);const{setup:n}=s;if(n){kt();const i=e.setupContext=n.length>1?Ku(e):null,r=Fs(e),a=Ds(n,e,0,[e.props,i]),u=Bl(a);if(At(),r(),(u||e.sp)&&!ws(e)&&Eo(e),u){if(a.then(dl,dl),t)return a.then(d=>{fl(e,d)}).catch(d=>{mn(d,e,0)});e.asyncDep=a}else fl(e,a)}else Xo(e)}function fl(e,t,s){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=po(t)),Xo(e)}function Xo(e,t,s){const n=e.type;e.render||(e.render=n.render||vt);{const i=Fs(e);kt();try{cu(e)}finally{At(),i()}}}const Gu={get(e,t){return $e(e,"get",""),e[t]}};function Ku(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Gu),slots:e.slots,emit:e.emit,expose:t}}function xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(po(Ra(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Cs)return Cs[s](e)},has(t,s){return s in t||s in Cs}})):e.proxy}function zu(e){return Q(e)&&"__vccOpts"in e}const B=(e,t)=>La(e,t,Ts);function Zu(e,t,s){try{on(-1);const n=arguments.length;return n===2?pe(t)&&!K(t)?rn(t)?Ae(e,null,[t]):Ae(e,t):Ae(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&rn(s)&&(s=[s]),Ae(e,t,s))}finally{on(1)}}const Yu="3.5.26";/**
* @vue/runtime-dom v3.5.26
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let ii;const pl=typeof window<"u"&&window.trustedTypes;if(pl)try{ii=pl.createPolicy("vue",{createHTML:e=>e})}catch{}const er=ii?e=>ii.createHTML(e):e=>e,Ju="http://www.w3.org/2000/svg",qu="http://www.w3.org/1998/Math/MathML",xt=typeof document<"u"?document:null,ml=xt&&xt.createElement("template"),Qu={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?xt.createElementNS(Ju,e):t==="mathml"?xt.createElementNS(qu,e):s?xt.createElement(e,{is:s}):xt.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>xt.createTextNode(e),createComment:e=>xt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>xt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,r){const a=s?s.previousSibling:t.lastChild;if(i&&(i===r||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===r||!(i=i.nextSibling)););else{ml.innerHTML=er(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const u=ml.content;if(n==="svg"||n==="mathml"){const d=u.firstChild;for(;d.firstChild;)u.appendChild(d.firstChild);u.removeChild(d)}t.insertBefore(u,s)}return[a?a.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Et="transition",vs="animation",Es=Symbol("_vtc"),tr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Xu=Pe({},Ao,tr),ec=e=>(e.displayName="Transition",e.props=Xu,e),tc=ec((e,{slots:t})=>Zu(qa,sc(e),t)),Wt=(e,t=[])=>{K(e)?e.forEach(s=>s(...t)):e&&e(...t)},vl=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function sc(e){const t={};for(const U in e)U in tr||(t[U]=e[U]);if(e.css===!1)return t;const{name:s="v",type:n,duration:i,enterFromClass:r=`${s}-enter-from`,enterActiveClass:a=`${s}-enter-active`,enterToClass:u=`${s}-enter-to`,appearFromClass:d=r,appearActiveClass:v=a,appearToClass:m=u,leaveFromClass:b=`${s}-leave-from`,leaveActiveClass:w=`${s}-leave-active`,leaveToClass:C=`${s}-leave-to`}=e,O=nc(i),g=O&&O[0],N=O&&O[1],{onBeforeEnter:M,onEnter:D,onEnterCancelled:L,onLeave:_,onLeaveCancelled:W,onBeforeAppear:J=M,onAppear:le=D,onAppearCancelled:ve=L}=t,H=(U,ue,we,be)=>{U._enterCancelled=be,Gt(U,ue?m:u),Gt(U,ue?v:a),we&&we()},z=(U,ue)=>{U._isLeaving=!1,Gt(U,b),Gt(U,C),Gt(U,w),ue&&ue()},ee=U=>(ue,we)=>{const be=U?le:D,Ce=()=>H(ue,U,we);Wt(be,[ue,Ce]),hl(()=>{Gt(ue,U?d:r),yt(ue,U?m:u),vl(be)||gl(ue,n,g,Ce)})};return Pe(t,{onBeforeEnter(U){Wt(M,[U]),yt(U,r),yt(U,a)},onBeforeAppear(U){Wt(J,[U]),yt(U,d),yt(U,v)},onEnter:ee(!1),onAppear:ee(!0),onLeave(U,ue){U._isLeaving=!0;const we=()=>z(U,ue);yt(U,b),U._enterCancelled?(yt(U,w),xl(U)):(xl(U),yt(U,w)),hl(()=>{U._isLeaving&&(Gt(U,b),yt(U,C),vl(_)||gl(U,n,N,we))}),Wt(_,[U,we])},onEnterCancelled(U){H(U,!1,void 0,!0),Wt(L,[U])},onAppearCancelled(U){H(U,!0,void 0,!0),Wt(ve,[U])},onLeaveCancelled(U){z(U),Wt(W,[U])}})}function nc(e){if(e==null)return null;if(pe(e))return[Ln(e.enter),Ln(e.leave)];{const t=Ln(e);return[t,t]}}function Ln(e){return na(e)}function yt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.add(s)),(e[Es]||(e[Es]=new Set)).add(t)}function Gt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const s=e[Es];s&&(s.delete(t),s.size||(e[Es]=void 0))}function hl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ic=0;function gl(e,t,s,n){const i=e._endId=++ic,r=()=>{i===e._endId&&n()};if(s!=null)return setTimeout(r,s);const{type:a,timeout:u,propCount:d}=lc(e,t);if(!a)return n();const v=a+"end";let m=0;const b=()=>{e.removeEventListener(v,w),r()},w=C=>{C.target===e&&++m>=d&&b()};setTimeout(()=>{m<d&&b()},u+1),e.addEventListener(v,w)}function lc(e,t){const s=window.getComputedStyle(e),n=O=>(s[O]||"").split(", "),i=n(`${Et}Delay`),r=n(`${Et}Duration`),a=bl(i,r),u=n(`${vs}Delay`),d=n(`${vs}Duration`),v=bl(u,d);let m=null,b=0,w=0;t===Et?a>0&&(m=Et,b=a,w=r.length):t===vs?v>0&&(m=vs,b=v,w=d.length):(b=Math.max(a,v),m=b>0?a>v?Et:vs:null,w=m?m===Et?r.length:d.length:0);const C=m===Et&&/\b(?:transform|all)(?:,|$)/.test(n(`${Et}Property`).toString());return{type:m,timeout:b,propCount:w,hasTransform:C}}function bl(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((s,n)=>yl(s)+yl(e[n])))}function yl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function xl(e){return(e?e.ownerDocument:document).body.offsetHeight}function oc(e,t,s){const n=e[Es];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const _l=Symbol("_vod"),rc=Symbol("_vsh"),ac=Symbol(""),uc=/(?:^|;)\s*display\s*:/;function cc(e,t,s){const n=e.style,i=_e(s);let r=!1;if(s&&!i){if(t)if(_e(t))for(const a of t.split(";")){const u=a.slice(0,a.indexOf(":")).trim();s[u]==null&&Qs(n,u,"")}else for(const a in t)s[a]==null&&Qs(n,a,"");for(const a in s)a==="display"&&(r=!0),Qs(n,a,s[a])}else if(i){if(t!==s){const a=n[ac];a&&(s+=";"+a),n.cssText=s,r=uc.test(s)}}else t&&e.removeAttribute("style");_l in e&&(e[_l]=r?n.display:"",e[rc]&&(n.display="none"))}const wl=/\s*!important$/;function Qs(e,t,s){if(K(s))s.forEach(n=>Qs(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=dc(e,t);wl.test(s)?e.setProperty(qt(n),s.replace(wl,""),"important"):e[n]=s}}const Cl=["Webkit","Moz","ms"],On={};function dc(e,t){const s=On[t];if(s)return s;let n=Lt(t);if(n!=="filter"&&n in e)return On[t]=n;n=Kl(n);for(let i=0;i<Cl.length;i++){const r=Cl[i]+n;if(r in e)return On[t]=r}return t}const Sl="http://www.w3.org/1999/xlink";function kl(e,t,s,n,i,r=ua(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(Sl,t.slice(6,t.length)):e.setAttributeNS(Sl,t,s):s==null||r&&!Zl(s)?e.removeAttribute(t):e.setAttribute(t,r?"":ht(s)?String(s):s)}function Al(e,t,s,n,i){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?er(s):s);return}const r=e.tagName;if(t==="value"&&r!=="PROGRESS"&&!r.includes("-")){const u=r==="OPTION"?e.getAttribute("value")||"":e.value,d=s==null?e.type==="checkbox"?"on":"":String(s);(u!==d||!("_value"in e))&&(e.value=d),s==null&&e.removeAttribute(t),e._value=s;return}let a=!1;if(s===""||s==null){const u=typeof e[t];u==="boolean"?s=Zl(s):s==null&&u==="string"?(s="",a=!0):u==="number"&&(s=0,a=!0)}try{e[t]=s}catch{}a&&e.removeAttribute(i||t)}function Dt(e,t,s,n){e.addEventListener(t,s,n)}function fc(e,t,s,n){e.removeEventListener(t,s,n)}const Pl=Symbol("_vei");function pc(e,t,s,n,i=null){const r=e[Pl]||(e[Pl]={}),a=r[t];if(n&&a)a.value=n;else{const[u,d]=mc(t);if(n){const v=r[t]=gc(n,i);Dt(e,u,v,d)}else a&&(fc(e,u,a,d),r[t]=void 0)}}const Ml=/(?:Once|Passive|Capture)$/;function mc(e){let t;if(Ml.test(e)){t={};let n;for(;n=e.match(Ml);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):qt(e.slice(2)),t]}let Hn=0;const vc=Promise.resolve(),hc=()=>Hn||(vc.then(()=>Hn=0),Hn=Date.now());function gc(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;at(bc(n,s.value),t,5,[n])};return s.value=e,s.attached=hc(),s}function bc(e,t){if(K(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const Il=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,yc=(e,t,s,n,i,r)=>{const a=i==="svg";t==="class"?oc(e,n,a):t==="style"?cc(e,s,n):un(t)?oi(t)||pc(e,t,s,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):xc(e,t,n,a))?(Al(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&kl(e,t,n,a,r,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!_e(n))?Al(e,Lt(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),kl(e,t,n,a))};function xc(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Il(t)&&Q(s));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 i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return Il(t)&&_e(s)?!1:t in e}const ds=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?s=>zs(t,s):t};function _c(e){e.target.composing=!0}function Tl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const St=Symbol("_assign");function El(e,t,s){return t&&(e=e.trim()),s&&(e=dn(e)),e}const he={created(e,{modifiers:{lazy:t,trim:s,number:n}},i){e[St]=ds(i);const r=n||i.props&&i.props.type==="number";Dt(e,t?"change":"input",a=>{a.target.composing||e[St](El(e.value,s,r))}),(s||r)&&Dt(e,"change",()=>{e.value=El(e.value,s,r)}),t||(Dt(e,"compositionstart",_c),Dt(e,"compositionend",Tl),Dt(e,"change",Tl))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:i,number:r}},a){if(e[St]=ds(a),e.composing)return;const u=(r||e.type==="number")&&!/^0\d/.test(e.value)?dn(e.value):e.value,d=t??"";u!==d&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||i&&e.value.trim()===d)||(e.value=d))}},jn={deep:!0,created(e,t,s){e[St]=ds(s),Dt(e,"change",()=>{const n=e._modelValue,i=Rs(e),r=e.checked,a=e[St];if(K(n)){const u=ui(n,i),d=u!==-1;if(r&&!d)a(n.concat(i));else if(!r&&d){const v=[...n];v.splice(u,1),a(v)}}else if(fs(n)){const u=new Set(n);r?u.add(i):u.delete(i),a(u)}else a(sr(e,r))})},mounted:Rl,beforeUpdate(e,t,s){e[St]=ds(s),Rl(e,t,s)}};function Rl(e,{value:t,oldValue:s},n){e._modelValue=t;let i;if(K(t))i=ui(t,n.props.value)>-1;else if(fs(t))i=t.has(n.props.value);else{if(t===s)return;i=$s(t,sr(e,!0))}e.checked!==i&&(e.checked=i)}const Oe={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const i=fs(t);Dt(e,"change",()=>{const r=Array.prototype.filter.call(e.options,a=>a.selected).map(a=>s?dn(Rs(a)):Rs(a));e[St](e.multiple?i?new Set(r):r:r[0]),e._assigning=!0,ls(()=>{e._assigning=!1})}),e[St]=ds(n)},mounted(e,{value:t}){Nl(e,t)},beforeUpdate(e,t,s){e[St]=ds(s)},updated(e,{value:t}){e._assigning||Nl(e,t)}};function Nl(e,t){const s=e.multiple,n=K(t);if(!(s&&!n&&!fs(t))){for(let i=0,r=e.options.length;i<r;i++){const a=e.options[i],u=Rs(a);if(s)if(n){const d=typeof u;d==="string"||d==="number"?a.selected=t.some(v=>String(v)===String(u)):a.selected=ui(t,u)>-1}else a.selected=t.has(u);else if($s(Rs(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Rs(e){return"_value"in e?e._value:e.value}function sr(e,t){const s=t?"_trueValue":"_falseValue";return s in e?e[s]:t}const wc=["ctrl","shift","alt","meta"],Cc={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)=>wc.some(s=>e[`${s}Key`]&&!t.includes(s))},Gs=(e,t)=>{const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=(i,...r)=>{for(let a=0;a<t.length;a++){const u=Cc[t[a]];if(u&&u(i,t))return}return e(i,...r)})},Sc=Pe({patchProp:yc},Qu);let $l;function kc(){return $l||($l=Tu(Sc))}const Ac=(...e)=>{const t=kc().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=Mc(n);if(!i)return;const r=t._component;!Q(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const a=s(i,!1,Pc(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),a},t};function Pc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mc(e){return _e(e)?document.querySelector(e):e}const Ic="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMxZjFmMWYiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNlYmRiYjIiIGZvbnQtZmFtaWx5PSJTcGFjZSBNb25vLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPkFNPC90ZXh0Pgo8L3N2Zz4K",Tc="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMxZjFmMWYiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNlYmRiYjIiIGZvbnQtZmFtaWx5PSJTcGFjZSBNb25vLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPkNEPC90ZXh0Pgo8L3N2Zz4K",Ec="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMxZjFmMWYiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNlYmRiYjIiIGZvbnQtZmFtaWx5PSJTcGFjZSBNb25vLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPkFFPC90ZXh0Pgo8L3N2Zz4K",Rc="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTIiIGZpbGw9IiMxZjFmMWYiIC8+CiAgPHRleHQgeD0iNTAlIiB5PSI1MCUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNlYmRiYjIiIGZvbnQtZmFtaWx5PSJTcGFjZSBNb25vLCBtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMjAiPkJNPC90ZXh0Pgo8L3N2Zz4K",Nc={amazon:Ic,cdiscount:Tc,aliexpress:Ec,backmarket:Rc},$c=e=>e?e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""):"",Dc=e=>{const t=$c(e);return Nc[t]||null},Fc={class:"w-full h-12 mb-2",viewBox:"0 0 120 40",preserveAspectRatio:"none"},Lc=["points"],Oc=["cx","cy"],Hc={class:"grid grid-cols-2 gap-3 text-[0.75rem]"},jc=Qt({__name:"PriceHistoryHover",props:{visible:{type:Boolean,default:!1},position:{type:Object,default:()=>({top:0,left:0})},history:{type:Array,default:()=>[]},currentPrice:{type:Number,default:0},minPrice:{type:Number,default:0},maxPrice:{type:Number,default:0},delta:{type:Number,default:0}},emits:["mouseenter","mouseleave"],setup(e,{emit:t}){const s=e,n=B(()=>{const w=Number(s.delta??0);return!Number.isFinite(w)||w===0?"—":`${w>0?"▲":"▼"} ${Math.abs(w).toFixed(1)}%`}),i=B(()=>{if(!s.history.length)return"0,30 30,20 60,15 90,25 120,20";const w=Math.max(...s.history),C=Math.min(...s.history),O=w-C||1;return s.history.map((g,N)=>{const M=N/(s.history.length-1||1)*120,D=40-(g-C)/O*40;return`${M.toFixed(1)},${D.toFixed(1)}`}).join(" ")}),r=B(()=>{if(!s.history.length)return[];const w=Math.max(...s.history),C=Math.min(...s.history),O=w-C||1;return s.history.map((g,N)=>{const M=N/(s.history.length-1||1)*120,D=40-(g-C)/O*40;return{cx:M.toFixed(1),cy:D.toFixed(1)}})}),a=t,u=B(()=>({position:"fixed",top:`${s.position.top}px`,left:`${s.position.left}px`,width:"280px",zIndex:50})),d=n,v=w=>Number.isFinite(w)?`${w.toFixed(2)}`:"n/a";function m(){a("mouseenter")}function b(){a("mouseleave")}return(w,C)=>e.visible?(R(),yn(Za,{key:0,to:"body"},[o("div",{class:"price-history-popup panel p-4 shadow-lg",style:Jt(u.value),onMouseenter:m,onMouseleave:b},[C[8]||(C[8]=o("div",{class:"flex items-center justify-between mb-2"},[o("div",{class:"section-title text-sm"},"Historique 30j")],-1)),(R(),$("svg",Fc,[o("polyline",{points:i.value,class:"sparkline",fill:"none"},null,8,Lc),(R(!0),$(ie,null,xe(r.value,(O,g)=>(R(),$("circle",{key:`history-point-${g}`,cx:O.cx,cy:O.cy,r:"1.2",stroke:"currentColor",fill:"currentColor"},null,8,Oc))),128))])),o("div",Hc,[o("div",null,[C[0]||(C[0]=Ye("Actuel",-1)),C[1]||(C[1]=o("br",null,null,-1)),o("strong",null,I(v(e.currentPrice)),1)]),o("div",null,[C[2]||(C[2]=Ye("Min",-1)),C[3]||(C[3]=o("br",null,null,-1)),o("strong",null,I(v(e.minPrice)),1)]),o("div",null,[C[4]||(C[4]=Ye("Max",-1)),C[5]||(C[5]=o("br",null,null,-1)),o("strong",null,I(v(e.maxPrice)),1)]),o("div",null,[C[6]||(C[6]=Ye("Delta",-1)),C[7]||(C[7]=o("br",null,null,-1)),o("strong",null,I(fo(d)),1)])])],36)])):Te("",!0)}}),Uc={class:"price-history-chart panel p-3"},Vc={class:"flex items-center justify-between mb-2"},Bc={class:"label text-xs"},Wc={class:"w-full h-20 mb-2",viewBox:"0 0 120 50",preserveAspectRatio:"none"},Gc=["points"],Kc=["cx","cy"],zc={class:"grid grid-cols-2 gap-3 text-xs"},Zc=Qt({__name:"PriceHistoryChart",props:{history:{type:Array,default:()=>[]},currentPrice:{type:Number,default:0},minPrice:{type:Number,default:0},maxPrice:{type:Number,default:0},deltaLabel:{type:String,default:"—"}},setup(e){const t=e,s=B(()=>{if(!t.history.length)return"0,40 30,30 60,35 90,25 120,28";const r=Math.max(...t.history),a=Math.min(...t.history),u=r-a||1;return t.history.map((d,v)=>{const m=v/(t.history.length-1||1)*120,b=50-(d-a)/u*50;return`${m.toFixed(1)},${b.toFixed(1)}`}).join(" ")}),n=B(()=>{if(!t.history.length)return[];const r=Math.max(...t.history),a=Math.min(...t.history),u=r-a||1;return t.history.map((d,v)=>{const m=v/(t.history.length-1||1)*120,b=50-(d-a)/u*50;return{cx:m.toFixed(1),cy:b.toFixed(1)}})}),i=r=>Number.isFinite(r)?`${r.toFixed(2)}`:"n/a";return(r,a)=>(R(),$("div",Uc,[o("div",Vc,[a[0]||(a[0]=o("div",{class:"section-title text-sm"},"Historique",-1)),o("div",Bc,I(e.deltaLabel),1)]),(R(),$("svg",Wc,[o("polyline",{points:s.value,class:"sparkline",fill:"none"},null,8,Gc),(R(!0),$(ie,null,xe(n.value,(u,d)=>(R(),$("circle",{key:`history-detail-point-${d}`,cx:u.cx,cy:u.cy,r:"1.3",stroke:"currentColor",fill:"currentColor"},null,8,Kc))),128))])),o("div",zc,[o("div",null,[a[1]||(a[1]=Ye("Actuel",-1)),a[2]||(a[2]=o("br",null,null,-1)),o("strong",null,I(i(e.currentPrice)),1)]),o("div",null,[a[3]||(a[3]=Ye("Min",-1)),a[4]||(a[4]=o("br",null,null,-1)),o("strong",null,I(i(e.minPrice)),1)]),o("div",null,[a[5]||(a[5]=Ye("Max",-1)),a[6]||(a[6]=o("br",null,null,-1)),o("strong",null,I(i(e.maxPrice)),1)]),o("div",null,[a[7]||(a[7]=Ye("Delta",-1)),a[8]||(a[8]=o("br",null,null,-1)),o("strong",null,I(e.deltaLabel),1)])])]))}}),Yc={class:"mini-line-chart-wrapper"},Jc=["width","height","viewBox"],qc=["x1","x2","y1","y2"],Qc=["x1","x2","y1","y2"],Xc=["x1","x2","y1","y2"],ed=["x","y"],td=["x1","x2","y1","y2"],sd=["x","y"],nd=["points"],id=["cx","cy"],ld={key:1,class:"history-placeholder","aria-hidden":"true"},od=Qt({__name:"MiniLineChart",props:{points:{type:Array,default:()=>[]},width:{type:Number,default:280},height:{type:Number,default:140},yTicks:{type:Number,default:4},xTicks:{type:Number,default:4},formatY:{type:Function,default:e=>new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR",maximumFractionDigits:0}).format(e)},formatX:{type:Function,default:e=>String(e)}},setup(e){const t=e,s={left:44,right:8,top:8,bottom:22},n=B(()=>t.points.map(M=>{const D=Number(M.v);return{t:M.t,v:Number.isFinite(D)?D:NaN}}).filter(M=>Number.isFinite(M.v))),i=B(()=>n.value.every(M=>{if(typeof M.t=="number")return!0;const D=Date.parse(String(M.t));return!Number.isNaN(D)})),r=B(()=>n.value.map(M=>{if(typeof M.t=="number")return M.t;const D=Date.parse(String(M.t));return Number.isNaN(D)?null:D})),a=B(()=>{if(!n.value.length)return{min:0,max:0};const M=n.value.map(J=>J.v),D=Math.min(...M),L=Math.max(...M),W=Math.max(L-D,1)*.05;return{min:D-W,max:L+W}}),u=B(()=>({width:t.width-s.left-s.right,height:t.height-s.top-s.bottom})),d=B(()=>{const M=n.value;if(M.length===0)return[];const{min:D,max:L}=a.value,_=L-D||1,{width:W,height:J}=u.value,le=i.value&&r.value.some(H=>H!==null)?r.value.reduce((H,z)=>(z===null||(H.min=H.min===null?z:Math.min(H.min,z),H.max=H.max===null?z:Math.max(H.max,z)),H),{min:null,max:null}):{min:null,max:null},ve=r.value.map((H,z)=>{if(i.value&&H!==null&&le.min!==null&&le.max!==null){const ee=Math.max(le.max-le.min,1);return(H-le.min)/ee}return M.length>1?z/(M.length-1):0});return M.map((H,z)=>{const ee=s.left+W*ve[z],U=1-(H.v-D)/_,ue=s.top+J*U;return{x:ee,y:ue,value:H.v,raw:H.t}})}),v=B(()=>d.value.length>0),m=B(()=>{if(!d.value.length)return[];if(d.value.length===1){const M=d.value[0],D=s.left+u.value.width;return[{x:s.left,y:M.y},{x:D,y:M.y}]}return d.value}),b=B(()=>m.value.map(M=>`${M.x},${M.y}`).join(" ")),w=B(()=>{const M=Math.max(2,t.yTicks),{min:D,max:L}=a.value,_=(L-D)/(M-1||1);return Array.from({length:M},(W,J)=>({value:D+_*J,position:s.top+u.value.height*(1-(D+_*J-D)/(L-D||1))}))}),C=B(()=>{const M=d.value,D=Math.max(2,Math.min(M.length,t.xTicks));return M.length?Array.from({length:D},(L,_)=>{const W=Math.round((M.length-1)*(_/(D-1||1)));return M[W]}):[]}),O=B(()=>C.value.map(M=>({label:t.formatX(M.raw),x:M.x}))),g=B(()=>w.value.map(M=>({label:t.formatY(M.value),y:M.position}))),N=B(()=>"");return(M,D)=>(R(),$("div",Yc,[v.value?(R(),$("svg",{key:0,width:e.width,height:e.height,viewBox:`0 0 ${e.width} ${e.height}`,role:"presentation","aria-hidden":"true"},[o("line",{x1:s.left,x2:s.left,y1:s.top,y2:s.top+u.value.height,stroke:"currentColor","stroke-width":"1",opacity:"0.35"},null,8,qc),o("line",{x1:s.left,x2:s.left+u.value.width,y1:s.top+u.value.height,y2:s.top+u.value.height,stroke:"currentColor","stroke-width":"1",opacity:"0.35"},null,8,Qc),(R(!0),$(ie,null,xe(g.value,L=>(R(),$("g",{key:L.label},[o("line",{x1:s.left-6,x2:s.left,y1:L.y,y2:L.y,stroke:"currentColor","stroke-width":"1",opacity:"0.35"},null,8,Xc),o("text",{x:s.left-10,y:L.y+4,class:"text-[10px]","text-anchor":"end",opacity:.65},I(L.label),9,ed)]))),128)),(R(!0),$(ie,null,xe(O.value,L=>(R(),$("g",{key:L.label},[o("line",{x1:L.x,x2:L.x,y1:s.top+u.value.height,y2:s.top+u.value.height+6,stroke:"currentColor","stroke-width":"1",opacity:"0.35"},null,8,td),o("text",{x:L.x,y:e.height-4,class:"text-[10px]","text-anchor":"middle",opacity:.65},I(L.label),9,sd)]))),128)),o("polyline",{points:b.value,stroke:"currentColor",fill:"none","stroke-width":"2"},null,8,nd),(R(!0),$(ie,null,xe(d.value,(L,_)=>(R(),$("circle",{key:`${L.x}-${L.y}-${_}`,cx:L.x,cy:L.y,r:"2",stroke:"currentColor","stroke-width":"1",fill:"currentColor",class:Se({"mini-line-chart__point--last":_===d.value.length-1})},null,10,id))),128))],8,Jc)):(R(),$("div",ld,I(N.value),1))]))}}),rd={class:"price-block__current"},ad={key:0,class:"price-block__msrp"},ud={key:1,class:"price-block__discount"},cd={key:2,class:"price-block__ref"},dd=Qt({__name:"PriceBlock",props:{price:{},currency:{},msrp:{},discountAmount:{},discountPercent:{},stockStatus:{},reference:{},url:{},compact:{type:Boolean}},setup(e){const t=e,s=(d,v)=>d==null||!Number.isFinite(d)?"—":new Intl.NumberFormat("fr-FR",{style:"currency",currency:v||"EUR",minimumFractionDigits:0,maximumFractionDigits:0}).format(d),n=B(()=>s(t.price,t.currency)),i=B(()=>t.msrp?s(t.msrp,t.currency):null),r=B(()=>{if(t.discountAmount===null||t.discountAmount===void 0||t.discountPercent===null||t.discountPercent===void 0)return null;const d=s(t.discountAmount,t.currency);return`-${Math.round(t.discountPercent)}% (${d})`}),a=B(()=>({in_stock:"En stock",out_of_stock:"Rupture",unknown:"Inconnu",error:"Erreur"})[t.stockStatus]||t.stockStatus),u=B(()=>t.stockStatus==="in_stock"?"text-[var(--success)]":t.stockStatus==="out_of_stock"?"text-[var(--danger)]":"text-[var(--muted)]");return(d,v)=>(R(),$("div",{class:Se(["price-block",{"price-block--compact":e.compact}])},[o("div",rd,I(n.value),1),i.value?(R(),$("div",ad,I(i.value),1)):Te("",!0),r.value?(R(),$("div",ud,I(r.value),1)):Te("",!0),o("div",{class:Se(["price-block__stock",u.value])},I(a.value),3),e.reference&&!e.compact?(R(),$("div",cd," Ref: "+I(e.reference),1)):Te("",!0)],2))}}),Si=(e,t)=>{const s=e.__vccOpts||e;for(const[n,i]of t)s[n]=i;return s},fd=Si(dd,[["__scopeId","data-v-f8f63757"]]),pd={class:"card-actions"},md=Qt({__name:"CardActions",props:{productId:{},compareIds:{},showSecondary:{type:Boolean}},emits:["refresh","compare","edit","delete","open"],setup(e,{emit:t}){const s=t;function n(d){d.stopPropagation(),s("refresh")}function i(d){d.stopPropagation(),s("compare")}function r(d){d.stopPropagation(),s("edit")}function a(d){d.stopPropagation(),s("delete")}function u(d){d.stopPropagation(),s("open")}return(d,v)=>(R(),$("div",pd,[o("button",{class:"card-actions__btn card-actions__btn--primary",title:"Rafraichir","aria-label":"Rafraichir le produit",onClick:n},[...v[0]||(v[0]=[o("i",{class:"fa-solid fa-rotate"},null,-1)])]),o("button",{class:"card-actions__btn",title:"Modifier","aria-label":"Modifier le produit",onClick:r},[...v[1]||(v[1]=[o("i",{class:"fa-solid fa-pen"},null,-1)])]),o("button",{class:"card-actions__btn",title:"Supprimer","aria-label":"Supprimer le produit",onClick:a},[...v[2]||(v[2]=[o("i",{class:"fa-solid fa-trash"},null,-1)])]),o("button",{class:"card-actions__btn",title:"Ouvrir","aria-label":"Ouvrir dans un nouvel onglet",onClick:u},[...v[3]||(v[3]=[o("i",{class:"fa-solid fa-up-right-from-square"},null,-1)])]),o("button",{class:Se(["card-actions__btn",{"card-actions__btn--active":e.compareIds.includes(e.productId)}]),title:"Comparer","aria-label":"Comparer le produit",onClick:i},[o("i",{class:Se(["fa-solid",e.compareIds.includes(e.productId)?"fa-square-check":"fa-code-compare"])},null,2)],2)]))}}),vd=Si(md,[["__scopeId","data-v-d4ee6168"]]),hd={class:"product-card__header"},gd={class:"product-card__identity"},bd={class:"product-card__store-icon"},yd=["src"],xd={key:1,class:"product-card__store-initials"},_d={class:"product-card__identity-text"},wd=["title"],Cd={class:"product-card__store-name"},Sd={class:"product-card__thumbnail"},kd={key:0},Ad=["srcset"],Pd=["srcset"],Md=["src"],Id=["src"],Td={class:"product-card__price-zone"},Ed={class:"product-card__history-zone"},Rd={key:1,class:"product-card__no-history"},Nd={class:"product-card__history-stats"},$d={class:"product-card__stat"},Dd={class:"product-card__stat-value"},Fd={class:"product-card__stat"},Ld={class:"product-card__stat-value"},Od={class:"product-card__stat"},Hd={class:"product-card__trend-delta"},jd={class:"product-card__update"},Ud=Qt({__name:"ProductCard",props:{product:{},historyData:{},compareIds:{},storeLogo:{},storeLabel:{},storeInitials:{},chartPeriodLabel:{},imageMode:{},placeholderImage:{}},emits:["click","refresh","compare","edit","delete","open","hover","leave"],setup(e,{emit:t}){const s=e,n=t,i=(g,N)=>g==null||!Number.isFinite(g)?"—":new Intl.NumberFormat("fr-FR",{style:"currency",currency:N||"EUR",minimumFractionDigits:0,maximumFractionDigits:0}).format(g),r=g=>{let N=null;if(typeof g=="number")N=g;else if(typeof g=="string"){const L=Date.parse(g);Number.isNaN(L)||(N=L)}if(N===null)return typeof g=="string"?g:"";const D=Math.max(0,Math.round((Date.now()-N)/864e5));return D===0?"J":`J-${D}`},a=g=>{if(g===null||!Number.isFinite(g))return"a l instant";const N=Date.now()-g;if(N<6e4)return"a l instant";const M=Math.floor(N/6e4);if(M<60)return`il y a ${M} min`;const D=Math.floor(N/36e5);return D<24?`il y a ${D} h`:`il y a ${Math.floor(N/864e5)} j`},u=B(()=>({"product-card":!0,"product-card--accent":s.product.delta<0})),d=B(()=>s.product.imageJpg||s.product.imageWebp||s.placeholderImage),v=B(()=>!!(s.product.imageWebp||s.product.imageJpg)),m=B(()=>{var N;const g=(N=s.historyData)==null?void 0:N.lastTimestamp;if(g)return a(g);if(s.product.updatedAt){const M=Date.parse(s.product.updatedAt);return Number.isNaN(M)?s.product.updatedAt:a(M)}return"—"});function b(){n("click")}function w(g){(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),n("click"))}function C(g){n("hover",g)}function O(){n("leave")}return(g,N)=>{var M,D,L,_,W;return R(),$("article",{class:Se(u.value),role:"button",tabindex:"0",onClick:b,onKeydown:w,onMouseenter:C,onMouseleave:O,onFocusin:C,onFocusout:O},[o("div",hd,[o("div",gd,[o("div",bd,[e.storeLogo?(R(),$("img",{key:0,src:e.storeLogo,alt:""},null,8,yd)):(R(),$("span",xd,I(e.storeInitials),1))]),o("div",_d,[o("h3",{class:"product-card__title",title:e.product.title},I(e.product.title),9,wd),o("div",Cd,I(e.storeLabel),1)])])]),o("div",Sd,[v.value?(R(),$("picture",kd,[e.product.imageWebp?(R(),$("source",{key:0,srcset:e.product.imageWebp,type:"image/webp"},null,8,Ad)):Te("",!0),e.product.imageJpg?(R(),$("source",{key:1,srcset:e.product.imageJpg,type:"image/jpeg"},null,8,Pd)):Te("",!0),o("img",{src:d.value,class:Se(["product-card__image",`product-card__image--${e.imageMode}`]),alt:"Image produit",loading:"lazy"},null,10,Md)])):(R(),$("img",{key:1,src:e.placeholderImage,class:"product-card__image product-card__image--contain",alt:"Image indisponible",loading:"lazy"},null,8,Id))]),o("div",Td,[Ae(fd,{price:e.product.price,currency:e.product.currency,msrp:e.product.msrp,"discount-amount":e.product.discountAmount,"discount-percent":e.product.discountPercent,"stock-status":e.product.stockStatus,reference:e.product.reference,compact:""},null,8,["price","currency","msrp","discount-amount","discount-percent","stock-status","reference"])]),o("div",Ed,[o("div",{class:"product-card__chart-container",style:Jt({color:((M=e.historyData)==null?void 0:M.trendColor)||"var(--muted)"})},[e.historyData&&e.historyData.points.length>0?(R(),yn(od,{key:0,points:e.historyData.points,height:120,formatY:J=>i(J,e.product.currency),formatX:r,yTicks:3,xTicks:4},null,8,["points","formatY"])):(R(),$("div",Rd," Pas d'historique "))],4),o("div",Nd,[o("div",$d,[N[5]||(N[5]=o("span",{class:"product-card__stat-label"},"Min",-1)),o("span",Dd,I(e.historyData&&e.historyData.min!==null?i(e.historyData.min,e.product.currency):"—"),1)]),o("div",Fd,[N[6]||(N[6]=o("span",{class:"product-card__stat-label"},"Max",-1)),o("span",Ld,I(e.historyData&&e.historyData.max!==null?i(e.historyData.max,e.product.currency):"—"),1)]),o("div",Od,[N[7]||(N[7]=o("span",{class:"product-card__stat-label"},"Tendance",-1)),o("span",{class:"product-card__stat-value product-card__trend",style:Jt({color:((D=e.historyData)==null?void 0:D.trendColor)||"var(--muted)"})},[Ye(I(((L=e.historyData)==null?void 0:L.trendIcon)||"→")+" "+I(((_=e.historyData)==null?void 0:_.trendLabel)||"—")+" ",1),o("span",Hd,I(((W=e.historyData)==null?void 0:W.trendDeltaLabel)||"—"),1)],4)])]),o("div",jd," Derniere maj: "+I(m.value)+" ("+I(e.storeLabel)+") ",1)]),Ae(vd,{"product-id":e.product.id,"compare-ids":e.compareIds,onRefresh:N[0]||(N[0]=J=>n("refresh")),onCompare:N[1]||(N[1]=J=>n("compare")),onEdit:N[2]||(N[2]=J=>n("edit")),onDelete:N[3]||(N[3]=J=>n("delete")),onOpen:N[4]||(N[4]=J=>n("open"))},null,8,["product-id","compare-ids"])],34)}}}),Vd=Si(Ud,[["__scopeId","data-v-3a31b9af"]]),Bd=({rect:e,popupWidth:t,popupHeight:s,viewportWidth:n,viewportHeight:i,margin:r=8})=>{const a=i-e.bottom,u=e.top,d=r;let v=e.bottom+d;a<s+d&&u>=s+d&&(v=e.top-s-d),a<s+d&&u<s+d&&(v=Math.max(r,i-s-r));const m=Math.min(Math.max(r,e.left),Math.max(r,n-t-r));return{top:v,left:m}},Wd={class:"app-header"},Gd={class:"flex w-full items-center justify-between gap-4 px-6 py-4"},Kd={class:"scrape-log-time"},zd={class:"scrape-log-icon"},Zd={class:"scrape-log-text"},Yd={class:"flex items-center gap-3 header-meta"},Jd={class:"label"},qd={class:"relative flex-1 max-w-[320px]"},Qd={class:"header-actions"},Xd={class:"view-toggle-group",role:"group","aria-label":"Modes de vue"},ef={class:"pill"},tf={class:"flex w-full gap-6 px-6 py-6"},sf={class:"sidebar"},nf={class:"panel p-4 vintage-shadow"},lf={class:"flex items-center justify-between mb-2"},of={class:"label"},rf={class:"flex flex-wrap gap-2 mb-3"},af=["title","onClick"],uf={class:"space-y-3"},cf=["value"],df={class:"grid grid-cols-2 gap-2"},ff={class:"panel mt-4 p-4 vintage-shadow"},pf={class:"flex items-center justify-between"},mf={class:"label"},vf={class:"flex-1"},hf={key:0,class:"panel p-3 mb-4"},gf={class:"label"},bf={key:1,class:"compare-grid"},yf={class:"flex items-center justify-between"},xf={class:"section-title text-base"},_f={class:"label"},wf={class:"pill"},Cf={class:"mt-3 text-xl"},Sf={class:"label"},kf={key:2,class:"product-grid"},Af={key:3,class:"panel p-4"},Pf={class:"overflow-auto"},Mf={class:"w-full text-sm"},If={class:"py-3"},Tf={class:"py-3"},Ef={class:"py-3"},Rf={class:"py-3"},Nf={class:"py-3"},$f={class:"py-3"},Df={class:"flex items-center gap-2"},Ff=["onClick"],Lf=["onClick"],Of=["onClick"],Hf=["onClick"],jf=["onClick"],Uf={class:"absolute right-0 top-0 h-full w-full max-w-md panel p-6 overflow-auto"},Vf={class:"space-y-6"},Bf={class:"space-y-3"},Wf=["value"],Gf=["value"],Kf=["value"],zf={class:"flex items-center gap-2"},Zf={class:"label min-w-[44px] text-right"},Yf={class:"label flex items-center justify-between"},Jf={class:"text-xs label"},qf={class:"label flex items-center justify-between"},Qf={class:"text-xs label"},Xf={class:"label flex items-center justify-between"},ep={class:"text-xs label"},tp={class:"label flex items-center justify-between"},sp={class:"text-xs label"},np=["value"],ip=["value"],lp={class:"grid grid-cols-2 gap-2"},op={class:"space-y-3"},rp={class:"space-y-3"},ap={class:"space-y-2"},up=["onUpdate:modelValue"],cp=["onUpdate:modelValue"],dp={class:"flex justify-end"},fp=["onClick"],pp={class:"mt-3"},mp={class:"flex gap-2"},vp={class:"space-y-2"},hp={class:"flex items-center justify-between"},gp={class:"flex items-center justify-between"},bp={class:"flex items-center justify-between"},yp={class:"w-full max-w-2xl panel p-6 overflow-auto"},xp={class:"space-y-3"},_p=["disabled"],wp={key:0,class:"label"},Cp={key:1,class:"panel p-3 space-y-3"},Sp={class:"label"},kp={class:"label"},Ap={class:"label"},Pp={class:"flex items-start gap-3"},Mp=["srcset"],Ip=["srcset"],Tp=["src"],Ep={class:"flex-1"},Rp={class:"label"},Np={key:0,class:"mt-3 grid grid-cols-4 gap-2"},$p=["onClick"],Dp=["srcset"],Fp=["src"],Lp={class:"label"},Op={class:"label"},Hp={class:"label"},jp={class:"label"},Up={class:"label"},Vp={class:"label"},Bp={key:0,class:"label"},Wp={key:1,class:"space-y-1"},Gp=["aria-label"],Kp={class:"detail-modal-header"},zp={class:"section-title text-lg"},Zp=["title"],Yp={class:"label"},Jp={class:"detail-content-area flex-1 overflow-hidden"},qp={class:"detail-columns grid lg:grid-cols-[1.1fr,0.9fr] gap-6 h-full"},Qp={class:"space-y-4 detail-left overflow-hidden"},Xp={class:"detail-card detail-summary-card space-y-4"},em={class:"detail-summary-image bg-[var(--surface-2)] rounded-xl border border-white/10 overflow-hidden"},tm=["srcset"],sm=["srcset"],nm=["src"],im=["title"],lm={class:"label"},om={class:"detail-card detail-tabs-card space-y-3"},rm={class:"detail-tabs",role:"tablist"},am=["disabled","aria-selected"],um=["disabled","aria-selected"],cm={class:"detail-tab-panel max-h-[20rem] overflow-auto"},dm={key:0},fm=["title"],pm={key:1,class:"label detail-empty"},mm={key:1},vm={key:0,class:"detail-specs space-y-1"},hm={class:"font-bold"},gm={key:1,class:"label detail-empty"},bm={class:"space-y-4 detail-right overflow-hidden"},ym={class:"detail-card price-card space-y-2"},xm={class:"detail-price-row"},_m={class:"detail-price-value"},wm={class:"label detail-price-updated"},Cm={class:"label"},Sm={class:"label"},km={class:"detail-card source-card space-y-2"},Am={class:"flex flex-wrap items-center gap-3"},Pm=["href"],Mm={class:"label truncate"},Im={class:"label"},Tm={class:"detail-card history-card space-y-3"},Em={class:"detail-history-periods flex gap-2 flex-wrap"},Rm=["onClick"],Nm={class:"detail-history-summary grid grid-cols-2 gap-2 text-xs"},$m={class:"section-title text-sm"},Dm={class:"section-title text-sm"},Fm={class:"section-title text-sm"},Lm={class:"section-title text-sm"},Om={class:"detail-card edit-card space-y-3"},Hm={class:"space-y-2"},jm={class:"fixed bottom-4 left-4 panel p-3 vintage-shadow flex items-center gap-3 log-status-panel"},Um={class:"label"},Vm={class:"label"},Bm={class:"label"},Wm={class:"absolute bottom-0 left-0 w-full max-w-2xl panel p-6 logs-panel"},Gm={class:"logs-content"},Km={class:"label"},zm={key:0,class:"label"},Zm={class:"logs-toolbar flex items-center gap-3 mt-4"},Ks=1,Dl=3,Fl=1,Ll=6,Un=160,Vn=12,Ol=2500,Bn=-.5,Wn=.5,Hl="pw_store_icon_size",Ym=40,Jm="0.1.0",jl="30",Ul="description",Gn="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><rect width='240' height='240' fill='%233c3836'/><text x='50%25' y='50%25' dominant-baseline='middle' text-anchor='middle' fill='%23a89984' font-size='14'>No image</text></svg>",qm=864e5,Qm=Qt({__name:"App",setup(e){const t=te("gruvbox-dark"),s=te("dense"),n=te("cards"),i=te("auto"),r=te(!1),a=te(!1),u=te(!1),d=te(!1),v=te("frontend"),m=te(""),b=[{id:"compact",label:"Compact",value:.85},{id:"standard",label:"Standard",value:1},{id:"etendu",label:"Étendu",value:1.2}],w=[{value:30,label:"30 jours"},{value:90,label:"90 jours"},{value:180,label:"180 jours"}],C=[{value:"contain",label:"Contain (par défaut)"},{value:"cover",label:"Cover"}],O={info:"▶",success:"✔",warn:"⚠",error:"✖"},g=te({apiBase:"/api",apiToken:"",refreshMinutes:60,pageSize:24,preferWebp:!0,iconSize:"md",showDebug:!1,enableAnimations:!0,fontTitle:"space-mono",fontBody:"jetbrains",fontMono:"jetbrains",fontSize:16,showHistoryHover:!0,cardRatio:Ks,cardColumns:Dl,cardImageHeight:Un,chartPeriod:w[0].value,imageMode:"contain",logDuration:Ol,trendThresholdDown:Bn,trendThresholdUp:Wn}),N=te(Ym),M=B(()=>`${N.value}px`),D=te(null),L=te({visible:!1,messages:[],hideTimer:null,animating:!1}),_=te({store:"all",stock:"all",priceMin:null,priceMax:null,sort:"updated",sortOrder:"desc"}),W=te({loading:!1,error:""}),J=te({db:!1,redis:!1}),le=te("n/a"),ve=[{id:"amazon",name:"Amazon",domain:"amazon.fr"},{id:"cdiscount",name:"Cdiscount",domain:"cdiscount.com"},{id:"backmarket",name:"Backmarket",domain:"backmarket.fr"}],H=[{id:"7",label:"7j",points:10,days:7},{id:"30",label:"30j",points:24,days:30},{id:"90",label:"90j",points:40,days:90},{id:"max",label:"Max",points:60,days:365}],z=te(jl),ee=te(Ul),U=te(null),ue=te(null);let we=!1;const be=te([...ve]),Ce=B(()=>Object.fromEntries(be.value.map(c=>[c.id,c.name]))),ne=te([]),ce=te({}),Me=te([]),Ie=te(null),We=te(""),Fe=te(""),Je=te({url:"",usePlaywright:!1}),Y=te({loading:!1,error:"",snapshot:null}),gt=te([]),nt=te([]),ut=te([]),Ht=te([]),ct=[{id:"jetbrains",label:"JetBrains Mono",stack:'"JetBrains Mono", "Fira Code", "IBM Plex Mono", "SFMono-Regular", Menlo, monospace'},{id:"space-mono",label:"Space Mono",stack:'"Space Mono", "JetBrains Mono", "Fira Code", monospace'},{id:"ibm-plex",label:"IBM Plex Mono",stack:'"IBM Plex Mono", "JetBrains Mono", monospace'}],jt=B(()=>`theme-${t.value}`),ki=B(()=>`density-${s.value}`),p=B(()=>`layout-${i.value}`),h=B(()=>{const c=l=>{var f;return(f=ct.find(T=>T.id===l))==null?void 0:f.stack};return{"--font-title":c(g.value.fontTitle)||ct[0].stack,"--font-body":c(g.value.fontBody)||ct[0].stack,"--font-mono":c(g.value.fontMono)||ct[0].stack,"--font-size":`${g.value.fontSize||16}px`}}),x={in_stock:"En stock",out_of_stock:"Rupture",unknown:"Inconnu",error:"Erreur scrape",in_stocked:"En stock"},S=te({visible:!1,position:{top:0,left:0},history:[],productId:null,currentPrice:0,minPrice:0,maxPrice:0,delta:0});te(null);const k=te(null),A=te(!1),F=B(()=>ne.value.filter(c=>!(_.value.store!=="all"&&c.storeId!==_.value.store||_.value.stock!=="all"&&c.stockStatus!==_.value.stock||_.value.priceMin&&(c.price===null||c.price===void 0||c.price<_.value.priceMin)||_.value.priceMax&&(c.price===null||c.price===void 0||c.price>_.value.priceMax)||m.value&&!c.title.toLowerCase().includes(m.value.toLowerCase()))).sort((c,l)=>{const f=_.value.sortOrder==="asc"?1:-1;return _.value.sort==="price"?f*((c.price??Number.MAX_SAFE_INTEGER)-(l.price??Number.MAX_SAFE_INTEGER)):_.value.sort==="delta"?f*(c.delta-l.delta):_.value.sort==="stock"?f*c.stockStatus.localeCompare(l.stockStatus):f*c.updatedAt.localeCompare(l.updatedAt)})),y=B(()=>ne.value.find(c=>c.id===Ie.value)),E=B(()=>g.value.showHistoryHover&&S.value.visible),P=B(()=>{var c,l;return!!((l=(c=y.value)==null?void 0:c.description)!=null&&l.trim())}),G=B(()=>{var l;const c=(l=y.value)==null?void 0:l.specs;return c?Object.keys(c).length>0:!1}),j=B(()=>{var l;const c=(l=y.value)==null?void 0:l.specs;return c?Object.entries(c):[]}),V=B(()=>{var dt,Ne;const c=H.find(Tt=>Tt.id===z.value)??H[1],f=kn(((dt=y.value)==null?void 0:dt.history)??[],c.points,c.days??w[1].value).map(Tt=>Tt.price),T=f.length?f[f.length-1]:Number(((Ne=y.value)==null?void 0:Ne.price)??NaN),X=f.length?Math.min(...f):T,fe=f.length?Math.max(...f):T,ke=f.length?f[0]:T,Xe=Number.isFinite(ke)&&ke>0?(T-ke)/ke*100:0;return{history:f,minPrice:X,maxPrice:fe,currentPrice:Number.isFinite(T)?T:0,delta:Xe}}),Z=B(()=>or(V.value.delta)),se=B(()=>({current:V.value.currentPrice,min:V.value.minPrice,max:V.value.maxPrice,delta:V.value.delta})),de=B(()=>ne.value.filter(c=>Me.value.includes(c.id))),oe=B(()=>ne.value.length),Ee=B(()=>{const c=[],l=_.value.store;l&&l!=="all"&&c.push({key:"store",label:`Store: ${ts(l)}`,tooltip:"Retirer le filtre store"});const f=_.value.stock;if(f&&f!=="all"){const T={in_stock:"En stock",out_of_stock:"Rupture",unknown:"Inconnu"};c.push({key:"stock",label:`Stock: ${T[f]??f}`,tooltip:"Retirer le filtre stock"})}return _.value.priceMin&&c.push({key:"priceMin",label:`Min: ${_.value.priceMin}`,tooltip:"Retirer le minimum"}),_.value.priceMax&&c.push({key:"priceMax",label:`Max: ${_.value.priceMax}`,tooltip:"Retirer le maximum"}),m.value.trim()&&c.push({key:"search",label:`Recherche: ${m.value.trim()}`,tooltip:"Retirer la recherche"}),c}),Re=B(()=>{const c=Number(g.value.cardRatio??Ks);if(!Number.isFinite(c))return`Standard (${Ks.toFixed(2)})`;const l=b.find(T=>Math.abs(T.value-c)<.03);return`${l?l.label:"Personnalisé"}${c.toFixed(2)}`}),qe=B(()=>`${g.value.cardColumns} colonnes`),Qe=B(()=>`${Math.round(g.value.cardImageHeight??Un)}px`),Ut=B(()=>{const c=Number(g.value.chartPeriod??w[0].value),l=w.find(f=>f.value===c);return l?l.label:`${c} jours`}),Ls=B(()=>{const c=new Map;return ne.value.forEach(l=>{c.set(l.id,Cr(l))}),c}),Le=B(()=>!Y.value.snapshot||!Y.value.snapshot.images?0:Y.value.snapshot.images.length),ze=B(()=>!Y.value.snapshot||!Array.isArray(Y.value.snapshot.images)?[]:Y.value.snapshot.images.filter(Boolean)),Xt=B(()=>ze.value[0]||Gn),ps=B(()=>ze.value.slice(0,4)),nr=B(()=>new Set(gt.value));function ir(c){if(gt.value.includes(c)){gt.value=gt.value.filter(f=>f!==c);return}gt.value=[...gt.value,c]}const lr=B(()=>!Y.value.snapshot||!Y.value.snapshot.specs?0:Object.keys(Y.value.snapshot.specs).length),Ai=B(()=>!Y.value.snapshot||!Y.value.snapshot.specs?[]:Object.entries(Y.value.snapshot.specs).slice(0,10));if(typeof window<"u"){const c=Number(window.localStorage.getItem(Hl));Number.isFinite(c)&&(N.value=Math.max(16,Math.min(40,c)))}const Pi=B(()=>W.value.loading?"API...":W.value.error?"API ERR":"API OK"),_n=B(()=>v.value==="backend"?ut.value.map((c,l)=>({id:`backend-${l}`,time:c.time,level:c.level,message:c.message,source:"backend"})):v.value==="uvicorn"?Ht.value.map((c,l)=>({id:`uvicorn-${l}`,time:"",level:"INFO",message:c.line,source:"uvicorn"})):v.value==="errors"?nt.value.filter(c=>c.level==="ERROR"):nt.value);function es(c,l="EUR"){return c==null?"n/a":`${c} ${l??"EUR"}`}function Os(c,l="EUR"){return c==null?"n/a":new Intl.NumberFormat("fr-FR",{style:"currency",currency:l??"EUR",minimumFractionDigits:2}).format(c)}function or(c){if(c==null||Number.isNaN(c))return"—";const l=Number(c);if(l===0)return"—";const f=l>0?"▲":"▼",T=Math.abs(l).toFixed(1).replace(/\.0$/,"");return`${f} ${T}%`}function rr(c){return c?x[c]||c.replaceAll("_"," ").replace(/\b\w/g,l=>l.toUpperCase()):x.unknown}function ar(c,l){return c==null||l===null||l===void 0?"n/a":`${c.toFixed(2)} (-${l.toFixed(1)}%)`}function ts(c){return Ce.value[c]||c||"Inconnu"}function wn(){a.value=!a.value}function Cn(){d.value=!d.value,d.value&&Gi()}function ur(){Je.value={url:"",usePlaywright:!1},Y.value={loading:!1,error:"",snapshot:null},u.value=!0}function Mi(){u.value=!1}function Sn(){typeof window<"u"&&window.location.reload()}function cr(){typeof window<"u"&&(localStorage.removeItem("pw_webui_settings"),localStorage.removeItem("pw_webui_product_meta"),localStorage.removeItem("pw_webui_stores"),window.location.reload())}function dr(){ji(),Ui(),Vi(),Sn()}function fr(){const c=["gruvbox-dark","gruvbox-light","monokai-dark","monokai-light"],l=c.indexOf(t.value);t.value=c[(l+1)%c.length]}function Ii(c){Ie.value=c}function Ti(c){Ii(c)}function Ei(c){if(Me.value.includes(c)){Me.value=Me.value.filter(l=>l!==c);return}Me.value.length>=4||Me.value.push(c)}function pr(c){if(c==="store"){_.value.store="all";return}if(c==="stock"){_.value.stock="all";return}if(c==="priceMin"){_.value.priceMin=null;return}if(c==="priceMax"){_.value.priceMax=null;return}c==="search"&&(m.value="")}function mr(){_.value.store="all",_.value.stock="all",_.value.priceMin=null,_.value.priceMax=null,_.value.sort="updated",_.value.sortOrder="desc",m.value=""}function vr(){if(!We.value.trim())return;const c=We.value.toLowerCase().replace(/\s+/g,"-");be.value.some(l=>l.id===c)||(be.value.push({id:c,name:We.value.trim(),domain:Fe.value.trim()||"custom"}),We.value="",Fe.value="")}function hr(c){be.value=be.value.filter(l=>l.id!==c)}function gr(c){const l=new Set(be.value.map(T=>T.id)),f=[];c.forEach(T=>{T.storeId&&!l.has(T.storeId)&&(l.add(T.storeId),f.push({id:T.storeId,name:T.storeId.toUpperCase(),domain:"custom"}))}),f.length&&(be.value=[...be.value,...f])}function Ri(){if(!U.value)return[];const c=U.value.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])');return Array.from(c).filter(l=>l.offsetParent!==null||l===document.activeElement)}function br(){var l;(l=Ri()[0])==null||l.focus()}function Ni(c){if(!Ie.value)return;if(c.key==="Escape"){Ie.value=null,c.preventDefault();return}if(c.key!=="Tab"||!U.value)return;const l=Ri();if(!l.length)return;const f=l[0],T=l[l.length-1];c.shiftKey&&document.activeElement===f?(c.preventDefault(),T.focus()):!c.shiftKey&&document.activeElement===T&&(c.preventDefault(),f.focus())}function yr(){typeof document>"u"||we||(document.addEventListener("keydown",Ni),we=!0)}function $i(){typeof document>"u"||!we||(document.removeEventListener("keydown",Ni),we=!1)}Ge(()=>y.value,c=>{c&&(ee.value=P.value?"description":G.value?"specs":Ul,z.value=jl)}),Ge(()=>Ie.value,c=>{c?(typeof document<"u"&&(ue.value=document.activeElement),yr(),ls(()=>{br()})):($i(),ls(()=>{var l;(l=ue.value)==null||l.focus()}))}),nn(()=>{$i()});function Di(c){if(!c)return null;if(typeof c=="number")return c;if(typeof c=="string"){const l=Date.parse(c);return Number.isNaN(l)?null:l}return null}function xr(c=[]){return Array.isArray(c)?c.map(l=>{if(!l||typeof l!="object")return null;const f=l,T=Number(f.price);if(!Number.isFinite(T))return null;const X=Di(f.fetched_at??f.fetchedAt??f.timestamp??f.time);return Number.isFinite(X??NaN)?{price:T,timestamp:X}:null}).filter(l=>!!l).sort((l,f)=>l.timestamp-f.timestamp):[]}function kn(c=[],l=Vn,f=w[0].value){if(!Array.isArray(c)||l<=0)return[];const T=xr(c);if(!T.length)return[];const X=Date.now()-Math.max(0,f)*qm,fe=T.filter(Xe=>Xe.timestamp>=X),ke=fe.length?fe:T;return ke.length<=l?ke:ke.slice(-l)}function _r(c){return c.map(l=>({t:l.timestamp,v:l.price}))}function wr(c){if(!Number.isFinite(c))return"var(--muted)";const l=Number(g.value.trendThresholdDown??Bn),f=Number(g.value.trendThresholdUp??Wn);return c<=l?"var(--success)":c>=f?"var(--danger)":"var(--warning)"}function Cr(c){const l=Number(g.value.chartPeriod??w[0].value),f=kn(c.history??[],Vn,l),T=_r(f),X=f.map(Qr=>Qr.price),fe=X.length?Math.min(...X):null,ke=X.length?Math.max(...X):null,Xe=X.length?X[0]:Number(c.price??NaN),dt=X.length?X[X.length-1]:Number(c.price??NaN),Ne=Number.isFinite(Xe)&&Xe>0&&Number.isFinite(dt)?(dt-Xe)/Xe*100:NaN,Tt=Number(g.value.trendThresholdDown??Bn),Ki=Number(g.value.trendThresholdUp??Wn),Zr=Ne<=Tt?"↘":Ne>=Ki?"↗":"→",Yr=Ne<=Tt?"baisse":Ne>=Ki?"hausse":"stable",Jr=Number.isFinite(Ne)?`${Ne>=0?"+":""}${Ne.toFixed(1)}%`:"—",qr=f.length>0?f[f.length-1].timestamp:Di(c.updatedAt)??null;return{points:T,min:fe,max:ke,delta:Number.isFinite(Ne)?Ne:null,trendIcon:Zr,trendLabel:Yr,trendDeltaLabel:Jr,trendColor:wr(Number.isFinite(Ne)?Ne:NaN),lastTimestamp:qr}}function Sr(c){if(!c||typeof window>"u")return;const l=c.getBoundingClientRect(),f=Bd({rect:l,popupWidth:280,popupHeight:140,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});S.value.position=f}function kr(c,l){if(!l)return;const f=Number(g.value.chartPeriod??w[0].value),T=kn(c.history??[],Vn,f);if(!T.length){Fi();return}const X=T.map(Tt=>Tt.price),fe=X[X.length-1],ke=Math.min(...X),Xe=Math.max(...X),dt=X[0],Ne=Number.isFinite(dt)&&dt>0?(fe-dt)/dt*100:0;S.value.history=X,S.value.currentPrice=Number.isFinite(fe)?fe:0,S.value.minPrice=ke,S.value.maxPrice=Xe,S.value.delta=Ne,S.value.productId=c.id,S.value.visible=!0,ls(()=>Sr(l)),A.value=!0,k.value&&(window.clearTimeout(k.value),k.value=null)}function Fi(){A.value||(S.value.visible=!1)}function Li(c=120){k.value&&window.clearTimeout(k.value),k.value=window.setTimeout(()=>{A.value||Fi()},c)}function Ar(c,l){const f=l.currentTarget;kr(c,f)}function Pr(){A.value=!0,k.value&&(window.clearTimeout(k.value),k.value=null)}function Mr(){A.value=!1,Li(0)}function Ir(c){if(typeof document>"u")return;const l=Math.max(16,Math.min(40,c));document.documentElement.style.setProperty("--pw-store-icon",`${l}px`)}function Tr(c){if(typeof document>"u")return;const l=Number(c),f=Number.isFinite(l)?l:Ks,T=Math.min(1.3,Math.max(.75,f)),X=Math.min(T,1.1);document.documentElement.style.setProperty("--pw-card-height-factor",`${T}`),document.documentElement.style.setProperty("--pw-card-mobile-height-factor",`${X}`)}function Er(c){if(typeof document>"u")return;const l=Number(c),f=Number.isFinite(l)?l:Un,T=Math.min(220,Math.max(120,f));document.documentElement.style.setProperty("--pw-card-media-height",`${T}px`)}function Rr(c){if(typeof document>"u")return;const l=Number(c),f=Number.isFinite(l)?l:Dl,T=Math.min(Ll,Math.max(Fl,f));document.documentElement.style.setProperty("--pw-card-columns",`${T}`)}function Nr(c){return Dc(c)||void 0}function $r(c){const l=ts(c);return l?l.split(" ").map(f=>f.charAt(0).toUpperCase()).join("").slice(0,2):"NA"}function An(c){if(!c)return"n/a";try{return new Date(c).toLocaleString("fr-FR")}catch{return c}}function it(c){const l=g.value.apiBase||"/api";return l.startsWith("http")?new URL(l.replace(/\/$/,"")+c).toString():`${l.endsWith("/")?l.slice(0,-1):l}${c}`}function lt(){const c={"Content-Type":"application/json"};return g.value.apiToken&&(c.Authorization=`Bearer ${g.value.apiToken}`),c}function Dr(c){const l=c.id,f=ce.value[l]||{},T=c.images,X=Array.isArray(T)&&T.length>0?T[0]:Gn,fe=Array.isArray(c.history)?c.history:[];return{id:l,title:c.title||c.reference||"Sans titre",storeId:c.source||"unknown",reference:c.reference||"",price:c.latest_price??null,delta:0,stockStatus:c.latest_stock_status||"unknown",updatedAt:c.last_updated_at||"",updatedAtLabel:An(c.last_updated_at),refreshHours:f.refreshHours??24,url:c.url||"",category:c.category||"",currency:c.currency||"EUR",description:c.description||"",specs:c.specs||{},msrp:c.msrp??null,discountAmount:c.discount_amount??null,discountPercent:c.discount_percent??null,imageWebp:X,imageJpg:X,images:T||[],history:fe}}async function It(){var c;W.value.loading=!0,W.value.error="";try{const l=new URL(it("/products"),window.location.origin);_.value.store!=="all"&&l.searchParams.set("source",_.value.store),_.value.priceMin&&l.searchParams.set("price_min",String(_.value.priceMin)),_.value.priceMax&&l.searchParams.set("price_max",String(_.value.priceMax)),_.value.stock!=="all"&&l.searchParams.set("stock_status",_.value.stock),g.value.pageSize&&l.searchParams.set("limit",String(g.value.pageSize));const f=await fetch(l.toString(),{headers:lt()});if(!f.ok)throw new Error(`API ${f.status}`);const X=(await f.json()).map(Dr);ne.value=X,gr(X),Ie.value&&!ne.value.find(fe=>fe.id===Ie.value)&&(Ie.value=((c=ne.value[0])==null?void 0:c.id)??null)}catch(l){W.value.error=l instanceof Error?l.message:"Erreur API",ye("ERROR","frontend",W.value.error)}finally{W.value.loading=!1}}async function Fr(){if(!y.value)return;const c={url:y.value.url,title:y.value.title,category:y.value.category,currency:y.value.currency};try{const l=await fetch(it(`/products/${y.value.id}`),{method:"PATCH",headers:lt(),body:JSON.stringify(c)});if(!l.ok)throw new Error(`API ${l.status}`);await It()}catch(l){W.value.error=l instanceof Error?l.message:"Erreur API",ye("ERROR","frontend",W.value.error)}}async function Pn(c){const l=ne.value.find(T=>T.id===c);if(!l||!l.url){ye("WARN","frontend","Impossible de relancer le scrap: URL manquante");return}const f=Date.now();Hs("info","Démarrage scraping Amazon.fr"),Hs("info","Chargement page produit");try{const T=await fetch(it("/enqueue"),{method:"POST",headers:lt(),body:JSON.stringify({url:l.url,save_db:!0})});if(!T.ok)throw new Error(`API ${T.status}`);ye("INFO","backend",`Scrap relancé pour ${l.reference||l.title}`),await It();const X=((Date.now()-f)/1e3).toFixed(1),fe=ne.value.find(Xe=>Xe.id===c),ke=fe?Os(fe.price,fe.currency):"n/a";Hs("success",`Scraping terminé (${X}s) • Prix détecté : ${ke}`)}catch(T){W.value.error=T instanceof Error?T.message:"Erreur API",ye("ERROR","frontend",W.value.error),Hs("error",`${W.value.error}`)}}async function Mn(c){try{const l=await fetch(it(`/products/${c}`),{method:"DELETE",headers:lt()});if(!l.ok)throw new Error(`API ${l.status}`);Ie.value===c&&(Ie.value=null),ye("INFO","backend","Produit supprimé"),await It()}catch(l){W.value.error=l instanceof Error?l.message:"Erreur API",ye("ERROR","backend",W.value.error)}}async function Lr(){y.value&&await Pn(y.value.id)}async function Or(){y.value&&await Mn(y.value.id)}function Oi(c){if(!(c!=null&&c.url)){ye("WARN","frontend","Aucune URL disponible");return}typeof window>"u"||window.open(c.url,"_blank","noopener")}async function Hr(){var c;if(!((c=y.value)!=null&&c.url)){ye("WARN","frontend","Aucune URL à copier");return}if(typeof navigator>"u"||!navigator.clipboard){ye("WARN","frontend","Clipboard non disponible");return}try{await navigator.clipboard.writeText(y.value.url),ye("INFO","frontend","URL copiée")}catch{ye("ERROR","frontend","Erreur copie de l'URL")}}async function jr(){if(Je.value.url){Y.value.loading=!0,Y.value.error="",Y.value.snapshot=null;try{const c=await fetch(it("/scrape/preview"),{method:"POST",headers:lt(),body:JSON.stringify({url:Je.value.url,use_playwright:Je.value.usePlaywright})});if(!c.ok)throw new Error(`API ${c.status}`);const l=await c.json();if(!l.success){Y.value.error=l.error||"Aucune donnee",ye("ERROR","backend",Y.value.error);return}if(!l.snapshot){Y.value.error="Aucune donnee",ye("ERROR","backend",Y.value.error);return}!l.snapshot.title&&!l.snapshot.price&&(Y.value.error="Donnees incompletes"),Y.value.snapshot=l.snapshot;const f=Array.isArray(l.snapshot.images)?l.snapshot.images.length:0;gt.value=f?[0]:[],ye("INFO","backend","Preview scraping OK")}catch(c){Y.value.error=c instanceof Error?c.message:"Erreur API",ye("ERROR","backend",Y.value.error)}finally{Y.value.loading=!1}}}async function Ur(){if(Y.value.snapshot)try{const c=await fetch(it("/scrape/commit"),{method:"POST",headers:lt(),body:JSON.stringify({snapshot:Y.value.snapshot})});if(!c.ok)throw new Error(`API ${c.status}`);u.value=!1,await It(),ye("INFO","backend","Produit enregistre")}catch(c){Y.value.error=c instanceof Error?c.message:"Erreur API",ye("ERROR","backend",Y.value.error)}}let ss=null;function Hi(){ss&&(clearInterval(ss),ss=null);const c=Number(g.value.refreshMinutes);Number.isFinite(c)&&c>0&&(ss=setInterval(It,c*60*1e3))}function ji(){if(typeof window>"u")return;const c={theme:t.value,density:s.value,layoutMode:i.value,settings:g.value,viewMode:n.value,filters:_.value};localStorage.setItem("pw_webui_settings",JSON.stringify(c))}function Vr(){if(typeof window>"u")return;const c=localStorage.getItem("pw_webui_settings");if(c)try{const l=JSON.parse(c);l.theme&&(t.value=l.theme),l.density&&(s.value=l.density),l.layoutMode&&(i.value=l.layoutMode),l.settings&&(g.value={...g.value,...l.settings}),l.viewMode&&(n.value=l.viewMode),l.filters&&(_.value={..._.value,...l.filters})}catch{return}}function Ui(){typeof window>"u"||localStorage.setItem("pw_webui_stores",JSON.stringify(be.value))}function Br(){if(typeof window>"u")return;const c=localStorage.getItem("pw_webui_stores");if(c)try{const l=JSON.parse(c);Array.isArray(l)&&(be.value=l)}catch{return}}function Vi(){if(typeof window>"u")return;const c={};ne.value.forEach(l=>{c[l.id]={refreshHours:l.refreshHours}}),localStorage.setItem("pw_webui_product_meta",JSON.stringify(c))}async function Bi(){try{const c=await fetch(it("/health"),{headers:lt()});if(!c.ok)throw new Error(`API ${c.status}`);const l=await c.json();J.value=l}catch{J.value={db:!1,redis:!1}}}async function Wi(){try{const c=await fetch(it("/version"),{headers:lt()});if(!c.ok)throw new Error(`API ${c.status}`);const l=await c.json();le.value=l.api_version||"n/a"}catch{le.value="n/a"}}async function Gi(){ut.value=[],Ht.value=[];try{const c=new URL(it("/logs"),window.location.origin);c.searchParams.set("limit","10");const l=await fetch(c.toString(),{headers:lt()});if(l.ok){const X=await l.json();ut.value=X.map((fe,ke)=>({time:An(fe.fetched_at),level:(fe.fetch_status||"info").toUpperCase(),message:`${fe.source} ${fe.url} (${fe.fetch_method})`}))}const f=await fetch(it("/logs/backend"),{headers:lt()});if(f.ok){const fe=(await f.json()).map(ke=>({time:An(ke.time),level:ke.level||"INFO",message:ke.message||""}));ut.value=[...fe,...ut.value]}const T=await fetch(it("/logs/uvicorn"),{headers:lt()});if(T.ok){const X=await T.json();Ht.value=X.map(fe=>({line:fe.line||""}))}}catch{ye("ERROR","backend","Impossible de charger les logs")}}async function Wr(){if(typeof navigator>"u"||!navigator.clipboard){ye("WARN","frontend","Clipboard indisponible pour copier les logs");return}const c=_n.value.map(l=>`${l.time} [${l.source}] ${l.level} - ${l.message}`).join(`
`);if(!c){ye("WARN","frontend","Aucun log à copier");return}try{await navigator.clipboard.writeText(c),ye("INFO","frontend","Logs copiés")}catch{ye("ERROR","frontend","Erreur lors de la copie des logs")}}function ye(c,l,f){nt.value.unshift({id:`${Date.now()}-${Math.random().toString(16).slice(2)}`,time:new Date().toLocaleTimeString("fr-FR"),level:c,source:l,message:f}),nt.value.length>200&&nt.value.pop()}function Gr(){typeof window>"u"||L.value.hideTimer&&(window.clearTimeout(L.value.hideTimer),L.value.hideTimer=null)}function Kr(){if(Gr(),typeof window>"u")return;const c=Math.max(500,Number(g.value.logDuration??Ol));L.value.hideTimer=window.setTimeout(()=>{L.value.visible=!1,L.value.hideTimer=null},c)}function Hs(c,l){const f=new Date().toLocaleTimeString("fr-FR"),T={id:`${Date.now()}-${Math.random().toString(16).slice(2)}`,time:f,level:c,text:l},X=[...L.value.messages.slice(-4),T];L.value.messages=X,L.value.visible=!0,ls(()=>{D.value&&(D.value.scrollTop=D.value.scrollHeight)}),Kr()}function zr(){if(typeof window>"u")return;const c=localStorage.getItem("pw_webui_product_meta");if(c)try{const l=JSON.parse(c);l&&typeof l=="object"&&(ce.value=l)}catch{return}}return Vr(),Br(),zr(),Ge([t,s,i,g,n,_],ji,{deep:!0}),Ge(be,Ui,{deep:!0}),Ge(ne,Vi,{deep:!0}),Ge(()=>g.value.refreshMinutes,Hi),Ge([()=>g.value.apiBase,()=>g.value.apiToken,()=>g.value.pageSize,_],()=>{It(),Bi(),Wi()},{deep:!0}),Ge(N,c=>{Ir(c),typeof window<"u"&&window.localStorage.setItem(Hl,String(Math.max(16,Math.min(40,c))))},{immediate:!0}),Ge(()=>g.value.cardRatio,c=>{Tr(c)},{immediate:!0}),Ge(()=>g.value.cardImageHeight,c=>{Er(c)},{immediate:!0}),Ge(()=>g.value.cardColumns,c=>{Rr(c)},{immediate:!0}),yi(()=>{It(),Hi(),Bi(),Wi()}),nn(()=>{ss&&clearInterval(ss),k.value&&window.clearTimeout(k.value),L.value.hideTimer&&window.clearTimeout(L.value.hideTimer)}),(c,l)=>(R(),$("div",{class:Se(["app-root",jt.value,ki.value,p.value]),style:Jt(h.value)},[o("header",Wd,[o("div",Gd,[l[61]||(l[61]=Ou('<div class="flex items-center gap-3"><div class="h-10 w-10 rounded-full bg-[var(--accent)] text-black flex items-center justify-center vintage-shadow"><i class="fa-solid fa-wave-square"></i></div><div><div class="section-title text-lg">PriceWatch</div><div class="label">Vintage control deck</div></div></div>',1)),Ae(tc,{name:"scrape-log"},{default:yo(()=>[L.value.visible?(R(),$("div",{key:0,ref_key:"scrapeLogRef",ref:D,class:"scrape-log-bar z-40"},[(R(!0),$(ie,null,xe(L.value.messages,f=>(R(),$("div",{key:f.id,class:"scrape-log-line"},[o("span",Kd,"["+I(f.time)+"]",1),o("span",zd,I(O[f.level]),1),o("span",Zd,I(f.text),1)]))),128))],512)):Te("",!0)]),_:1}),o("div",Yd,[o("div",{class:"label"},"FE v"+I(Jm)),o("div",Jd,"BE v"+I(le.value),1)]),o("div",qd,[q(o("input",{class:"input pr-10",placeholder:"Rechercher","onUpdate:modelValue":l[0]||(l[0]=f=>m.value=f)},null,512),[[he,m.value]]),l[54]||(l[54]=o("i",{class:"fa-solid fa-magnifying-glass absolute right-3 top-3 text-[var(--muted)]"},null,-1))]),o("div",Qd,[o("button",{class:"icon-btn add-product-btn",title:"Ajouter un produit","aria-label":"Ajouter un produit",onClick:ur},[...l[55]||(l[55]=[o("i",{class:"fa-solid fa-plus"},null,-1)])]),o("div",Xd,[o("button",{class:Se(["icon-btn header-icon",{"active-view":n.value==="cards"}]),title:"Vue cartes","aria-label":"Vue cartes",onClick:l[1]||(l[1]=f=>n.value="cards")},[...l[56]||(l[56]=[o("i",{class:"fa-solid fa-border-all"},null,-1)])],2),o("button",{class:Se(["icon-btn header-icon",{"active-view":n.value==="table"}]),title:"Vue tableau","aria-label":"Vue tableau",onClick:l[2]||(l[2]=f=>n.value="table")},[...l[57]||(l[57]=[o("i",{class:"fa-solid fa-table"},null,-1)])],2)]),o("button",{class:"icon-btn header-icon",title:"Parametres","aria-label":"Paramètres",onClick:wn},[...l[58]||(l[58]=[o("i",{class:"fa-solid fa-gear"},null,-1)])]),o("button",{class:"icon-btn header-icon",title:"Recharger","aria-label":"Recharger",onClick:Sn},[...l[59]||(l[59]=[o("i",{class:"fa-solid fa-rotate"},null,-1)])]),o("button",{class:"icon-btn header-icon",title:"Theme","aria-label":"Basculer mode clair/sombre",onClick:fr},[...l[60]||(l[60]=[o("i",{class:"fa-solid fa-circle-half-stroke"},null,-1)])])]),o("div",ef,I(Pi.value),1)])]),o("div",tf,[o("aside",sf,[o("div",nf,[l[74]||(l[74]=o("div",{class:"section-title text-base mb-3"},"Filtres & tri",-1)),o("div",lf,[o("div",of,"Affichés "+I(F.value.length)+" / "+I(oe.value)+" produits",1),o("button",{class:"icon-btn",title:"Réinitialiser","aria-label":"Réinitialiser les filtres",onClick:mr},[...l[62]||(l[62]=[o("i",{class:"fa-solid fa-retweet"},null,-1)])])]),o("div",rf,[(R(!0),$(ie,null,xe(Ee.value,f=>(R(),$("button",{key:f.key,class:"filter-chip",title:f.tooltip,type:"button",onClick:T=>pr(f.key)},[Ye(I(f.label)+" ",1),l[63]||(l[63]=o("i",{class:"fa-solid fa-xmark ml-1"},null,-1))],8,af))),128))]),o("div",uf,[o("div",null,[l[65]||(l[65]=o("div",{class:"label"},"Store",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[3]||(l[3]=f=>_.value.store=f)},[l[64]||(l[64]=o("option",{value:"all"},"Tous",-1)),(R(!0),$(ie,null,xe(be.value,f=>(R(),$("option",{key:f.id,value:f.id},I(f.name),9,cf))),128))],512),[[Oe,_.value.store]])]),o("div",null,[l[67]||(l[67]=o("div",{class:"label"},"Stock",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[4]||(l[4]=f=>_.value.stock=f)},[...l[66]||(l[66]=[o("option",{value:"all"},"Tous",-1),o("option",{value:"in_stock"},"En stock",-1),o("option",{value:"out_of_stock"},"Rupture",-1),o("option",{value:"unknown"},"Inconnu",-1)])],512),[[Oe,_.value.stock]])]),o("div",df,[o("div",null,[l[68]||(l[68]=o("div",{class:"label"},"Prix min",-1)),q(o("input",{class:"input",type:"number","onUpdate:modelValue":l[5]||(l[5]=f=>_.value.priceMin=f),placeholder:"Min"},null,512),[[he,_.value.priceMin,void 0,{number:!0}]])]),o("div",null,[l[69]||(l[69]=o("div",{class:"label"},"Prix max",-1)),q(o("input",{class:"input",type:"number","onUpdate:modelValue":l[6]||(l[6]=f=>_.value.priceMax=f),placeholder:"Max"},null,512),[[he,_.value.priceMax,void 0,{number:!0}]])])]),o("div",null,[l[71]||(l[71]=o("div",{class:"label"},"Tri",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[7]||(l[7]=f=>_.value.sort=f)},[...l[70]||(l[70]=[o("option",{value:"updated"},"Derniere maj",-1),o("option",{value:"price"},"Prix actuel",-1),o("option",{value:"delta"},"Variation",-1),o("option",{value:"stock"},"Stock",-1)])],512),[[Oe,_.value.sort]])]),o("div",null,[l[73]||(l[73]=o("div",{class:"label"},"Ordre du tri",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[8]||(l[8]=f=>_.value.sortOrder=f)},[...l[72]||(l[72]=[o("option",{value:"desc"},"Décroissant",-1),o("option",{value:"asc"},"Croissant",-1)])],512),[[Oe,_.value.sortOrder]])])])]),o("div",ff,[l[76]||(l[76]=o("div",{class:"section-title text-base mb-3"},"Comparaison",-1)),o("div",pf,[o("div",mf,I(Me.value.length)+" selectionnes",1),o("button",{class:"icon-btn",title:"Activer comparaison",onClick:l[9]||(l[9]=f=>r.value=!r.value)},[...l[75]||(l[75]=[o("i",{class:"fa-solid fa-code-compare"},null,-1)])])]),l[77]||(l[77]=o("div",{class:"label mt-3"},"Split view 2-4 produits",-1))])]),o("main",vf,[W.value.error?(R(),$("div",hf,[o("div",gf,"Erreur API: "+I(W.value.error),1)])):Te("",!0),r.value?(R(),$("section",bf,[(R(!0),$(ie,null,xe(de.value,f=>(R(),$("div",{key:f.id,class:"card p-4"},[o("div",yf,[o("div",null,[o("div",xf,I(f.title),1),o("div",_f,I(ts(f.storeId)),1)]),o("div",wf,I(f.stockStatus),1)]),o("div",Cf,I(es(f.price,f.currency)),1),o("div",Sf,"Delta: "+I(f.delta)+"%",1),l[78]||(l[78]=o("div",{class:"mt-3 h-20 rounded-lg bg-[var(--surface-2)]"},null,-1))]))),128))])):n.value==="cards"?(R(),$("section",kf,[(R(!0),$(ie,null,xe(F.value,f=>(R(),yn(Vd,{key:f.id,product:f,"history-data":Ls.value.get(f.id)??null,"compare-ids":Me.value,"store-logo":Nr(f.storeId),"store-label":ts(f.storeId),"store-initials":$r(f.storeId),"chart-period-label":Ut.value,"image-mode":g.value.imageMode??"contain","placeholder-image":Gn,onClick:T=>Ii(f.id),onRefresh:T=>Pn(f.id),onCompare:T=>Ei(f.id),onEdit:T=>Ti(f.id),onDelete:T=>Mn(f.id),onOpen:T=>Oi(f),onHover:T=>Ar(f,T),onLeave:l[10]||(l[10]=T=>Li(0))},null,8,["product","history-data","compare-ids","store-logo","store-label","store-initials","chart-period-label","image-mode","onClick","onRefresh","onCompare","onEdit","onDelete","onOpen","onHover"]))),128))])):(R(),$("section",Af,[l[84]||(l[84]=o("div",{class:"section-title text-base mb-3"},"Tableau dense",-1)),o("div",Pf,[o("table",Mf,[l[83]||(l[83]=o("thead",{class:"text-left text-[var(--muted)]"},[o("tr",null,[o("th",{class:"pb-2"},"Produit"),o("th",{class:"pb-2"},"Store"),o("th",{class:"pb-2"},"Prix"),o("th",{class:"pb-2"},"Delta"),o("th",{class:"pb-2"},"Stock"),o("th",{class:"pb-2"},"Actions")])],-1)),o("tbody",null,[(R(!0),$(ie,null,xe(F.value,f=>(R(),$("tr",{key:f.id,class:"border-t border-white/5"},[o("td",If,I(f.title),1),o("td",Tf,I(ts(f.storeId)),1),o("td",Ef,I(es(f.price,f.currency)),1),o("td",Rf,I(f.delta)+"%",1),o("td",Nf,I(f.stockStatus),1),o("td",$f,[o("div",Df,[o("button",{class:"icon-btn",title:"Detail",onClick:T=>Ti(f.id)},[...l[79]||(l[79]=[o("i",{class:"fa-solid fa-eye"},null,-1)])],8,Ff),o("button",{class:"icon-btn",title:"Comparer",onClick:T=>Ei(f.id)},[o("i",{class:Se(["fa-solid",Me.value.includes(f.id)?"fa-square-check":"fa-square"])},null,2)],8,Lf),o("button",{class:"icon-btn",title:"Supprimer",onClick:T=>Mn(f.id)},[...l[80]||(l[80]=[o("i",{class:"fa-solid fa-trash"},null,-1)])],8,Of),o("button",{class:"icon-btn",title:"Relancer le scrap",onClick:T=>Pn(f.id)},[...l[81]||(l[81]=[o("i",{class:"fa-solid fa-rotate"},null,-1)])],8,Hf),o("button",{class:"icon-btn",title:"Ouvrir dans un nouvel onglet",onClick:T=>Oi(f)},[...l[82]||(l[82]=[o("i",{class:"fa-solid fa-up-right-from-square"},null,-1)])],8,jf)])])]))),128))])])])]))])]),a.value?(R(),$("div",{key:0,class:"fixed inset-0 bg-black/40 z-50",onClick:Gs(wn,["self"])},[o("div",Uf,[o("div",{class:"flex items-center justify-between mb-4"},[l[86]||(l[86]=o("div",{class:"section-title text-lg"},"Parametres",-1)),o("button",{class:"icon-btn",title:"Fermer",onClick:wn},[...l[85]||(l[85]=[o("i",{class:"fa-solid fa-xmark"},null,-1)])])]),o("div",Vf,[o("section",null,[l[110]||(l[110]=o("div",{class:"section-title text-sm mb-2"},"Apparence",-1)),o("div",Bf,[o("div",null,[l[88]||(l[88]=o("div",{class:"label"},"Theme",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[11]||(l[11]=f=>t.value=f)},[...l[87]||(l[87]=[o("option",{value:"gruvbox-dark"},"Gruvbox Dark",-1),o("option",{value:"gruvbox-light"},"Gruvbox Light",-1),o("option",{value:"monokai-dark"},"Monokai Dark",-1),o("option",{value:"monokai-light"},"Monokai Light",-1)])],512),[[Oe,t.value]])]),o("div",null,[l[90]||(l[90]=o("div",{class:"label"},"Densite",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[12]||(l[12]=f=>s.value=f)},[...l[89]||(l[89]=[o("option",{value:"dense"},"Dense",-1),o("option",{value:"comfort"},"Confort",-1)])],512),[[Oe,s.value]])]),o("div",null,[l[92]||(l[92]=o("div",{class:"label"},"Layout",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[13]||(l[13]=f=>i.value=f)},[...l[91]||(l[91]=[o("option",{value:"auto"},"Auto",-1),o("option",{value:"compact"},"Compact",-1),o("option",{value:"wide"},"Large",-1)])],512),[[Oe,i.value]])]),o("div",null,[l[93]||(l[93]=o("div",{class:"label"},"Police titre",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[14]||(l[14]=f=>g.value.fontTitle=f)},[(R(),$(ie,null,xe(ct,f=>o("option",{key:f.id,value:f.id},I(f.label),9,Wf)),64))],512),[[Oe,g.value.fontTitle]])]),o("div",null,[l[94]||(l[94]=o("div",{class:"label"},"Police corps",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[15]||(l[15]=f=>g.value.fontBody=f)},[(R(),$(ie,null,xe(ct,f=>o("option",{key:f.id,value:f.id},I(f.label),9,Gf)),64))],512),[[Oe,g.value.fontBody]])]),o("div",null,[l[95]||(l[95]=o("div",{class:"label"},"Police mono",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[16]||(l[16]=f=>g.value.fontMono=f)},[(R(),$(ie,null,xe(ct,f=>o("option",{key:f.id,value:f.id},I(f.label),9,Kf)),64))],512),[[Oe,g.value.fontMono]])]),o("div",null,[l[96]||(l[96]=o("div",{class:"label"},"Taille texte",-1)),o("div",zf,[q(o("input",{class:"input",type:"range",min:"12",max:"20",step:"1","onUpdate:modelValue":l[17]||(l[17]=f=>g.value.fontSize=f)},null,512),[[he,g.value.fontSize,void 0,{number:!0}]]),o("div",Zf,I(g.value.fontSize)+"px",1)])]),o("div",null,[l[98]||(l[98]=o("div",{class:"label"},"Taille icones",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[18]||(l[18]=f=>g.value.iconSize=f)},[...l[97]||(l[97]=[o("option",{value:"sm"},"Compact",-1),o("option",{value:"md"},"Normal",-1),o("option",{value:"lg"},"Large",-1)])],512),[[Oe,g.value.iconSize]])]),o("div",null,[o("div",Yf,[l[99]||(l[99]=o("span",null,"Taille icône boutique",-1)),o("span",Jf,I(M.value),1)]),q(o("input",{class:"input",type:"range",min:"16",max:"40","onUpdate:modelValue":l[19]||(l[19]=f=>N.value=f)},null,512),[[he,N.value,void 0,{number:!0}]])]),o("div",null,[o("div",qf,[l[100]||(l[100]=o("span",null,"Ratio des vignettes",-1)),o("span",Qf,I(Re.value),1)]),q(o("input",{class:"input",type:"range",min:"0.75",max:"1.3",step:"0.05","onUpdate:modelValue":l[20]||(l[20]=f=>g.value.cardRatio=f)},null,512),[[he,g.value.cardRatio,void 0,{number:!0}]]),l[101]||(l[101]=o("div",{class:"text-xs label flex justify-between mt-1"},[o("span",null,"Compact"),o("span",null,"Standard"),o("span",null,"Étendu")],-1))]),o("div",null,[o("div",Xf,[l[102]||(l[102]=o("span",null,"Colonnes de vignettes",-1)),o("span",ep,I(qe.value),1)]),q(o("input",{class:"input",type:"range",min:Fl,max:Ll,step:"1","onUpdate:modelValue":l[21]||(l[21]=f=>g.value.cardColumns=f)},null,512),[[he,g.value.cardColumns,void 0,{number:!0}]]),l[103]||(l[103]=o("div",{class:"text-xs label flex justify-between mt-1"},[o("span",null,"1"),o("span",null,"3"),o("span",null,"6")],-1))]),o("div",null,[o("div",tp,[l[104]||(l[104]=o("span",null,"Hauteur image produit",-1)),o("span",sp,I(Qe.value),1)]),q(o("input",{class:"input",type:"range",min:"120",max:"220",step:"5","onUpdate:modelValue":l[22]||(l[22]=f=>g.value.cardImageHeight=f)},null,512),[[he,g.value.cardImageHeight,void 0,{number:!0}]])]),o("div",null,[l[105]||(l[105]=o("div",{class:"label"},"Mode image",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[23]||(l[23]=f=>g.value.imageMode=f)},[(R(),$(ie,null,xe(C,f=>o("option",{key:f.value,value:f.value},I(f.label),9,np)),64))],512),[[Oe,g.value.imageMode]])]),o("div",null,[l[106]||(l[106]=o("div",{class:"label"},"Période du graphique",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[24]||(l[24]=f=>g.value.chartPeriod=f)},[(R(),$(ie,null,xe(w,f=>o("option",{key:f.value,value:f.value},I(f.label),9,ip)),64))],512),[[Oe,g.value.chartPeriod,void 0,{number:!0}]])]),o("div",null,[l[107]||(l[107]=o("div",{class:"label"},"Durée barre logs (ms)",-1)),q(o("input",{class:"input",type:"number",min:"500","onUpdate:modelValue":l[25]||(l[25]=f=>g.value.logDuration=f)},null,512),[[he,g.value.logDuration,void 0,{number:!0}]])]),o("div",lp,[o("div",null,[l[108]||(l[108]=o("div",{class:"label"},"Seuil baisse (%)",-1)),q(o("input",{class:"input",type:"number",step:"0.1","onUpdate:modelValue":l[26]||(l[26]=f=>g.value.trendThresholdDown=f)},null,512),[[he,g.value.trendThresholdDown,void 0,{number:!0}]])]),o("div",null,[l[109]||(l[109]=o("div",{class:"label"},"Seuil hausse (%)",-1)),q(o("input",{class:"input",type:"number",step:"0.1","onUpdate:modelValue":l[27]||(l[27]=f=>g.value.trendThresholdUp=f)},null,512),[[he,g.value.trendThresholdUp,void 0,{number:!0}]])])])])]),o("section",null,[l[115]||(l[115]=o("div",{class:"section-title text-sm mb-2"},"Donnees",-1)),o("div",op,[o("div",null,[l[111]||(l[111]=o("div",{class:"label"},"Frequence rafraichissement",-1)),q(o("input",{class:"input","onUpdate:modelValue":l[28]||(l[28]=f=>g.value.refreshMinutes=f),type:"number",min:"1"},null,512),[[he,g.value.refreshMinutes,void 0,{number:!0}]])]),o("div",null,[l[112]||(l[112]=o("div",{class:"label"},"Limite produits page",-1)),q(o("input",{class:"input","onUpdate:modelValue":l[29]||(l[29]=f=>g.value.pageSize=f),type:"number",min:"10"},null,512),[[he,g.value.pageSize,void 0,{number:!0}]])]),o("div",null,[l[114]||(l[114]=o("div",{class:"label"},"Preferer WebP",-1)),q(o("select",{class:"input","onUpdate:modelValue":l[30]||(l[30]=f=>g.value.preferWebp=f)},[...l[113]||(l[113]=[o("option",{value:!0},"Oui",-1),o("option",{value:!1},"Non",-1)])],512),[[Oe,g.value.preferWebp]])])])]),o("section",null,[l[118]||(l[118]=o("div",{class:"section-title text-sm mb-2"},"API",-1)),o("div",rp,[o("div",null,[l[116]||(l[116]=o("div",{class:"label"},"Base URL",-1)),q(o("input",{class:"input","onUpdate:modelValue":l[31]||(l[31]=f=>g.value.apiBase=f),placeholder:"/api"},null,512),[[he,g.value.apiBase]])]),o("div",null,[l[117]||(l[117]=o("div",{class:"label"},"Token",-1)),q(o("input",{class:"input",type:"password","onUpdate:modelValue":l[32]||(l[32]=f=>g.value.apiToken=f),placeholder:"Bearer token"},null,512),[[he,g.value.apiToken]])]),o("button",{class:"input text-left",onClick:It}," Recharger les donnees ")])]),o("section",null,[l[124]||(l[124]=o("div",{class:"section-title text-sm mb-2"},"Stores",-1)),o("div",ap,[(R(!0),$(ie,null,xe(be.value,f=>(R(),$("div",{key:f.id,class:"space-y-2 border border-white/5 rounded-lg p-2"},[l[120]||(l[120]=o("div",{class:"label"},"Nom",-1)),q(o("input",{class:"input","onUpdate:modelValue":T=>f.name=T},null,8,up),[[he,f.name]]),l[121]||(l[121]=o("div",{class:"label"},"Domaine",-1)),q(o("input",{class:"input","onUpdate:modelValue":T=>f.domain=T},null,8,cp),[[he,f.domain]]),o("div",dp,[o("button",{class:"icon-btn",title:"Supprimer",onClick:T=>hr(f.id)},[...l[119]||(l[119]=[o("i",{class:"fa-solid fa-trash"},null,-1)])],8,fp)])]))),128)),o("div",pp,[l[123]||(l[123]=o("div",{class:"label"},"Ajouter un store",-1)),o("div",mp,[q(o("input",{class:"input","onUpdate:modelValue":l[33]||(l[33]=f=>We.value=f),placeholder:"Nom"},null,512),[[he,We.value]]),q(o("input",{class:"input","onUpdate:modelValue":l[34]||(l[34]=f=>Fe.value=f),placeholder:"Domaine"},null,512),[[he,Fe.value]]),o("button",{class:"icon-btn",title:"Ajouter",onClick:vr},[...l[122]||(l[122]=[o("i",{class:"fa-solid fa-plus"},null,-1)])])])])])]),o("section",null,[l[128]||(l[128]=o("div",{class:"section-title text-sm mb-2"},"Debug",-1)),o("div",vp,[o("div",hp,[l[125]||(l[125]=o("div",{class:"label"},"Afficher erreurs scraping",-1)),q(o("input",{type:"checkbox","onUpdate:modelValue":l[35]||(l[35]=f=>g.value.showDebug=f)},null,512),[[jn,g.value.showDebug]])]),o("div",gp,[l[126]||(l[126]=o("div",{class:"label"},"Animations",-1)),q(o("input",{type:"checkbox","onUpdate:modelValue":l[36]||(l[36]=f=>g.value.enableAnimations=f)},null,512),[[jn,g.value.enableAnimations]])]),o("div",bp,[l[127]||(l[127]=o("div",{class:"label"},"Historique au survol",-1)),q(o("input",{type:"checkbox","onUpdate:modelValue":l[37]||(l[37]=f=>g.value.showHistoryHover=f)},null,512),[[jn,g.value.showHistoryHover]])])])]),o("section",null,[l[129]||(l[129]=o("div",{class:"section-title text-sm mb-2"},"Maintenance",-1)),o("div",{class:"space-y-2"},[o("button",{class:"input text-left",onClick:dr}," Appliquer et recharger "),o("button",{class:"input text-left",onClick:Sn}," Recharger la page "),o("button",{class:"input text-left",onClick:cr}," Vider le cache et recharger ")])])])])])):Te("",!0),u.value?(R(),$("div",{key:1,class:"fixed inset-0 bg-black/40 z-50 flex items-center justify-center p-4",onClick:Gs(Mi,["self"])},[o("div",yp,[o("div",{class:"flex items-center justify-between mb-4"},[l[131]||(l[131]=o("div",{class:"section-title text-lg"},"Ajouter un produit",-1)),o("button",{class:"icon-btn",title:"Fermer",onClick:Mi},[...l[130]||(l[130]=[o("i",{class:"fa-solid fa-xmark"},null,-1)])])]),o("div",xp,[q(o("input",{class:"input","onUpdate:modelValue":l[38]||(l[38]=f=>Je.value.url=f),placeholder:"URL"},null,512),[[he,Je.value.url]]),q(o("select",{class:"input","onUpdate:modelValue":l[39]||(l[39]=f=>Je.value.usePlaywright=f)},[...l[132]||(l[132]=[o("option",{value:!1},"HTTP uniquement",-1),o("option",{value:!0},"Playwright fallback",-1)])],512),[[Oe,Je.value.usePlaywright]]),o("button",{class:"input text-left",onClick:jr,disabled:!Je.value.url||Y.value.loading},I(Y.value.loading?"Analyse en cours...":"Ajouter"),9,_p),Y.value.error?(R(),$("div",wp,"Erreur: "+I(Y.value.error),1)):Te("",!0),Y.value.snapshot?(R(),$("div",Cp,[l[133]||(l[133]=o("div",{class:"section-title text-sm"},"Donnees scrappees",-1)),o("div",Sp,"Store: "+I(Y.value.snapshot.source),1),o("div",kp,"Reference: "+I(Y.value.snapshot.reference||"n/a"),1),o("div",Ap,"Titre: "+I(Y.value.snapshot.title||"n/a"),1),o("div",Pp,[o("picture",null,[o("source",{srcset:Xt.value,type:"image/webp"},null,8,Mp),o("source",{srcset:Xt.value,type:"image/jpeg"},null,8,Ip),o("img",{src:Xt.value,class:"h-20 w-20 rounded-lg object-cover border border-white/10",alt:"vignette",loading:"lazy"},null,8,Tp)]),o("div",Ep,[o("div",Rp,"Images: "+I(Le.value),1),ps.value.length?(R(),$("div",Np,[(R(!0),$(ie,null,xe(ps.value,(f,T)=>(R(),$("button",{key:`${f}-${T}`,type:"button",class:Se(["image-toggle",{selected:nr.value.has(T)}]),onClick:X=>ir(T)},[o("picture",null,[o("source",{srcset:f,type:"image/webp"},null,8,Dp),o("img",{src:f,class:"h-16 w-full object-cover rounded-md",alt:"miniature",loading:"lazy"},null,8,Fp)])],10,$p))),128))])):Te("",!0)])]),o("div",Lp,"Prix: "+I(es(Y.value.snapshot.price,Y.value.snapshot.currency)),1),o("div",Op,"Prix conseille: "+I(es(Y.value.snapshot.msrp,Y.value.snapshot.currency)),1),o("div",Hp,"Stock: "+I(Y.value.snapshot.stock_status||"n/a"),1),o("div",jp,"Categorie: "+I(Y.value.snapshot.category||"n/a"),1),o("div",Up,"Description: "+I(Y.value.snapshot.description||"n/a"),1),o("div",Vp,"Caracteristiques: "+I(lr.value),1),Ai.value.length===0?(R(),$("div",Bp,"n/a")):(R(),$("div",Wp,[(R(!0),$(ie,null,xe(Ai.value,([f,T])=>(R(),$("div",{key:f,class:"label"},I(f)+": "+I(T),1))),128))])),o("button",{class:"input text-left",onClick:Ur}," Enregistrer ")])):Te("",!0)])])])):Te("",!0),y.value?(R(),$("div",{key:2,class:"fixed inset-0 bg-black/40 z-50 flex items-center justify-center p-4",onClick:l[49]||(l[49]=Gs(f=>Ie.value=null,["self"]))},[o("div",{ref_key:"detailModalRef",ref:U,class:"w-full max-w-6xl detail-dialog panel detail-popup flex flex-col overflow-hidden",role:"dialog","aria-label":`Détails produit ${y.value.title||""}`},[o("div",Kp,[o("div",null,[o("div",zp,[l[134]||(l[134]=Ye(" Nom : ",-1)),o("span",{class:"detail-title",title:y.value.title},I(y.value.title||"Sans titre"),9,Zp)]),o("div",Yp,I(ts(y.value.storeId))+" • "+I(y.value.reference||"Réf. inconnue"),1)]),o("button",{class:"icon-btn",title:"Fermer","aria-label":"Fermer le panneau détail",onClick:l[40]||(l[40]=f=>Ie.value=null),type:"button"},[...l[135]||(l[135]=[o("i",{class:"fa-solid fa-xmark"},null,-1)])])]),o("div",Jp,[o("div",qp,[o("div",Qp,[o("section",Xp,[l[136]||(l[136]=o("div",{class:"section-title text-sm"},"Résumé",-1)),o("picture",em,[o("source",{srcset:y.value.imageWebp,type:"image/webp"},null,8,tm),o("source",{srcset:y.value.imageJpg,type:"image/jpeg"},null,8,sm),o("img",{src:y.value.imageJpg,class:"w-full h-full object-contain rounded-xl",alt:"image produit",loading:"lazy"},null,8,nm)]),o("div",{class:"label detail-summary-title",title:y.value.title},I(y.value.title||"Sans titre"),9,im),o("div",lm,"Stock actuel: "+I(rr(y.value.stockStatus)),1)]),o("section",om,[o("div",rm,[o("button",{class:Se(["detail-tab-button",{active:ee.value==="description"}]),disabled:!P.value,role:"tab",onClick:l[41]||(l[41]=f=>ee.value="description"),"aria-selected":ee.value==="description",type:"button"}," Description ",10,am),o("button",{class:Se(["detail-tab-button",{active:ee.value==="specs"}]),disabled:!G.value,role:"tab",onClick:l[42]||(l[42]=f=>ee.value="specs"),"aria-selected":ee.value==="specs",type:"button"}," Caractéristiques ",10,um)]),o("div",cm,[ee.value==="description"?(R(),$("div",dm,[P.value?(R(),$("div",{key:0,class:"label detail-text",title:y.value.description},I(y.value.description),9,fm)):(R(),$("div",pm,"Aucune description."))])):(R(),$("div",mm,[G.value?(R(),$("div",vm,[(R(!0),$(ie,null,xe(j.value,(f,T)=>(R(),$("div",{key:`${f[0]}-${T}`,class:"label"},[o("span",hm,I(f[0]),1),Ye(": "+I(f[1]),1)]))),128))])):(R(),$("div",gm,"Aucune caractéristique."))]))])])]),o("div",bm,[o("section",ym,[l[137]||(l[137]=o("div",{class:"section-title text-sm"},"Prix",-1)),o("div",xm,[o("div",_m,I(es(y.value.price,y.value.currency)),1),o("div",wm,"Dernière mise à jour: "+I(y.value.updatedAtLabel),1)]),o("div",Cm,"Prix conseillé: "+I(es(y.value.msrp,y.value.currency)),1),o("div",Sm,"Réduction: "+I(ar(y.value.discountAmount,y.value.discountPercent)),1)]),o("section",km,[l[139]||(l[139]=o("div",{class:"section-title text-sm"},"Source",-1)),o("div",Am,[y.value.url?(R(),$("a",{key:0,href:y.value.url,target:"_blank",rel:"noreferrer",class:"label link flex-1",title:"Ouvrir la page produit"}," Ouvrir la page produit ",8,Pm)):Te("",!0),o("button",{class:Se(["icon-btn",y.value.url?"":"opacity-50 pointer-events-none"]),title:"Copier l'URL","aria-label":"Copier l'URL",onClick:Hr,type:"button"},[...l[138]||(l[138]=[o("i",{class:"fa-solid fa-copy"},null,-1)])],2)]),o("div",Mm,"URL: "+I(y.value.url||"n/a"),1),o("div",Im,"ASIN / Référence: "+I(y.value.reference||"n/a"),1)]),o("section",Tm,[l[144]||(l[144]=o("div",{class:"section-title text-sm"},"Historique",-1)),o("div",Em,[(R(),$(ie,null,xe(H,f=>o("button",{key:f.id,class:Se(["detail-period-button",{selected:z.value===f.id}]),type:"button",onClick:T=>z.value=f.id},I(f.label),11,Rm)),64))]),o("div",Nm,[o("div",null,[l[140]||(l[140]=o("div",{class:"label"},"Actuel",-1)),o("div",$m,I(Os(se.value.current,y.value.currency)),1)]),o("div",null,[l[141]||(l[141]=o("div",{class:"label"},"Min",-1)),o("div",Dm,I(Os(se.value.min,y.value.currency)),1)]),o("div",null,[l[142]||(l[142]=o("div",{class:"label"},"Max",-1)),o("div",Fm,I(Os(se.value.max,y.value.currency)),1)]),o("div",null,[l[143]||(l[143]=o("div",{class:"label"},"Delta",-1)),o("div",Lm,I(Z.value),1)])]),Ae(Zc,{class:"mt-2",history:V.value.history,"current-price":V.value.currentPrice,"min-price":V.value.minPrice,"max-price":V.value.maxPrice,"delta-label":Z.value},null,8,["history","current-price","min-price","max-price","delta-label"])]),o("section",Om,[l[148]||(l[148]=o("div",{class:"section-title text-sm"},"Edition produit",-1)),o("div",Hm,[q(o("input",{class:"input","onUpdate:modelValue":l[43]||(l[43]=f=>y.value.title=f),placeholder:"Nom produit"},null,512),[[he,y.value.title]]),q(o("input",{class:"input","onUpdate:modelValue":l[44]||(l[44]=f=>y.value.url=f),placeholder:"URL"},null,512),[[he,y.value.url]]),q(o("input",{class:"input","onUpdate:modelValue":l[45]||(l[45]=f=>y.value.category=f),placeholder:"Catégorie"},null,512),[[he,y.value.category]]),q(o("input",{class:"input","onUpdate:modelValue":l[46]||(l[46]=f=>y.value.currency=f),placeholder:"Devise"},null,512),[[he,y.value.currency]]),q(o("input",{class:"input","onUpdate:modelValue":l[47]||(l[47]=f=>y.value.reference=f),placeholder:"Référence",disabled:""},null,512),[[he,y.value.reference]]),q(o("input",{class:"input","onUpdate:modelValue":l[48]||(l[48]=f=>y.value.refreshHours=f),type:"number",min:"1",placeholder:"Fréquence (h)"},null,512),[[he,y.value.refreshHours,void 0,{number:!0}]])]),o("div",{class:"flex items-center gap-2 actions-section"},[o("button",{class:"icon-btn",title:"Enregistrer","aria-label":"Enregistrer le produit",onClick:Fr,type:"button"},[...l[145]||(l[145]=[o("i",{class:"fa-solid fa-floppy-disk"},null,-1)])]),o("button",{class:"icon-btn",title:"Rafraîchir","aria-label":"Rafraîchir le produit",onClick:Lr,type:"button"},[...l[146]||(l[146]=[o("i",{class:"fa-solid fa-rotate"},null,-1)])]),o("button",{class:"icon-btn",title:"Supprimer","aria-label":"Supprimer le produit",onClick:Or,type:"button"},[...l[147]||(l[147]=[o("i",{class:"fa-solid fa-trash"},null,-1)])])])])])])])],8,Gp)])):Te("",!0),o("div",jm,[o("div",Um,"API "+I(Pi.value),1),o("div",Vm,"DB "+I(J.value.db?"OK":"KO"),1),o("div",Bm,"Redis "+I(J.value.redis?"OK":"KO"),1),o("button",{class:"icon-btn",title:"Logs",onClick:Cn},[...l[149]||(l[149]=[o("i",{class:"fa-solid fa-scroll"},null,-1)])])]),d.value?(R(),$("div",{key:3,class:"fixed inset-0 bg-black/40 z-50",onClick:Gs(Cn,["self"])},[o("div",Wm,[o("div",{class:"flex items-center justify-between mb-2"},[l[151]||(l[151]=o("div",{class:"section-title text-lg"},"Logs",-1)),o("button",{class:"icon-btn",title:"Fermer",onClick:Cn},[...l[150]||(l[150]=[o("i",{class:"fa-solid fa-xmark"},null,-1)])])]),o("div",Gm,[(R(!0),$(ie,null,xe(_n.value,f=>(R(),$("div",{key:f.id,class:Se(["panel p-2 log-entry",{"log-entry-error":f.level==="ERROR"}])},[o("div",Km,I(f.time)+" - "+I(f.source)+" - "+I(f.level),1),o("div",null,I(f.message),1)],2))),128)),_n.value.length===0?(R(),$("div",zm,"Aucun log")):Te("",!0)]),o("div",Zm,[o("button",{class:"icon-btn",title:"Frontend","aria-label":"Afficher logs frontend",onClick:l[50]||(l[50]=f=>v.value="frontend")},[...l[152]||(l[152]=[o("i",{class:"fa-solid fa-desktop"},null,-1)])]),o("button",{class:"icon-btn",title:"Backend","aria-label":"Afficher logs backend",onClick:l[51]||(l[51]=f=>v.value="backend")},[...l[153]||(l[153]=[o("i",{class:"fa-solid fa-server"},null,-1)])]),o("button",{class:"icon-btn",title:"Uvicorn","aria-label":"Afficher logs uvicorn",onClick:l[52]||(l[52]=f=>v.value="uvicorn")},[...l[154]||(l[154]=[o("i",{class:"fa-solid fa-terminal"},null,-1)])]),o("button",{class:"icon-btn",title:"Erreurs","aria-label":"Afficher les erreurs uniquement",onClick:l[53]||(l[53]=f=>v.value="errors")},[...l[155]||(l[155]=[o("i",{class:"fa-solid fa-triangle-exclamation"},null,-1)])]),o("button",{class:"icon-btn",title:"Rafraichir","aria-label":"Rafraîchir les logs",onClick:Gi},[...l[156]||(l[156]=[o("i",{class:"fa-solid fa-rotate"},null,-1)])]),o("button",{class:"icon-btn",title:"Copier logs","aria-label":"Copier les logs",onClick:Wr},[...l[157]||(l[157]=[o("i",{class:"fa-solid fa-copy"},null,-1)])])])])])):Te("",!0),Ae(jc,{visible:E.value,position:S.value.position,history:S.value.history,"current-price":S.value.currentPrice,"min-price":S.value.minPrice,"max-price":S.value.maxPrice,delta:S.value.delta,onMouseenter:Pr,onMouseleave:Mr},null,8,["visible","position","history","current-price","min-price","max-price","delta"])],6))}});Ac(Qm).mount("#app");