diff --git a/.output/nitro.json b/.output/nitro.json index 17c6bb7..a7a507d 100644 --- a/.output/nitro.json +++ b/.output/nitro.json @@ -1,9 +1,5 @@ { -<<<<<<< HEAD - "date": "2025-02-20T11:11:06.704Z", -======= - "date": "2025-02-20T07:16:44.595Z", ->>>>>>> parent of 1d74a9f (no message) + "date": "2025-02-20T11:27:58.716Z", "preset": "node-server", "framework": { "name": "nuxt", diff --git a/.output/public/_nuxt/B4CZI61d.js b/.output/public/_nuxt/B4CZI61d.js new file mode 100644 index 0000000..806f751 --- /dev/null +++ b/.output/public/_nuxt/B4CZI61d.js @@ -0,0 +1 @@ +import{a2 as ur,a3 as ia,a4 as Gt,a5 as dt,a6 as ir,a7 as ca,a8 as Ma,a9 as cr,aa as zt,ab as xa,ac as Wt,ad as En,ae as bt,af as Ya,ag as dr,b as Ae,_ as Oe,K as Mn,ah as da,d as ie,a as Va,ai as fr,w as Zt,aj as xn,ak as fa,U as $t,al as Tn,J as he,am as vr,an as Ze,ao as pr,ap as mr,aq as hr,ar as gr,F as We,as as yr,at as La,au as br,av as kr,aw as wr,E as Me,O as Cr,ax as Sr,ay as Dr,L as Kt,az as it,aA as va,aB as It,aC as ct,aD as Ar,e as Mt,g as Er,H as Mr,aE as xr,j as ta,T as Tr,M as Pr,aF as _r,aG as $r}from"./BnReMd0k.js";import{d as Ce,D as Ne,H as xe,r as J,j as K,e as Ta,al as Le,I as ke,v as W,A as ne,P as He,x as O,K as B,E as e,V as rt,ac as ut,aa as Pn,a2 as _n,t as ee,z as U,N as we,am as gt,T as Pe,F as jt,ad as $n,an as Ir,o as qt,S as Re,ao as Br,J as fe,C as ue,a1 as Ct,ah as In,ag as aa,$ as pa,ap as Xt,a6 as Or,L as Dt,ak as Ue,W as ze,ab as Fr,O as Ie,B as Te,y as ve,aq as pe,ar as Bn,as as Na,at as Rr,a0 as At,au as Yr,a9 as Pa,a4 as On,u as Vr,av as Lr}from"./C0eoOjsX.js";import{i as Fn,d as Nr,e as Hr,f as zr,g as _a,u as Wr,h as Rn,j as Kr,b as Ge,E as Yn,k as jr,l as Vn,m as Ur,n as Qr,o as Jr,T as Gr,c as Ut}from"./BE7hzMIt.js";import{u as Zr}from"./y8qSb7BL.js";import{_ as qr}from"./DlAUqK2U.js";var Xr=/\s/;function es(t){for(var r=t.length;r--&&Xr.test(t.charAt(r)););return r}var ts=/^\s+/;function as(t){return t&&t.slice(0,es(t)+1).replace(ts,"")}var Ha=NaN,ns=/^[-+]0x[0-9a-f]+$/i,rs=/^0b[01]+$/i,ss=/^0o[0-7]+$/i,ls=parseInt;function za(t){if(typeof t=="number")return t;if(ur(t))return Ha;if(ia(t)){var r=typeof t.valueOf=="function"?t.valueOf():t;t=ia(r)?r+"":r}if(typeof t!="string")return t===0?t:+t;t=as(t);var a=rs.test(t);return a||ss.test(t)?ls(t.slice(2),a?2:8):ns.test(t)?Ha:+t}var ma=Gt(dt,"WeakMap");function os(t){return t!=null&&Fn(t.length)&&!ir(t)}var us=Object.prototype;function is(t){var r=t&&t.constructor,a=typeof r=="function"&&r.prototype||us;return t===a}function cs(t,r){for(var a=-1,n=Array(t);++a<t;)n[a]=r(a);return n}function ds(){return!1}var Ln=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wa=Ln&&typeof module=="object"&&module&&!module.nodeType&&module,fs=Wa&&Wa.exports===Ln,Ka=fs?dt.Buffer:void 0,vs=Ka?Ka.isBuffer:void 0,ha=vs||ds,ps="[object Arguments]",ms="[object Array]",hs="[object Boolean]",gs="[object Date]",ys="[object Error]",bs="[object Function]",ks="[object Map]",ws="[object Number]",Cs="[object Object]",Ss="[object RegExp]",Ds="[object Set]",As="[object String]",Es="[object WeakMap]",Ms="[object ArrayBuffer]",xs="[object DataView]",Ts="[object Float32Array]",Ps="[object Float64Array]",_s="[object Int8Array]",$s="[object Int16Array]",Is="[object Int32Array]",Bs="[object Uint8Array]",Os="[object Uint8ClampedArray]",Fs="[object Uint16Array]",Rs="[object Uint32Array]",be={};be[Ts]=be[Ps]=be[_s]=be[$s]=be[Is]=be[Bs]=be[Os]=be[Fs]=be[Rs]=!0;be[ps]=be[ms]=be[Ms]=be[hs]=be[xs]=be[gs]=be[ys]=be[bs]=be[ks]=be[ws]=be[Cs]=be[Ss]=be[Ds]=be[As]=be[Es]=!1;function Ys(t){return ca(t)&&Fn(t.length)&&!!be[Ma(t)]}function Vs(t){return function(r){return t(r)}}var Nn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,St=Nn&&typeof module=="object"&&module&&!module.nodeType&&module,Ls=St&&St.exports===Nn,na=Ls&&cr.process,ja=function(){try{var t=St&&St.require&&St.require("util").types;return t||na&&na.binding&&na.binding("util")}catch{}}(),Ua=ja&&ja.isTypedArray,Hn=Ua?Vs(Ua):Ys,Ns=Object.prototype,Hs=Ns.hasOwnProperty;function zs(t,r){var a=zt(t),n=!a&&Nr(t),o=!a&&!n&&ha(t),l=!a&&!n&&!o&&Hn(t),d=a||n||o||l,h=d?cs(t.length,String):[],u=h.length;for(var D in t)Hs.call(t,D)&&!(d&&(D=="length"||o&&(D=="offset"||D=="parent")||l&&(D=="buffer"||D=="byteLength"||D=="byteOffset")||Hr(D,u)))&&h.push(D);return h}function Ws(t,r){return function(a){return t(r(a))}}var Ks=Ws(Object.keys,Object),js=Object.prototype,Us=js.hasOwnProperty;function Qs(t){if(!is(t))return Ks(t);var r=[];for(var a in Object(t))Us.call(t,a)&&a!="constructor"&&r.push(a);return r}function Js(t){return os(t)?zs(t):Qs(t)}function Gs(){this.__data__=new xa,this.size=0}function Zs(t){var r=this.__data__,a=r.delete(t);return this.size=r.size,a}function qs(t){return this.__data__.get(t)}function Xs(t){return this.__data__.has(t)}var el=200;function tl(t,r){var a=this.__data__;if(a instanceof xa){var n=a.__data__;if(!Wt||n.length<el-1)return n.push([t,r]),this.size=++a.size,this;a=this.__data__=new En(n)}return a.set(t,r),this.size=a.size,this}function nt(t){var r=this.__data__=new xa(t);this.size=r.size}nt.prototype.clear=Gs;nt.prototype.delete=Zs;nt.prototype.get=qs;nt.prototype.has=Xs;nt.prototype.set=tl;function al(t,r){for(var a=-1,n=t==null?0:t.length,o=0,l=[];++a<n;){var d=t[a];r(d,a,t)&&(l[o++]=d)}return l}function nl(){return[]}var rl=Object.prototype,sl=rl.propertyIsEnumerable,Qa=Object.getOwnPropertySymbols,ll=Qa?function(t){return t==null?[]:(t=Object(t),al(Qa(t),function(r){return sl.call(t,r)}))}:nl;function ol(t,r,a){var n=r(t);return zt(t)?n:zr(n,a(t))}function Ja(t){return ol(t,Js,ll)}var ga=Gt(dt,"DataView"),ya=Gt(dt,"Promise"),ba=Gt(dt,"Set"),Ga="[object Map]",ul="[object Object]",Za="[object Promise]",qa="[object Set]",Xa="[object WeakMap]",en="[object DataView]",il=bt(ga),cl=bt(Wt),dl=bt(ya),fl=bt(ba),vl=bt(ma),at=Ma;(ga&&at(new ga(new ArrayBuffer(1)))!=en||Wt&&at(new Wt)!=Ga||ya&&at(ya.resolve())!=Za||ba&&at(new ba)!=qa||ma&&at(new ma)!=Xa)&&(at=function(t){var r=Ma(t),a=r==ul?t.constructor:void 0,n=a?bt(a):"";if(n)switch(n){case il:return en;case cl:return Ga;case dl:return Za;case fl:return qa;case vl:return Xa}return r});var tn=dt.Uint8Array,pl="__lodash_hash_undefined__";function ml(t){return this.__data__.set(t,pl),this}function hl(t){return this.__data__.has(t)}function Qt(t){var r=-1,a=t==null?0:t.length;for(this.__data__=new En;++r<a;)this.add(t[r])}Qt.prototype.add=Qt.prototype.push=ml;Qt.prototype.has=hl;function gl(t,r){for(var a=-1,n=t==null?0:t.length;++a<n;)if(r(t[a],a,t))return!0;return!1}function yl(t,r){return t.has(r)}var bl=1,kl=2;function zn(t,r,a,n,o,l){var d=a&bl,h=t.length,u=r.length;if(h!=u&&!(d&&u>h))return!1;var D=l.get(t),k=l.get(r);if(D&&k)return D==r&&k==t;var c=-1,v=!0,b=a&kl?new Qt:void 0;for(l.set(t,r),l.set(r,t);++c<h;){var C=t[c],w=r[c];if(n)var T=d?n(w,C,c,r,t,l):n(C,w,c,t,r,l);if(T!==void 0){if(T)continue;v=!1;break}if(b){if(!gl(r,function($,m){if(!yl(b,m)&&(C===$||o(C,$,a,n,l)))return b.push(m)})){v=!1;break}}else if(!(C===w||o(C,w,a,n,l))){v=!1;break}}return l.delete(t),l.delete(r),v}function wl(t){var r=-1,a=Array(t.size);return t.forEach(function(n,o){a[++r]=[o,n]}),a}function Cl(t){var r=-1,a=Array(t.size);return t.forEach(function(n){a[++r]=n}),a}var Sl=1,Dl=2,Al="[object Boolean]",El="[object Date]",Ml="[object Error]",xl="[object Map]",Tl="[object Number]",Pl="[object RegExp]",_l="[object Set]",$l="[object String]",Il="[object Symbol]",Bl="[object ArrayBuffer]",Ol="[object DataView]",an=Ya?Ya.prototype:void 0,ra=an?an.valueOf:void 0;function Fl(t,r,a,n,o,l,d){switch(a){case Ol:if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case Bl:return!(t.byteLength!=r.byteLength||!l(new tn(t),new tn(r)));case Al:case El:case Tl:return dr(+t,+r);case Ml:return t.name==r.name&&t.message==r.message;case Pl:case $l:return t==r+"";case xl:var h=wl;case _l:var u=n&Sl;if(h||(h=Cl),t.size!=r.size&&!u)return!1;var D=d.get(t);if(D)return D==r;n|=Dl,d.set(t,r);var k=zn(h(t),h(r),n,o,l,d);return d.delete(t),k;case Il:if(ra)return ra.call(t)==ra.call(r)}return!1}var Rl=1,Yl=Object.prototype,Vl=Yl.hasOwnProperty;function Ll(t,r,a,n,o,l){var d=a&Rl,h=Ja(t),u=h.length,D=Ja(r),k=D.length;if(u!=k&&!d)return!1;for(var c=u;c--;){var v=h[c];if(!(d?v in r:Vl.call(r,v)))return!1}var b=l.get(t),C=l.get(r);if(b&&C)return b==r&&C==t;var w=!0;l.set(t,r),l.set(r,t);for(var T=d;++c<u;){v=h[c];var $=t[v],m=r[v];if(n)var g=d?n(m,$,v,r,t,l):n($,m,v,t,r,l);if(!(g===void 0?$===m||o($,m,a,n,l):g)){w=!1;break}T||(T=v=="constructor")}if(w&&!T){var f=t.constructor,p=r.constructor;f!=p&&"constructor"in t&&"constructor"in r&&!(typeof f=="function"&&f instanceof f&&typeof p=="function"&&p instanceof p)&&(w=!1)}return l.delete(t),l.delete(r),w}var Nl=1,nn="[object Arguments]",rn="[object Array]",xt="[object Object]",Hl=Object.prototype,sn=Hl.hasOwnProperty;function zl(t,r,a,n,o,l){var d=zt(t),h=zt(r),u=d?rn:at(t),D=h?rn:at(r);u=u==nn?xt:u,D=D==nn?xt:D;var k=u==xt,c=D==xt,v=u==D;if(v&&ha(t)){if(!ha(r))return!1;d=!0,k=!1}if(v&&!k)return l||(l=new nt),d||Hn(t)?zn(t,r,a,n,o,l):Fl(t,r,u,a,n,o,l);if(!(a&Nl)){var b=k&&sn.call(t,"__wrapped__"),C=c&&sn.call(r,"__wrapped__");if(b||C){var w=b?t.value():t,T=C?r.value():r;return l||(l=new nt),o(w,T,a,n,l)}}return v?(l||(l=new nt),Ll(t,r,a,n,o,l)):!1}function Wn(t,r,a,n,o){return t===r?!0:t==null||r==null||!ca(t)&&!ca(r)?t!==t&&r!==r:zl(t,r,a,n,Wn,o)}var sa=function(){return dt.Date.now()},Wl="Expected a function",Kl=Math.max,jl=Math.min;function Kn(t,r,a){var n,o,l,d,h,u,D=0,k=!1,c=!1,v=!0;if(typeof t!="function")throw new TypeError(Wl);r=za(r)||0,ia(a)&&(k=!!a.leading,c="maxWait"in a,l=c?Kl(za(a.maxWait)||0,r):l,v="trailing"in a?!!a.trailing:v);function b(S){var _=n,F=o;return n=o=void 0,D=S,d=t.apply(F,_),d}function C(S){return D=S,h=setTimeout($,r),k?b(S):d}function w(S){var _=S-u,F=S-D,z=r-_;return c?jl(z,l-F):z}function T(S){var _=S-u,F=S-D;return u===void 0||_>=r||_<0||c&&F>=l}function $(){var S=sa();if(T(S))return m(S);h=setTimeout($,w(S))}function m(S){return h=void 0,v&&n?b(S):(n=o=void 0,d)}function g(){h!==void 0&&clearTimeout(h),D=0,n=u=o=h=void 0}function f(){return h===void 0?d:m(sa())}function p(){var S=sa(),_=T(S);if(n=arguments,o=this,u=S,_){if(h===void 0)return C(u);if(c)return clearTimeout(h),h=setTimeout($,r),b(u)}return h===void 0&&(h=setTimeout($,r)),d}return p.cancel=g,p.flush=f,p}function Ul(t,r){return Wn(t,r)}const mt=4,Ql={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},Jl=({move:t,size:r,bar:a})=>({[a.size]:r,transform:`translate${a.axis}(${t}%)`}),$a=Symbol("scrollbarContextKey"),Gl=Ae({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),Zl="Thumb",ql=Ce({__name:"thumb",props:Gl,setup(t){const r=t,a=Ne($a),n=xe("scrollbar");a||Mn(Zl,"can not inject scrollbar context");const o=J(),l=J(),d=J({}),h=J(!1);let u=!1,D=!1,k=_n?document.onselectstart:null;const c=K(()=>Ql[r.vertical?"vertical":"horizontal"]),v=K(()=>Jl({size:r.size,move:r.move,bar:c.value})),b=K(()=>o.value[c.value.offset]**2/a.wrapElement[c.value.scrollSize]/r.ratio/l.value[c.value.offset]),C=S=>{var _;if(S.stopPropagation(),S.ctrlKey||[1,2].includes(S.button))return;(_=window.getSelection())==null||_.removeAllRanges(),T(S);const F=S.currentTarget;F&&(d.value[c.value.axis]=F[c.value.offset]-(S[c.value.client]-F.getBoundingClientRect()[c.value.direction]))},w=S=>{if(!l.value||!o.value||!a.wrapElement)return;const _=Math.abs(S.target.getBoundingClientRect()[c.value.direction]-S[c.value.client]),F=l.value[c.value.offset]/2,z=(_-F)*100*b.value/o.value[c.value.offset];a.wrapElement[c.value.scroll]=z*a.wrapElement[c.value.scrollSize]/100},T=S=>{S.stopImmediatePropagation(),u=!0,document.addEventListener("mousemove",$),document.addEventListener("mouseup",m),k=document.onselectstart,document.onselectstart=()=>!1},$=S=>{if(!o.value||!l.value||u===!1)return;const _=d.value[c.value.axis];if(!_)return;const F=(o.value.getBoundingClientRect()[c.value.direction]-S[c.value.client])*-1,z=l.value[c.value.offset]-_,V=(F-z)*100*b.value/o.value[c.value.offset];a.wrapElement[c.value.scroll]=V*a.wrapElement[c.value.scrollSize]/100},m=()=>{u=!1,d.value[c.value.axis]=0,document.removeEventListener("mousemove",$),document.removeEventListener("mouseup",m),p(),D&&(h.value=!1)},g=()=>{D=!1,h.value=!!r.size},f=()=>{D=!0,h.value=u};Ta(()=>{p(),document.removeEventListener("mouseup",m)});const p=()=>{document.onselectstart!==k&&(document.onselectstart=k)};return da(Le(a,"scrollbarElement"),"mousemove",g),da(Le(a,"scrollbarElement"),"mouseleave",f),(S,_)=>(W(),ke(Pn,{name:e(n).b("fade"),persisted:""},{default:ne(()=>[He(O("div",{ref_key:"instance",ref:o,class:B([e(n).e("bar"),e(n).is(e(c).key)]),onMousedown:w},[O("div",{ref_key:"thumb",ref:l,class:B(e(n).e("thumb")),style:rt(e(v)),onMousedown:C},null,38)],34),[[ut,S.always||h.value]])]),_:1},8,["name"]))}});var ln=Oe(ql,[["__file","thumb.vue"]]);const Xl=Ae({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),eo=Ce({__name:"bar",props:Xl,setup(t,{expose:r}){const a=t,n=Ne($a),o=J(0),l=J(0),d=J(""),h=J(""),u=J(1),D=J(1);return r({handleScroll:v=>{if(v){const b=v.offsetHeight-mt,C=v.offsetWidth-mt;l.value=v.scrollTop*100/b*u.value,o.value=v.scrollLeft*100/C*D.value}},update:()=>{const v=n==null?void 0:n.wrapElement;if(!v)return;const b=v.offsetHeight-mt,C=v.offsetWidth-mt,w=b**2/v.scrollHeight,T=C**2/v.scrollWidth,$=Math.max(w,a.minSize),m=Math.max(T,a.minSize);u.value=w/(b-w)/($/(b-$)),D.value=T/(C-T)/(m/(C-m)),h.value=$+mt<b?`${$}px`:"",d.value=m+mt<C?`${m}px`:""}}),(v,b)=>(W(),ee(we,null,[U(ln,{move:o.value,ratio:D.value,size:d.value,always:v.always},null,8,["move","ratio","size","always"]),U(ln,{move:l.value,ratio:u.value,size:h.value,vertical:"",always:v.always},null,8,["move","ratio","size","always"])],64))}});var to=Oe(eo,[["__file","bar.vue"]]);const ao=Ae({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:ie([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,..._a(["ariaLabel","ariaOrientation"])}),no={scroll:({scrollTop:t,scrollLeft:r})=>[t,r].every(gt)},ro="ElScrollbar",so=Ce({name:ro}),lo=Ce({...so,props:ao,emits:no,setup(t,{expose:r,emit:a}){const n=t,o=xe("scrollbar");let l,d,h=0,u=0;const D=J(),k=J(),c=J(),v=J(),b=K(()=>{const p={};return n.height&&(p.height=Va(n.height)),n.maxHeight&&(p.maxHeight=Va(n.maxHeight)),[n.wrapStyle,p]}),C=K(()=>[n.wrapClass,o.e("wrap"),{[o.em("wrap","hidden-default")]:!n.native}]),w=K(()=>[o.e("view"),n.viewClass]),T=()=>{var p;k.value&&((p=v.value)==null||p.handleScroll(k.value),h=k.value.scrollTop,u=k.value.scrollLeft,a("scroll",{scrollTop:k.value.scrollTop,scrollLeft:k.value.scrollLeft}))};function $(p,S){In(p)?k.value.scrollTo(p):gt(p)&>(S)&&k.value.scrollTo(p,S)}const m=p=>{gt(p)&&(k.value.scrollTop=p)},g=p=>{gt(p)&&(k.value.scrollLeft=p)},f=()=>{var p;(p=v.value)==null||p.update()};return Pe(()=>n.noresize,p=>{p?(l==null||l(),d==null||d()):({stop:l}=fr(c,f),d=da("resize",f))},{immediate:!0}),Pe(()=>[n.maxHeight,n.height],()=>{n.native||Re(()=>{var p;f(),k.value&&((p=v.value)==null||p.handleScroll(k.value))})}),jt($a,$n({scrollbarElement:D,wrapElement:k})),Ir(()=>{k.value&&(k.value.scrollTop=h,k.value.scrollLeft=u)}),qt(()=>{n.native||Re(()=>{f()})}),Br(()=>f()),r({wrapRef:k,update:f,scrollTo:$,setScrollTop:m,setScrollLeft:g,handleScroll:T}),(p,S)=>(W(),ee("div",{ref_key:"scrollbarRef",ref:D,class:B(e(o).b())},[O("div",{ref_key:"wrapRef",ref:k,class:B(e(C)),style:rt(e(b)),tabindex:p.tabindex,onScroll:T},[(W(),ke(Ct(p.tag),{id:p.id,ref_key:"resizeRef",ref:c,class:B(e(w)),style:rt(p.viewStyle),role:p.role,"aria-label":p.ariaLabel,"aria-orientation":p.ariaOrientation},{default:ne(()=>[ue(p.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,["tabindex"]),p.native?fe("v-if",!0):(W(),ke(to,{key:0,ref_key:"barRef",ref:v,always:p.always,"min-size":p.minSize},null,8,["always","min-size"]))],2))}});var oo=Oe(lo,[["__file","scrollbar.vue"]]);const jn=Zt(oo),uo=Ae({valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:ie(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:ie([Function,Array]),default:pa},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},teleported:Wr.teleported,highlightFirstItem:{type:Boolean,default:!1},fitInputWidth:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},name:String,..._a(["ariaLabel"])}),io={[$t]:t=>aa(t),[fa]:t=>aa(t),[xn]:t=>aa(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,select:t=>In(t)},Un="ElAutocomplete",co=Ce({name:Un,inheritAttrs:!1}),fo=Ce({...co,props:uo,emits:io,setup(t,{expose:r,emit:a}){const n=t,o=Rn(),l=Xt(),d=Kr(),h=xe("autocomplete"),u=J(),D=J(),k=J(),c=J();let v=!1,b=!1;const C=J([]),w=J(-1),T=J(""),$=J(!1),m=J(!1),g=J(!1),f=Or(),p=K(()=>l.style),S=K(()=>(C.value.length>0||g.value)&&$.value),_=K(()=>!n.hideLoading&&g.value),F=K(()=>u.value?Array.from(u.value.$el.querySelectorAll("input")):[]),z=()=>{S.value&&(T.value=`${u.value.$el.offsetWidth}px`)},V=()=>{w.value=-1},j=async L=>{if(m.value)return;const re=de=>{g.value=!1,!m.value&&(pe(de)?(C.value=de,w.value=n.highlightFirstItem?0:-1):Mn(Un,"autocomplete suggestions must be an array"))};if(g.value=!0,pe(n.fetchSuggestions))re(n.fetchSuggestions);else{const de=await n.fetchSuggestions(L,re);pe(de)&&re(de)}},ae=Kn(j,n.debounce),G=L=>{const re=!!L;if(a(fa,L),a($t,L),m.value=!1,$.value||($.value=re),!n.triggerOnFocus&&!L){m.value=!0,C.value=[];return}ae(L)},Z=L=>{var re;d.value||(((re=L.target)==null?void 0:re.tagName)!=="INPUT"||F.value.includes(document.activeElement))&&($.value=!0)},N=L=>{a(xn,L)},Y=L=>{b?b=!1:($.value=!0,a("focus",L),n.triggerOnFocus&&!v&&ae(String(n.modelValue)))},R=L=>{setTimeout(()=>{var re;if((re=k.value)!=null&&re.isFocusInsideContent()){b=!0;return}$.value&&y(),a("blur",L)})},I=()=>{$.value=!1,a($t,""),a("clear")},i=async()=>{S.value&&w.value>=0&&w.value<C.value.length?H(C.value[w.value]):n.selectWhenUnmatched&&(a("select",{value:n.modelValue}),C.value=[],w.value=-1)},E=L=>{S.value&&(L.preventDefault(),L.stopPropagation(),y())},y=()=>{$.value=!1},P=()=>{var L;(L=u.value)==null||L.focus()},A=()=>{var L;(L=u.value)==null||L.blur()},H=async L=>{a(fa,L[n.valueKey]),a($t,L[n.valueKey]),a("select",L),C.value=[],w.value=-1},q=L=>{if(!S.value||g.value)return;if(L<0){w.value=-1;return}L>=C.value.length&&(L=C.value.length-1);const re=D.value.querySelector(`.${h.be("suggestion","wrap")}`),ce=re.querySelectorAll(`.${h.be("suggestion","list")} li`)[L],ye=re.scrollTop,{offsetTop:Ee,scrollHeight:me}=ce;Ee+me>ye+re.clientHeight&&(re.scrollTop+=me),Ee<ye&&(re.scrollTop-=me),w.value=L,u.value.ref.setAttribute("aria-activedescendant",`${f.value}-item-${w.value}`)},se=Tn(c,()=>{var L;(L=k.value)!=null&&L.isFocusInsideContent()||S.value&&y()});return Ta(()=>{se==null||se()}),qt(()=>{u.value.ref.setAttribute("role","textbox"),u.value.ref.setAttribute("aria-autocomplete","list"),u.value.ref.setAttribute("aria-controls","id"),u.value.ref.setAttribute("aria-activedescendant",`${f.value}-item-${w.value}`),v=u.value.ref.hasAttribute("readonly")}),r({highlightedIndex:w,activated:$,loading:g,inputRef:u,popperRef:k,suggestions:C,handleSelect:H,handleKeyEnter:i,focus:P,blur:A,close:y,highlight:q,getData:j}),(L,re)=>(W(),ke(e(Yn),{ref_key:"popperRef",ref:k,visible:e(S),placement:L.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[e(h).e("popper"),L.popperClass],teleported:L.teleported,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${e(h).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:z,onHide:V},{content:ne(()=>[O("div",{ref_key:"regionRef",ref:D,class:B([e(h).b("suggestion"),e(h).is("loading",e(_))]),style:rt({[L.fitInputWidth?"width":"minWidth"]:T.value,outline:"none"}),role:"region"},[U(e(jn),{id:e(f),tag:"ul","wrap-class":e(h).be("suggestion","wrap"),"view-class":e(h).be("suggestion","list"),role:"listbox"},{default:ne(()=>[e(_)?(W(),ee("li",{key:0},[ue(L.$slots,"loading",{},()=>[U(e(he),{class:B(e(h).is("loading"))},{default:ne(()=>[U(e(vr))]),_:1},8,["class"])])])):(W(!0),ee(we,{key:1},Ie(C.value,(de,ce)=>(W(),ee("li",{id:`${e(f)}-item-${ce}`,key:ce,class:B({highlighted:w.value===ce}),role:"option","aria-selected":w.value===ce,onClick:ye=>H(de)},[ue(L.$slots,"default",{item:de},()=>[Te(ve(de[L.valueKey]),1)])],10,["id","aria-selected","onClick"]))),128))]),_:3},8,["id","wrap-class","view-class"])],6)]),default:ne(()=>[O("div",{ref_key:"listboxRef",ref:c,class:B([e(h).b(),L.$attrs.class]),style:rt(e(p)),role:"combobox","aria-haspopup":"listbox","aria-expanded":e(S),"aria-owns":e(f)},[U(e(Ge),Dt({ref_key:"inputRef",ref:u},e(o),{clearable:L.clearable,disabled:e(d),name:L.name,"model-value":L.modelValue,"aria-label":L.ariaLabel,onInput:G,onChange:N,onFocus:Y,onBlur:R,onClear:I,onKeydown:[Ue(ze(de=>q(w.value-1),["prevent"]),["up"]),Ue(ze(de=>q(w.value+1),["prevent"]),["down"]),Ue(i,["enter"]),Ue(y,["tab"]),Ue(E,["esc"])],onMousedown:Z}),Fr({_:2},[L.$slots.prepend?{name:"prepend",fn:ne(()=>[ue(L.$slots,"prepend")])}:void 0,L.$slots.append?{name:"append",fn:ne(()=>[ue(L.$slots,"append")])}:void 0,L.$slots.prefix?{name:"prefix",fn:ne(()=>[ue(L.$slots,"prefix")])}:void 0,L.$slots.suffix?{name:"suffix",fn:ne(()=>[ue(L.$slots,"suffix")])}:void 0]),1040,["clearable","disabled","name","model-value","aria-label","onKeydown"])],14,["aria-expanded","aria-owns"])]),_:3},8,["visible","placement","popper-class","teleported","transition"]))}});var vo=Oe(fo,[["__file","autocomplete.vue"]]);const po=Zt(vo);var Bt={exports:{}},mo=Bt.exports,on;function ho(){return on||(on=1,function(t,r){(function(a,n){t.exports=n()})(mo,function(){var a=1e3,n=6e4,o=36e5,l="millisecond",d="second",h="minute",u="hour",D="day",k="week",c="month",v="quarter",b="year",C="date",w="Invalid Date",T=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(Z){var N=["th","st","nd","rd"],Y=Z%100;return"["+Z+(N[(Y-20)%10]||N[Y]||N[0])+"]"}},g=function(Z,N,Y){var R=String(Z);return!R||R.length>=N?Z:""+Array(N+1-R.length).join(Y)+Z},f={s:g,z:function(Z){var N=-Z.utcOffset(),Y=Math.abs(N),R=Math.floor(Y/60),I=Y%60;return(N<=0?"+":"-")+g(R,2,"0")+":"+g(I,2,"0")},m:function Z(N,Y){if(N.date()<Y.date())return-Z(Y,N);var R=12*(Y.year()-N.year())+(Y.month()-N.month()),I=N.clone().add(R,c),i=Y-I<0,E=N.clone().add(R+(i?-1:1),c);return+(-(R+(Y-I)/(i?I-E:E-I))||0)},a:function(Z){return Z<0?Math.ceil(Z)||0:Math.floor(Z)},p:function(Z){return{M:c,y:b,w:k,d:D,D:C,h:u,m:h,s:d,ms:l,Q:v}[Z]||String(Z||"").toLowerCase().replace(/s$/,"")},u:function(Z){return Z===void 0}},p="en",S={};S[p]=m;var _="$isDayjsObject",F=function(Z){return Z instanceof ae||!(!Z||!Z[_])},z=function Z(N,Y,R){var I;if(!N)return p;if(typeof N=="string"){var i=N.toLowerCase();S[i]&&(I=i),Y&&(S[i]=Y,I=i);var E=N.split("-");if(!I&&E.length>1)return Z(E[0])}else{var y=N.name;S[y]=N,I=y}return!R&&I&&(p=I),I||!R&&p},V=function(Z,N){if(F(Z))return Z.clone();var Y=typeof N=="object"?N:{};return Y.date=Z,Y.args=arguments,new ae(Y)},j=f;j.l=z,j.i=F,j.w=function(Z,N){return V(Z,{locale:N.$L,utc:N.$u,x:N.$x,$offset:N.$offset})};var ae=function(){function Z(Y){this.$L=z(Y.locale,null,!0),this.parse(Y),this.$x=this.$x||Y.x||{},this[_]=!0}var N=Z.prototype;return N.parse=function(Y){this.$d=function(R){var I=R.date,i=R.utc;if(I===null)return new Date(NaN);if(j.u(I))return new Date;if(I instanceof Date)return new Date(I);if(typeof I=="string"&&!/Z$/i.test(I)){var E=I.match(T);if(E){var y=E[2]-1||0,P=(E[7]||"0").substring(0,3);return i?new Date(Date.UTC(E[1],y,E[3]||1,E[4]||0,E[5]||0,E[6]||0,P)):new Date(E[1],y,E[3]||1,E[4]||0,E[5]||0,E[6]||0,P)}}return new Date(I)}(Y),this.init()},N.init=function(){var Y=this.$d;this.$y=Y.getFullYear(),this.$M=Y.getMonth(),this.$D=Y.getDate(),this.$W=Y.getDay(),this.$H=Y.getHours(),this.$m=Y.getMinutes(),this.$s=Y.getSeconds(),this.$ms=Y.getMilliseconds()},N.$utils=function(){return j},N.isValid=function(){return this.$d.toString()!==w},N.isSame=function(Y,R){var I=V(Y);return this.startOf(R)<=I&&I<=this.endOf(R)},N.isAfter=function(Y,R){return V(Y)<this.startOf(R)},N.isBefore=function(Y,R){return this.endOf(R)<V(Y)},N.$g=function(Y,R,I){return j.u(Y)?this[R]:this.set(I,Y)},N.unix=function(){return Math.floor(this.valueOf()/1e3)},N.valueOf=function(){return this.$d.getTime()},N.startOf=function(Y,R){var I=this,i=!!j.u(R)||R,E=j.p(Y),y=function(de,ce){var ye=j.w(I.$u?Date.UTC(I.$y,ce,de):new Date(I.$y,ce,de),I);return i?ye:ye.endOf(D)},P=function(de,ce){return j.w(I.toDate()[de].apply(I.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(ce)),I)},A=this.$W,H=this.$M,q=this.$D,se="set"+(this.$u?"UTC":"");switch(E){case b:return i?y(1,0):y(31,11);case c:return i?y(1,H):y(0,H+1);case k:var L=this.$locale().weekStart||0,re=(A<L?A+7:A)-L;return y(i?q-re:q+(6-re),H);case D:case C:return P(se+"Hours",0);case u:return P(se+"Minutes",1);case h:return P(se+"Seconds",2);case d:return P(se+"Milliseconds",3);default:return this.clone()}},N.endOf=function(Y){return this.startOf(Y,!1)},N.$set=function(Y,R){var I,i=j.p(Y),E="set"+(this.$u?"UTC":""),y=(I={},I[D]=E+"Date",I[C]=E+"Date",I[c]=E+"Month",I[b]=E+"FullYear",I[u]=E+"Hours",I[h]=E+"Minutes",I[d]=E+"Seconds",I[l]=E+"Milliseconds",I)[i],P=i===D?this.$D+(R-this.$W):R;if(i===c||i===b){var A=this.clone().set(C,1);A.$d[y](P),A.init(),this.$d=A.set(C,Math.min(this.$D,A.daysInMonth())).$d}else y&&this.$d[y](P);return this.init(),this},N.set=function(Y,R){return this.clone().$set(Y,R)},N.get=function(Y){return this[j.p(Y)]()},N.add=function(Y,R){var I,i=this;Y=Number(Y);var E=j.p(R),y=function(H){var q=V(i);return j.w(q.date(q.date()+Math.round(H*Y)),i)};if(E===c)return this.set(c,this.$M+Y);if(E===b)return this.set(b,this.$y+Y);if(E===D)return y(1);if(E===k)return y(7);var P=(I={},I[h]=n,I[u]=o,I[d]=a,I)[E]||1,A=this.$d.getTime()+Y*P;return j.w(A,this)},N.subtract=function(Y,R){return this.add(-1*Y,R)},N.format=function(Y){var R=this,I=this.$locale();if(!this.isValid())return I.invalidDate||w;var i=Y||"YYYY-MM-DDTHH:mm:ssZ",E=j.z(this),y=this.$H,P=this.$m,A=this.$M,H=I.weekdays,q=I.months,se=I.meridiem,L=function(ce,ye,Ee,me){return ce&&(ce[ye]||ce(R,i))||Ee[ye].slice(0,me)},re=function(ce){return j.s(y%12||12,ce,"0")},de=se||function(ce,ye,Ee){var me=ce<12?"AM":"PM";return Ee?me.toLowerCase():me};return i.replace($,function(ce,ye){return ye||function(Ee){switch(Ee){case"YY":return String(R.$y).slice(-2);case"YYYY":return j.s(R.$y,4,"0");case"M":return A+1;case"MM":return j.s(A+1,2,"0");case"MMM":return L(I.monthsShort,A,q,3);case"MMMM":return L(q,A);case"D":return R.$D;case"DD":return j.s(R.$D,2,"0");case"d":return String(R.$W);case"dd":return L(I.weekdaysMin,R.$W,H,2);case"ddd":return L(I.weekdaysShort,R.$W,H,3);case"dddd":return H[R.$W];case"H":return String(y);case"HH":return j.s(y,2,"0");case"h":return re(1);case"hh":return re(2);case"a":return de(y,P,!0);case"A":return de(y,P,!1);case"m":return String(P);case"mm":return j.s(P,2,"0");case"s":return String(R.$s);case"ss":return j.s(R.$s,2,"0");case"SSS":return j.s(R.$ms,3,"0");case"Z":return E}return null}(ce)||E.replace(":","")})},N.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},N.diff=function(Y,R,I){var i,E=this,y=j.p(R),P=V(Y),A=(P.utcOffset()-this.utcOffset())*n,H=this-P,q=function(){return j.m(E,P)};switch(y){case b:i=q()/12;break;case c:i=q();break;case v:i=q()/3;break;case k:i=(H-A)/6048e5;break;case D:i=(H-A)/864e5;break;case u:i=H/o;break;case h:i=H/n;break;case d:i=H/a;break;default:i=H}return I?i:j.a(i)},N.daysInMonth=function(){return this.endOf(c).$D},N.$locale=function(){return S[this.$L]},N.locale=function(Y,R){if(!Y)return this.$L;var I=this.clone(),i=z(Y,R,!0);return i&&(I.$L=i),I},N.clone=function(){return j.w(this.$d,this)},N.toDate=function(){return new Date(this.valueOf())},N.toJSON=function(){return this.isValid()?this.toISOString():null},N.toISOString=function(){return this.$d.toISOString()},N.toString=function(){return this.$d.toUTCString()},Z}(),G=ae.prototype;return V.prototype=G,[["$ms",l],["$s",d],["$m",h],["$H",u],["$W",D],["$M",c],["$y",b],["$D",C]].forEach(function(Z){G[Z[1]]=function(N){return this.$g(N,Z[0],Z[1])}}),V.extend=function(Z,N){return Z.$i||(Z(N,ae,V),Z.$i=!0),V},V.locale=z,V.isDayjs=F,V.unix=function(Z){return V(1e3*Z)},V.en=S[p],V.Ls=S,V.p={},V})}(Bt)),Bt.exports}var go=ho();const te=Ze(go),la=(t,r)=>[t>0?t-1:void 0,t,t<r?t+1:void 0],Qn=t=>Array.from(Array.from({length:t}).keys()),Jn=t=>t.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),Gn=t=>t.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),un=function(t,r){const a=Na(t),n=Na(r);return a&&n?t.getTime()===r.getTime():!a&&!n?t===r:!1},cn=function(t,r){const a=pe(t),n=pe(r);return a&&n?t.length!==r.length?!1:t.every((o,l)=>un(o,r[l])):!a&&!n?un(t,r):!1},dn=function(t,r,a){const n=Bn(r)||r==="x"?te(t).locale(a):te(t,r).locale(a);return n.isValid()?n:void 0},fn=function(t,r,a){return Bn(r)?t:r==="x"?+t:te(t).locale(a).format(r)},oa=(t,r)=>{var a;const n=[],o=r==null?void 0:r();for(let l=0;l<t;l++)n.push((a=o==null?void 0:o.includes(l))!=null?a:!1);return n},Tt=t=>pe(t)?t.map(r=>r.toDate()):t.toDate();var Ot={exports:{}},yo=Ot.exports,vn;function bo(){return vn||(vn=1,function(t,r){(function(a,n){t.exports=n()})(yo,function(){return function(a,n,o){var l=n.prototype,d=function(c){return c&&(c.indexOf?c:c.s)},h=function(c,v,b,C,w){var T=c.name?c:c.$locale(),$=d(T[v]),m=d(T[b]),g=$||m.map(function(p){return p.slice(0,C)});if(!w)return g;var f=T.weekStart;return g.map(function(p,S){return g[(S+(f||0))%7]})},u=function(){return o.Ls[o.locale()]},D=function(c,v){return c.formats[v]||function(b){return b.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(C,w,T){return w||T.slice(1)})}(c.formats[v.toUpperCase()])},k=function(){var c=this;return{months:function(v){return v?v.format("MMMM"):h(c,"months")},monthsShort:function(v){return v?v.format("MMM"):h(c,"monthsShort","months",3)},firstDayOfWeek:function(){return c.$locale().weekStart||0},weekdays:function(v){return v?v.format("dddd"):h(c,"weekdays")},weekdaysMin:function(v){return v?v.format("dd"):h(c,"weekdaysMin","weekdays",2)},weekdaysShort:function(v){return v?v.format("ddd"):h(c,"weekdaysShort","weekdays",3)},longDateFormat:function(v){return D(c.$locale(),v)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};l.localeData=function(){return k.bind(this)()},o.localeData=function(){var c=u();return{firstDayOfWeek:function(){return c.weekStart||0},weekdays:function(){return o.weekdays()},weekdaysShort:function(){return o.weekdaysShort()},weekdaysMin:function(){return o.weekdaysMin()},months:function(){return o.months()},monthsShort:function(){return o.monthsShort()},longDateFormat:function(v){return D(c,v)},meridiem:c.meridiem,ordinal:c.ordinal}},o.months=function(){return h(u(),"months")},o.monthsShort=function(){return h(u(),"monthsShort","months",3)},o.weekdays=function(c){return h(u(),"weekdays",null,null,c)},o.weekdaysShort=function(c){return h(u(),"weekdaysShort","weekdays",3,c)},o.weekdaysMin=function(c){return h(u(),"weekdaysMin","weekdays",2,c)}}})}(Ot)),Ot.exports}var ko=bo();const wo=Ze(ko),Co=["year","years","month","months","date","dates","week","datetime","datetimerange","daterange","monthrange","yearrange"],Ve=t=>!t&&t!==0?[]:pe(t)?t:[t],tt=new Map;if(_n){let t;document.addEventListener("mousedown",r=>t=r),document.addEventListener("mouseup",r=>{if(t){for(const a of tt.values())for(const{documentHandler:n}of a)n(r,t);t=void 0}})}function pn(t,r){let a=[];return pe(r.arg)?a=r.arg:Rr(r.arg)&&a.push(r.arg),function(n,o){const l=r.instance.popperRef,d=n.target,h=o==null?void 0:o.target,u=!r||!r.instance,D=!d||!h,k=t.contains(d)||t.contains(h),c=t===d,v=a.length&&a.some(C=>C==null?void 0:C.contains(d))||a.length&&a.includes(h),b=l&&(l.contains(d)||l.contains(h));u||D||k||c||v||b||r.value(n,o)}}const ka={beforeMount(t,r){tt.has(t)||tt.set(t,[]),tt.get(t).push({documentHandler:pn(t,r),bindingFn:r.value})},updated(t,r){tt.has(t)||tt.set(t,[]);const a=tt.get(t),n=a.findIndex(l=>l.bindingFn===r.oldValue),o={documentHandler:pn(t,r),bindingFn:r.value};n>=0?a.splice(n,1,o):a.push(o)},unmounted(t){tt.delete(t)}},So=Zt(pr);var Ft={exports:{}},Do=Ft.exports,mn;function Ao(){return mn||(mn=1,function(t,r){(function(a,n){t.exports=n()})(Do,function(){var a={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},n=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,o=/\d/,l=/\d\d/,d=/\d\d?/,h=/\d*[^-_:/,()\s\d]+/,u={},D=function(T){return(T=+T)+(T>68?1900:2e3)},k=function(T){return function($){this[T]=+$}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(T){(this.zone||(this.zone={})).offset=function($){if(!$||$==="Z")return 0;var m=$.match(/([+-]|\d\d)/g),g=60*m[1]+(+m[2]||0);return g===0?0:m[0]==="+"?-g:g}(T)}],v=function(T){var $=u[T];return $&&($.indexOf?$:$.s.concat($.f))},b=function(T,$){var m,g=u.meridiem;if(g){for(var f=1;f<=24;f+=1)if(T.indexOf(g(f,0,$))>-1){m=f>12;break}}else m=T===($?"pm":"PM");return m},C={A:[h,function(T){this.afternoon=b(T,!1)}],a:[h,function(T){this.afternoon=b(T,!0)}],Q:[o,function(T){this.month=3*(T-1)+1}],S:[o,function(T){this.milliseconds=100*+T}],SS:[l,function(T){this.milliseconds=10*+T}],SSS:[/\d{3}/,function(T){this.milliseconds=+T}],s:[d,k("seconds")],ss:[d,k("seconds")],m:[d,k("minutes")],mm:[d,k("minutes")],H:[d,k("hours")],h:[d,k("hours")],HH:[d,k("hours")],hh:[d,k("hours")],D:[d,k("day")],DD:[l,k("day")],Do:[h,function(T){var $=u.ordinal,m=T.match(/\d+/);if(this.day=m[0],$)for(var g=1;g<=31;g+=1)$(g).replace(/\[|\]/g,"")===T&&(this.day=g)}],w:[d,k("week")],ww:[l,k("week")],M:[d,k("month")],MM:[l,k("month")],MMM:[h,function(T){var $=v("months"),m=(v("monthsShort")||$.map(function(g){return g.slice(0,3)})).indexOf(T)+1;if(m<1)throw new Error;this.month=m%12||m}],MMMM:[h,function(T){var $=v("months").indexOf(T)+1;if($<1)throw new Error;this.month=$%12||$}],Y:[/[+-]?\d+/,k("year")],YY:[l,function(T){this.year=D(T)}],YYYY:[/\d{4}/,k("year")],Z:c,ZZ:c};function w(T){var $,m;$=T,m=u&&u.formats;for(var g=(T=$.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(V,j,ae){var G=ae&&ae.toUpperCase();return j||m[ae]||a[ae]||m[G].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(Z,N,Y){return N||Y.slice(1)})})).match(n),f=g.length,p=0;p<f;p+=1){var S=g[p],_=C[S],F=_&&_[0],z=_&&_[1];g[p]=z?{regex:F,parser:z}:S.replace(/^\[|\]$/g,"")}return function(V){for(var j={},ae=0,G=0;ae<f;ae+=1){var Z=g[ae];if(typeof Z=="string")G+=Z.length;else{var N=Z.regex,Y=Z.parser,R=V.slice(G),I=N.exec(R)[0];Y.call(j,I),V=V.replace(I,"")}}return function(i){var E=i.afternoon;if(E!==void 0){var y=i.hours;E?y<12&&(i.hours+=12):y===12&&(i.hours=0),delete i.afternoon}}(j),j}}return function(T,$,m){m.p.customParseFormat=!0,T&&T.parseTwoDigitYear&&(D=T.parseTwoDigitYear);var g=$.prototype,f=g.parse;g.parse=function(p){var S=p.date,_=p.utc,F=p.args;this.$u=_;var z=F[1];if(typeof z=="string"){var V=F[2]===!0,j=F[3]===!0,ae=V||j,G=F[2];j&&(G=F[2]),u=this.$locale(),!V&&G&&(u=m.Ls[G]),this.$d=function(R,I,i,E){try{if(["x","X"].indexOf(I)>-1)return new Date((I==="X"?1e3:1)*R);var y=w(I)(R),P=y.year,A=y.month,H=y.day,q=y.hours,se=y.minutes,L=y.seconds,re=y.milliseconds,de=y.zone,ce=y.week,ye=new Date,Ee=H||(P||A?1:ye.getDate()),me=P||ye.getFullYear(),_e=0;P&&!A||(_e=A>0?A-1:ye.getMonth());var Fe,Ke=q||0,$e=se||0,je=L||0,oe=re||0;return de?new Date(Date.UTC(me,_e,Ee,Ke,$e,je,oe+60*de.offset*1e3)):i?new Date(Date.UTC(me,_e,Ee,Ke,$e,je,oe)):(Fe=new Date(me,_e,Ee,Ke,$e,je,oe),ce&&(Fe=E(Fe).week(ce).toDate()),Fe)}catch{return new Date("")}}(S,z,_,m),this.init(),G&&G!==!0&&(this.$L=this.locale(G).$L),ae&&S!=this.format(z)&&(this.$d=new Date("")),u={}}else if(z instanceof Array)for(var Z=z.length,N=1;N<=Z;N+=1){F[1]=z[N-1];var Y=m.apply(this,F);if(Y.isValid()){this.$d=Y.$d,this.$L=Y.$L,this.init();break}N===Z&&(this.$d=new Date(""))}else f.call(this,p)}}})}(Ft)),Ft.exports}var Eo=Ao();const Mo=Ze(Eo);var Rt={exports:{}},xo=Rt.exports,hn;function To(){return hn||(hn=1,function(t,r){(function(a,n){t.exports=n()})(xo,function(){return function(a,n){var o=n.prototype,l=o.format;o.format=function(d){var h=this,u=this.$locale();if(!this.isValid())return l.bind(this)(d);var D=this.$utils(),k=(d||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(c){switch(c){case"Q":return Math.ceil((h.$M+1)/3);case"Do":return u.ordinal(h.$D);case"gggg":return h.weekYear();case"GGGG":return h.isoWeekYear();case"wo":return u.ordinal(h.week(),"W");case"w":case"ww":return D.s(h.week(),c==="w"?1:2,"0");case"W":case"WW":return D.s(h.isoWeek(),c==="W"?1:2,"0");case"k":case"kk":return D.s(String(h.$H===0?24:h.$H),c==="k"?1:2,"0");case"X":return Math.floor(h.$d.getTime()/1e3);case"x":return h.$d.getTime();case"z":return"["+h.offsetName()+"]";case"zzz":return"["+h.offsetName("long")+"]";default:return c}});return l.bind(this)(k)}}})}(Rt)),Rt.exports}var Po=To();const _o=Ze(Po);var Yt={exports:{}},$o=Yt.exports,gn;function Io(){return gn||(gn=1,function(t,r){(function(a,n){t.exports=n()})($o,function(){var a="week",n="year";return function(o,l,d){var h=l.prototype;h.week=function(u){if(u===void 0&&(u=null),u!==null)return this.add(7*(u-this.week()),"day");var D=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var k=d(this).startOf(n).add(1,n).date(D),c=d(this).endOf(a);if(k.isBefore(c))return 1}var v=d(this).startOf(n).date(D).startOf(a).subtract(1,"millisecond"),b=this.diff(v,a,!0);return b<0?d(this).startOf("week").week():Math.ceil(b)},h.weeks=function(u){return u===void 0&&(u=null),this.week(u)}}})}(Yt)),Yt.exports}var Bo=Io();const Oo=Ze(Bo);var Vt={exports:{}},Fo=Vt.exports,yn;function Ro(){return yn||(yn=1,function(t,r){(function(a,n){t.exports=n()})(Fo,function(){return function(a,n){n.prototype.weekYear=function(){var o=this.month(),l=this.week(),d=this.year();return l===1&&o===11?d+1:o===0&&l>=52?d-1:d}}})}(Vt)),Vt.exports}var Yo=Ro();const Vo=Ze(Yo);var Lt={exports:{}},Lo=Lt.exports,bn;function No(){return bn||(bn=1,function(t,r){(function(a,n){t.exports=n()})(Lo,function(){return function(a,n,o){n.prototype.dayOfYear=function(l){var d=Math.round((o(this).startOf("day")-o(this).startOf("year"))/864e5)+1;return l==null?d:this.add(l-d,"day")}}})}(Lt)),Lt.exports}var Ho=No();const zo=Ze(Ho);var Nt={exports:{}},Wo=Nt.exports,kn;function Ko(){return kn||(kn=1,function(t,r){(function(a,n){t.exports=n()})(Wo,function(){return function(a,n){n.prototype.isSameOrAfter=function(o,l){return this.isSame(o,l)||this.isAfter(o,l)}}})}(Nt)),Nt.exports}var jo=Ko();const Uo=Ze(jo);var Ht={exports:{}},Qo=Ht.exports,wn;function Jo(){return wn||(wn=1,function(t,r){(function(a,n){t.exports=n()})(Qo,function(){return function(a,n){n.prototype.isSameOrBefore=function(o,l){return this.isSame(o,l)||this.isBefore(o,l)}}})}(Ht)),Ht.exports}var Go=Jo();const Zo=Ze(Go),Cn=["hours","minutes","seconds"],Sn="HH:mm:ss",ht="YYYY-MM-DD",qo={date:ht,dates:ht,week:"gggg[w]ww",year:"YYYY",years:"YYYY",month:"YYYY-MM",months:"YYYY-MM",datetime:`${ht} ${Sn}`,monthrange:"YYYY-MM",yearrange:"YYYY",daterange:ht,datetimerange:`${ht} ${Sn}`},Zn=Ae({disabledHours:{type:ie(Function)},disabledMinutes:{type:ie(Function)},disabledSeconds:{type:ie(Function)}}),Xo=Ae({visible:Boolean,actualVisible:{type:Boolean,default:void 0},format:{type:String,default:""}}),qn=Ae({id:{type:ie([Array,String])},name:{type:ie([Array,String])},popperClass:{type:String,default:""},format:String,valueFormat:String,dateFormat:String,timeFormat:String,type:{type:String,default:""},clearable:{type:Boolean,default:!0},clearIcon:{type:ie([String,Object]),default:gr},editable:{type:Boolean,default:!0},prefixIcon:{type:ie([String,Object]),default:""},size:hr,readonly:Boolean,disabled:Boolean,placeholder:{type:String,default:""},popperOptions:{type:ie(Object),default:()=>({})},modelValue:{type:ie([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:ie([Date,Array])},defaultTime:{type:ie([Date,Array])},isRange:Boolean,...Zn,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,tabindex:{type:ie([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean,placement:{type:ie(String),values:jr,default:"bottom"},fallbackPlacements:{type:ie(Array),default:["bottom","top","right","left"]},...mr,..._a(["ariaLabel"]),showNow:{type:Boolean,default:!0}}),eu=Ae({id:{type:ie(Array)},name:{type:ie(Array)},modelValue:{type:ie([Array,String])},startPlaceholder:String,endPlaceholder:String}),tu=Ce({name:"PickerRangeTrigger",inheritAttrs:!1}),au=Ce({...tu,props:eu,emits:["mouseenter","mouseleave","click","touchstart","focus","blur","startInput","endInput","startChange","endChange"],setup(t,{expose:r,emit:a}){const n=Rn(),o=xe("date"),l=xe("range"),d=J(),h=J(),{wrapperRef:u,isFocused:D}=Vn(d),k=f=>{a("click",f)},c=f=>{a("mouseenter",f)},v=f=>{a("mouseleave",f)},b=f=>{a("mouseenter",f)},C=f=>{a("startInput",f)},w=f=>{a("endInput",f)},T=f=>{a("startChange",f)},$=f=>{a("endChange",f)};return r({focus:()=>{var f;(f=d.value)==null||f.focus()},blur:()=>{var f,p;(f=d.value)==null||f.blur(),(p=h.value)==null||p.blur()}}),(f,p)=>(W(),ee("div",{ref_key:"wrapperRef",ref:u,class:B([e(o).is("active",e(D)),f.$attrs.class]),style:rt(f.$attrs.style),onClick:k,onMouseenter:c,onMouseleave:v,onTouchstartPassive:b},[ue(f.$slots,"prefix"),O("input",Dt(e(n),{id:f.id&&f.id[0],ref_key:"inputRef",ref:d,name:f.name&&f.name[0],placeholder:f.startPlaceholder,value:f.modelValue&&f.modelValue[0],class:e(l).b("input"),onInput:C,onChange:T}),null,16,["id","name","placeholder","value"]),ue(f.$slots,"range-separator"),O("input",Dt(e(n),{id:f.id&&f.id[1],ref_key:"endInputRef",ref:h,name:f.name&&f.name[1],placeholder:f.endPlaceholder,value:f.modelValue&&f.modelValue[1],class:e(l).b("input"),onInput:w,onChange:$}),null,16,["id","name","placeholder","value"]),ue(f.$slots,"suffix")],38))}});var nu=Oe(au,[["__file","picker-range-trigger.vue"]]);const ru=Ce({name:"Picker"}),su=Ce({...ru,props:qn,emits:["update:modelValue","change","focus","blur","clear","calendar-change","panel-change","visible-change","keydown"],setup(t,{expose:r,emit:a}){const n=t,o=Xt(),{lang:l}=We(),d=xe("date"),h=xe("input"),u=xe("range"),{form:D,formItem:k}=Ur(),c=Ne("ElPopperOptions",{}),{valueOnClear:v}=yr(n,null),b=J(),C=J(),w=J(!1),T=J(!1),$=J(null);let m=!1;const{isFocused:g,handleFocus:f,handleBlur:p}=Vn(C,{beforeFocus(){return n.readonly||i.value},afterFocus(){w.value=!0},beforeBlur(s){var X;return!m&&((X=b.value)==null?void 0:X.isFocusInsideContent(s))},afterBlur(){Be(),w.value=!1,m=!1,n.validateEvent&&(k==null||k.validate("blur").catch(s=>La()))}}),S=K(()=>[d.b("editor"),d.bm("editor",n.type),h.e("wrapper"),d.is("disabled",i.value),d.is("active",w.value),u.b("editor"),Ke?u.bm("editor",Ke.value):"",o.class]),_=K(()=>[h.e("icon"),u.e("close-icon"),re.value?"":u.e("close-icon--hidden")]);Pe(w,s=>{s?Re(()=>{s&&($.value=n.modelValue)}):(oe.value=null,Re(()=>{F(n.modelValue)}))});const F=(s,X)=>{(X||!cn(s,$.value))&&(a("change",s),n.validateEvent&&(k==null||k.validate("change").catch(le=>La())))},z=s=>{if(!cn(n.modelValue,s)){let X;pe(s)?X=s.map(le=>fn(le,n.valueFormat,l.value)):s&&(X=fn(s,n.valueFormat,l.value)),a("update:modelValue",s&&X,l.value)}},V=s=>{a("keydown",s)},j=K(()=>C.value?Array.from(C.value.$el.querySelectorAll("input")):[]),ae=(s,X,le)=>{const De=j.value;De.length&&(!le||le==="min"?(De[0].setSelectionRange(s,X),De[0].focus()):le==="max"&&(De[1].setSelectionRange(s,X),De[1].focus()))},G=(s="",X=!1)=>{w.value=X;let le;pe(s)?le=s.map(De=>De.toDate()):le=s&&s.toDate(),oe.value=null,z(le)},Z=()=>{T.value=!0},N=()=>{a("visible-change",!0)},Y=()=>{T.value=!1,w.value=!1,a("visible-change",!1)},R=()=>{w.value=!0},I=()=>{w.value=!1},i=K(()=>n.disabled||(D==null?void 0:D.disabled)),E=K(()=>{let s;if(ce.value?Se.value.getDefaultValue&&(s=Se.value.getDefaultValue()):pe(n.modelValue)?s=n.modelValue.map(X=>dn(X,n.valueFormat,l.value)):s=dn(n.modelValue,n.valueFormat,l.value),Se.value.getRangeAvailableTime){const X=Se.value.getRangeAvailableTime(s);Ul(X,s)||(s=X,ce.value||z(Tt(s)))}return pe(s)&&s.some(X=>!X)&&(s=[]),s}),y=K(()=>{if(!Se.value.panelReady)return"";const s=st(E.value);return pe(oe.value)?[oe.value[0]||s&&s[0]||"",oe.value[1]||s&&s[1]||""]:oe.value!==null?oe.value:!A.value&&ce.value||!w.value&&ce.value?"":s?H.value||q.value||se.value?s.join(", "):s:""}),P=K(()=>n.type.includes("time")),A=K(()=>n.type.startsWith("time")),H=K(()=>n.type==="dates"),q=K(()=>n.type==="months"),se=K(()=>n.type==="years"),L=K(()=>n.prefixIcon||(P.value?br:kr)),re=J(!1),de=s=>{n.readonly||i.value||(re.value&&(s.stopPropagation(),Se.value.handleClear?Se.value.handleClear():z(v.value),F(v.value,!0),re.value=!1,Y()),a("clear"))},ce=K(()=>{const{modelValue:s}=n;return!s||pe(s)&&!s.filter(Boolean).length}),ye=async s=>{var X;n.readonly||i.value||(((X=s.target)==null?void 0:X.tagName)!=="INPUT"||g.value)&&(w.value=!0)},Ee=()=>{n.readonly||i.value||!ce.value&&n.clearable&&(re.value=!0)},me=()=>{re.value=!1},_e=s=>{var X;n.readonly||i.value||(((X=s.touches[0].target)==null?void 0:X.tagName)!=="INPUT"||g.value)&&(w.value=!0)},Fe=K(()=>n.type.includes("range")),Ke=Qr(),$e=K(()=>{var s,X;return(X=(s=e(b))==null?void 0:s.popperRef)==null?void 0:X.contentRef}),je=Tn(C,s=>{const X=e($e),le=wr(C);X&&(s.target===X||s.composedPath().includes(X))||s.target===le||le&&s.composedPath().includes(le)||(w.value=!1)});Ta(()=>{je==null||je()});const oe=J(null),Be=()=>{if(oe.value){const s=Ye(y.value);s&&qe(s)&&(z(Tt(s)),oe.value=null)}oe.value===""&&(z(v.value),F(v.value),oe.value=null)},Ye=s=>s?Se.value.parseUserInput(s):null,st=s=>s?Se.value.formatToString(s):null,qe=s=>Se.value.isValidValue(s),lt=async s=>{if(n.readonly||i.value)return;const{code:X}=s;if(V(s),X===Me.esc){w.value===!0&&(w.value=!1,s.preventDefault(),s.stopPropagation());return}if(X===Me.down&&(Se.value.handleFocusPicker&&(s.preventDefault(),s.stopPropagation()),w.value===!1&&(w.value=!0,await Re()),Se.value.handleFocusPicker)){Se.value.handleFocusPicker();return}if(X===Me.tab){m=!0;return}if(X===Me.enter||X===Me.numpadEnter){(oe.value===null||oe.value===""||qe(Ye(y.value)))&&(Be(),w.value=!1),s.stopPropagation();return}if(oe.value){s.stopPropagation();return}Se.value.handleKeydownInput&&Se.value.handleKeydownInput(s)},ft=s=>{oe.value=s,w.value||(w.value=!0)},vt=s=>{const X=s.target;oe.value?oe.value=[X.value,oe.value[1]]:oe.value=[X.value,null]},Xe=s=>{const X=s.target;oe.value?oe.value=[oe.value[0],X.value]:oe.value=[null,X.value]},Je=()=>{var s;const X=oe.value,le=Ye(X&&X[0]),De=e(E);if(le&&le.isValid()){oe.value=[st(le),((s=y.value)==null?void 0:s[1])||null];const ot=[le,De&&(De[1]||null)];qe(ot)&&(z(Tt(ot)),oe.value=null)}},kt=()=>{var s;const X=e(oe),le=Ye(X&&X[1]),De=e(E);if(le&&le.isValid()){oe.value=[((s=e(y))==null?void 0:s[0])||null,st(le)];const ot=[De&&De[0],le];qe(ot)&&(z(Tt(ot)),oe.value=null)}},Se=J({}),pt=s=>{Se.value[s[0]]=s[1],Se.value.panelReady=!0},et=s=>{a("calendar-change",s)},M=(s,X,le)=>{a("panel-change",s,X,le)},x=()=>{var s;(s=C.value)==null||s.focus()},Q=()=>{var s;(s=C.value)==null||s.blur()};return jt("EP_PICKER_BASE",{props:n}),r({focus:x,blur:Q,handleOpen:R,handleClose:I,onPick:G}),(s,X)=>(W(),ke(e(Yn),Dt({ref_key:"refPopper",ref:b,visible:w.value,effect:"light",pure:"",trigger:"click"},s.$attrs,{role:"dialog",teleported:"",transition:`${e(d).namespace.value}-zoom-in-top`,"popper-class":[`${e(d).namespace.value}-picker__popper`,s.popperClass],"popper-options":e(c),"fallback-placements":s.fallbackPlacements,"gpu-acceleration":!1,placement:s.placement,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:Z,onShow:N,onHide:Y}),{default:ne(()=>[e(Fe)?(W(),ke(nu,{key:1,id:s.id,ref_key:"inputRef",ref:C,"model-value":e(y),name:s.name,disabled:e(i),readonly:!s.editable||s.readonly,"start-placeholder":s.startPlaceholder,"end-placeholder":s.endPlaceholder,class:B(e(S)),style:rt(s.$attrs.style),"aria-label":s.ariaLabel,tabindex:s.tabindex,autocomplete:"off",role:"combobox",onClick:ye,onFocus:e(f),onBlur:e(p),onStartInput:vt,onStartChange:Je,onEndInput:Xe,onEndChange:kt,onMousedown:ye,onMouseenter:Ee,onMouseleave:me,onTouchstartPassive:_e,onKeydown:lt},{prefix:ne(()=>[e(L)?(W(),ke(e(he),{key:0,class:B([e(h).e("icon"),e(u).e("icon")])},{default:ne(()=>[(W(),ke(Ct(e(L))))]),_:1},8,["class"])):fe("v-if",!0)]),"range-separator":ne(()=>[ue(s.$slots,"range-separator",{},()=>[O("span",{class:B(e(u).b("separator"))},ve(s.rangeSeparator),3)])]),suffix:ne(()=>[s.clearIcon?(W(),ke(e(he),{key:0,class:B(e(_)),onMousedown:ze(e(pa),["prevent"]),onClick:de},{default:ne(()=>[(W(),ke(Ct(s.clearIcon)))]),_:1},8,["class","onMousedown"])):fe("v-if",!0)]),_:3},8,["id","model-value","name","disabled","readonly","start-placeholder","end-placeholder","class","style","aria-label","tabindex","onFocus","onBlur"])):(W(),ke(e(Ge),{key:0,id:s.id,ref_key:"inputRef",ref:C,"container-role":"combobox","model-value":e(y),name:s.name,size:e(Ke),disabled:e(i),placeholder:s.placeholder,class:B([e(d).b("editor"),e(d).bm("editor",s.type),s.$attrs.class]),style:rt(s.$attrs.style),readonly:!s.editable||s.readonly||e(H)||e(q)||e(se)||s.type==="week","aria-label":s.ariaLabel,tabindex:s.tabindex,"validate-event":!1,onInput:ft,onFocus:e(f),onBlur:e(p),onKeydown:lt,onChange:Be,onMousedown:ye,onMouseenter:Ee,onMouseleave:me,onTouchstartPassive:_e,onClick:ze(()=>{},["stop"])},{prefix:ne(()=>[e(L)?(W(),ke(e(he),{key:0,class:B(e(h).e("icon")),onMousedown:ze(ye,["prevent"]),onTouchstartPassive:_e},{default:ne(()=>[(W(),ke(Ct(e(L))))]),_:1},8,["class","onMousedown"])):fe("v-if",!0)]),suffix:ne(()=>[re.value&&s.clearIcon?(W(),ke(e(he),{key:0,class:B(`${e(h).e("icon")} clear-icon`),onMousedown:ze(e(pa),["prevent"]),onClick:de},{default:ne(()=>[(W(),ke(Ct(s.clearIcon)))]),_:1},8,["class","onMousedown"])):fe("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","aria-label","tabindex","onFocus","onBlur","onClick"]))]),content:ne(()=>[ue(s.$slots,"default",{visible:w.value,actualVisible:T.value,parsedValue:e(E),format:s.format,dateFormat:s.dateFormat,timeFormat:s.timeFormat,unlinkPanels:s.unlinkPanels,type:s.type,defaultValue:s.defaultValue,showNow:s.showNow,onPick:G,onSelectRange:ae,onSetPickerOption:pt,onCalendarChange:et,onPanelChange:M,onMousedown:ze(()=>{},["stop"])})]),_:3},16,["visible","transition","popper-class","popper-options","fallback-placements","placement"]))}});var lu=Oe(su,[["__file","picker.vue"]]);const ou=Ae({...Xo,datetimeRole:String,parsedValue:{type:ie(Object)}}),uu=({getAvailableHours:t,getAvailableMinutes:r,getAvailableSeconds:a})=>{const n=(d,h,u,D)=>{const k={hour:t,minute:r,second:a};let c=d;return["hour","minute","second"].forEach(v=>{if(k[v]){let b;const C=k[v];switch(v){case"minute":{b=C(c.hour(),h,D);break}case"second":{b=C(c.hour(),c.minute(),h,D);break}default:{b=C(h,D);break}}if(b!=null&&b.length&&!b.includes(c[v]())){const w=u?0:b.length-1;c=c[v](b[w])}}}),c},o={};return{timePickerOptions:o,getAvailableTime:n,onSetOption:([d,h])=>{o[d]=h}}},ua=t=>{const r=(n,o)=>n||o,a=n=>n!==!0;return t.map(r).filter(a)},Xn=(t,r,a)=>({getHoursList:(d,h)=>oa(24,t&&(()=>t==null?void 0:t(d,h))),getMinutesList:(d,h,u)=>oa(60,r&&(()=>r==null?void 0:r(d,h,u))),getSecondsList:(d,h,u,D)=>oa(60,a&&(()=>a==null?void 0:a(d,h,u,D)))}),iu=(t,r,a)=>{const{getHoursList:n,getMinutesList:o,getSecondsList:l}=Xn(t,r,a);return{getAvailableHours:(D,k)=>ua(n(D,k)),getAvailableMinutes:(D,k,c)=>ua(o(D,k,c)),getAvailableSeconds:(D,k,c,v)=>ua(l(D,k,c,v))}},cu=t=>{const r=J(t.parsedValue);return Pe(()=>t.visible,a=>{a||(r.value=t.parsedValue)}),r},du=Ae({role:{type:String,required:!0},spinnerDate:{type:ie(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:ie(String),default:""},...Zn}),fu=100,vu=600,Dn={beforeMount(t,r){const a=r.value,{interval:n=fu,delay:o=vu}=At(a)?{}:a;let l,d;const h=()=>At(a)?a():a.handler(),u=()=>{d&&(clearTimeout(d),d=void 0),l&&(clearInterval(l),l=void 0)};t.addEventListener("mousedown",D=>{D.button===0&&(u(),h(),document.addEventListener("mouseup",()=>u(),{once:!0}),d=setTimeout(()=>{l=setInterval(()=>{h()},n)},o))})}},pu=Ce({__name:"basic-time-spinner",props:du,emits:["change","select-range","set-option"],setup(t,{emit:r}){const a=t,n=Ne("EP_PICKER_BASE"),{isRange:o}=n.props,l=xe("time"),{getHoursList:d,getMinutesList:h,getSecondsList:u}=Xn(a.disabledHours,a.disabledMinutes,a.disabledSeconds);let D=!1;const k=J(),c=J(),v=J(),b=J(),C={hours:c,minutes:v,seconds:b},w=K(()=>a.showSeconds?Cn:Cn.slice(0,2)),T=K(()=>{const{spinnerDate:y}=a,P=y.hour(),A=y.minute(),H=y.second();return{hours:P,minutes:A,seconds:H}}),$=K(()=>{const{hours:y,minutes:P}=e(T),{role:A,spinnerDate:H}=a,q=o?void 0:H;return{hours:d(A,q),minutes:h(y,A,q),seconds:u(y,P,A,q)}}),m=K(()=>{const{hours:y,minutes:P,seconds:A}=e(T);return{hours:la(y,23),minutes:la(P,59),seconds:la(A,59)}}),g=Kn(y=>{D=!1,S(y)},200),f=y=>{if(!!!a.amPmMode)return"";const A=a.amPmMode==="A";let H=y<12?" am":" pm";return A&&(H=H.toUpperCase()),H},p=y=>{let P;switch(y){case"hours":P=[0,2];break;case"minutes":P=[3,5];break;case"seconds":P=[6,8];break}const[A,H]=P;r("select-range",A,H),k.value=y},S=y=>{z(y,e(T)[y])},_=()=>{S("hours"),S("minutes"),S("seconds")},F=y=>y.querySelector(`.${l.namespace.value}-scrollbar__wrap`),z=(y,P)=>{if(a.arrowControl)return;const A=e(C[y]);A&&A.$el&&(F(A.$el).scrollTop=Math.max(0,P*V(y)))},V=y=>{const P=e(C[y]),A=P==null?void 0:P.$el.querySelector("li");return A&&Number.parseFloat(Cr(A,"height"))||0},j=()=>{G(1)},ae=()=>{G(-1)},G=y=>{k.value||p("hours");const P=k.value,A=e(T)[P],H=k.value==="hours"?24:60,q=Z(P,A,y,H);N(P,q),z(P,q),Re(()=>p(P))},Z=(y,P,A,H)=>{let q=(P+A+H)%H;const se=e($)[y];for(;se[q]&&q!==P;)q=(q+A+H)%H;return q},N=(y,P)=>{if(e($)[y][P])return;const{hours:q,minutes:se,seconds:L}=e(T);let re;switch(y){case"hours":re=a.spinnerDate.hour(P).minute(se).second(L);break;case"minutes":re=a.spinnerDate.hour(q).minute(P).second(L);break;case"seconds":re=a.spinnerDate.hour(q).minute(se).second(P);break}r("change",re)},Y=(y,{value:P,disabled:A})=>{A||(N(y,P),p(y),z(y,P))},R=y=>{const P=e(C[y]);if(!P)return;D=!0,g(y);const A=Math.min(Math.round((F(P.$el).scrollTop-(I(y)*.5-10)/V(y)+3)/V(y)),y==="hours"?23:59);N(y,A)},I=y=>e(C[y]).$el.offsetHeight,i=()=>{const y=P=>{const A=e(C[P]);A&&A.$el&&(F(A.$el).onscroll=()=>{R(P)})};y("hours"),y("minutes"),y("seconds")};qt(()=>{Re(()=>{!a.arrowControl&&i(),_(),a.role==="start"&&p("hours")})});const E=(y,P)=>{C[P].value=y??void 0};return r("set-option",[`${a.role}_scrollDown`,G]),r("set-option",[`${a.role}_emitSelectRange`,p]),Pe(()=>a.spinnerDate,()=>{D||_()}),(y,P)=>(W(),ee("div",{class:B([e(l).b("spinner"),{"has-seconds":y.showSeconds}])},[y.arrowControl?fe("v-if",!0):(W(!0),ee(we,{key:0},Ie(e(w),A=>(W(),ke(e(jn),{key:A,ref_for:!0,ref:H=>E(H,A),class:B(e(l).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":e(l).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:H=>p(A),onMousemove:H=>S(A)},{default:ne(()=>[(W(!0),ee(we,null,Ie(e($)[A],(H,q)=>(W(),ee("li",{key:q,class:B([e(l).be("spinner","item"),e(l).is("active",q===e(T)[A]),e(l).is("disabled",H)]),onClick:se=>Y(A,{value:q,disabled:H})},[A==="hours"?(W(),ee(we,{key:0},[Te(ve(("0"+(y.amPmMode?q%12||12:q)).slice(-2))+ve(f(q)),1)],64)):(W(),ee(we,{key:1},[Te(ve(("0"+q).slice(-2)),1)],64))],10,["onClick"]))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),y.arrowControl?(W(!0),ee(we,{key:1},Ie(e(w),A=>(W(),ee("div",{key:A,class:B([e(l).be("spinner","wrapper"),e(l).is("arrow")]),onMouseenter:H=>p(A)},[He((W(),ke(e(he),{class:B(["arrow-up",e(l).be("spinner","arrow")])},{default:ne(()=>[U(e(Sr))]),_:1},8,["class"])),[[e(Dn),ae]]),He((W(),ke(e(he),{class:B(["arrow-down",e(l).be("spinner","arrow")])},{default:ne(()=>[U(e(Dr))]),_:1},8,["class"])),[[e(Dn),j]]),O("ul",{class:B(e(l).be("spinner","list"))},[(W(!0),ee(we,null,Ie(e(m)[A],(H,q)=>(W(),ee("li",{key:q,class:B([e(l).be("spinner","item"),e(l).is("active",H===e(T)[A]),e(l).is("disabled",e($)[A][H])])},[e(gt)(H)?(W(),ee(we,{key:0},[A==="hours"?(W(),ee(we,{key:0},[Te(ve(("0"+(y.amPmMode?H%12||12:H)).slice(-2))+ve(f(H)),1)],64)):(W(),ee(we,{key:1},[Te(ve(("0"+H).slice(-2)),1)],64))],64)):fe("v-if",!0)],2))),128))],2)],42,["onMouseenter"]))),128)):fe("v-if",!0)],2))}});var mu=Oe(pu,[["__file","basic-time-spinner.vue"]]);const hu=Ce({__name:"panel-time-pick",props:ou,emits:["pick","select-range","set-picker-option"],setup(t,{emit:r}){const a=t,n=Ne("EP_PICKER_BASE"),{arrowControl:o,disabledHours:l,disabledMinutes:d,disabledSeconds:h,defaultValue:u}=n.props,{getAvailableHours:D,getAvailableMinutes:k,getAvailableSeconds:c}=iu(l,d,h),v=xe("time"),{t:b,lang:C}=We(),w=J([0,2]),T=cu(a),$=K(()=>Yr(a.actualVisible)?`${v.namespace.value}-zoom-in-top`:""),m=K(()=>a.format.includes("ss")),g=K(()=>a.format.includes("A")?"A":a.format.includes("a")?"a":""),f=I=>{const i=te(I).locale(C.value),E=Z(i);return i.isSame(E)},p=()=>{r("pick",T.value,!1)},S=(I=!1,i=!1)=>{i||r("pick",a.parsedValue,I)},_=I=>{if(!a.visible)return;const i=Z(I).millisecond(0);r("pick",i,!0)},F=(I,i)=>{r("select-range",I,i),w.value=[I,i]},z=I=>{const i=[0,3].concat(m.value?[6]:[]),E=["hours","minutes"].concat(m.value?["seconds"]:[]),P=(i.indexOf(w.value[0])+I+i.length)%i.length;j.start_emitSelectRange(E[P])},V=I=>{const i=I.code,{left:E,right:y,up:P,down:A}=Me;if([E,y].includes(i)){z(i===E?-1:1),I.preventDefault();return}if([P,A].includes(i)){const H=i===P?-1:1;j.start_scrollDown(H),I.preventDefault();return}},{timePickerOptions:j,onSetOption:ae,getAvailableTime:G}=uu({getAvailableHours:D,getAvailableMinutes:k,getAvailableSeconds:c}),Z=I=>G(I,a.datetimeRole||"",!0),N=I=>I?te(I,a.format).locale(C.value):null,Y=I=>I?I.format(a.format):null,R=()=>te(u).locale(C.value);return r("set-picker-option",["isValidValue",f]),r("set-picker-option",["formatToString",Y]),r("set-picker-option",["parseUserInput",N]),r("set-picker-option",["handleKeydownInput",V]),r("set-picker-option",["getRangeAvailableTime",Z]),r("set-picker-option",["getDefaultValue",R]),(I,i)=>(W(),ke(Pn,{name:e($)},{default:ne(()=>[I.actualVisible||I.visible?(W(),ee("div",{key:0,class:B(e(v).b("panel"))},[O("div",{class:B([e(v).be("panel","content"),{"has-seconds":e(m)}])},[U(mu,{ref:"spinner",role:I.datetimeRole||"start","arrow-control":e(o),"show-seconds":e(m),"am-pm-mode":e(g),"spinner-date":I.parsedValue,"disabled-hours":e(l),"disabled-minutes":e(d),"disabled-seconds":e(h),onChange:_,onSetOption:e(ae),onSelectRange:F},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),O("div",{class:B(e(v).be("panel","footer"))},[O("button",{type:"button",class:B([e(v).be("panel","btn"),"cancel"]),onClick:p},ve(e(b)("el.datepicker.cancel")),3),O("button",{type:"button",class:B([e(v).be("panel","btn"),"confirm"]),onClick:E=>S()},ve(e(b)("el.datepicker.confirm")),11,["onClick"])],2)],2)):fe("v-if",!0)]),_:1},8,["name"]))}});var wa=Oe(hu,[["__file","panel-time-pick.vue"]]);const ea=Symbol(),gu=Ae({...qn,type:{type:ie(String),default:"date"}}),yu=["date","dates","year","years","month","months","week","range"],Ia=Ae({disabledDate:{type:ie(Function)},date:{type:ie(Object),required:!0},minDate:{type:ie(Object)},maxDate:{type:ie(Object)},parsedValue:{type:ie([Object,Array])},rangeState:{type:ie(Object),default:()=>({endDate:null,selecting:!1})}}),er=Ae({type:{type:ie(String),required:!0,values:Co},dateFormat:String,timeFormat:String,showNow:{type:Boolean,default:!0}}),Ba=Ae({unlinkPanels:Boolean,parsedValue:{type:ie(Array)}}),Oa=t=>({type:String,values:yu,default:t}),bu=Ae({...er,parsedValue:{type:ie([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),yt=t=>{if(!pe(t))return!1;const[r,a]=t;return te.isDayjs(r)&&te.isDayjs(a)&&r.isSameOrBefore(a)},Fa=(t,{lang:r,unit:a,unlinkPanels:n})=>{let o;if(pe(t)){let[l,d]=t.map(h=>te(h).locale(r));return n||(d=l.add(1,a)),[l,d]}else t?o=te(t):o=te();return o=o.locale(r),[o,o.add(1,a)]},ku=(t,r,{columnIndexOffset:a,startDate:n,nextEndDate:o,now:l,unit:d,relativeDateGetter:h,setCellMetadata:u,setRowMetadata:D})=>{for(let k=0;k<t.row;k++){const c=r[k];for(let v=0;v<t.column;v++){let b=c[v+a];b||(b={row:k,column:v,type:"normal",inRange:!1,start:!1,end:!1});const C=k*t.column+v,w=h(C);b.dayjs=w,b.date=w.toDate(),b.timestamp=w.valueOf(),b.type="normal",b.inRange=!!(n&&w.isSameOrAfter(n,d)&&o&&w.isSameOrBefore(o,d))||!!(n&&w.isSameOrBefore(n,d)&&o&&w.isSameOrAfter(o,d)),n!=null&&n.isSameOrAfter(o)?(b.start=!!o&&w.isSame(o,d),b.end=n&&w.isSame(n,d)):(b.start=!!n&&w.isSame(n,d),b.end=!!o&&w.isSame(o,d)),w.isSame(l,d)&&(b.type="today"),u==null||u(b,{rowIndex:k,columnIndex:v}),c[v+a]=b}D==null||D(c)}},Jt=(t,r,a)=>{const n=te().locale(a).startOf("month").month(r).year(t),o=n.daysInMonth();return Qn(o).map(l=>n.add(l,"day").toDate())},Et=(t,r,a,n)=>{const o=te().year(t).month(r).startOf("month"),l=Jt(t,r,a).find(d=>!(n!=null&&n(d)));return l?te(l).locale(a):o.locale(a)},Ca=(t,r,a)=>{const n=t.year();if(!(a!=null&&a(t.toDate())))return t.locale(r);const o=t.month();if(!Jt(n,o,r).every(a))return Et(n,o,r,a);for(let l=0;l<12;l++)if(!Jt(n,l,r).every(a))return Et(n,l,r,a);return t},wu=Ae({...Ia,cellClassName:{type:ie(Function)},showWeekNumber:Boolean,selectionMode:Oa("date")}),Cu=["changerange","pick","select"],Sa=(t="")=>["normal","today"].includes(t),Su=(t,r)=>{const{lang:a}=We(),n=J(),o=J(),l=J(),d=J(),h=J([[],[],[],[],[],[]]);let u=!1;const D=t.date.$locale().weekStart||7,k=t.date.locale("en").localeData().weekdaysShort().map(i=>i.toLowerCase()),c=K(()=>D>3?7-D:-D),v=K(()=>{const i=t.date.startOf("month");return i.subtract(i.day()||7,"day")}),b=K(()=>k.concat(k).slice(D,D+7)),C=K(()=>Jr(e(f)).some(i=>i.isCurrent)),w=K(()=>{const i=t.date.startOf("month"),E=i.day()||7,y=i.daysInMonth(),P=i.subtract(1,"month").daysInMonth();return{startOfMonthDay:E,dateCountOfMonth:y,dateCountOfLastMonth:P}}),T=K(()=>t.selectionMode==="dates"?Ve(t.parsedValue):[]),$=(i,{count:E,rowIndex:y,columnIndex:P})=>{const{startOfMonthDay:A,dateCountOfMonth:H,dateCountOfLastMonth:q}=e(w),se=e(c);if(y>=0&&y<=1){const L=A+se<0?7+A+se:A+se;if(P+y*7>=L)return i.text=E,!0;i.text=q-(L-P%7)+1+y*7,i.type="prev-month"}else return E<=H?i.text=E:(i.text=E-H,i.type="next-month"),!0;return!1},m=(i,{columnIndex:E,rowIndex:y},P)=>{const{disabledDate:A,cellClassName:H}=t,q=e(T),se=$(i,{count:P,rowIndex:y,columnIndex:E}),L=i.dayjs.toDate();return i.selected=q.find(re=>re.isSame(i.dayjs,"day")),i.isSelected=!!i.selected,i.isCurrent=S(i),i.disabled=A==null?void 0:A(L),i.customClass=H==null?void 0:H(L),se},g=i=>{if(t.selectionMode==="week"){const[E,y]=t.showWeekNumber?[1,7]:[0,6],P=I(i[E+1]);i[E].inRange=P,i[E].start=P,i[y].inRange=P,i[y].end=P}},f=K(()=>{const{minDate:i,maxDate:E,rangeState:y,showWeekNumber:P}=t,A=e(c),H=e(h),q="day";let se=1;if(P)for(let L=0;L<6;L++)H[L][0]||(H[L][0]={type:"week",text:e(v).add(L*7+1,q).week()});return ku({row:6,column:7},H,{startDate:i,columnIndexOffset:P?1:0,nextEndDate:y.endDate||E||y.selecting&&i||null,now:te().locale(e(a)).startOf(q),unit:q,relativeDateGetter:L=>e(v).add(L-A,q),setCellMetadata:(...L)=>{m(...L,se)&&(se+=1)},setRowMetadata:g}),H});Pe(()=>t.date,async()=>{var i;(i=e(n))!=null&&i.contains(document.activeElement)&&(await Re(),await p())});const p=async()=>{var i;return(i=e(o))==null?void 0:i.focus()},S=i=>t.selectionMode==="date"&&Sa(i.type)&&_(i,t.parsedValue),_=(i,E)=>E?te(E).locale(e(a)).isSame(t.date.date(Number(i.text)),"day"):!1,F=(i,E)=>{const y=i*7+(E-(t.showWeekNumber?1:0))-e(c);return e(v).add(y,"day")},z=i=>{var E;if(!t.rangeState.selecting)return;let y=i.target;if(y.tagName==="SPAN"&&(y=(E=y.parentNode)==null?void 0:E.parentNode),y.tagName==="DIV"&&(y=y.parentNode),y.tagName!=="TD")return;const P=y.parentNode.rowIndex-1,A=y.cellIndex;e(f)[P][A].disabled||(P!==e(l)||A!==e(d))&&(l.value=P,d.value=A,r("changerange",{selecting:!0,endDate:F(P,A)}))},V=i=>!e(C)&&(i==null?void 0:i.text)===1&&i.type==="normal"||i.isCurrent,j=i=>{u||e(C)||t.selectionMode!=="date"||R(i,!0)},ae=i=>{i.target.closest("td")&&(u=!0)},G=i=>{i.target.closest("td")&&(u=!1)},Z=i=>{!t.rangeState.selecting||!t.minDate?(r("pick",{minDate:i,maxDate:null}),r("select",!0)):(i>=t.minDate?r("pick",{minDate:t.minDate,maxDate:i}):r("pick",{minDate:i,maxDate:t.minDate}),r("select",!1))},N=i=>{const E=i.week(),y=`${i.year()}w${E}`;r("pick",{year:i.year(),week:E,value:y,date:i.startOf("week")})},Y=(i,E)=>{const y=E?Ve(t.parsedValue).filter(P=>(P==null?void 0:P.valueOf())!==i.valueOf()):Ve(t.parsedValue).concat([i]);r("pick",y)},R=(i,E=!1)=>{const y=i.target.closest("td");if(!y)return;const P=y.parentNode.rowIndex-1,A=y.cellIndex,H=e(f)[P][A];if(H.disabled||H.type==="week")return;const q=F(P,A);switch(t.selectionMode){case"range":{Z(q);break}case"date":{r("pick",q,E);break}case"week":{N(q);break}case"dates":{Y(q,!!H.selected);break}}},I=i=>{if(t.selectionMode!=="week")return!1;let E=t.date.startOf("day");if(i.type==="prev-month"&&(E=E.subtract(1,"month")),i.type==="next-month"&&(E=E.add(1,"month")),E=E.date(Number.parseInt(i.text,10)),t.parsedValue&&!pe(t.parsedValue)){const y=(t.parsedValue.day()-D+7)%7-1;return t.parsedValue.subtract(y,"day").isSame(E,"day")}return!1};return{WEEKS:b,rows:f,tbodyRef:n,currentCellRef:o,focus:p,isCurrent:S,isWeekActive:I,isSelectedCell:V,handlePickDate:R,handleMouseUp:G,handleMouseDown:ae,handleMouseMove:z,handleFocus:j}},Du=(t,{isCurrent:r,isWeekActive:a})=>{const n=xe("date-table"),{t:o}=We(),l=K(()=>[n.b(),{"is-week-mode":t.selectionMode==="week"}]),d=K(()=>o("el.datepicker.dateTablePrompt")),h=K(()=>o("el.datepicker.week"));return{tableKls:l,tableLabel:d,weekLabel:h,getCellClasses:k=>{const c=[];return Sa(k.type)&&!k.disabled?(c.push("available"),k.type==="today"&&c.push("today")):c.push(k.type),r(k)&&c.push("current"),k.inRange&&(Sa(k.type)||t.selectionMode==="week")&&(c.push("in-range"),k.start&&c.push("start-date"),k.end&&c.push("end-date")),k.disabled&&c.push("disabled"),k.selected&&c.push("selected"),k.customClass&&c.push(k.customClass),c.join(" ")},getRowKls:k=>[n.e("row"),{current:a(k)}],t:o}},Au=Ae({cell:{type:ie(Object)}});var Ra=Ce({name:"ElDatePickerCell",props:Au,setup(t){const r=xe("date-table-cell"),{slots:a}=Ne(ea);return()=>{const{cell:n}=t;return ue(a,"default",{...n},()=>{var o;return[U("div",{class:r.b()},[U("span",{class:r.e("text")},[(o=n==null?void 0:n.renderText)!=null?o:n==null?void 0:n.text])])]})}}});const Eu=Ce({__name:"basic-date-table",props:wu,emits:Cu,setup(t,{expose:r,emit:a}){const n=t,{WEEKS:o,rows:l,tbodyRef:d,currentCellRef:h,focus:u,isCurrent:D,isWeekActive:k,isSelectedCell:c,handlePickDate:v,handleMouseUp:b,handleMouseDown:C,handleMouseMove:w,handleFocus:T}=Su(n,a),{tableLabel:$,tableKls:m,weekLabel:g,getCellClasses:f,getRowKls:p,t:S}=Du(n,{isCurrent:D,isWeekActive:k});return r({focus:u}),(_,F)=>(W(),ee("table",{"aria-label":e($),class:B(e(m)),cellspacing:"0",cellpadding:"0",role:"grid",onClick:e(v),onMousemove:e(w),onMousedown:ze(e(C),["prevent"]),onMouseup:e(b)},[O("tbody",{ref_key:"tbodyRef",ref:d},[O("tr",null,[_.showWeekNumber?(W(),ee("th",{key:0,scope:"col"},ve(e(g)),1)):fe("v-if",!0),(W(!0),ee(we,null,Ie(e(o),(z,V)=>(W(),ee("th",{key:V,"aria-label":e(S)("el.datepicker.weeksFull."+z),scope:"col"},ve(e(S)("el.datepicker.weeks."+z)),9,["aria-label"]))),128))]),(W(!0),ee(we,null,Ie(e(l),(z,V)=>(W(),ee("tr",{key:V,class:B(e(p)(z[1]))},[(W(!0),ee(we,null,Ie(z,(j,ae)=>(W(),ee("td",{key:`${V}.${ae}`,ref_for:!0,ref:G=>e(c)(j)&&(h.value=G),class:B(e(f)(j)),"aria-current":j.isCurrent?"date":void 0,"aria-selected":j.isCurrent,tabindex:e(c)(j)?0:-1,onFocus:e(T)},[U(e(Ra),{cell:j},null,8,["cell"])],42,["aria-current","aria-selected","tabindex","onFocus"]))),128))],2))),128))],512)],42,["aria-label","onClick","onMousemove","onMousedown","onMouseup"]))}});var Da=Oe(Eu,[["__file","basic-date-table.vue"]]);const Mu=Ae({...Ia,selectionMode:Oa("month")}),xu=Ce({__name:"basic-month-table",props:Mu,emits:["changerange","pick","select"],setup(t,{expose:r,emit:a}){const n=t,o=xe("month-table"),{t:l,lang:d}=We(),h=J(),u=J(),D=J(n.date.locale("en").localeData().monthsShort().map(g=>g.toLowerCase())),k=J([[],[],[]]),c=J(),v=J(),b=K(()=>{var g,f;const p=k.value,S=te().locale(d.value).startOf("month");for(let _=0;_<3;_++){const F=p[_];for(let z=0;z<4;z++){const V=F[z]||(F[z]={row:_,column:z,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});V.type="normal";const j=_*4+z,ae=n.date.startOf("year").month(j),G=n.rangeState.endDate||n.maxDate||n.rangeState.selecting&&n.minDate||null;V.inRange=!!(n.minDate&&ae.isSameOrAfter(n.minDate,"month")&&G&&ae.isSameOrBefore(G,"month"))||!!(n.minDate&&ae.isSameOrBefore(n.minDate,"month")&&G&&ae.isSameOrAfter(G,"month")),(g=n.minDate)!=null&&g.isSameOrAfter(G)?(V.start=!!(G&&ae.isSame(G,"month")),V.end=n.minDate&&ae.isSame(n.minDate,"month")):(V.start=!!(n.minDate&&ae.isSame(n.minDate,"month")),V.end=!!(G&&ae.isSame(G,"month"))),S.isSame(ae)&&(V.type="today"),V.text=j,V.disabled=((f=n.disabledDate)==null?void 0:f.call(n,ae.toDate()))||!1}}return p}),C=()=>{var g;(g=u.value)==null||g.focus()},w=g=>{const f={},p=n.date.year(),S=new Date,_=g.text;return f.disabled=n.disabledDate?Jt(p,_,d.value).every(n.disabledDate):!1,f.current=Ve(n.parsedValue).findIndex(F=>te.isDayjs(F)&&F.year()===p&&F.month()===_)>=0,f.today=S.getFullYear()===p&&S.getMonth()===_,g.inRange&&(f["in-range"]=!0,g.start&&(f["start-date"]=!0),g.end&&(f["end-date"]=!0)),f},T=g=>{const f=n.date.year(),p=g.text;return Ve(n.date).findIndex(S=>S.year()===f&&S.month()===p)>=0},$=g=>{var f;if(!n.rangeState.selecting)return;let p=g.target;if(p.tagName==="SPAN"&&(p=(f=p.parentNode)==null?void 0:f.parentNode),p.tagName==="DIV"&&(p=p.parentNode),p.tagName!=="TD")return;const S=p.parentNode.rowIndex,_=p.cellIndex;b.value[S][_].disabled||(S!==c.value||_!==v.value)&&(c.value=S,v.value=_,a("changerange",{selecting:!0,endDate:n.date.startOf("year").month(S*4+_)}))},m=g=>{var f;const p=(f=g.target)==null?void 0:f.closest("td");if((p==null?void 0:p.tagName)!=="TD"||Kt(p,"disabled"))return;const S=p.cellIndex,F=p.parentNode.rowIndex*4+S,z=n.date.startOf("year").month(F);if(n.selectionMode==="months"){if(g.type==="keydown"){a("pick",Ve(n.parsedValue),!1);return}const V=Et(n.date.year(),F,d.value,n.disabledDate),j=Kt(p,"current")?Ve(n.parsedValue).filter(ae=>(ae==null?void 0:ae.month())!==V.month()):Ve(n.parsedValue).concat([te(V)]);a("pick",j)}else n.selectionMode==="range"?n.rangeState.selecting?(n.minDate&&z>=n.minDate?a("pick",{minDate:n.minDate,maxDate:z}):a("pick",{minDate:z,maxDate:n.minDate}),a("select",!1)):(a("pick",{minDate:z,maxDate:null}),a("select",!0)):a("pick",F)};return Pe(()=>n.date,async()=>{var g,f;(g=h.value)!=null&&g.contains(document.activeElement)&&(await Re(),(f=u.value)==null||f.focus())}),r({focus:C}),(g,f)=>(W(),ee("table",{role:"grid","aria-label":e(l)("el.datepicker.monthTablePrompt"),class:B(e(o).b()),onClick:m,onMousemove:$},[O("tbody",{ref_key:"tbodyRef",ref:h},[(W(!0),ee(we,null,Ie(e(b),(p,S)=>(W(),ee("tr",{key:S},[(W(!0),ee(we,null,Ie(p,(_,F)=>(W(),ee("td",{key:F,ref_for:!0,ref:z=>T(_)&&(u.value=z),class:B(w(_)),"aria-selected":`${T(_)}`,"aria-label":e(l)(`el.datepicker.month${+_.text+1}`),tabindex:T(_)?0:-1,onKeydown:[Ue(ze(m,["prevent","stop"]),["space"]),Ue(ze(m,["prevent","stop"]),["enter"])]},[U(e(Ra),{cell:{..._,renderText:e(l)("el.datepicker.months."+D.value[_.text])}},null,8,["cell"])],42,["aria-selected","aria-label","tabindex","onKeydown"]))),128))]))),128))],512)],42,["aria-label"]))}});var Aa=Oe(xu,[["__file","basic-month-table.vue"]]);const Tu=Ae({...Ia,selectionMode:Oa("year")}),Pu=Ce({__name:"basic-year-table",props:Tu,emits:["changerange","pick","select"],setup(t,{expose:r,emit:a}){const n=t,o=(f,p)=>{const S=te(String(f)).locale(p).startOf("year"),F=S.endOf("year").dayOfYear();return Qn(F).map(z=>S.add(z,"day").toDate())},l=xe("year-table"),{t:d,lang:h}=We(),u=J(),D=J(),k=K(()=>Math.floor(n.date.year()/10)*10),c=J([[],[],[]]),v=J(),b=J(),C=K(()=>{var f;const p=c.value,S=te().locale(h.value).startOf("year");for(let _=0;_<3;_++){const F=p[_];for(let z=0;z<4&&!(_*4+z>=10);z++){let V=F[z];V||(V={row:_,column:z,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1}),V.type="normal";const j=_*4+z+k.value,ae=te().year(j),G=n.rangeState.endDate||n.maxDate||n.rangeState.selecting&&n.minDate||null;V.inRange=!!(n.minDate&&ae.isSameOrAfter(n.minDate,"year")&&G&&ae.isSameOrBefore(G,"year"))||!!(n.minDate&&ae.isSameOrBefore(n.minDate,"year")&&G&&ae.isSameOrAfter(G,"year")),(f=n.minDate)!=null&&f.isSameOrAfter(G)?(V.start=!!(G&&ae.isSame(G,"year")),V.end=!!(n.minDate&&ae.isSame(n.minDate,"year"))):(V.start=!!(n.minDate&&ae.isSame(n.minDate,"year")),V.end=!!(G&&ae.isSame(G,"year"))),S.isSame(ae)&&(V.type="today"),V.text=j;const N=ae.toDate();V.disabled=n.disabledDate&&n.disabledDate(N)||!1,F[z]=V}}return p}),w=()=>{var f;(f=D.value)==null||f.focus()},T=f=>{const p={},S=te().locale(h.value),_=f.text;return p.disabled=n.disabledDate?o(_,h.value).every(n.disabledDate):!1,p.today=S.year()===_,p.current=Ve(n.parsedValue).findIndex(F=>F.year()===_)>=0,f.inRange&&(p["in-range"]=!0,f.start&&(p["start-date"]=!0),f.end&&(p["end-date"]=!0)),p},$=f=>{const p=f.text;return Ve(n.date).findIndex(S=>S.year()===p)>=0},m=f=>{var p;const S=(p=f.target)==null?void 0:p.closest("td");if(!S||!S.textContent||Kt(S,"disabled"))return;const _=S.cellIndex,z=S.parentNode.rowIndex*4+_+k.value,V=te().year(z);if(n.selectionMode==="range")n.rangeState.selecting?(n.minDate&&V>=n.minDate?a("pick",{minDate:n.minDate,maxDate:V}):a("pick",{minDate:V,maxDate:n.minDate}),a("select",!1)):(a("pick",{minDate:V,maxDate:null}),a("select",!0));else if(n.selectionMode==="years"){if(f.type==="keydown"){a("pick",Ve(n.parsedValue),!1);return}const j=Ca(V.startOf("year"),h.value,n.disabledDate),ae=Kt(S,"current")?Ve(n.parsedValue).filter(G=>(G==null?void 0:G.year())!==z):Ve(n.parsedValue).concat([j]);a("pick",ae)}else a("pick",z)},g=f=>{var p;if(!n.rangeState.selecting)return;const S=(p=f.target)==null?void 0:p.closest("td");if(!S)return;const _=S.parentNode.rowIndex,F=S.cellIndex;C.value[_][F].disabled||(_!==v.value||F!==b.value)&&(v.value=_,b.value=F,a("changerange",{selecting:!0,endDate:te().year(k.value).add(_*4+F,"year")}))};return Pe(()=>n.date,async()=>{var f,p;(f=u.value)!=null&&f.contains(document.activeElement)&&(await Re(),(p=D.value)==null||p.focus())}),r({focus:w}),(f,p)=>(W(),ee("table",{role:"grid","aria-label":e(d)("el.datepicker.yearTablePrompt"),class:B(e(l).b()),onClick:m,onMousemove:g},[O("tbody",{ref_key:"tbodyRef",ref:u},[(W(!0),ee(we,null,Ie(e(C),(S,_)=>(W(),ee("tr",{key:_},[(W(!0),ee(we,null,Ie(S,(F,z)=>(W(),ee("td",{key:`${_}_${z}`,ref_for:!0,ref:V=>$(F)&&(D.value=V),class:B(["available",T(F)]),"aria-selected":$(F),"aria-label":String(F.text),tabindex:$(F)?0:-1,onKeydown:[Ue(ze(m,["prevent","stop"]),["space"]),Ue(ze(m,["prevent","stop"]),["enter"])]},[U(e(Ra),{cell:F},null,8,["cell"])],42,["aria-selected","aria-label","tabindex","onKeydown"]))),128))]))),128))],512)],42,["aria-label"]))}});var Ea=Oe(Pu,[["__file","basic-year-table.vue"]]);const _u=Ce({__name:"panel-date-pick",props:bu,emits:["pick","set-picker-option","panel-change"],setup(t,{emit:r}){const a=t,n=(M,x,Q)=>!0,o=xe("picker-panel"),l=xe("date-picker"),d=Xt(),h=Pa(),{t:u,lang:D}=We(),k=Ne("EP_PICKER_BASE"),c=Ne(Gr),{shortcuts:v,disabledDate:b,cellClassName:C,defaultTime:w}=k.props,T=Le(k.props,"defaultValue"),$=J(),m=J(te().locale(D.value)),g=J(!1);let f=!1;const p=K(()=>te(w).locale(D.value)),S=K(()=>m.value.month()),_=K(()=>m.value.year()),F=J([]),z=J(null),V=J(null),j=M=>F.value.length>0?n(M,F.value,a.format||"HH:mm:ss"):!0,ae=M=>w&&!Fe.value&&!g.value&&!f?p.value.year(M.year()).month(M.month()).date(M.date()):L.value?M.millisecond(0):M.startOf("day"),G=(M,...x)=>{if(!M)r("pick",M,...x);else if(pe(M)){const Q=M.map(ae);r("pick",Q,...x)}else r("pick",ae(M),...x);z.value=null,V.value=null,g.value=!1,f=!1},Z=async(M,x)=>{if(E.value==="date"){M=M;let Q=a.parsedValue?a.parsedValue.year(M.year()).month(M.month()).date(M.date()):M;j(Q)||(Q=F.value[0][0].year(M.year()).month(M.month()).date(M.date())),m.value=Q,G(Q,L.value||x),a.type==="datetime"&&(await Re(),Je())}else E.value==="week"?G(M.date):E.value==="dates"&&G(M,!0)},N=M=>{const x=M?"add":"subtract";m.value=m.value[x](1,"month"),et("month")},Y=M=>{const x=m.value,Q=M?"add":"subtract";m.value=R.value==="year"?x[Q](10,"year"):x[Q](1,"year"),et("year")},R=J("date"),I=K(()=>{const M=u("el.datepicker.year");if(R.value==="year"){const x=Math.floor(_.value/10)*10;return M?`${x} ${M} - ${x+9} ${M}`:`${x} - ${x+9}`}return`${_.value} ${M}`}),i=M=>{const x=At(M.value)?M.value():M.value;if(x){f=!0,G(te(x).locale(D.value));return}M.onClick&&M.onClick({attrs:d,slots:h,emit:r})},E=K(()=>{const{type:M}=a;return["week","month","months","year","years","dates"].includes(M)?M:"date"}),y=K(()=>E.value==="dates"||E.value==="months"||E.value==="years"),P=K(()=>E.value==="date"?R.value:E.value),A=K(()=>!!v.length),H=async(M,x)=>{E.value==="month"?(m.value=Et(m.value.year(),M,D.value,b),G(m.value,!1)):E.value==="months"?G(M,x??!0):(m.value=Et(m.value.year(),M,D.value,b),R.value="date",["month","year","date","week"].includes(E.value)&&(G(m.value,!0),await Re(),Je())),et("month")},q=async(M,x)=>{if(E.value==="year"){const Q=m.value.startOf("year").year(M);m.value=Ca(Q,D.value,b),G(m.value,!1)}else if(E.value==="years")G(M,x??!0);else{const Q=m.value.year(M);m.value=Ca(Q,D.value,b),R.value="month",["month","year","date","week"].includes(E.value)&&(G(m.value,!0),await Re(),Je())}et("year")},se=async M=>{R.value=M,await Re(),Je()},L=K(()=>a.type==="datetime"||a.type==="datetimerange"),re=K(()=>{const M=L.value||E.value==="dates",x=E.value==="years",Q=E.value==="months",s=R.value==="date",X=R.value==="year",le=R.value==="month";return M&&s||x&&X||Q&&le}),de=K(()=>b?a.parsedValue?pe(a.parsedValue)?b(a.parsedValue[0].toDate()):b(a.parsedValue.toDate()):!0:!1),ce=()=>{if(y.value)G(a.parsedValue);else{let M=a.parsedValue;if(!M){const x=te(w).locale(D.value),Q=Xe();M=x.year(Q.year()).month(Q.month()).date(Q.date())}m.value=M,G(M)}},ye=K(()=>b?b(te().locale(D.value).toDate()):!1),Ee=()=>{const x=te().locale(D.value).toDate();g.value=!0,(!b||!b(x))&&j(x)&&(m.value=te().locale(D.value),G(m.value))},me=K(()=>a.timeFormat||Gn(a.format)),_e=K(()=>a.dateFormat||Jn(a.format)),Fe=K(()=>{if(V.value)return V.value;if(!(!a.parsedValue&&!T.value))return(a.parsedValue||m.value).format(me.value)}),Ke=K(()=>{if(z.value)return z.value;if(!(!a.parsedValue&&!T.value))return(a.parsedValue||m.value).format(_e.value)}),$e=J(!1),je=()=>{$e.value=!0},oe=()=>{$e.value=!1},Be=M=>({hour:M.hour(),minute:M.minute(),second:M.second(),year:M.year(),month:M.month(),date:M.date()}),Ye=(M,x,Q)=>{const{hour:s,minute:X,second:le}=Be(M),De=a.parsedValue?a.parsedValue.hour(s).minute(X).second(le):M;m.value=De,G(m.value,!0),Q||($e.value=x)},st=M=>{const x=te(M,me.value).locale(D.value);if(x.isValid()&&j(x)){const{year:Q,month:s,date:X}=Be(m.value);m.value=x.year(Q).month(s).date(X),V.value=null,$e.value=!1,G(m.value,!0)}},qe=M=>{const x=te(M,_e.value).locale(D.value);if(x.isValid()){if(b&&b(x.toDate()))return;const{hour:Q,minute:s,second:X}=Be(m.value);m.value=x.hour(Q).minute(s).second(X),z.value=null,G(m.value,!0)}},lt=M=>te.isDayjs(M)&&M.isValid()&&(b?!b(M.toDate()):!0),ft=M=>pe(M)?M.map(x=>x.format(a.format)):M.format(a.format),vt=M=>te(M,a.format).locale(D.value),Xe=()=>{const M=te(T.value).locale(D.value);if(!T.value){const x=p.value;return te().hour(x.hour()).minute(x.minute()).second(x.second()).locale(D.value)}return M},Je=()=>{var M;["week","month","year","date"].includes(E.value)&&((M=$.value)==null||M.focus())},kt=()=>{Je(),E.value==="week"&&pt(Me.down)},Se=M=>{const{code:x}=M;[Me.up,Me.down,Me.left,Me.right,Me.home,Me.end,Me.pageUp,Me.pageDown].includes(x)&&(pt(x),M.stopPropagation(),M.preventDefault()),[Me.enter,Me.space,Me.numpadEnter].includes(x)&&z.value===null&&V.value===null&&(M.preventDefault(),G(m.value,!1))},pt=M=>{var x;const{up:Q,down:s,left:X,right:le,home:De,end:ot,pageUp:sr,pageDown:lr}=Me,or={year:{[Q]:-4,[s]:4,[X]:-1,[le]:1,offset:(ge,Qe)=>ge.setFullYear(ge.getFullYear()+Qe)},month:{[Q]:-4,[s]:4,[X]:-1,[le]:1,offset:(ge,Qe)=>ge.setMonth(ge.getMonth()+Qe)},week:{[Q]:-1,[s]:1,[X]:-1,[le]:1,offset:(ge,Qe)=>ge.setDate(ge.getDate()+Qe*7)},date:{[Q]:-7,[s]:7,[X]:-1,[le]:1,[De]:ge=>-ge.getDay(),[ot]:ge=>-ge.getDay()+6,[sr]:ge=>-new Date(ge.getFullYear(),ge.getMonth(),0).getDate(),[lr]:ge=>new Date(ge.getFullYear(),ge.getMonth()+1,0).getDate(),offset:(ge,Qe)=>ge.setDate(ge.getDate()+Qe)}},wt=m.value.toDate();for(;Math.abs(m.value.diff(wt,"year",!0))<1;){const ge=or[P.value];if(!ge)return;if(ge.offset(wt,At(ge[M])?ge[M](wt):(x=ge[M])!=null?x:0),b&&b(wt))break;const Qe=te(wt).locale(D.value);m.value=Qe,r("pick",Qe,!0);break}},et=M=>{r("panel-change",m.value.toDate(),M,R.value)};return Pe(()=>E.value,M=>{if(["month","year"].includes(M)){R.value=M;return}else if(M==="years"){R.value="year";return}else if(M==="months"){R.value="month";return}R.value="date"},{immediate:!0}),Pe(()=>R.value,()=>{c==null||c.updatePopper()}),Pe(()=>T.value,M=>{M&&(m.value=Xe())},{immediate:!0}),Pe(()=>a.parsedValue,M=>{if(M){if(y.value||pe(M))return;m.value=M}else m.value=Xe()},{immediate:!0}),r("set-picker-option",["isValidValue",lt]),r("set-picker-option",["formatToString",ft]),r("set-picker-option",["parseUserInput",vt]),r("set-picker-option",["handleFocusPicker",kt]),(M,x)=>(W(),ee("div",{class:B([e(o).b(),e(l).b(),{"has-sidebar":M.$slots.sidebar||e(A),"has-time":e(L)}])},[O("div",{class:B(e(o).e("body-wrapper"))},[ue(M.$slots,"sidebar",{class:B(e(o).e("sidebar"))}),e(A)?(W(),ee("div",{key:0,class:B(e(o).e("sidebar"))},[(W(!0),ee(we,null,Ie(e(v),(Q,s)=>(W(),ee("button",{key:s,type:"button",class:B(e(o).e("shortcut")),onClick:X=>i(Q)},ve(Q.text),11,["onClick"]))),128))],2)):fe("v-if",!0),O("div",{class:B(e(o).e("body"))},[e(L)?(W(),ee("div",{key:0,class:B(e(l).e("time-header"))},[O("span",{class:B(e(l).e("editor-wrap"))},[U(e(Ge),{placeholder:e(u)("el.datepicker.selectDate"),"model-value":e(Ke),size:"small","validate-event":!1,onInput:Q=>z.value=Q,onChange:qe},null,8,["placeholder","model-value","onInput"])],2),He((W(),ee("span",{class:B(e(l).e("editor-wrap"))},[U(e(Ge),{placeholder:e(u)("el.datepicker.selectTime"),"model-value":e(Fe),size:"small","validate-event":!1,onFocus:je,onInput:Q=>V.value=Q,onChange:st},null,8,["placeholder","model-value","onInput"]),U(e(wa),{visible:$e.value,format:e(me),"parsed-value":m.value,onPick:Ye},null,8,["visible","format","parsed-value"])],2)),[[e(ka),oe]])],2)):fe("v-if",!0),He(O("div",{class:B([e(l).e("header"),(R.value==="year"||R.value==="month")&&e(l).e("header--bordered")])},[O("span",{class:B(e(l).e("prev-btn"))},[O("button",{type:"button","aria-label":e(u)("el.datepicker.prevYear"),class:B(["d-arrow-left",e(o).e("icon-btn")]),onClick:Q=>Y(!1)},[ue(M.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["aria-label","onClick"]),He(O("button",{type:"button","aria-label":e(u)("el.datepicker.prevMonth"),class:B([e(o).e("icon-btn"),"arrow-left"]),onClick:Q=>N(!1)},[ue(M.$slots,"prev-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(va))]),_:1})])],10,["aria-label","onClick"]),[[ut,R.value==="date"]])],2),O("span",{role:"button",class:B(e(l).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:Ue(Q=>se("year"),["enter"]),onClick:Q=>se("year")},ve(e(I)),43,["onKeydown","onClick"]),He(O("span",{role:"button","aria-live":"polite",tabindex:"0",class:B([e(l).e("header-label"),{active:R.value==="month"}]),onKeydown:Ue(Q=>se("month"),["enter"]),onClick:Q=>se("month")},ve(e(u)(`el.datepicker.month${e(S)+1}`)),43,["onKeydown","onClick"]),[[ut,R.value==="date"]]),O("span",{class:B(e(l).e("next-btn"))},[He(O("button",{type:"button","aria-label":e(u)("el.datepicker.nextMonth"),class:B([e(o).e("icon-btn"),"arrow-right"]),onClick:Q=>N(!0)},[ue(M.$slots,"next-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(It))]),_:1})])],10,["aria-label","onClick"]),[[ut,R.value==="date"]]),O("button",{type:"button","aria-label":e(u)("el.datepicker.nextYear"),class:B([e(o).e("icon-btn"),"d-arrow-right"]),onClick:Q=>Y(!0)},[ue(M.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["aria-label","onClick"])],2)],2),[[ut,R.value!=="time"]]),O("div",{class:B(e(o).e("content")),onKeydown:Se},[R.value==="date"?(W(),ke(Da,{key:0,ref_key:"currentViewRef",ref:$,"selection-mode":e(E),date:m.value,"parsed-value":M.parsedValue,"disabled-date":e(b),"cell-class-name":e(C),onPick:Z},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):fe("v-if",!0),R.value==="year"?(W(),ke(Ea,{key:1,ref_key:"currentViewRef",ref:$,"selection-mode":e(E),date:m.value,"disabled-date":e(b),"parsed-value":M.parsedValue,onPick:q},null,8,["selection-mode","date","disabled-date","parsed-value"])):fe("v-if",!0),R.value==="month"?(W(),ke(Aa,{key:2,ref_key:"currentViewRef",ref:$,"selection-mode":e(E),date:m.value,"parsed-value":M.parsedValue,"disabled-date":e(b),onPick:H},null,8,["selection-mode","date","parsed-value","disabled-date"])):fe("v-if",!0)],34)],2)],2),He(O("div",{class:B(e(o).e("footer"))},[He(U(e(Ut),{text:"",size:"small",class:B(e(o).e("link-btn")),disabled:e(ye),onClick:Ee},{default:ne(()=>[Te(ve(e(u)("el.datepicker.now")),1)]),_:1},8,["class","disabled"]),[[ut,!e(y)&&M.showNow]]),U(e(Ut),{plain:"",size:"small",class:B(e(o).e("link-btn")),disabled:e(de),onClick:ce},{default:ne(()=>[Te(ve(e(u)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2),[[ut,e(re)]])],2))}});var $u=Oe(_u,[["__file","panel-date-pick.vue"]]);const Iu=Ae({...er,...Ba,visible:Boolean}),tr=t=>{const{emit:r}=On(),a=Xt(),n=Pa();return l=>{const d=At(l.value)?l.value():l.value;if(d){r("pick",[te(d[0]).locale(t.value),te(d[1]).locale(t.value)]);return}l.onClick&&l.onClick({attrs:a,slots:n,emit:r})}},ar=(t,{defaultValue:r,leftDate:a,rightDate:n,unit:o,onParsedValueChanged:l})=>{const{emit:d}=On(),{pickerNs:h}=Ne(ea),u=xe("date-range-picker"),{t:D,lang:k}=We(),c=tr(k),v=J(),b=J(),C=J({endDate:null,selecting:!1}),w=f=>{C.value=f},T=(f=!1)=>{const p=e(v),S=e(b);yt([p,S])&&d("pick",[p,S],f)},$=f=>{C.value.selecting=f,f||(C.value.endDate=null)},m=f=>{if(pe(f)&&f.length===2){const[p,S]=f;v.value=p,a.value=p,b.value=S,l(e(v),e(b))}else g()},g=()=>{const[f,p]=Fa(e(r),{lang:e(k),unit:o,unlinkPanels:t.unlinkPanels});v.value=void 0,b.value=void 0,a.value=f,n.value=p};return Pe(r,f=>{f&&g()},{immediate:!0}),Pe(()=>t.parsedValue,m,{immediate:!0}),{minDate:v,maxDate:b,rangeState:C,lang:k,ppNs:h,drpNs:u,handleChangeRange:w,handleRangeConfirm:T,handleShortcutClick:c,onSelect:$,onReset:m,t:D}},Pt="month",Bu=Ce({__name:"panel-date-range",props:Iu,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(t,{emit:r}){const a=t,n=Ne("EP_PICKER_BASE"),{disabledDate:o,cellClassName:l,defaultTime:d,clearable:h}=n.props,u=Le(n.props,"format"),D=Le(n.props,"shortcuts"),k=Le(n.props,"defaultValue"),{lang:c}=We(),v=J(te().locale(c.value)),b=J(te().locale(c.value).add(1,Pt)),{minDate:C,maxDate:w,rangeState:T,ppNs:$,drpNs:m,handleChangeRange:g,handleRangeConfirm:f,handleShortcutClick:p,onSelect:S,onReset:_,t:F}=ar(a,{defaultValue:k,leftDate:v,rightDate:b,unit:Pt,onParsedValueChanged:M});Pe(()=>a.visible,x=>{!x&&T.value.selecting&&(_(a.parsedValue),S(!1))});const z=J({min:null,max:null}),V=J({min:null,max:null}),j=K(()=>`${v.value.year()} ${F("el.datepicker.year")} ${F(`el.datepicker.month${v.value.month()+1}`)}`),ae=K(()=>`${b.value.year()} ${F("el.datepicker.year")} ${F(`el.datepicker.month${b.value.month()+1}`)}`),G=K(()=>v.value.year()),Z=K(()=>v.value.month()),N=K(()=>b.value.year()),Y=K(()=>b.value.month()),R=K(()=>!!D.value.length),I=K(()=>z.value.min!==null?z.value.min:C.value?C.value.format(A.value):""),i=K(()=>z.value.max!==null?z.value.max:w.value||C.value?(w.value||C.value).format(A.value):""),E=K(()=>V.value.min!==null?V.value.min:C.value?C.value.format(P.value):""),y=K(()=>V.value.max!==null?V.value.max:w.value||C.value?(w.value||C.value).format(P.value):""),P=K(()=>a.timeFormat||Gn(u.value)),A=K(()=>a.dateFormat||Jn(u.value)),H=x=>yt(x)&&(o?!o(x[0].toDate())&&!o(x[1].toDate()):!0),q=()=>{v.value=v.value.subtract(1,"year"),a.unlinkPanels||(b.value=v.value.add(1,"month")),me("year")},se=()=>{v.value=v.value.subtract(1,"month"),a.unlinkPanels||(b.value=v.value.add(1,"month")),me("month")},L=()=>{a.unlinkPanels?b.value=b.value.add(1,"year"):(v.value=v.value.add(1,"year"),b.value=v.value.add(1,"month")),me("year")},re=()=>{a.unlinkPanels?b.value=b.value.add(1,"month"):(v.value=v.value.add(1,"month"),b.value=v.value.add(1,"month")),me("month")},de=()=>{v.value=v.value.add(1,"year"),me("year")},ce=()=>{v.value=v.value.add(1,"month"),me("month")},ye=()=>{b.value=b.value.subtract(1,"year"),me("year")},Ee=()=>{b.value=b.value.subtract(1,"month"),me("month")},me=x=>{r("panel-change",[v.value.toDate(),b.value.toDate()],x)},_e=K(()=>{const x=(Z.value+1)%12,Q=Z.value+1>=12?1:0;return a.unlinkPanels&&new Date(G.value+Q,x)<new Date(N.value,Y.value)}),Fe=K(()=>a.unlinkPanels&&N.value*12+Y.value-(G.value*12+Z.value+1)>=12),Ke=K(()=>!(C.value&&w.value&&!T.value.selecting&&yt([C.value,w.value]))),$e=K(()=>a.type==="datetime"||a.type==="datetimerange"),je=(x,Q)=>{if(x)return d?te(d[Q]||d).locale(c.value).year(x.year()).month(x.month()).date(x.date()):x},oe=(x,Q=!0)=>{const s=x.minDate,X=x.maxDate,le=je(s,0),De=je(X,1);w.value===De&&C.value===le||(r("calendar-change",[s.toDate(),X&&X.toDate()]),w.value=De,C.value=le,!(!Q||$e.value)&&f())},Be=J(!1),Ye=J(!1),st=()=>{Be.value=!1},qe=()=>{Ye.value=!1},lt=(x,Q)=>{z.value[Q]=x;const s=te(x,A.value).locale(c.value);if(s.isValid()){if(o&&o(s.toDate()))return;Q==="min"?(v.value=s,C.value=(C.value||v.value).year(s.year()).month(s.month()).date(s.date()),!a.unlinkPanels&&(!w.value||w.value.isBefore(C.value))&&(b.value=s.add(1,"month"),w.value=C.value.add(1,"month"))):(b.value=s,w.value=(w.value||b.value).year(s.year()).month(s.month()).date(s.date()),!a.unlinkPanels&&(!C.value||C.value.isAfter(w.value))&&(v.value=s.subtract(1,"month"),C.value=w.value.subtract(1,"month")))}},ft=(x,Q)=>{z.value[Q]=null},vt=(x,Q)=>{V.value[Q]=x;const s=te(x,P.value).locale(c.value);s.isValid()&&(Q==="min"?(Be.value=!0,C.value=(C.value||v.value).hour(s.hour()).minute(s.minute()).second(s.second())):(Ye.value=!0,w.value=(w.value||b.value).hour(s.hour()).minute(s.minute()).second(s.second()),b.value=w.value))},Xe=(x,Q)=>{V.value[Q]=null,Q==="min"?(v.value=C.value,Be.value=!1,(!w.value||w.value.isBefore(C.value))&&(w.value=C.value)):(b.value=w.value,Ye.value=!1,w.value&&w.value.isBefore(C.value)&&(C.value=w.value))},Je=(x,Q,s)=>{V.value.min||(x&&(v.value=x,C.value=(C.value||v.value).hour(x.hour()).minute(x.minute()).second(x.second())),s||(Be.value=Q),(!w.value||w.value.isBefore(C.value))&&(w.value=C.value,b.value=x))},kt=(x,Q,s)=>{V.value.max||(x&&(b.value=x,w.value=(w.value||b.value).hour(x.hour()).minute(x.minute()).second(x.second())),s||(Ye.value=Q),w.value&&w.value.isBefore(C.value)&&(C.value=w.value))},Se=()=>{v.value=Fa(e(k),{lang:e(c),unit:"month",unlinkPanels:a.unlinkPanels})[0],b.value=v.value.add(1,"month"),w.value=void 0,C.value=void 0,r("pick",null)},pt=x=>pe(x)?x.map(Q=>Q.format(u.value)):x.format(u.value),et=x=>pe(x)?x.map(Q=>te(Q,u.value).locale(c.value)):te(x,u.value).locale(c.value);function M(x,Q){if(a.unlinkPanels&&Q){const s=(x==null?void 0:x.year())||0,X=(x==null?void 0:x.month())||0,le=Q.year(),De=Q.month();b.value=s===le&&X===De?Q.add(1,Pt):Q}else b.value=v.value.add(1,Pt),Q&&(b.value=b.value.hour(Q.hour()).minute(Q.minute()).second(Q.second()))}return r("set-picker-option",["isValidValue",H]),r("set-picker-option",["parseUserInput",et]),r("set-picker-option",["formatToString",pt]),r("set-picker-option",["handleClear",Se]),(x,Q)=>(W(),ee("div",{class:B([e($).b(),e(m).b(),{"has-sidebar":x.$slots.sidebar||e(R),"has-time":e($e)}])},[O("div",{class:B(e($).e("body-wrapper"))},[ue(x.$slots,"sidebar",{class:B(e($).e("sidebar"))}),e(R)?(W(),ee("div",{key:0,class:B(e($).e("sidebar"))},[(W(!0),ee(we,null,Ie(e(D),(s,X)=>(W(),ee("button",{key:X,type:"button",class:B(e($).e("shortcut")),onClick:le=>e(p)(s)},ve(s.text),11,["onClick"]))),128))],2)):fe("v-if",!0),O("div",{class:B(e($).e("body"))},[e($e)?(W(),ee("div",{key:0,class:B(e(m).e("time-header"))},[O("span",{class:B(e(m).e("editors-wrap"))},[O("span",{class:B(e(m).e("time-picker-wrap"))},[U(e(Ge),{size:"small",disabled:e(T).selecting,placeholder:e(F)("el.datepicker.startDate"),class:B(e(m).e("editor")),"model-value":e(I),"validate-event":!1,onInput:s=>lt(s,"min"),onChange:s=>ft(s,"min")},null,8,["disabled","placeholder","class","model-value","onInput","onChange"])],2),He((W(),ee("span",{class:B(e(m).e("time-picker-wrap"))},[U(e(Ge),{size:"small",class:B(e(m).e("editor")),disabled:e(T).selecting,placeholder:e(F)("el.datepicker.startTime"),"model-value":e(E),"validate-event":!1,onFocus:s=>Be.value=!0,onInput:s=>vt(s,"min"),onChange:s=>Xe(s,"min")},null,8,["class","disabled","placeholder","model-value","onFocus","onInput","onChange"]),U(e(wa),{visible:Be.value,format:e(P),"datetime-role":"start","parsed-value":v.value,onPick:Je},null,8,["visible","format","parsed-value"])],2)),[[e(ka),st]])],2),O("span",null,[U(e(he),null,{default:ne(()=>[U(e(It))]),_:1})]),O("span",{class:B([e(m).e("editors-wrap"),"is-right"])},[O("span",{class:B(e(m).e("time-picker-wrap"))},[U(e(Ge),{size:"small",class:B(e(m).e("editor")),disabled:e(T).selecting,placeholder:e(F)("el.datepicker.endDate"),"model-value":e(i),readonly:!e(C),"validate-event":!1,onInput:s=>lt(s,"max"),onChange:s=>ft(s,"max")},null,8,["class","disabled","placeholder","model-value","readonly","onInput","onChange"])],2),He((W(),ee("span",{class:B(e(m).e("time-picker-wrap"))},[U(e(Ge),{size:"small",class:B(e(m).e("editor")),disabled:e(T).selecting,placeholder:e(F)("el.datepicker.endTime"),"model-value":e(y),readonly:!e(C),"validate-event":!1,onFocus:s=>e(C)&&(Ye.value=!0),onInput:s=>vt(s,"max"),onChange:s=>Xe(s,"max")},null,8,["class","disabled","placeholder","model-value","readonly","onFocus","onInput","onChange"]),U(e(wa),{"datetime-role":"end",visible:Ye.value,format:e(P),"parsed-value":b.value,onPick:kt},null,8,["visible","format","parsed-value"])],2)),[[e(ka),qe]])],2)],2)):fe("v-if",!0),O("div",{class:B([[e($).e("content"),e(m).e("content")],"is-left"])},[O("div",{class:B(e(m).e("header"))},[O("button",{type:"button",class:B([e($).e("icon-btn"),"d-arrow-left"]),"aria-label":e(F)("el.datepicker.prevYear"),onClick:q},[ue(x.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["aria-label"]),O("button",{type:"button",class:B([e($).e("icon-btn"),"arrow-left"]),"aria-label":e(F)("el.datepicker.prevMonth"),onClick:se},[ue(x.$slots,"prev-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(va))]),_:1})])],10,["aria-label"]),x.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(Fe),class:B([[e($).e("icon-btn"),{"is-disabled":!e(Fe)}],"d-arrow-right"]),"aria-label":e(F)("el.datepicker.nextYear"),onClick:de},[ue(x.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["disabled","aria-label"])):fe("v-if",!0),x.unlinkPanels?(W(),ee("button",{key:1,type:"button",disabled:!e(_e),class:B([[e($).e("icon-btn"),{"is-disabled":!e(_e)}],"arrow-right"]),"aria-label":e(F)("el.datepicker.nextMonth"),onClick:ce},[ue(x.$slots,"next-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(It))]),_:1})])],10,["disabled","aria-label"])):fe("v-if",!0),O("div",null,ve(e(j)),1)],2),U(Da,{"selection-mode":"range",date:v.value,"min-date":e(C),"max-date":e(w),"range-state":e(T),"disabled-date":e(o),"cell-class-name":e(l),onChangerange:e(g),onPick:oe,onSelect:e(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),O("div",{class:B([[e($).e("content"),e(m).e("content")],"is-right"])},[O("div",{class:B(e(m).e("header"))},[x.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(Fe),class:B([[e($).e("icon-btn"),{"is-disabled":!e(Fe)}],"d-arrow-left"]),"aria-label":e(F)("el.datepicker.prevYear"),onClick:ye},[ue(x.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["disabled","aria-label"])):fe("v-if",!0),x.unlinkPanels?(W(),ee("button",{key:1,type:"button",disabled:!e(_e),class:B([[e($).e("icon-btn"),{"is-disabled":!e(_e)}],"arrow-left"]),"aria-label":e(F)("el.datepicker.prevMonth"),onClick:Ee},[ue(x.$slots,"prev-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(va))]),_:1})])],10,["disabled","aria-label"])):fe("v-if",!0),O("button",{type:"button","aria-label":e(F)("el.datepicker.nextYear"),class:B([e($).e("icon-btn"),"d-arrow-right"]),onClick:L},[ue(x.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["aria-label"]),O("button",{type:"button",class:B([e($).e("icon-btn"),"arrow-right"]),"aria-label":e(F)("el.datepicker.nextMonth"),onClick:re},[ue(x.$slots,"next-month",{},()=>[U(e(he),null,{default:ne(()=>[U(e(It))]),_:1})])],10,["aria-label"]),O("div",null,ve(e(ae)),1)],2),U(Da,{"selection-mode":"range",date:b.value,"min-date":e(C),"max-date":e(w),"range-state":e(T),"disabled-date":e(o),"cell-class-name":e(l),onChangerange:e(g),onPick:oe,onSelect:e(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),e($e)?(W(),ee("div",{key:0,class:B(e($).e("footer"))},[e(h)?(W(),ke(e(Ut),{key:0,text:"",size:"small",class:B(e($).e("link-btn")),onClick:Se},{default:ne(()=>[Te(ve(e(F)("el.datepicker.clear")),1)]),_:1},8,["class"])):fe("v-if",!0),U(e(Ut),{plain:"",size:"small",class:B(e($).e("link-btn")),disabled:e(Ke),onClick:s=>e(f)(!1)},{default:ne(()=>[Te(ve(e(F)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled","onClick"])],2)):fe("v-if",!0)],2))}});var Ou=Oe(Bu,[["__file","panel-date-range.vue"]]);const Fu=Ae({...Ba}),Ru=["pick","set-picker-option","calendar-change"],Yu=({unlinkPanels:t,leftDate:r,rightDate:a})=>{const{t:n}=We(),o=()=>{r.value=r.value.subtract(1,"year"),t.value||(a.value=a.value.subtract(1,"year"))},l=()=>{t.value||(r.value=r.value.add(1,"year")),a.value=a.value.add(1,"year")},d=()=>{r.value=r.value.add(1,"year")},h=()=>{a.value=a.value.subtract(1,"year")},u=K(()=>`${r.value.year()} ${n("el.datepicker.year")}`),D=K(()=>`${a.value.year()} ${n("el.datepicker.year")}`),k=K(()=>r.value.year()),c=K(()=>a.value.year()===r.value.year()?r.value.year()+1:a.value.year());return{leftPrevYear:o,rightNextYear:l,leftNextYear:d,rightPrevYear:h,leftLabel:u,rightLabel:D,leftYear:k,rightYear:c}},_t="year",Vu=Ce({name:"DatePickerMonthRange"}),Lu=Ce({...Vu,props:Fu,emits:Ru,setup(t,{emit:r}){const a=t,{lang:n}=We(),o=Ne("EP_PICKER_BASE"),{shortcuts:l,disabledDate:d}=o.props,h=Le(o.props,"format"),u=Le(o.props,"defaultValue"),D=J(te().locale(n.value)),k=J(te().locale(n.value).add(1,_t)),{minDate:c,maxDate:v,rangeState:b,ppNs:C,drpNs:w,handleChangeRange:T,handleRangeConfirm:$,handleShortcutClick:m,onSelect:g}=ar(a,{defaultValue:u,leftDate:D,rightDate:k,unit:_t,onParsedValueChanged:I}),f=K(()=>!!l.length),{leftPrevYear:p,rightNextYear:S,leftNextYear:_,rightPrevYear:F,leftLabel:z,rightLabel:V,leftYear:j,rightYear:ae}=Yu({unlinkPanels:Le(a,"unlinkPanels"),leftDate:D,rightDate:k}),G=K(()=>a.unlinkPanels&&ae.value>j.value+1),Z=(i,E=!0)=>{const y=i.minDate,P=i.maxDate;v.value===P&&c.value===y||(r("calendar-change",[y.toDate(),P&&P.toDate()]),v.value=P,c.value=y,E&&$())},N=()=>{D.value=Fa(e(u),{lang:e(n),unit:"year",unlinkPanels:a.unlinkPanels})[0],k.value=D.value.add(1,"year"),r("pick",null)},Y=i=>pe(i)?i.map(E=>E.format(h.value)):i.format(h.value),R=i=>pe(i)?i.map(E=>te(E,h.value).locale(n.value)):te(i,h.value).locale(n.value);function I(i,E){if(a.unlinkPanels&&E){const y=(i==null?void 0:i.year())||0,P=E.year();k.value=y===P?E.add(1,_t):E}else k.value=D.value.add(1,_t)}return r("set-picker-option",["isValidValue",yt]),r("set-picker-option",["formatToString",Y]),r("set-picker-option",["parseUserInput",R]),r("set-picker-option",["handleClear",N]),(i,E)=>(W(),ee("div",{class:B([e(C).b(),e(w).b(),{"has-sidebar":!!i.$slots.sidebar||e(f)}])},[O("div",{class:B(e(C).e("body-wrapper"))},[ue(i.$slots,"sidebar",{class:B(e(C).e("sidebar"))}),e(f)?(W(),ee("div",{key:0,class:B(e(C).e("sidebar"))},[(W(!0),ee(we,null,Ie(e(l),(y,P)=>(W(),ee("button",{key:P,type:"button",class:B(e(C).e("shortcut")),onClick:A=>e(m)(y)},ve(y.text),11,["onClick"]))),128))],2)):fe("v-if",!0),O("div",{class:B(e(C).e("body"))},[O("div",{class:B([[e(C).e("content"),e(w).e("content")],"is-left"])},[O("div",{class:B(e(w).e("header"))},[O("button",{type:"button",class:B([e(C).e("icon-btn"),"d-arrow-left"]),onClick:e(p)},[ue(i.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["onClick"]),i.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(G),class:B([[e(C).e("icon-btn"),{[e(C).is("disabled")]:!e(G)}],"d-arrow-right"]),onClick:e(_)},[ue(i.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["disabled","onClick"])):fe("v-if",!0),O("div",null,ve(e(z)),1)],2),U(Aa,{"selection-mode":"range",date:D.value,"min-date":e(c),"max-date":e(v),"range-state":e(b),"disabled-date":e(d),onChangerange:e(T),onPick:Z,onSelect:e(g)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),O("div",{class:B([[e(C).e("content"),e(w).e("content")],"is-right"])},[O("div",{class:B(e(w).e("header"))},[i.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(G),class:B([[e(C).e("icon-btn"),{"is-disabled":!e(G)}],"d-arrow-left"]),onClick:e(F)},[ue(i.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["disabled","onClick"])):fe("v-if",!0),O("button",{type:"button",class:B([e(C).e("icon-btn"),"d-arrow-right"]),onClick:e(S)},[ue(i.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["onClick"]),O("div",null,ve(e(V)),1)],2),U(Aa,{"selection-mode":"range",date:k.value,"min-date":e(c),"max-date":e(v),"range-state":e(b),"disabled-date":e(d),onChangerange:e(T),onPick:Z,onSelect:e(g)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var Nu=Oe(Lu,[["__file","panel-month-range.vue"]]);const Hu=Ae({...Ba}),zu=["pick","set-picker-option","calendar-change"],Wu=({unlinkPanels:t,leftDate:r,rightDate:a})=>{const n=()=>{r.value=r.value.subtract(10,"year"),t.value||(a.value=a.value.subtract(10,"year"))},o=()=>{t.value||(r.value=r.value.add(10,"year")),a.value=a.value.add(10,"year")},l=()=>{r.value=r.value.add(10,"year")},d=()=>{a.value=a.value.subtract(10,"year")},h=K(()=>{const c=Math.floor(r.value.year()/10)*10;return`${c}-${c+9}`}),u=K(()=>{const c=Math.floor(a.value.year()/10)*10;return`${c}-${c+9}`}),D=K(()=>Math.floor(r.value.year()/10)*10+9),k=K(()=>Math.floor(a.value.year()/10)*10);return{leftPrevYear:n,rightNextYear:o,leftNextYear:l,rightPrevYear:d,leftLabel:h,rightLabel:u,leftYear:D,rightYear:k}},An="year",Ku=Ce({name:"DatePickerYearRange"}),ju=Ce({...Ku,props:Hu,emits:zu,setup(t,{emit:r}){const a=t,{lang:n}=We(),o=J(te().locale(n.value)),l=J(o.value.add(10,"year")),{pickerNs:d}=Ne(ea),h=xe("date-range-picker"),u=K(()=>!!Z.length),D=K(()=>[d.b(),h.b(),{"has-sidebar":!!Pa().sidebar||u.value}]),k=K(()=>({content:[d.e("content"),h.e("content"),"is-left"],arrowLeftBtn:[d.e("icon-btn"),"d-arrow-left"],arrowRightBtn:[d.e("icon-btn"),{[d.is("disabled")]:!p.value},"d-arrow-right"]})),c=K(()=>({content:[d.e("content"),h.e("content"),"is-right"],arrowLeftBtn:[d.e("icon-btn"),{"is-disabled":!p.value},"d-arrow-left"],arrowRightBtn:[d.e("icon-btn"),"d-arrow-right"]})),v=tr(n),{leftPrevYear:b,rightNextYear:C,leftNextYear:w,rightPrevYear:T,leftLabel:$,rightLabel:m,leftYear:g,rightYear:f}=Wu({unlinkPanels:Le(a,"unlinkPanels"),leftDate:o,rightDate:l}),p=K(()=>a.unlinkPanels&&f.value>g.value+1),S=J(),_=J(),F=J({endDate:null,selecting:!1}),z=A=>{F.value=A},V=(A,H=!0)=>{const q=A.minDate,se=A.maxDate;_.value===se&&S.value===q||(r("calendar-change",[q.toDate(),se&&se.toDate()]),_.value=se,S.value=q,H&&j())},j=(A=!1)=>{yt([S.value,_.value])&&r("pick",[S.value,_.value],A)},ae=A=>{F.value.selecting=A,A||(F.value.endDate=null)},G=Ne("EP_PICKER_BASE"),{shortcuts:Z,disabledDate:N}=G.props,Y=Le(G.props,"format"),R=Le(G.props,"defaultValue"),I=()=>{let A;if(pe(R.value)){const H=te(R.value[0]);let q=te(R.value[1]);return a.unlinkPanels||(q=H.add(10,An)),[H,q]}else R.value?A=te(R.value):A=te();return A=A.locale(n.value),[A,A.add(10,An)]};Pe(()=>R.value,A=>{if(A){const H=I();o.value=H[0],l.value=H[1]}},{immediate:!0}),Pe(()=>a.parsedValue,A=>{if(A&&A.length===2)if(S.value=A[0],_.value=A[1],o.value=S.value,a.unlinkPanels&&_.value){const H=S.value.year(),q=_.value.year();l.value=H===q?_.value.add(10,"year"):_.value}else l.value=o.value.add(10,"year");else{const H=I();S.value=void 0,_.value=void 0,o.value=H[0],l.value=H[1]}},{immediate:!0});const i=A=>pe(A)?A.map(H=>te(H,Y.value).locale(n.value)):te(A,Y.value).locale(n.value),E=A=>pe(A)?A.map(H=>H.format(Y.value)):A.format(Y.value),y=A=>yt(A)&&(N?!N(A[0].toDate())&&!N(A[1].toDate()):!0),P=()=>{const A=I();o.value=A[0],l.value=A[1],_.value=void 0,S.value=void 0,r("pick",null)};return r("set-picker-option",["isValidValue",y]),r("set-picker-option",["parseUserInput",i]),r("set-picker-option",["formatToString",E]),r("set-picker-option",["handleClear",P]),(A,H)=>(W(),ee("div",{class:B(e(D))},[O("div",{class:B(e(d).e("body-wrapper"))},[ue(A.$slots,"sidebar",{class:B(e(d).e("sidebar"))}),e(u)?(W(),ee("div",{key:0,class:B(e(d).e("sidebar"))},[(W(!0),ee(we,null,Ie(e(Z),(q,se)=>(W(),ee("button",{key:se,type:"button",class:B(e(d).e("shortcut")),onClick:L=>e(v)(q)},ve(q.text),11,["onClick"]))),128))],2)):fe("v-if",!0),O("div",{class:B(e(d).e("body"))},[O("div",{class:B(e(k).content)},[O("div",{class:B(e(h).e("header"))},[O("button",{type:"button",class:B(e(k).arrowLeftBtn),onClick:e(b)},[ue(A.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["onClick"]),A.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(p),class:B(e(k).arrowRightBtn),onClick:e(w)},[ue(A.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["disabled","onClick"])):fe("v-if",!0),O("div",null,ve(e($)),1)],2),U(Ea,{"selection-mode":"range",date:o.value,"min-date":S.value,"max-date":_.value,"range-state":F.value,"disabled-date":e(N),onChangerange:z,onPick:V,onSelect:ae},null,8,["date","min-date","max-date","range-state","disabled-date"])],2),O("div",{class:B(e(c).content)},[O("div",{class:B(e(h).e("header"))},[A.unlinkPanels?(W(),ee("button",{key:0,type:"button",disabled:!e(p),class:B(e(c).arrowLeftBtn),onClick:e(T)},[ue(A.$slots,"prev-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(it))]),_:1})])],10,["disabled","onClick"])):fe("v-if",!0),O("button",{type:"button",class:B(e(c).arrowRightBtn),onClick:e(C)},[ue(A.$slots,"next-year",{},()=>[U(e(he),null,{default:ne(()=>[U(e(ct))]),_:1})])],10,["onClick"]),O("div",null,ve(e(m)),1)],2),U(Ea,{"selection-mode":"range",date:l.value,"min-date":S.value,"max-date":_.value,"range-state":F.value,"disabled-date":e(N),onChangerange:z,onPick:V,onSelect:ae},null,8,["date","min-date","max-date","range-state","disabled-date"])],2)],2)],2)],2))}});var Uu=Oe(ju,[["__file","panel-year-range.vue"]]);const Qu=function(t){switch(t){case"daterange":case"datetimerange":return Ou;case"monthrange":return Nu;case"yearrange":return Uu;default:return $u}};te.extend(wo);te.extend(_o);te.extend(Mo);te.extend(Oo);te.extend(Vo);te.extend(zo);te.extend(Uo);te.extend(Zo);var Ju=Ce({name:"ElDatePicker",install:null,props:gu,emits:["update:modelValue"],setup(t,{expose:r,emit:a,slots:n}){const o=xe("picker-panel");jt("ElPopperOptions",$n(Le(t,"popperOptions"))),jt(ea,{slots:n,pickerNs:o});const l=J();r({focus:()=>{var u;(u=l.value)==null||u.focus()},blur:()=>{var u;(u=l.value)==null||u.blur()},handleOpen:()=>{var u;(u=l.value)==null||u.handleOpen()},handleClose:()=>{var u;(u=l.value)==null||u.handleClose()}});const h=u=>{a("update:modelValue",u)};return()=>{var u;const D=(u=t.format)!=null?u:qo[t.type]||ht,k=Qu(t.type);return U(lu,Dt(t,{format:D,type:t.type,ref:l,"onUpdate:modelValue":h}),{default:c=>U(k,c,{"prev-month":n["prev-month"],"next-month":n["next-month"],"prev-year":n["prev-year"],"next-year":n["next-year"]}),"range-separator":n["range-separator"]})}}});const Gu=Zt(Ju),Zu="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAyKADAAQAAAABAAAAyAAAAACbWz2VAAAKXElEQVR4Ae2dTWhUVxSAO84ws6mGWCmFFkWoaRepraUu3HRZGtraVeif3YsQGGqxxkgCkYRQSAmEanDRlRRLdm6yctFScGFx09BFpIhCIQU1hOBiJjOZnleVTCaTO+/de99k5p5PGJx595777vnO+WYy5o2TqdVq2Rf4AwEINCWwp+lRDkIAAv8TQBAaAQIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgI5AxjDAVEYGFhIbe4uHiwVCodjtIqFAr3+vv7HwwMDFQCStN7KplarZb1vioLdgyB2dnZ/SsrK2elzmfktrd+Y5lMZk1ul3t7e6eHhoYe149x/ykBBAm4EyYnJ98vl8s/S4qvtEhzOZ/Pf3nhwoXfWsxTN4wggZZ8YmLixPr6+k1JLx8zxfKePXs+Hx0dvRFzvoppvEkPsMwzMzN7K5XKNUktrhwRhfzGxsb18fHxkwEisU4JQazRdW7g6upq9J7jkMUOkaQBGoI0AOn2h/Pz83mR47RDHkhSBw9B6mCEcHdpaem45HHAMRckeQYQQRw7qdPCq9XqEU97QhIBiSCeuinQZdRLgiCBdXY2m73rOSXVkiCI527a7eX6+vpuyx4eet6HWkkQxHMn7fZyg4ODZbl8ZC6FfaiUBEFS6KTdXrKnp2daJLmfwj7USYIgKXTRbi9ZLBbXcrncKdlHOYW9qJIEQVLooE5YcmRk5FZ0bRWSuFUDQdz4dXR0dOEhkriVCEHc+HV8NJK4lQhB3Ph1RTSS2JcJQezZdVUkktiVC0HsuHVlFJIkLxuCJGfW1RFIkqx8CJKMVxCzkSR+GREkPqugZiJJvHIiSDxOQc5CktZlRZDWjIKegSTm8iKImY+KUSTZucwIsjMbVSNI0rzcCNKci8qjSLK97AiynYnqI0iytfwIspUHj4QAkmy2AYJssuBeHQEkeQoDQeqagrtbCSAJ/y/W1o7g0TYC2iXhFWRbS3CgkYBmSRCksRt43JSAVkkQpGk7cLAZAY2SIEizTuDYjgS0SYIgO7YCAzsR0CQJguzUBRw3EtAiCYIY24BBEwENkiCIqQMYa0kgdEkQpGULMKEVgZAlQZBW1Wc8FoFQJUGQWOVnUhwCIUqCIHEqz5zYBEKTBEFil56JcQmEJAmCxK068xIRCEUSBElUdiYnIRCCJAiSpOLMTUyg2yXJ1Gq1bOKsYwRcvXr1xeXl5Xdl6n655WKEMCVgAtJn78mtmFIvlKNv0opk9I3QuyBTU1NHS6XSVwLjU9ns6743zHoQaEZAvtW3KrfvRJKZZuO2x7wKMj4+fmpjY+Nb2Uy/7YaIg4AtAXlSrskryezY2Ng3tms0xnkT5Jkc38sJXm48CY8h0C4C8ipSk9ukvJKM+TinF0EuXbr0TrVa/Uk2dNTHplgDAo4EyoVC4YPh4eHfHdd5wcu/Yskr2xeyEeRwrQbxvgjk5X3wlI/FnAWZm5t7Sd53fORjM6wBAV8E5En7+PT09Guu6zkL8ujRoz7ZxJuuGyEeAj4JyPuQ7JMnTz52XdNZEHnv8arrJoiHQBoE5FXkLdd1nQURUzOumyAeAp1KwFmQXC73T6cmx750E5Dn7j9dCTgLks1m/5ZN/OW6EeIh4JlAZd++fQuuazoLcu7cuX/FVOeNuCZCPAQaCPxRLBbvNxxL/NBZkOiM8kuZX0SSO4nPTgAE0iFQlh/9R3ws7UWQ8+fP34mugRFJeD/ioyqsYU1AejC6Hmv64sWLv1ovUhfo5VKT5+vJJSdfyy8Ni/LPa28/P8bfEGgXAem7SI4f5WLF6LJ6L3+8ChLtaGJi4lilUvlM7n4i+33Dyy5ZBAItCMgrR3S5+7BcpPhDi6mJhr0L8vzsV65c2Se/ZT8mryi9cowPTD0Ho/RvebLkA1NKa0/aLQjIRyFOyhPldZmWbzHVZji1TxNGm/HyJt0mK2J0EOhmOaIKIYiOPt2VLLtdDgTZlbbRcdIQ5EAQHb3a9ixDkQNB2t464Z8wJDkQJPx+bWuGocmBIG1tn7BPFqIcCBJ2z7Ytu1DlQJC2tVC4JwpZDgQJt2/bklnociBIW9oozJNokANBwuzd1LPSIgeCpN5K4Z1AkxwIEl7/ppqRNjkQJNV2CmtxjXIgSFg9nFo2WuVAkNRaKpyFNcuBIOH0cSqZaJcDQVJpqzAWRY6ndeQThWH0s9cskGMTJ4JssuCeEECOrW2AIFt5qH6EHNvLjyDbmag8ghzNy44gzbmoOoocO5cbQXZmo2IEOcxlRhAzn6BHkaN1eRGkNaMgZyBHvLIiSDxOQc1CjvjlRJD4rIKYiRzJyoggyXh19WzkSF4+BEnOrCsjkMOubAhix62ropDDvlwIYs+uKyKRw61MCOLGr6OjkcO9PKl9R6H71ljBhYB8meqJ9fX1m7JG133tmUvevmN5BfFNtAPWm5mZ2SvfNHxNtoIcjvVAEEeAnRi+urp6Vr5V9lAKe0v1CzNT2K/zkgjijLCzFpifn8+LHKdT2JU6OSKGCJJCJ+3mkktLS8fl/Ac870GlHBFDBPHcSbu9XLVaPeJ5D2rliDgiiOduCmw51XIgSGDdHKWTzWbvekpLvRwRR15BPHVTpyzT19d3W/by0HE/yPEMIII4dlKnhQ8ODpYzmcycw76Qow4egtTBCOVuT0/PtEhy3yIf5GiAhiANQEJ4WCwW13K53CnJpZwgH+RoAgtBmkAJ4dDIyMitfD7/oeSyHCOf5Wju6OjojRhzVU3hYsXAyz07O7t/ZWUluvTkjNz21qcrP4atye1yb2/v9NDQ0OP6Me4/JYAgSjphYWEht7i4eLBUKh2OUi4UCvf6+/sfDAwMVJQgsEoTQaywEaSFAO9BtFSaPK0IIIgVNoK0EEAQLZUmTysCCGKFjSAtBBBES6XJ04oAglhhI0gLAQTRUmnytCKAIFbYCNJCAEG0VJo8rQggiBU2grQQQBAtlSZPKwIIYoWNIC0EEERLpcnTigCCWGEjSAsBBNFSafK0IoAgVtgI0kIAQbRUmjytCCCIFTaCtBBAEC2VJk8rAghihY0gLQQQREulydOKAIJYYSNICwEE0VJp8rQigCBW2AjSQgBBtFSaPK0IIIgVNoK0EEAQLZUmTysCCGKFjSAtBBBES6XJ04oAglhhI0gLAQTRUmnytCKAIFbYCNJCAEG0VJo8rQggiBU2grQQQBAtlSZPKwIIYoWNIC0EEERLpcnTigCCWGEjSAsBBNFSafK0IoAgVtgI0kLgP02yRT2ww5JTAAAAAElFTkSuQmCC",qu=""+new URL("calendar-icon.BGBc-vDw.svg",import.meta.url).href,nr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='18px'%20height='18px'%20viewBox='387%20609%2018%2018'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='387px'%20y='609px'%20width='18px'%20height='18px'%20filterUnits='userSpaceOnUse'%20id='filter1260'%3e%3cfeOffset%20dx='0'%20dy='0'%20in='SourceAlpha'%20result='shadowOffsetInner'%20/%3e%3cfeGaussianBlur%20stdDeviation='1.5'%20in='shadowOffsetInner'%20result='shadowGaussian'%20/%3e%3cfeComposite%20in2='shadowGaussian'%20operator='atop'%20in='SourceAlpha'%20result='shadowComposite'%20/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.117647058823529%200%20'%20in='shadowComposite'%20/%3e%3c/filter%3e%3cg%20id='widget1261'%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20/%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20stroke-width='1'%20stroke='%23797979'%20fill='none'%20/%3e%3c/g%3e%3c/defs%3e%3cuse%20xlink:href='%23widget1261'%20filter='url(%23filter1260)'%20/%3e%3cuse%20xlink:href='%23widget1261'%20/%3e%3c/svg%3e",rr="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='18px'%20height='18px'%20viewBox='387%20609%2018%2018'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='387px'%20y='609px'%20width='18px'%20height='18px'%20filterUnits='userSpaceOnUse'%20id='filter1262'%3e%3cfeOffset%20dx='0'%20dy='0'%20in='SourceAlpha'%20result='shadowOffsetInner'%20/%3e%3cfeGaussianBlur%20stdDeviation='1.5'%20in='shadowOffsetInner'%20result='shadowGaussian'%20/%3e%3cfeComposite%20in2='shadowGaussian'%20operator='atop'%20in='SourceAlpha'%20result='shadowComposite'%20/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.117647058823529%200%20'%20in='shadowComposite'%20/%3e%3c/filter%3e%3cg%20id='widget1263'%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20/%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20stroke-width='1'%20stroke='%23797979'%20fill='none'%20/%3e%3c/g%3e%3c/defs%3e%3cuse%20xlink:href='%23widget1263'%20filter='url(%23filter1262)'%20/%3e%3cuse%20xlink:href='%23widget1263'%20/%3e%3cpath%20d='M%20392.571428571429%20618%20L%20395.142857142857%20620.571428571429%20L%20399.428571428571%20614.571428571429%20'%20stroke-width='2.57142857142857'%20stroke='%23797979'%20fill='none'%20/%3e%3c/svg%3e";/*! Element Plus v2.9.4 */var Xu={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},dropdown:{toggleDropdown:"切换下拉选项"},mention:{loading:"加载中"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};const ei={class:"content-box"},ti={class:"contentcontent flex1"},ai={class:"box flex1 flexflex"},ni={class:"box-left"},ri={class:"area-box"},si={class:"item"},li={class:"info-box"},oi={class:"info-item flexacenter"},ui={class:"flex1"},ii={class:"info-item flexacenter"},ci={class:"flex1"},di={class:"info-item flexacenter"},fi={class:"item"},vi={class:"time-box item-input-box flexacenter"},pi={class:"item"},mi={class:"title-box item-input-box flexacenter"},hi={key:0,class:"visible-icon",src:nr},gi={key:1,class:"visible-icon",src:rr},yi={class:"box-right"},bi={class:"area-box"},ki={class:"item"},wi={class:"course-box"},Ci={class:"floor-box"},Si={class:"box flexacenter"},Di={key:0,class:"anonymous-icon",src:nr},Ai={key:1,class:"anonymous-icon",src:rr},Ei={__name:"index",setup(t){const r=Vr();Zr({script:[{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]});const a=m=>m.getTime()>Date.now();qt(()=>{d()}),Lr(()=>{o()});let n=0;const o=()=>{const m=document.querySelector("section.index-footer");if(!m){n++,setTimeout(()=>o(),50);return}n!=15&&(m.style.display="none")};J("");let l="";const d=()=>{Ar().then(m=>{if(m.code!=200){Mt.error(m.message);return}const g=m.data;l=g.token;let f=g.info.interviewtime||0;f&&(g.info.interviewtime=h(f)),u.value={...g.info}})},h=m=>{var g=new Date(m*1e3),f=g.getFullYear(),p=("0"+(g.getMonth()+1)).slice(-2),S=("0"+g.getDate()).slice(-2),_=f+"-"+p+"-"+S;return _};let u=J({school:"",profession:"",project:"",interviewtime:"",subject:"",isvisiblereply:0,message:"",anonymous:0});const D=(m,g)=>{_r({keyword:m}).then(f=>{if(f.code!=200)return;let p=f.data||[],S=!1;p.forEach(_=>{_.value=_.checkname,_.checkname==m&&(S=!0)}),S||p.push({value:m}),g(p)})},k=m=>{u.value.schoolid=m.id||0},c=(m,g)=>{$r({keyword:m}).then(f=>{if(f.code!=200)return;let p=f.data||[],S=!1;p.forEach(_=>{_.value=_.name,_.name==m&&(S=!0)}),S||p.push({value:m}),g(p)})},v=m=>{u.value.profession_id=m.id||0},b=()=>{u.value.anonymous=u.value.anonymous==0?1:0},C=()=>{u.value.isvisiblereply=u.value.isvisiblereply==0?1:0};let w=J(!1);const T=(m=1)=>{if(w.value){Mt.error("提交中,稍等");return}w.value=!0,xr({info:u.value,token:l,status:m}).then(g=>{if(g.code!=200){Mt.error(g.message);return}const f=g.data;Mt.success(g.message),m==0?ta("/index.html",!1):ta(`/details/${f.uniqid}`,!1)}).finally(()=>w.value=!1)},$=()=>{r.currentRoute.value.meta.previousPage?r.go(-1):ta("./index.html",!1)};return(m,g)=>{const f=Tr,p=Pr,S=Mr,_=po,F=Ge,z=Gu,V=So;return W(),ee(we,null,[U(S,null,{default:ne(()=>[U(f,null,{default:ne(()=>g[10]||(g[10]=[Te("寄托天下 - 面经发布")])),_:1}),U(p,{name:"keyword",content:"留学资讯,留学交流论坛,留学面经,面试经验,寄托天下"})]),_:1}),O("div",ei,[O("div",{class:"flexacenter save-box save-left",onClick:g[0]||(g[0]=j=>T(0))},g[11]||(g[11]=[O("img",{class:"save-icon",src:Zu},null,-1),Te(" 保存并退出 ")])),O("div",{class:"flexacenter save-box save-right",onClick:$},g[12]||(g[12]=[Te(" 放弃保存 "),O("img",{class:"save-icon",src:Er},null,-1)])),O("div",ti,[g[22]||(g[22]=O("div",{class:"header flexacenter"},"发布面经",-1)),O("div",ai,[O("div",ni,[O("div",ri,[O("div",si,[g[16]||(g[16]=O("div",{class:"titletitle flexacenter"},[Te(" 申请信息 "),O("div",{class:"asterisk"},"*")],-1)),O("div",li,[O("div",oi,[g[13]||(g[13]=O("div",{class:"info-name"},"院校",-1)),O("div",ui,[U(_,{modelValue:e(u).school,"onUpdate:modelValue":g[1]||(g[1]=j=>e(u).school=j),"fetch-suggestions":D,clearable:"",class:"inline-input w-50",placeholder:"输入关键词,选择院校",onSelect:k,"trigger-on-focus":!1},null,8,["modelValue"])])]),O("div",ii,[g[14]||(g[14]=O("div",{class:"info-name"},"专业",-1)),O("div",ci,[U(_,{modelValue:e(u).profession,"onUpdate:modelValue":g[2]||(g[2]=j=>e(u).profession=j),"fetch-suggestions":c,clearable:"",class:"inline-input w-50",placeholder:"输入关键词,选择专业",onSelect:v,"trigger-on-focus":!1},null,8,["modelValue"])])]),O("div",di,[g[15]||(g[15]=O("div",{class:"info-name"},"项目",-1)),U(F,{class:"flex1 input",placeholder:"请输入",modelValue:e(u).project,"onUpdate:modelValue":g[3]||(g[3]=j=>e(u).project=j)},null,8,["modelValue"])])])]),O("div",fi,[g[18]||(g[18]=O("div",{class:"titletitle flexacenter"},[Te(" 面试时间 "),O("div",{class:"asterisk"},"*")],-1)),O("div",vi,[U(V,{locale:e(Xu)},{default:ne(()=>[U(z,{modelValue:e(u).interviewtime,"onUpdate:modelValue":g[4]||(g[4]=j=>e(u).interviewtime=j),type:"date",placeholder:"请选择",size:"large",class:"flex1 flexacenter","clear-icon":{},"value-format":"YYYY-MM-DD","disabled-date":a},null,8,["modelValue"])]),_:1},8,["locale"]),g[17]||(g[17]=O("img",{class:"calendar-icon",src:qu},null,-1))])]),O("div",pi,[g[19]||(g[19]=O("div",{class:"titletitle flexacenter"},[Te(" 面经帖标题 "),O("div",{class:"asterisk"},"*")],-1)),O("div",mi,[U(F,{modelValue:e(u).subject,"onUpdate:modelValue":g[5]||(g[5]=j=>e(u).subject=j),placeholder:"给你的面经帖起一个吸引的标题吧","show-word-limit":"",maxlength:"80"},null,8,["modelValue"])])])]),O("div",{class:"visible-box flexacenter",onClick:g[6]||(g[6]=j=>C())},[e(u).isvisiblereply==0?(W(),ee("img",hi)):(W(),ee("img",gi)),g[20]||(g[20]=Te(" 回复/点赞可见 "))])]),O("div",yi,[O("div",bi,[O("div",ki,[g[21]||(g[21]=O("div",{class:"titletitle flexacenter"},[Te(" 面试构成及过程 "),O("div",{class:"asterisk"},"*")],-1)),O("div",wi,[U(F,{modelValue:e(u).message,"onUpdate:modelValue":g[7]||(g[7]=j=>e(u).message=j),type:"textarea",autosize:"","show-word-limit":"",maxlength:"2000",placeholder:"例如:项目介绍、面试时长、面试官、问题QA、需要注意的地方"},null,8,["modelValue"])])])])])]),g[23]||(g[23]=O("div",{class:"hint-box flexcenter"},"注:请确保以上内容已正确填写,发布后将不能修改",-1))])]),O("div",Ci,[O("div",Si,[O("div",{class:"anonymous-box flexacenter",onClick:g[8]||(g[8]=j=>b())},[e(u).anonymous==0?(W(),ee("img",Di)):(W(),ee("img",Ai)),g[24]||(g[24]=Te(" 匿名发表 ")),g[25]||(g[25]=O("div",{class:"text"},"(发布后可修改)",-1))]),O("div",{class:"issue-btn flexcenter",onClick:g[9]||(g[9]=j=>T())},"发布"+ve(e(w)?"中...":""),1)])])],64)}}},$i=qr(Ei,[["__scopeId","data-v-0813115a"]]);export{$i as default}; diff --git a/.output/public/_nuxt/BE7hzMIt.js b/.output/public/_nuxt/BE7hzMIt.js new file mode 100644 index 0000000..02490c1 --- /dev/null +++ b/.output/public/_nuxt/BE7hzMIt.js @@ -0,0 +1 @@ +import{a4 as Eo,ag as To,a7 as _n,a8 as Co,af as dn,aa as Nn,aH as Zt,aI as Hn,a3 as pn,aJ as Oo,b as le,_ as ge,d as P,aw as $n,aK as vn,aL as Jt,aM as jt,R as ko,V as Ao,w as Pt,E as Nt,aN as Ln,W as Ro,aO as Mo,al as Po,U as Vt,aP as Io,i as Ot,aq as zn,aQ as Bo,ah as Ht,aR as Fo,aS as _o,aT as No,ai as Ho,J as Pe,ar as $o,at as hn,S as Lo,Q as zo,am as Do,aU as jo}from"./BnReMd0k.js";import{d as V,r as M,j as w,C as J,F as Ve,H as ve,D as ne,T as j,e as pt,t as q,v as A,V as Wt,E as u,K as D,$ as kt,P as Dn,aw as Vo,ah as Kt,N as at,ax as jn,ay as Wo,z as We,o as Xe,at as it,I as W,J as N,A as G,L as Ke,a2 as Fe,az as st,a5 as Ko,am as ct,aA as Uo,a4 as It,a0 as je,G as Vn,aq as qo,al as xe,av as Go,aB as Zo,aC as Jo,aa as Xo,ac as Yo,a6 as Wn,aD as Qo,aE as er,y as rt,ag as $t,U as tr,S as De,ap as nr,a9 as Kn,x as Le,a1 as Ie,W as or,ad as rr}from"./C0eoOjsX.js";function ar(e){return e}function ir(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var sr=800,lr=16,ur=Date.now;function cr(e){var t=0,n=0;return function(){var o=ur(),r=lr-(o-n);if(n=o,r>0){if(++t>=sr)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function fr(e){return function(){return e}}var At=function(){try{var e=Eo(Object,"defineProperty");return e({},"",{}),e}catch{}}(),dr=At?function(e,t){return At(e,"toString",{configurable:!0,enumerable:!1,value:fr(t),writable:!0})}:ar,pr=cr(dr),vr=9007199254740991,hr=/^(?:0|[1-9]\d*)$/;function Un(e,t){var n=typeof e;return t=t??vr,!!t&&(n=="number"||n!="symbol"&&hr.test(e))&&e>-1&&e%1==0&&e<t}function gr(e,t,n){t=="__proto__"&&At?At(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var br=Object.prototype,mr=br.hasOwnProperty;function yr(e,t,n){var o=e[t];(!(mr.call(e,t)&&To(o,n))||n===void 0&&!(t in e))&&gr(e,t,n)}var gn=Math.max;function wr(e,t,n){return t=gn(t===void 0?e.length-1:t,0),function(){for(var o=arguments,r=-1,a=gn(o.length-t,0),i=Array(a);++r<a;)i[r]=o[t+r];r=-1;for(var s=Array(t+1);++r<t;)s[r]=o[r];return s[t]=n(i),ir(e,this,s)}}var xr=9007199254740991;function Sr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xr}var Er="[object Arguments]";function bn(e){return _n(e)&&Co(e)==Er}var qn=Object.prototype,Tr=qn.hasOwnProperty,Cr=qn.propertyIsEnumerable,Gn=bn(function(){return arguments}())?bn:function(e){return _n(e)&&Tr.call(e,"callee")&&!Cr.call(e,"callee")};function Or(e,t){for(var n=-1,o=t.length,r=e.length;++n<o;)e[r+n]=t[n];return e}var mn=dn?dn.isConcatSpreadable:void 0;function kr(e){return Nn(e)||Gn(e)||!!(mn&&e&&e[mn])}function Ar(e,t,n,o,r){var a=-1,i=e.length;for(n||(n=kr),r||(r=[]);++a<i;){var s=e[a];n(s)?Or(r,s):r[r.length]=s}return r}function Rr(e){var t=e==null?0:e.length;return t?Ar(e):[]}function Mr(e){return pr(wr(e,void 0,Rr),e+"")}function Pr(e,t){return e!=null&&t in Object(e)}function Ir(e,t,n){t=Zt(t,e);for(var o=-1,r=t.length,a=!1;++o<r;){var i=Hn(t[o]);if(!(a=e!=null&&n(e,i)))break;e=e[i]}return a||++o!=r?a:(r=e==null?0:e.length,!!r&&Sr(r)&&Un(i,r)&&(Nn(e)||Gn(e)))}function Br(e,t){return e!=null&&Ir(e,t,Pr)}function Fr(e,t,n,o){if(!pn(e))return e;t=Zt(t,e);for(var r=-1,a=t.length,i=a-1,s=e;s!=null&&++r<a;){var l=Hn(t[r]),c=n;if(l==="__proto__"||l==="constructor"||l==="prototype")return e;if(r!=i){var p=s[l];c=void 0,c===void 0&&(c=pn(p)?p:Un(t[r+1])?[]:{})}yr(s,l,c),s=s[l]}return e}function _r(e,t,n){for(var o=-1,r=t.length,a={};++o<r;){var i=t[o],s=Oo(e,i);n(s,i)&&Fr(a,Zt(i,e),s)}return a}function Nr(e,t){return _r(e,t,function(n,o){return Br(e,o)})}var Hr=Mr(function(e,t){return e==null?{}:Nr(e,t)});const Xt=Symbol("popper"),Zn=Symbol("popperContent"),$r=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],Jn=le({role:{type:String,values:$r,default:"tooltip"}}),Lr=V({name:"ElPopper",inheritAttrs:!1}),zr=V({...Lr,props:Jn,setup(e,{expose:t}){const n=e,o=M(),r=M(),a=M(),i=M(),s=w(()=>n.role),l={triggerRef:o,popperInstanceRef:r,contentRef:a,referenceRef:i,role:s};return t(l),Ve(Xt,l),(c,p)=>J(c.$slots,"default")}});var Dr=ge(zr,[["__file","popper.vue"]]);const Xn=le({arrowOffset:{type:Number,default:5}}),jr=V({name:"ElPopperArrow",inheritAttrs:!1}),Vr=V({...jr,props:Xn,setup(e,{expose:t}){const n=e,o=ve("popper"),{arrowOffset:r,arrowRef:a,arrowStyle:i}=ne(Zn,void 0);return j(()=>n.arrowOffset,s=>{r.value=s}),pt(()=>{a.value=void 0}),t({arrowRef:a}),(s,l)=>(A(),q("span",{ref_key:"arrowRef",ref:a,class:D(u(o).e("arrow")),style:Wt(u(i)),"data-popper-arrow":""},null,6))}});var Wr=ge(Vr,[["__file","arrow.vue"]]);const Yn=le({virtualRef:{type:P(Object)},virtualTriggering:Boolean,onMouseenter:{type:P(Function)},onMouseleave:{type:P(Function)},onClick:{type:P(Function)},onKeydown:{type:P(Function)},onFocus:{type:P(Function)},onBlur:{type:P(Function)},onContextmenu:{type:P(Function)},id:String,open:Boolean}),Qn=Symbol("elForwardRef"),Kr=e=>{Ve(Qn,{setForwardRef:n=>{e.value=n}})},Ur=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),qr="ElOnlyChild",Gr=V({name:qr,setup(e,{slots:t,attrs:n}){var o;const r=ne(Qn),a=Ur((o=r==null?void 0:r.setForwardRef)!=null?o:kt);return()=>{var i;const s=(i=t.default)==null?void 0:i.call(t,n);if(!s||s.length>1)return null;const l=eo(s);return l?Dn(Vo(l,n),[[a]]):null}}});function eo(e){if(!e)return null;const t=e;for(const n of t){if(Kt(n))switch(n.type){case Wo:continue;case jn:case"svg":return yn(n);case at:return eo(n.children);default:return n}return yn(n)}return null}function yn(e){const t=ve("only-child");return We("span",{class:t.e("content")},[e])}const Zr=V({name:"ElPopperTrigger",inheritAttrs:!1}),Jr=V({...Zr,props:Yn,setup(e,{expose:t}){const n=e,{role:o,triggerRef:r}=ne(Xt,void 0);Kr(r);const a=w(()=>s.value?n.id:void 0),i=w(()=>{if(o&&o.value==="tooltip")return n.open&&n.id?n.id:void 0}),s=w(()=>{if(o&&o.value!=="tooltip")return o.value}),l=w(()=>s.value?`${n.open}`:void 0);let c;const p=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return Xe(()=>{j(()=>n.virtualRef,v=>{v&&(r.value=$n(v))},{immediate:!0}),j(r,(v,m)=>{c==null||c(),c=void 0,it(v)&&(p.forEach(h=>{var f;const b=n[h];b&&(v.addEventListener(h.slice(2).toLowerCase(),b),(f=m==null?void 0:m.removeEventListener)==null||f.call(m,h.slice(2).toLowerCase(),b))}),vn(v)&&(c=j([a,i,s,l],h=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((f,b)=>{Jt(h[b])?v.removeAttribute(f):v.setAttribute(f,h[b])})},{immediate:!0}))),it(m)&&vn(m)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(h=>m.removeAttribute(h))},{immediate:!0})}),pt(()=>{if(c==null||c(),c=void 0,r.value&&it(r.value)){const v=r.value;p.forEach(m=>{const h=n[m];h&&v.removeEventListener(m.slice(2).toLowerCase(),h)}),r.value=void 0}}),t({triggerRef:r}),(v,m)=>v.virtualTriggering?N("v-if",!0):(A(),W(u(Gr),Ke({key:0},v.$attrs,{"aria-controls":u(a),"aria-describedby":u(i),"aria-expanded":u(l),"aria-haspopup":u(s)}),{default:G(()=>[J(v.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var Xr=ge(Jr,[["__file","trigger.vue"]]),Y="top",ie="bottom",se="right",Q="left",Yt="auto",vt=[Y,ie,se,Q],Ue="start",ft="end",Yr="clippingParents",to="viewport",ot="popper",Qr="reference",wn=vt.reduce(function(e,t){return e.concat([t+"-"+Ue,t+"-"+ft])},[]),Qt=[].concat(vt,[Yt]).reduce(function(e,t){return e.concat([t,t+"-"+Ue,t+"-"+ft])},[]),ea="beforeRead",ta="read",na="afterRead",oa="beforeMain",ra="main",aa="afterMain",ia="beforeWrite",sa="write",la="afterWrite",ua=[ea,ta,na,oa,ra,aa,ia,sa,la];function he(e){return e?(e.nodeName||"").toLowerCase():null}function ce(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function qe(e){var t=ce(e).Element;return e instanceof t||e instanceof Element}function ae(e){var t=ce(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function en(e){if(typeof ShadowRoot>"u")return!1;var t=ce(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function ca(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},r=t.attributes[n]||{},a=t.elements[n];!ae(a)||!he(a)||(Object.assign(a.style,o),Object.keys(r).forEach(function(i){var s=r[i];s===!1?a.removeAttribute(i):a.setAttribute(i,s===!0?"":s)}))})}function fa(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var r=t.elements[o],a=t.attributes[o]||{},i=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),s=i.reduce(function(l,c){return l[c]="",l},{});!ae(r)||!he(r)||(Object.assign(r.style,s),Object.keys(a).forEach(function(l){r.removeAttribute(l)}))})}}var no={name:"applyStyles",enabled:!0,phase:"write",fn:ca,effect:fa,requires:["computeStyles"]};function pe(e){return e.split("-")[0]}var _e=Math.max,Rt=Math.min,Ge=Math.round;function Ze(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,r=1;if(ae(e)&&t){var a=e.offsetHeight,i=e.offsetWidth;i>0&&(o=Ge(n.width)/i||1),a>0&&(r=Ge(n.height)/a||1)}return{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function tn(e){var t=Ze(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function oo(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&en(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Se(e){return ce(e).getComputedStyle(e)}function da(e){return["table","td","th"].indexOf(he(e))>=0}function Oe(e){return((qe(e)?e.ownerDocument:e.document)||window.document).documentElement}function Bt(e){return he(e)==="html"?e:e.assignedSlot||e.parentNode||(en(e)?e.host:null)||Oe(e)}function xn(e){return!ae(e)||Se(e).position==="fixed"?null:e.offsetParent}function pa(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&ae(e)){var o=Se(e);if(o.position==="fixed")return null}var r=Bt(e);for(en(r)&&(r=r.host);ae(r)&&["html","body"].indexOf(he(r))<0;){var a=Se(r);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return r;r=r.parentNode}return null}function ht(e){for(var t=ce(e),n=xn(e);n&&da(n)&&Se(n).position==="static";)n=xn(n);return n&&(he(n)==="html"||he(n)==="body"&&Se(n).position==="static")?t:n||pa(e)||t}function nn(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function lt(e,t,n){return _e(e,Rt(t,n))}function va(e,t,n){var o=lt(e,t,n);return o>n?n:o}function ro(){return{top:0,right:0,bottom:0,left:0}}function ao(e){return Object.assign({},ro(),e)}function io(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var ha=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,ao(typeof e!="number"?e:io(e,vt))};function ga(e){var t,n=e.state,o=e.name,r=e.options,a=n.elements.arrow,i=n.modifiersData.popperOffsets,s=pe(n.placement),l=nn(s),c=[Q,se].indexOf(s)>=0,p=c?"height":"width";if(!(!a||!i)){var v=ha(r.padding,n),m=tn(a),h=l==="y"?Y:Q,f=l==="y"?ie:se,b=n.rects.reference[p]+n.rects.reference[l]-i[l]-n.rects.popper[p],S=i[l]-n.rects.reference[l],d=ht(a),E=d?l==="y"?d.clientHeight||0:d.clientWidth||0:0,O=b/2-S/2,x=v[h],C=E-m[p]-v[f],k=E/2-m[p]/2+O,T=lt(x,k,C),R=l;n.modifiersData[o]=(t={},t[R]=T,t.centerOffset=T-k,t)}}function ba(e){var t=e.state,n=e.options,o=n.element,r=o===void 0?"[data-popper-arrow]":o;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||!oo(t.elements.popper,r)||(t.elements.arrow=r))}var ma={name:"arrow",enabled:!0,phase:"main",fn:ga,effect:ba,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Je(e){return e.split("-")[1]}var ya={top:"auto",right:"auto",bottom:"auto",left:"auto"};function wa(e){var t=e.x,n=e.y,o=window,r=o.devicePixelRatio||1;return{x:Ge(t*r)/r||0,y:Ge(n*r)/r||0}}function Sn(e){var t,n=e.popper,o=e.popperRect,r=e.placement,a=e.variation,i=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,p=e.roundOffsets,v=e.isFixed,m=i.x,h=m===void 0?0:m,f=i.y,b=f===void 0?0:f,S=typeof p=="function"?p({x:h,y:b}):{x:h,y:b};h=S.x,b=S.y;var d=i.hasOwnProperty("x"),E=i.hasOwnProperty("y"),O=Q,x=Y,C=window;if(c){var k=ht(n),T="clientHeight",R="clientWidth";if(k===ce(n)&&(k=Oe(n),Se(k).position!=="static"&&s==="absolute"&&(T="scrollHeight",R="scrollWidth")),k=k,r===Y||(r===Q||r===se)&&a===ft){x=ie;var L=v&&k===C&&C.visualViewport?C.visualViewport.height:k[T];b-=L-o.height,b*=l?1:-1}if(r===Q||(r===Y||r===ie)&&a===ft){O=se;var I=v&&k===C&&C.visualViewport?C.visualViewport.width:k[R];h-=I-o.width,h*=l?1:-1}}var _=Object.assign({position:s},c&&ya),z=p===!0?wa({x:h,y:b}):{x:h,y:b};if(h=z.x,b=z.y,l){var B;return Object.assign({},_,(B={},B[x]=E?"0":"",B[O]=d?"0":"",B.transform=(C.devicePixelRatio||1)<=1?"translate("+h+"px, "+b+"px)":"translate3d("+h+"px, "+b+"px, 0)",B))}return Object.assign({},_,(t={},t[x]=E?b+"px":"",t[O]=d?h+"px":"",t.transform="",t))}function xa(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=o===void 0?!0:o,a=n.adaptive,i=a===void 0?!0:a,s=n.roundOffsets,l=s===void 0?!0:s,c={placement:pe(t.placement),variation:Je(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Sn(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Sn(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var so={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:xa,data:{}},St={passive:!0};function Sa(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,a=r===void 0?!0:r,i=o.resize,s=i===void 0?!0:i,l=ce(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&c.forEach(function(p){p.addEventListener("scroll",n.update,St)}),s&&l.addEventListener("resize",n.update,St),function(){a&&c.forEach(function(p){p.removeEventListener("scroll",n.update,St)}),s&&l.removeEventListener("resize",n.update,St)}}var lo={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Sa,data:{}},Ea={left:"right",right:"left",bottom:"top",top:"bottom"};function Ct(e){return e.replace(/left|right|bottom|top/g,function(t){return Ea[t]})}var Ta={start:"end",end:"start"};function En(e){return e.replace(/start|end/g,function(t){return Ta[t]})}function on(e){var t=ce(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function rn(e){return Ze(Oe(e)).left+on(e).scrollLeft}function Ca(e){var t=ce(e),n=Oe(e),o=t.visualViewport,r=n.clientWidth,a=n.clientHeight,i=0,s=0;return o&&(r=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(i=o.offsetLeft,s=o.offsetTop)),{width:r,height:a,x:i+rn(e),y:s}}function Oa(e){var t,n=Oe(e),o=on(e),r=(t=e.ownerDocument)==null?void 0:t.body,a=_e(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),i=_e(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-o.scrollLeft+rn(e),l=-o.scrollTop;return Se(r||n).direction==="rtl"&&(s+=_e(n.clientWidth,r?r.clientWidth:0)-a),{width:a,height:i,x:s,y:l}}function an(e){var t=Se(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function uo(e){return["html","body","#document"].indexOf(he(e))>=0?e.ownerDocument.body:ae(e)&&an(e)?e:uo(Bt(e))}function ut(e,t){var n;t===void 0&&(t=[]);var o=uo(e),r=o===((n=e.ownerDocument)==null?void 0:n.body),a=ce(o),i=r?[a].concat(a.visualViewport||[],an(o)?o:[]):o,s=t.concat(i);return r?s:s.concat(ut(Bt(i)))}function Ut(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ka(e){var t=Ze(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Tn(e,t){return t===to?Ut(Ca(e)):qe(t)?ka(t):Ut(Oa(Oe(e)))}function Aa(e){var t=ut(Bt(e)),n=["absolute","fixed"].indexOf(Se(e).position)>=0,o=n&&ae(e)?ht(e):e;return qe(o)?t.filter(function(r){return qe(r)&&oo(r,o)&&he(r)!=="body"}):[]}function Ra(e,t,n){var o=t==="clippingParents"?Aa(e):[].concat(t),r=[].concat(o,[n]),a=r[0],i=r.reduce(function(s,l){var c=Tn(e,l);return s.top=_e(c.top,s.top),s.right=Rt(c.right,s.right),s.bottom=Rt(c.bottom,s.bottom),s.left=_e(c.left,s.left),s},Tn(e,a));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function co(e){var t=e.reference,n=e.element,o=e.placement,r=o?pe(o):null,a=o?Je(o):null,i=t.x+t.width/2-n.width/2,s=t.y+t.height/2-n.height/2,l;switch(r){case Y:l={x:i,y:t.y-n.height};break;case ie:l={x:i,y:t.y+t.height};break;case se:l={x:t.x+t.width,y:s};break;case Q:l={x:t.x-n.width,y:s};break;default:l={x:t.x,y:t.y}}var c=r?nn(r):null;if(c!=null){var p=c==="y"?"height":"width";switch(a){case Ue:l[c]=l[c]-(t[p]/2-n[p]/2);break;case ft:l[c]=l[c]+(t[p]/2-n[p]/2);break}}return l}function dt(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=o===void 0?e.placement:o,a=n.boundary,i=a===void 0?Yr:a,s=n.rootBoundary,l=s===void 0?to:s,c=n.elementContext,p=c===void 0?ot:c,v=n.altBoundary,m=v===void 0?!1:v,h=n.padding,f=h===void 0?0:h,b=ao(typeof f!="number"?f:io(f,vt)),S=p===ot?Qr:ot,d=e.rects.popper,E=e.elements[m?S:p],O=Ra(qe(E)?E:E.contextElement||Oe(e.elements.popper),i,l),x=Ze(e.elements.reference),C=co({reference:x,element:d,placement:r}),k=Ut(Object.assign({},d,C)),T=p===ot?k:x,R={top:O.top-T.top+b.top,bottom:T.bottom-O.bottom+b.bottom,left:O.left-T.left+b.left,right:T.right-O.right+b.right},L=e.modifiersData.offset;if(p===ot&&L){var I=L[r];Object.keys(R).forEach(function(_){var z=[se,ie].indexOf(_)>=0?1:-1,B=[Y,ie].indexOf(_)>=0?"y":"x";R[_]+=I[B]*z})}return R}function Ma(e,t){t===void 0&&(t={});var n=t,o=n.placement,r=n.boundary,a=n.rootBoundary,i=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?Qt:l,p=Je(o),v=p?s?wn:wn.filter(function(f){return Je(f)===p}):vt,m=v.filter(function(f){return c.indexOf(f)>=0});m.length===0&&(m=v);var h=m.reduce(function(f,b){return f[b]=dt(e,{placement:b,boundary:r,rootBoundary:a,padding:i})[pe(b)],f},{});return Object.keys(h).sort(function(f,b){return h[f]-h[b]})}function Pa(e){if(pe(e)===Yt)return[];var t=Ct(e);return[En(e),t,En(t)]}function Ia(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,s=i===void 0?!0:i,l=n.fallbackPlacements,c=n.padding,p=n.boundary,v=n.rootBoundary,m=n.altBoundary,h=n.flipVariations,f=h===void 0?!0:h,b=n.allowedAutoPlacements,S=t.options.placement,d=pe(S),E=d===S,O=l||(E||!f?[Ct(S)]:Pa(S)),x=[S].concat(O).reduce(function(fe,re){return fe.concat(pe(re)===Yt?Ma(t,{placement:re,boundary:p,rootBoundary:v,padding:c,flipVariations:f,allowedAutoPlacements:b}):re)},[]),C=t.rects.reference,k=t.rects.popper,T=new Map,R=!0,L=x[0],I=0;I<x.length;I++){var _=x[I],z=pe(_),B=Je(_)===Ue,oe=[Y,ie].indexOf(z)>=0,K=oe?"width":"height",H=dt(t,{placement:_,boundary:p,rootBoundary:v,altBoundary:m,padding:c}),y=oe?B?se:Q:B?ie:Y;C[K]>k[K]&&(y=Ct(y));var $=Ct(y),U=[];if(a&&U.push(H[z]<=0),s&&U.push(H[y]<=0,H[$]<=0),U.every(function(fe){return fe})){L=_,R=!1;break}T.set(_,U)}if(R)for(var ee=f?3:1,ke=function(fe){var re=x.find(function(de){var He=T.get(de);if(He)return He.slice(0,fe).every(function(Ee){return Ee})});if(re)return L=re,"break"},Ae=ee;Ae>0;Ae--){var Ne=ke(Ae);if(Ne==="break")break}t.placement!==L&&(t.modifiersData[o]._skip=!0,t.placement=L,t.reset=!0)}}var Ba={name:"flip",enabled:!0,phase:"main",fn:Ia,requiresIfExists:["offset"],data:{_skip:!1}};function Cn(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function On(e){return[Y,se,ie,Q].some(function(t){return e[t]>=0})}function Fa(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,a=t.modifiersData.preventOverflow,i=dt(t,{elementContext:"reference"}),s=dt(t,{altBoundary:!0}),l=Cn(i,o),c=Cn(s,r,a),p=On(l),v=On(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:v},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":v})}var _a={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Fa};function Na(e,t,n){var o=pe(e),r=[Q,Y].indexOf(o)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,i=a[0],s=a[1];return i=i||0,s=(s||0)*r,[Q,se].indexOf(o)>=0?{x:s,y:i}:{x:i,y:s}}function Ha(e){var t=e.state,n=e.options,o=e.name,r=n.offset,a=r===void 0?[0,0]:r,i=Qt.reduce(function(p,v){return p[v]=Na(v,t.rects,a),p},{}),s=i[t.placement],l=s.x,c=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[o]=i}var $a={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Ha};function La(e){var t=e.state,n=e.name;t.modifiersData[n]=co({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var fo={name:"popperOffsets",enabled:!0,phase:"read",fn:La,data:{}};function za(e){return e==="x"?"y":"x"}function Da(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,a=r===void 0?!0:r,i=n.altAxis,s=i===void 0?!1:i,l=n.boundary,c=n.rootBoundary,p=n.altBoundary,v=n.padding,m=n.tether,h=m===void 0?!0:m,f=n.tetherOffset,b=f===void 0?0:f,S=dt(t,{boundary:l,rootBoundary:c,padding:v,altBoundary:p}),d=pe(t.placement),E=Je(t.placement),O=!E,x=nn(d),C=za(x),k=t.modifiersData.popperOffsets,T=t.rects.reference,R=t.rects.popper,L=typeof b=="function"?b(Object.assign({},t.rects,{placement:t.placement})):b,I=typeof L=="number"?{mainAxis:L,altAxis:L}:Object.assign({mainAxis:0,altAxis:0},L),_=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,z={x:0,y:0};if(k){if(a){var B,oe=x==="y"?Y:Q,K=x==="y"?ie:se,H=x==="y"?"height":"width",y=k[x],$=y+S[oe],U=y-S[K],ee=h?-R[H]/2:0,ke=E===Ue?T[H]:R[H],Ae=E===Ue?-R[H]:-T[H],Ne=t.elements.arrow,fe=h&&Ne?tn(Ne):{width:0,height:0},re=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ro(),de=re[oe],He=re[K],Ee=lt(0,T[H],fe[H]),Re=O?T[H]/2-ee-Ee-de-I.mainAxis:ke-Ee-de-I.mainAxis,Ye=O?-T[H]/2+ee+Ee+He+I.mainAxis:Ae+Ee+He+I.mainAxis,$e=t.elements.arrow&&ht(t.elements.arrow),gt=$e?x==="y"?$e.clientTop||0:$e.clientLeft||0:0,Qe=(B=_==null?void 0:_[x])!=null?B:0,bt=y+Re-Qe-gt,mt=y+Ye-Qe,yt=lt(h?Rt($,bt):$,y,h?_e(U,mt):U);k[x]=yt,z[x]=yt-y}if(s){var wt,Ft=x==="x"?Y:Q,_t=x==="x"?ie:se,be=k[C],Me=C==="y"?"height":"width",xt=be+S[Ft],et=be-S[_t],g=[Y,Q].indexOf(d)!==-1,F=(wt=_==null?void 0:_[C])!=null?wt:0,me=g?xt:be-T[Me]-R[Me]-F+I.altAxis,tt=g?be+T[Me]+R[Me]-F-I.altAxis:et,nt=h&&g?va(me,be,tt):lt(h?me:xt,be,h?tt:et);k[C]=nt,z[C]=nt-be}t.modifiersData[o]=z}}var ja={name:"preventOverflow",enabled:!0,phase:"main",fn:Da,requiresIfExists:["offset"]};function Va(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Wa(e){return e===ce(e)||!ae(e)?on(e):Va(e)}function Ka(e){var t=e.getBoundingClientRect(),n=Ge(t.width)/e.offsetWidth||1,o=Ge(t.height)/e.offsetHeight||1;return n!==1||o!==1}function Ua(e,t,n){n===void 0&&(n=!1);var o=ae(t),r=ae(t)&&Ka(t),a=Oe(t),i=Ze(e,r),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(o||!o&&!n)&&((he(t)!=="body"||an(a))&&(s=Wa(t)),ae(t)?(l=Ze(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):a&&(l.x=rn(a))),{x:i.left+s.scrollLeft-l.x,y:i.top+s.scrollTop-l.y,width:i.width,height:i.height}}function qa(e){var t=new Map,n=new Set,o=[];e.forEach(function(a){t.set(a.name,a)});function r(a){n.add(a.name);var i=[].concat(a.requires||[],a.requiresIfExists||[]);i.forEach(function(s){if(!n.has(s)){var l=t.get(s);l&&r(l)}}),o.push(a)}return e.forEach(function(a){n.has(a.name)||r(a)}),o}function Ga(e){var t=qa(e);return ua.reduce(function(n,o){return n.concat(t.filter(function(r){return r.phase===o}))},[])}function Za(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ja(e){var t=e.reduce(function(n,o){var r=n[o.name];return n[o.name]=r?Object.assign({},r,o,{options:Object.assign({},r.options,o.options),data:Object.assign({},r.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var kn={placement:"bottom",modifiers:[],strategy:"absolute"};function An(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(o){return!(o&&typeof o.getBoundingClientRect=="function")})}function sn(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,o=n===void 0?[]:n,r=t.defaultOptions,a=r===void 0?kn:r;return function(i,s,l){l===void 0&&(l=a);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},kn,a),modifiersData:{},elements:{reference:i,popper:s},attributes:{},styles:{}},p=[],v=!1,m={state:c,setOptions:function(b){var S=typeof b=="function"?b(c.options):b;f(),c.options=Object.assign({},a,c.options,S),c.scrollParents={reference:qe(i)?ut(i):i.contextElement?ut(i.contextElement):[],popper:ut(s)};var d=Ga(Ja([].concat(o,c.options.modifiers)));return c.orderedModifiers=d.filter(function(E){return E.enabled}),h(),m.update()},forceUpdate:function(){if(!v){var b=c.elements,S=b.reference,d=b.popper;if(An(S,d)){c.rects={reference:Ua(S,ht(d),c.options.strategy==="fixed"),popper:tn(d)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(R){return c.modifiersData[R.name]=Object.assign({},R.data)});for(var E=0;E<c.orderedModifiers.length;E++){if(c.reset===!0){c.reset=!1,E=-1;continue}var O=c.orderedModifiers[E],x=O.fn,C=O.options,k=C===void 0?{}:C,T=O.name;typeof x=="function"&&(c=x({state:c,options:k,name:T,instance:m})||c)}}}},update:Za(function(){return new Promise(function(b){m.forceUpdate(),b(c)})}),destroy:function(){f(),v=!0}};if(!An(i,s))return m;m.setOptions(l).then(function(b){!v&&l.onFirstUpdate&&l.onFirstUpdate(b)});function h(){c.orderedModifiers.forEach(function(b){var S=b.name,d=b.options,E=d===void 0?{}:d,O=b.effect;if(typeof O=="function"){var x=O({state:c,name:S,instance:m,options:E}),C=function(){};p.push(x||C)}})}function f(){p.forEach(function(b){return b()}),p=[]}return m}}sn();var Xa=[lo,fo,so,no];sn({defaultModifiers:Xa});var Ya=[lo,fo,so,no,$a,Ba,ja,ma,_a],Qa=sn({defaultModifiers:Ya});const ei=le({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),ln=e=>Hr(ei,e),ti=["fixed","absolute"],ni=le({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:P(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:Qt,default:"bottom"},popperOptions:{type:P(Object),default:()=>({})},strategy:{type:String,values:ti,default:"absolute"}}),po=le({...ni,id:String,style:{type:P([String,Array,Object])},className:{type:P([String,Array,Object])},effect:{type:P(String),default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:P([String,Array,Object])},popperStyle:{type:P([String,Array,Object])},referenceEl:{type:P(Object)},triggerTargetEl:{type:P(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...ln(["ariaLabel"])}),oi={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},ri=(e,t)=>{const n=M(!1),o=M();return{focusStartRef:o,trapped:n,onFocusAfterReleased:c=>{var p;((p=c.detail)==null?void 0:p.focusReason)!=="pointer"&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:c=>{e.visible&&!n.value&&(c.target&&(o.value=c.target),n.value=!0)},onFocusoutPrevented:c=>{e.trapping||(c.detail.focusReason==="pointer"&&c.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},ai=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:r}=e,a={placement:n,strategy:o,...r,modifiers:[...si(e),...t]};return li(a,r==null?void 0:r.modifiers),a},ii=e=>{if(Fe)return $n(e)};function si(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function li(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const ui=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:l})=>{const c=ci(l);Object.assign(i.value,c)},requires:["computeStyles"]},r=w(()=>{const{onFirstUpdate:l,placement:c,strategy:p,modifiers:v}=u(n);return{onFirstUpdate:l,placement:c||"bottom",strategy:p||"absolute",modifiers:[...v||[],o,{name:"applyStyles",enabled:!1}]}}),a=st(),i=M({styles:{popper:{position:u(r).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return j(r,l=>{const c=u(a);c&&c.setOptions(l)},{deep:!0}),j([e,t],([l,c])=>{s(),!(!l||!c)&&(a.value=Qa(l,c,u(r)))}),pt(()=>{s()}),{state:w(()=>{var l;return{...((l=u(a))==null?void 0:l.state)||{}}}),styles:w(()=>u(i).styles),attributes:w(()=>u(i).attributes),update:()=>{var l;return(l=u(a))==null?void 0:l.update()},forceUpdate:()=>{var l;return(l=u(a))==null?void 0:l.forceUpdate()},instanceRef:w(()=>u(a))}};function ci(e){const t=Object.keys(e.elements),n=jt(t.map(r=>[r,e.styles[r]||{}])),o=jt(t.map(r=>[r,e.attributes[r]]));return{styles:n,attributes:o}}const fi=0,di=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:r}=ne(Xt,void 0),a=M(),i=M(),s=w(()=>({name:"eventListeners",enabled:!!e.visible})),l=w(()=>{var d;const E=u(a),O=(d=u(i))!=null?d:fi;return{name:"arrow",enabled:!ko(E),options:{element:E,padding:O}}}),c=w(()=>({onFirstUpdate:()=>{f()},...ai(e,[u(l),u(s)])})),p=w(()=>ii(e.referenceEl)||u(o)),{attributes:v,state:m,styles:h,update:f,forceUpdate:b,instanceRef:S}=ui(p,n,c);return j(S,d=>t.value=d),Xe(()=>{j(()=>{var d;return(d=u(p))==null?void 0:d.getBoundingClientRect()},()=>{f()})}),{attributes:v,arrowRef:a,contentRef:n,instanceRef:S,state:m,styles:h,role:r,forceUpdate:b,update:f}},pi=(e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:r}=Ko(),a=ve("popper"),i=w(()=>u(t).popper),s=M(ct(e.zIndex)?e.zIndex:r()),l=w(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),c=w(()=>[{zIndex:u(s)},u(n).popper,e.popperStyle||{}]),p=w(()=>o.value==="dialog"?"false":void 0),v=w(()=>u(n).arrow||{});return{ariaModal:p,arrowStyle:v,contentAttrs:i,contentClass:l,contentStyle:c,contentZIndex:s,updateZIndex:()=>{s.value=ct(e.zIndex)?e.zIndex:r()}}},un=Symbol("formContextKey"),Mt=Symbol("formItemContextKey"),vi=V({name:"ElPopperContent"}),hi=V({...vi,props:po,emits:oi,setup(e,{expose:t,emit:n}){const o=e,{focusStartRef:r,trapped:a,onFocusAfterReleased:i,onFocusAfterTrapped:s,onFocusInTrap:l,onFocusoutPrevented:c,onReleaseRequested:p}=ri(o,n),{attributes:v,arrowRef:m,contentRef:h,styles:f,instanceRef:b,role:S,update:d}=di(o),{ariaModal:E,arrowStyle:O,contentAttrs:x,contentClass:C,contentStyle:k,updateZIndex:T}=pi(o,{styles:f,attributes:v,role:S}),R=ne(Mt,void 0),L=M();Ve(Zn,{arrowStyle:O,arrowRef:m,arrowOffset:L}),R&&Ve(Mt,{...R,addInputId:kt,removeInputId:kt});let I;const _=(B=!0)=>{d(),B&&T()},z=()=>{_(!1),o.visible&&o.focusOnShow?a.value=!0:o.visible===!1&&(a.value=!1)};return Xe(()=>{j(()=>o.triggerTargetEl,(B,oe)=>{I==null||I(),I=void 0;const K=u(B||h.value),H=u(oe||h.value);it(K)&&(I=j([S,()=>o.ariaLabel,E,()=>o.id],y=>{["role","aria-label","aria-modal","id"].forEach(($,U)=>{Jt(y[U])?K.removeAttribute($):K.setAttribute($,y[U])})},{immediate:!0})),H!==K&&it(H)&&["role","aria-label","aria-modal","id"].forEach(y=>{H.removeAttribute(y)})},{immediate:!0}),j(()=>o.visible,z,{immediate:!0})}),pt(()=>{I==null||I(),I=void 0}),t({popperContentRef:h,popperInstanceRef:b,updatePopper:_,contentStyle:k}),(B,oe)=>(A(),q("div",Ke({ref_key:"contentRef",ref:h},u(x),{style:u(k),class:u(C),tabindex:"-1",onMouseenter:K=>B.$emit("mouseenter",K),onMouseleave:K=>B.$emit("mouseleave",K)}),[We(u(Ao),{trapped:u(a),"trap-on-focus-in":!0,"focus-trap-el":u(h),"focus-start-el":u(r),onFocusAfterTrapped:u(s),onFocusAfterReleased:u(i),onFocusin:u(l),onFocusoutPrevented:u(c),onReleaseRequested:u(p)},{default:G(()=>[J(B.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16,["onMouseenter","onMouseleave"]))}});var gi=ge(hi,[["__file","content.vue"]]);const bi=Pt(Dr),cn=Symbol("elTooltip");function Rn(){let e;const t=(o,r)=>{n(),e=window.setTimeout(o,r)},n=()=>window.clearTimeout(e);return Uo(()=>n()),{registerTimeout:t,cancelTimeout:n}}const mi=le({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),yi=({showAfter:e,hideAfter:t,autoClose:n,open:o,close:r})=>{const{registerTimeout:a}=Rn(),{registerTimeout:i,cancelTimeout:s}=Rn();return{onOpen:p=>{a(()=>{o(p);const v=u(n);ct(v)&&v>0&&i(()=>{r(p)},v)},u(e))},onClose:p=>{s(),a(()=>{r(p)},u(t))}}},vo=le({...mi,...po,appendTo:{type:P([String,Object])},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:P(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...ln(["ariaLabel"])}),ho=le({...Yn,disabled:Boolean,trigger:{type:P([String,Array]),default:"hover"},triggerKeys:{type:P(Array),default:()=>[Nt.enter,Nt.numpadEnter,Nt.space]}}),wi=Ln({type:P(Boolean),default:null}),xi=Ln({type:P(Function)}),Si=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],r={[e]:wi,[n]:xi};return{useModelToggle:({indicator:i,toggleReason:s,shouldHideWhenRouteChanges:l,shouldProceed:c,onShow:p,onHide:v})=>{const m=It(),{emit:h}=m,f=m.props,b=w(()=>je(f[n])),S=w(()=>f[e]===null),d=T=>{i.value!==!0&&(i.value=!0,s&&(s.value=T),je(p)&&p(T))},E=T=>{i.value!==!1&&(i.value=!1,s&&(s.value=T),je(v)&&v(T))},O=T=>{if(f.disabled===!0||je(c)&&!c())return;const R=b.value&&Fe;R&&h(t,!0),(S.value||!R)&&d(T)},x=T=>{if(f.disabled===!0||!Fe)return;const R=b.value&&Fe;R&&h(t,!1),(S.value||!R)&&E(T)},C=T=>{Vn(T)&&(f.disabled&&T?b.value&&h(t,!1):i.value!==T&&(T?d():E()))},k=()=>{i.value?x():O()};return j(()=>f[e],C),l&&m.appContext.config.globalProperties.$route!==void 0&&j(()=>({...m.proxy.$route}),()=>{l.value&&i.value&&x()}),Xe(()=>{C(f[e])}),{hide:x,show:O,toggle:k,hasUpdateHandler:b}},useModelToggleProps:r,useModelToggleEmits:o}},{useModelToggleProps:Ei,useModelToggleEmits:Ti,useModelToggle:Ci}=Si("visible"),Oi=le({...Jn,...Ei,...vo,...ho,...Xn,showArrow:{type:Boolean,default:!0}}),ki=[...Ti,"before-show","before-hide","show","hide","open","close"],Ai=(e,t)=>qo(e)?e.includes(t):e===t,ze=(e,t,n)=>o=>{Ai(u(e),t)&&n(o)},we=(e,t,{checkForDefaultPrevented:n=!0}={})=>r=>{const a=e==null?void 0:e(r);if(n===!1||!a)return t==null?void 0:t(r)},Ri=V({name:"ElTooltipTrigger"}),Mi=V({...Ri,props:ho,setup(e,{expose:t}){const n=e,o=ve("tooltip"),{controlled:r,id:a,open:i,onOpen:s,onClose:l,onToggle:c}=ne(cn,void 0),p=M(null),v=()=>{if(u(r)||n.disabled)return!0},m=xe(n,"trigger"),h=we(v,ze(m,"hover",s)),f=we(v,ze(m,"hover",l)),b=we(v,ze(m,"click",x=>{x.button===0&&c(x)})),S=we(v,ze(m,"focus",s)),d=we(v,ze(m,"focus",l)),E=we(v,ze(m,"contextmenu",x=>{x.preventDefault(),c(x)})),O=we(v,x=>{const{code:C}=x;n.triggerKeys.includes(C)&&(x.preventDefault(),c(x))});return t({triggerRef:p}),(x,C)=>(A(),W(u(Xr),{id:u(a),"virtual-ref":x.virtualRef,open:u(i),"virtual-triggering":x.virtualTriggering,class:D(u(o).e("trigger")),onBlur:u(d),onClick:u(b),onContextmenu:u(E),onFocus:u(S),onMouseenter:u(h),onMouseleave:u(f),onKeydown:u(O)},{default:G(()=>[J(x.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var Pi=ge(Mi,[["__file","trigger.vue"]]);const go=()=>{const e=Zo(),t=Jo(),n=w(()=>`${e.value}-popper-container-${t.prefix}`),o=w(()=>`#${n.value}`);return{id:n,selector:o}},Ii=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},Bi=()=>{const{id:e,selector:t}=go();return Go(()=>{Fe&&(document.body.querySelector(t.value)||Ii(e.value))}),{id:e,selector:t}},Fi=V({name:"ElTooltipContent",inheritAttrs:!1}),_i=V({...Fi,props:vo,setup(e,{expose:t}){const n=e,{selector:o}=go(),r=ve("tooltip"),a=M();let i;const{controlled:s,id:l,open:c,trigger:p,onClose:v,onOpen:m,onShow:h,onHide:f,onBeforeShow:b,onBeforeHide:S}=ne(cn,void 0),d=w(()=>n.transition||`${r.namespace.value}-fade-in-linear`),E=w(()=>n.persistent);pt(()=>{i==null||i()});const O=w(()=>u(E)?!0:u(c)),x=w(()=>n.disabled?!1:u(c)),C=w(()=>n.appendTo||o.value),k=w(()=>{var y;return(y=n.style)!=null?y:{}}),T=M(!0),R=()=>{f(),H()&&Mo(document.body),T.value=!0},L=()=>{if(u(s))return!0},I=we(L,()=>{n.enterable&&u(p)==="hover"&&m()}),_=we(L,()=>{u(p)==="hover"&&v()}),z=()=>{var y,$;($=(y=a.value)==null?void 0:y.updatePopper)==null||$.call(y),b==null||b()},B=()=>{S==null||S()},oe=()=>{h(),i=Po(w(()=>{var y;return(y=a.value)==null?void 0:y.popperContentRef}),()=>{if(u(s))return;u(p)!=="hover"&&v()})},K=()=>{n.virtualTriggering||v()},H=y=>{var $;const U=($=a.value)==null?void 0:$.popperContentRef,ee=(y==null?void 0:y.relatedTarget)||document.activeElement;return U==null?void 0:U.contains(ee)};return j(()=>u(c),y=>{y?T.value=!1:i==null||i()},{flush:"post"}),j(()=>n.content,()=>{var y,$;($=(y=a.value)==null?void 0:y.updatePopper)==null||$.call(y)}),t({contentRef:a,isFocusInsideContent:H}),(y,$)=>(A(),W(u(Ro),{disabled:!y.teleported,to:u(C)},{default:G(()=>[We(Xo,{name:u(d),onAfterLeave:R,onBeforeEnter:z,onAfterEnter:oe,onBeforeLeave:B},{default:G(()=>[u(O)?Dn((A(),W(u(gi),Ke({key:0,id:u(l),ref_key:"contentRef",ref:a},y.$attrs,{"aria-label":y.ariaLabel,"aria-hidden":T.value,"boundaries-padding":y.boundariesPadding,"fallback-placements":y.fallbackPlacements,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,placement:y.placement,"popper-options":y.popperOptions,strategy:y.strategy,effect:y.effect,enterable:y.enterable,pure:y.pure,"popper-class":y.popperClass,"popper-style":[y.popperStyle,u(k)],"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,visible:u(x),"z-index":y.zIndex,onMouseenter:u(I),onMouseleave:u(_),onBlur:K,onClose:u(v)}),{default:G(()=>[J(y.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[Yo,u(x)]]):N("v-if",!0)]),_:3},8,["name"])]),_:3},8,["disabled","to"]))}});var Ni=ge(_i,[["__file","content.vue"]]);const Hi=V({name:"ElTooltip"}),$i=V({...Hi,props:Oi,emits:ki,setup(e,{expose:t,emit:n}){const o=e;Bi();const r=Wn(),a=M(),i=M(),s=()=>{var d;const E=u(a);E&&((d=E.popperInstanceRef)==null||d.update())},l=M(!1),c=M(),{show:p,hide:v,hasUpdateHandler:m}=Ci({indicator:l,toggleReason:c}),{onOpen:h,onClose:f}=yi({showAfter:xe(o,"showAfter"),hideAfter:xe(o,"hideAfter"),autoClose:xe(o,"autoClose"),open:p,close:v}),b=w(()=>Vn(o.visible)&&!m.value);Ve(cn,{controlled:b,id:r,open:Qo(l),trigger:xe(o,"trigger"),onOpen:d=>{h(d)},onClose:d=>{f(d)},onToggle:d=>{u(l)?f(d):h(d)},onShow:()=>{n("show",c.value)},onHide:()=>{n("hide",c.value)},onBeforeShow:()=>{n("before-show",c.value)},onBeforeHide:()=>{n("before-hide",c.value)},updatePopper:s}),j(()=>o.disabled,d=>{d&&l.value&&(l.value=!1)});const S=d=>{var E;return(E=i.value)==null?void 0:E.isFocusInsideContent(d)};return er(()=>l.value&&v()),t({popperRef:a,contentRef:i,isFocusInsideContent:S,updatePopper:s,onOpen:h,onClose:f,hide:v}),(d,E)=>(A(),W(u(bi),{ref_key:"popperRef",ref:a,role:d.role},{default:G(()=>[We(Pi,{disabled:d.disabled,trigger:d.trigger,"trigger-keys":d.triggerKeys,"virtual-ref":d.virtualRef,"virtual-triggering":d.virtualTriggering},{default:G(()=>[d.$slots.default?J(d.$slots,"default",{key:0}):N("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),We(Ni,{ref_key:"contentRef",ref:i,"aria-label":d.ariaLabel,"boundaries-padding":d.boundariesPadding,content:d.content,disabled:d.disabled,effect:d.effect,enterable:d.enterable,"fallback-placements":d.fallbackPlacements,"hide-after":d.hideAfter,"gpu-acceleration":d.gpuAcceleration,offset:d.offset,persistent:d.persistent,"popper-class":d.popperClass,"popper-style":d.popperStyle,placement:d.placement,"popper-options":d.popperOptions,pure:d.pure,"raw-content":d.rawContent,"reference-el":d.referenceEl,"trigger-target-el":d.triggerTargetEl,"show-after":d.showAfter,strategy:d.strategy,teleported:d.teleported,transition:d.transition,"virtual-triggering":d.virtualTriggering,"z-index":d.zIndex,"append-to":d.appendTo},{default:G(()=>[J(d.$slots,"content",{},()=>[d.rawContent?(A(),q("span",{key:0,innerHTML:d.content},null,8,["innerHTML"])):(A(),q("span",{key:1},rt(d.content),1))]),d.showArrow?(A(),W(u(Wr),{key:0,"arrow-offset":d.arrowOffset},null,8,["arrow-offset"])):N("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var Li=ge($i,[["__file","tooltip.vue"]]);const Rs=Pt(Li),zi=()=>Fe&&/firefox/i.test(window.navigator.userAgent);let X;const Di={height:"0",visibility:"hidden",overflow:zi()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},ji=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Vi(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),r=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:ji.map(i=>[i,t.getPropertyValue(i)]),paddingSize:o,borderSize:r,boxSizing:n}}function Mn(e,t=1,n){var o;X||(X=document.createElement("textarea"),document.body.appendChild(X));const{paddingSize:r,borderSize:a,boxSizing:i,contextStyle:s}=Vi(e);s.forEach(([v,m])=>X==null?void 0:X.style.setProperty(v,m)),Object.entries(Di).forEach(([v,m])=>X==null?void 0:X.style.setProperty(v,m,"important")),X.value=e.value||e.placeholder||"";let l=X.scrollHeight;const c={};i==="border-box"?l=l+a:i==="content-box"&&(l=l-r),X.value="";const p=X.scrollHeight-r;if(ct(t)){let v=p*t;i==="border-box"&&(v=v+r+a),l=Math.max(v,l),c.minHeight=`${v}px`}if(ct(n)){let v=p*n;i==="border-box"&&(v=v+r+a),l=Math.min(v,l)}return c.height=`${l}px`,(o=X.parentNode)==null||o.removeChild(X),X=void 0,c}const Wi=le({id:{type:String,default:void 0},size:zn,disabled:Boolean,modelValue:{type:P([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:P([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,showPassword:Boolean,showWordLimit:Boolean,suffixIcon:{type:Ot},prefixIcon:{type:Ot},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:P([Object,Array,String]),default:()=>Io({})},autofocus:Boolean,rows:{type:Number,default:2},...ln(["ariaLabel"])}),Ki={[Vt]:e=>$t(e),input:e=>$t(e),change:e=>$t(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},Ui=["class","style"],qi=/^on[A-Z]/,Gi=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=w(()=>((n==null?void 0:n.value)||[]).concat(Ui)),r=It();return r?w(()=>{var a;return jt(Object.entries((a=r.proxy)==null?void 0:a.$attrs).filter(([i])=>!o.value.includes(i)&&!(t&&qi.test(i))))}):w(()=>({}))},bo=()=>{const e=ne(un,void 0),t=ne(Mt,void 0);return{form:e,formItem:t}},Zi=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=M(!1)),o||(o=M(!1));const r=M();let a;const i=w(()=>{var s;return!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&((s=t.inputIds)==null?void 0:s.length)<=1)});return Xe(()=>{a=j([xe(e,"id"),n],([s,l])=>{const c=s??(l?void 0:Wn().value);c!==r.value&&(t!=null&&t.removeInputId&&(r.value&&t.removeInputId(r.value),!(o!=null&&o.value)&&!l&&c&&t.addInputId(c)),r.value=c)},{immediate:!0})}),tr(()=>{a&&a(),t!=null&&t.removeInputId&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:i,inputId:r}},mo=e=>{const t=It();return w(()=>{var n,o;return(o=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:o[e]})},yo=(e,t={})=>{const n=M(void 0),o=t.prop?n:mo("size"),r=t.global?n:Bo(),a=t.form?{size:void 0}:ne(un,void 0),i=t.formItem?{size:void 0}:ne(Mt,void 0);return w(()=>o.value||u(e)||(i==null?void 0:i.size)||(a==null?void 0:a.size)||r.value||"")},fn=e=>{const t=mo("disabled"),n=ne(un,void 0);return w(()=>t.value||u(e)||(n==null?void 0:n.disabled)||!1)};function Ji(e,{beforeFocus:t,afterFocus:n,beforeBlur:o,afterBlur:r}={}){const a=It(),{emit:i}=a,s=st(),l=M(!1),c=m=>{je(t)&&t(m)||l.value||(l.value=!0,i("focus",m),n==null||n())},p=m=>{var h;je(o)&&o(m)||m.relatedTarget&&((h=s.value)!=null&&h.contains(m.relatedTarget))||(l.value=!1,i("blur",m),r==null||r())},v=()=>{var m,h;(m=s.value)!=null&&m.contains(document.activeElement)&&s.value!==document.activeElement||(h=e.value)==null||h.focus()};return j(s,m=>{m&&m.setAttribute("tabindex","-1")}),Ht(s,"focus",c,!0),Ht(s,"blur",p,!0),Ht(s,"click",v,!0),{isFocused:l,wrapperRef:s,handleFocus:c,handleBlur:p}}const Xi=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e);function Yi({afterComposition:e,emit:t}){const n=M(!1),o=s=>{t==null||t("compositionstart",s),n.value=!0},r=s=>{var l;t==null||t("compositionupdate",s);const c=(l=s.target)==null?void 0:l.value,p=c[c.length-1]||"";n.value=!Xi(p)},a=s=>{t==null||t("compositionend",s),n.value&&(n.value=!1,De(()=>e(s)))};return{isComposing:n,handleComposition:s=>{s.type==="compositionend"?a(s):r(s)},handleCompositionStart:o,handleCompositionUpdate:r,handleCompositionEnd:a}}function Qi(e){let t;function n(){if(e.value==null)return;const{selectionStart:r,selectionEnd:a,value:i}=e.value;if(r==null||a==null)return;const s=i.slice(0,Math.max(0,r)),l=i.slice(Math.max(0,a));t={selectionStart:r,selectionEnd:a,value:i,beforeTxt:s,afterTxt:l}}function o(){if(e.value==null||t==null)return;const{value:r}=e.value,{beforeTxt:a,afterTxt:i,selectionStart:s}=t;if(a==null||i==null||s==null)return;let l=r.length;if(r.endsWith(i))l=r.length-i.length;else if(r.startsWith(a))l=a.length;else{const c=a[s-1],p=r.indexOf(c,s-1);p!==-1&&(l=p+1)}e.value.setSelectionRange(l,l)}return[n,o]}const es=V({name:"ElInput",inheritAttrs:!1}),ts=V({...es,props:Wi,emits:Ki,setup(e,{expose:t,emit:n}){const o=e,r=nr(),a=Gi(),i=Kn(),s=w(()=>[o.type==="textarea"?b.b():f.b(),f.m(m.value),f.is("disabled",h.value),f.is("exceed",Ae.value),{[f.b("group")]:i.prepend||i.append,[f.m("prefix")]:i.prefix||o.prefixIcon,[f.m("suffix")]:i.suffix||o.suffixIcon||o.clearable||o.showPassword,[f.bm("suffix","password-clear")]:$.value&&U.value,[f.b("hidden")]:o.type==="hidden"},r.class]),l=w(()=>[f.e("wrapper"),f.is("focus",R.value)]),{form:c,formItem:p}=bo(),{inputId:v}=Zi(o,{formItemContext:p}),m=yo(),h=fn(),f=ve("input"),b=ve("textarea"),S=st(),d=st(),E=M(!1),O=M(!1),x=M(),C=st(o.inputStyle),k=w(()=>S.value||d.value),{wrapperRef:T,isFocused:R,handleFocus:L,handleBlur:I}=Ji(k,{beforeFocus(){return h.value},afterBlur(){var g;o.validateEvent&&((g=p==null?void 0:p.validate)==null||g.call(p,"blur").catch(F=>hn()))}}),_=w(()=>{var g;return(g=c==null?void 0:c.statusIcon)!=null?g:!1}),z=w(()=>(p==null?void 0:p.validateState)||""),B=w(()=>z.value&&Fo[z.value]),oe=w(()=>O.value?_o:No),K=w(()=>[r.style]),H=w(()=>[o.inputStyle,C.value,{resize:o.resize}]),y=w(()=>Jt(o.modelValue)?"":String(o.modelValue)),$=w(()=>o.clearable&&!h.value&&!o.readonly&&!!y.value&&(R.value||E.value)),U=w(()=>o.showPassword&&!h.value&&!!y.value&&(!!y.value||R.value)),ee=w(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!h.value&&!o.readonly&&!o.showPassword),ke=w(()=>y.value.length),Ae=w(()=>!!ee.value&&ke.value>Number(o.maxlength)),Ne=w(()=>!!i.suffix||!!o.suffixIcon||$.value||o.showPassword||ee.value||!!z.value&&_.value),[fe,re]=Qi(S);Ho(d,g=>{if(Ee(),!ee.value||o.resize!=="both")return;const F=g[0],{width:me}=F.contentRect;x.value={right:`calc(100% - ${me+15+6}px)`}});const de=()=>{const{type:g,autosize:F}=o;if(!(!Fe||g!=="textarea"||!d.value))if(F){const me=Kt(F)?F.minRows:void 0,tt=Kt(F)?F.maxRows:void 0,nt=Mn(d.value,me,tt);C.value={overflowY:"hidden",...nt},De(()=>{d.value.offsetHeight,C.value=nt})}else C.value={minHeight:Mn(d.value).minHeight}},Ee=(g=>{let F=!1;return()=>{var me;if(F||!o.autosize)return;((me=d.value)==null?void 0:me.offsetParent)===null||(g(),F=!0)}})(de),Re=()=>{const g=k.value,F=o.formatter?o.formatter(y.value):y.value;!g||g.value===F||(g.value=F)},Ye=async g=>{fe();let{value:F}=g.target;if(o.formatter&&(F=o.parser?o.parser(F):F),!gt.value){if(F===y.value){Re();return}n(Vt,F),n("input",F),await De(),Re(),re()}},$e=g=>{n("change",g.target.value)},{isComposing:gt,handleCompositionStart:Qe,handleCompositionUpdate:bt,handleCompositionEnd:mt}=Yi({emit:n,afterComposition:Ye}),yt=()=>{fe(),O.value=!O.value,setTimeout(re)},wt=()=>{var g;return(g=k.value)==null?void 0:g.focus()},Ft=()=>{var g;return(g=k.value)==null?void 0:g.blur()},_t=g=>{E.value=!1,n("mouseleave",g)},be=g=>{E.value=!0,n("mouseenter",g)},Me=g=>{n("keydown",g)},xt=()=>{var g;(g=k.value)==null||g.select()},et=()=>{n(Vt,""),n("change",""),n("clear"),n("input","")};return j(()=>o.modelValue,()=>{var g;De(()=>de()),o.validateEvent&&((g=p==null?void 0:p.validate)==null||g.call(p,"change").catch(F=>hn()))}),j(y,()=>Re()),j(()=>o.type,async()=>{await De(),Re(),de()}),Xe(()=>{!o.formatter&&o.parser,Re(),De(de)}),t({input:S,textarea:d,ref:k,textareaStyle:H,autosize:xe(o,"autosize"),isComposing:gt,focus:wt,blur:Ft,select:xt,clear:et,resizeTextarea:de}),(g,F)=>(A(),q("div",{class:D([u(s),{[u(f).bm("group","append")]:g.$slots.append,[u(f).bm("group","prepend")]:g.$slots.prepend}]),style:Wt(u(K)),onMouseenter:be,onMouseleave:_t},[N(" input "),g.type!=="textarea"?(A(),q(at,{key:0},[N(" prepend slot "),g.$slots.prepend?(A(),q("div",{key:0,class:D(u(f).be("group","prepend"))},[J(g.$slots,"prepend")],2)):N("v-if",!0),Le("div",{ref_key:"wrapperRef",ref:T,class:D(u(l))},[N(" prefix slot "),g.$slots.prefix||g.prefixIcon?(A(),q("span",{key:0,class:D(u(f).e("prefix"))},[Le("span",{class:D(u(f).e("prefix-inner"))},[J(g.$slots,"prefix"),g.prefixIcon?(A(),W(u(Pe),{key:0,class:D(u(f).e("icon"))},{default:G(()=>[(A(),W(Ie(g.prefixIcon)))]),_:1},8,["class"])):N("v-if",!0)],2)],2)):N("v-if",!0),Le("input",Ke({id:u(v),ref_key:"input",ref:S,class:u(f).e("inner")},u(a),{minlength:g.minlength,maxlength:g.maxlength,type:g.showPassword?O.value?"text":"password":g.type,disabled:u(h),readonly:g.readonly,autocomplete:g.autocomplete,tabindex:g.tabindex,"aria-label":g.ariaLabel,placeholder:g.placeholder,style:g.inputStyle,form:g.form,autofocus:g.autofocus,role:g.containerRole,onCompositionstart:u(Qe),onCompositionupdate:u(bt),onCompositionend:u(mt),onInput:Ye,onChange:$e,onKeydown:Me}),null,16,["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","onCompositionstart","onCompositionupdate","onCompositionend"]),N(" suffix slot "),u(Ne)?(A(),q("span",{key:1,class:D(u(f).e("suffix"))},[Le("span",{class:D(u(f).e("suffix-inner"))},[!u($)||!u(U)||!u(ee)?(A(),q(at,{key:0},[J(g.$slots,"suffix"),g.suffixIcon?(A(),W(u(Pe),{key:0,class:D(u(f).e("icon"))},{default:G(()=>[(A(),W(Ie(g.suffixIcon)))]),_:1},8,["class"])):N("v-if",!0)],64)):N("v-if",!0),u($)?(A(),W(u(Pe),{key:1,class:D([u(f).e("icon"),u(f).e("clear")]),onMousedown:or(u(kt),["prevent"]),onClick:et},{default:G(()=>[We(u($o))]),_:1},8,["class","onMousedown"])):N("v-if",!0),u(U)?(A(),W(u(Pe),{key:2,class:D([u(f).e("icon"),u(f).e("password")]),onClick:yt},{default:G(()=>[(A(),W(Ie(u(oe))))]),_:1},8,["class"])):N("v-if",!0),u(ee)?(A(),q("span",{key:3,class:D(u(f).e("count"))},[Le("span",{class:D(u(f).e("count-inner"))},rt(u(ke))+" / "+rt(g.maxlength),3)],2)):N("v-if",!0),u(z)&&u(B)&&u(_)?(A(),W(u(Pe),{key:4,class:D([u(f).e("icon"),u(f).e("validateIcon"),u(f).is("loading",u(z)==="validating")])},{default:G(()=>[(A(),W(Ie(u(B))))]),_:1},8,["class"])):N("v-if",!0)],2)],2)):N("v-if",!0)],2),N(" append slot "),g.$slots.append?(A(),q("div",{key:1,class:D(u(f).be("group","append"))},[J(g.$slots,"append")],2)):N("v-if",!0)],64)):(A(),q(at,{key:1},[N(" textarea "),Le("textarea",Ke({id:u(v),ref_key:"textarea",ref:d,class:[u(b).e("inner"),u(f).is("focus",u(R))]},u(a),{minlength:g.minlength,maxlength:g.maxlength,tabindex:g.tabindex,disabled:u(h),readonly:g.readonly,autocomplete:g.autocomplete,style:u(H),"aria-label":g.ariaLabel,placeholder:g.placeholder,form:g.form,autofocus:g.autofocus,rows:g.rows,role:g.containerRole,onCompositionstart:u(Qe),onCompositionupdate:u(bt),onCompositionend:u(mt),onInput:Ye,onFocus:u(L),onBlur:u(I),onChange:$e,onKeydown:Me}),null,16,["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role","onCompositionstart","onCompositionupdate","onCompositionend","onFocus","onBlur"]),u(ee)?(A(),q("span",{key:0,style:Wt(x.value),class:D(u(f).e("count"))},rt(u(ke))+" / "+rt(g.maxlength),7)):N("v-if",!0)],64))],38))}});var ns=ge(ts,[["__file","input.vue"]]);const Ms=Pt(ns),wo=Symbol("buttonGroupContextKey"),os=(e,t)=>{Lo({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},w(()=>e.type==="text"));const n=ne(wo,void 0),o=zo("button"),{form:r}=bo(),a=yo(w(()=>n==null?void 0:n.size)),i=fn(),s=M(),l=Kn(),c=w(()=>e.type||(n==null?void 0:n.type)||""),p=w(()=>{var f,b,S;return(S=(b=e.autoInsertSpace)!=null?b:(f=o.value)==null?void 0:f.autoInsertSpace)!=null?S:!1}),v=w(()=>e.tag==="button"?{ariaDisabled:i.value||e.loading,disabled:i.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),m=w(()=>{var f;const b=(f=l.default)==null?void 0:f.call(l);if(p.value&&(b==null?void 0:b.length)===1){const S=b[0];if((S==null?void 0:S.type)===jn){const d=S.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(d.trim())}}return!1});return{_disabled:i,_size:a,_type:c,_ref:s,_props:v,shouldAddSpace:m,handleClick:f=>{if(i.value||e.loading){f.stopPropagation();return}e.nativeType==="reset"&&(r==null||r.resetFields()),t("click",f)}}},rs=["default","primary","success","warning","info","danger","text",""],as=["button","submit","reset"],qt=le({size:zn,disabled:Boolean,type:{type:String,values:rs,default:""},icon:{type:Ot},nativeType:{type:String,values:as,default:"button"},loading:Boolean,loadingIcon:{type:Ot,default:()=>Do},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:P([String,Object]),default:"button"}}),is={click:e=>e instanceof MouseEvent};function Z(e,t){ss(e)&&(e="100%");var n=ls(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Et(e){return Math.min(1,Math.max(0,e))}function ss(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function ls(e){return typeof e=="string"&&e.indexOf("%")!==-1}function xo(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Tt(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Be(e){return e.length===1?"0"+e:String(e)}function us(e,t,n){return{r:Z(e,255)*255,g:Z(t,255)*255,b:Z(n,255)*255}}function Pn(e,t,n){e=Z(e,255),t=Z(t,255),n=Z(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a=0,i=0,s=(o+r)/2;if(o===r)i=0,a=0;else{var l=o-r;switch(i=s>.5?l/(2-o-r):l/(o+r),o){case e:a=(t-n)/l+(t<n?6:0);break;case t:a=(n-e)/l+2;break;case n:a=(e-t)/l+4;break}a/=6}return{h:a,s:i,l:s}}function Lt(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function cs(e,t,n){var o,r,a;if(e=Z(e,360),t=Z(t,100),n=Z(n,100),t===0)r=n,a=n,o=n;else{var i=n<.5?n*(1+t):n+t-n*t,s=2*n-i;o=Lt(s,i,e+1/3),r=Lt(s,i,e),a=Lt(s,i,e-1/3)}return{r:o*255,g:r*255,b:a*255}}function In(e,t,n){e=Z(e,255),t=Z(t,255),n=Z(n,255);var o=Math.max(e,t,n),r=Math.min(e,t,n),a=0,i=o,s=o-r,l=o===0?0:s/o;if(o===r)a=0;else{switch(o){case e:a=(t-n)/s+(t<n?6:0);break;case t:a=(n-e)/s+2;break;case n:a=(e-t)/s+4;break}a/=6}return{h:a,s:l,v:i}}function fs(e,t,n){e=Z(e,360)*6,t=Z(t,100),n=Z(n,100);var o=Math.floor(e),r=e-o,a=n*(1-t),i=n*(1-r*t),s=n*(1-(1-r)*t),l=o%6,c=[n,i,a,a,s,n][l],p=[s,n,n,i,a,a][l],v=[a,a,s,n,n,i][l];return{r:c*255,g:p*255,b:v*255}}function Bn(e,t,n,o){var r=[Be(Math.round(e).toString(16)),Be(Math.round(t).toString(16)),Be(Math.round(n).toString(16))];return o&&r[0].startsWith(r[0].charAt(1))&&r[1].startsWith(r[1].charAt(1))&&r[2].startsWith(r[2].charAt(1))?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function ds(e,t,n,o,r){var a=[Be(Math.round(e).toString(16)),Be(Math.round(t).toString(16)),Be(Math.round(n).toString(16)),Be(ps(o))];return r&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))&&a[3].startsWith(a[3].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0)+a[3].charAt(0):a.join("")}function ps(e){return Math.round(parseFloat(e)*255).toString(16)}function Fn(e){return te(e)/255}function te(e){return parseInt(e,16)}function vs(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var Gt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function hs(e){var t={r:0,g:0,b:0},n=1,o=null,r=null,a=null,i=!1,s=!1;return typeof e=="string"&&(e=ms(e)),typeof e=="object"&&(ye(e.r)&&ye(e.g)&&ye(e.b)?(t=us(e.r,e.g,e.b),i=!0,s=String(e.r).substr(-1)==="%"?"prgb":"rgb"):ye(e.h)&&ye(e.s)&&ye(e.v)?(o=Tt(e.s),r=Tt(e.v),t=fs(e.h,o,r),i=!0,s="hsv"):ye(e.h)&&ye(e.s)&&ye(e.l)&&(o=Tt(e.s),a=Tt(e.l),t=cs(e.h,o,a),i=!0,s="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=xo(n),{ok:i,format:e.format||s,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var gs="[-\\+]?\\d+%?",bs="[-\\+]?\\d*\\.\\d+%?",Ce="(?:".concat(bs,")|(?:").concat(gs,")"),zt="[\\s|\\(]+(".concat(Ce,")[,|\\s]+(").concat(Ce,")[,|\\s]+(").concat(Ce,")\\s*\\)?"),Dt="[\\s|\\(]+(".concat(Ce,")[,|\\s]+(").concat(Ce,")[,|\\s]+(").concat(Ce,")[,|\\s]+(").concat(Ce,")\\s*\\)?"),ue={CSS_UNIT:new RegExp(Ce),rgb:new RegExp("rgb"+zt),rgba:new RegExp("rgba"+Dt),hsl:new RegExp("hsl"+zt),hsla:new RegExp("hsla"+Dt),hsv:new RegExp("hsv"+zt),hsva:new RegExp("hsva"+Dt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function ms(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Gt[e])e=Gt[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=ue.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=ue.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=ue.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=ue.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=ue.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=ue.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=ue.hex8.exec(e),n?{r:te(n[1]),g:te(n[2]),b:te(n[3]),a:Fn(n[4]),format:t?"name":"hex8"}:(n=ue.hex6.exec(e),n?{r:te(n[1]),g:te(n[2]),b:te(n[3]),format:t?"name":"hex"}:(n=ue.hex4.exec(e),n?{r:te(n[1]+n[1]),g:te(n[2]+n[2]),b:te(n[3]+n[3]),a:Fn(n[4]+n[4]),format:t?"name":"hex8"}:(n=ue.hex3.exec(e),n?{r:te(n[1]+n[1]),g:te(n[2]+n[2]),b:te(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function ye(e){return!!ue.CSS_UNIT.exec(String(e))}var ys=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=vs(t)),this.originalInput=t;var r=hs(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:r.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,r,a=t.r/255,i=t.g/255,s=t.b/255;return a<=.03928?n=a/12.92:n=Math.pow((a+.055)/1.055,2.4),i<=.03928?o=i/12.92:o=Math.pow((i+.055)/1.055,2.4),s<=.03928?r=s/12.92:r=Math.pow((s+.055)/1.055,2.4),.2126*n+.7152*o+.0722*r},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=xo(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=In(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=In(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Pn(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Pn(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),r=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(r,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(r,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Bn(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),ds(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Z(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Z(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Bn(this.r,this.g,this.b,!1),n=0,o=Object.entries(Gt);n<o.length;n++){var r=o[n],a=r[0],i=r[1];if(t===i)return a}return!1},e.prototype.toString=function(t){var n=!!t;t=t??this.format;var o=!1,r=this.a<1&&this.a>=0,a=!n&&r&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Et(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Et(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Et(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Et(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),r=new e(t).toRgb(),a=n/100,i={r:(r.r-o.r)*a+o.r,g:(r.g-o.g)*a+o.g,b:(r.b-o.b)*a+o.b,a:(r.a-o.a)*a+o.a};return new e(i)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),r=360/n,a=[this];for(o.h=(o.h-(r*t>>1)+720)%360;--t;)o.h=(o.h+r)%360,a.push(new e(o));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,r=n.s,a=n.v,i=[],s=1/t;t--;)i.push(new e({h:o,s:r,v:a})),a=(a+s)%1;return i},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),r=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/r,g:(n.g*n.a+o.g*o.a*(1-n.a))/r,b:(n.b*n.a+o.b*o.a*(1-n.a))/r,a:r})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,r=[this],a=360/t,i=1;i<t;i++)r.push(new e({h:(o+i*a)%360,s:n.s,l:n.l}));return r},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function Te(e,t=20){return e.mix("#141414",t).toString()}function ws(e){const t=fn(),n=ve("button");return w(()=>{let o={},r=e.color;if(r){const a=r.match(/var\((.*?)\)/);a&&(r=window.getComputedStyle(window.document.documentElement).getPropertyValue(a[1]));const i=new ys(r),s=e.dark?i.tint(20).toString():Te(i,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?Te(i,90):i.tint(90).toString(),"text-color":r,"border-color":e.dark?Te(i,50):i.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":r,"hover-border-color":r,"active-bg-color":s,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":s}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?Te(i,90):i.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?Te(i,50):i.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?Te(i,80):i.tint(80).toString());else{const l=e.dark?Te(i,30):i.tint(30).toString(),c=i.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":r,"text-color":c,"border-color":r,"hover-bg-color":l,"hover-text-color":c,"hover-border-color":l,"active-bg-color":s,"active-border-color":s}),t.value){const p=e.dark?Te(i,50):i.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=p,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=p}}}return o})}const xs=V({name:"ElButton"}),Ss=V({...xs,props:qt,emits:is,setup(e,{expose:t,emit:n}){const o=e,r=ws(o),a=ve("button"),{_ref:i,_size:s,_type:l,_disabled:c,_props:p,shouldAddSpace:v,handleClick:m}=os(o,n),h=w(()=>[a.b(),a.m(l.value),a.m(s.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",o.plain),a.is("round",o.round),a.is("circle",o.circle),a.is("text",o.text),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:i,size:s,type:l,disabled:c,shouldAddSpace:v}),(f,b)=>(A(),W(Ie(f.tag),Ke({ref_key:"_ref",ref:i},u(p),{class:u(h),style:u(r),onClick:u(m)}),{default:G(()=>[f.loading?(A(),q(at,{key:0},[f.$slots.loading?J(f.$slots,"loading",{key:0}):(A(),W(u(Pe),{key:1,class:D(u(a).is("loading"))},{default:G(()=>[(A(),W(Ie(f.loadingIcon)))]),_:1},8,["class"]))],64)):f.icon||f.$slots.icon?(A(),W(u(Pe),{key:1},{default:G(()=>[f.icon?(A(),W(Ie(f.icon),{key:0})):J(f.$slots,"icon",{key:1})]),_:3})):N("v-if",!0),f.$slots.default?(A(),q("span",{key:2,class:D({[u(a).em("text","expand")]:u(v)})},[J(f.$slots,"default")],2)):N("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var Es=ge(Ss,[["__file","button.vue"]]);const Ts={size:qt.size,type:qt.type},Cs=V({name:"ElButtonGroup"}),Os=V({...Cs,props:Ts,setup(e){const t=e;Ve(wo,rr({size:xe(t,"size"),type:xe(t,"type")}));const n=ve("button");return(o,r)=>(A(),q("div",{class:D(u(n).b("group"))},[J(o.$slots,"default")],2))}});var So=ge(Os,[["__file","button-group.vue"]]);const Ps=Pt(Es,{ButtonGroup:So});jo(So);export{Rs as E,cn as T,ho as a,Ms as b,Ps as c,Gn as d,Un as e,Or as f,ln as g,Gi as h,Sr as i,fn as j,Qt as k,Ji as l,bo as m,yo as n,Rr as o,vo as u}; diff --git a/.output/public/_nuxt/BP-Bk3NB.js b/.output/public/_nuxt/BP-Bk3NB.js new file mode 100644 index 0000000..1fd75be --- /dev/null +++ b/.output/public/_nuxt/BP-Bk3NB.js @@ -0,0 +1 @@ +import{_ as It,b as nt,d as de,E as $e,i as Es,a as ws,w as Bs,c as bs,e as x,f as xs,g as He,h as ys,j as Qs,r as Rs,k as Ss,l as Us,m as Ls,H as Os,o as Is,n as Ts,p as Ds,q as Ms,s as Hs,T as js,M as zs,t as OA,u as et,v as Ys,x as yt,y as Fs,z as Ps,A as Gs,B as Ns,C as Js}from"./BnReMd0k.js";import{v as Ks,E as Vs,_ as qs,a as Ws}from"./ijtA8km9.js";import{u as ee,a as Lt,E as Xs,b as Zs,c as _s}from"./BE7hzMIt.js";import{d as ze,C as lt,r,D as Ce,o as ot,E as l,e as $s,F as G,G as el,j as Re,H as tl,I as Ot,v as o,A as O,J as v,t as n,K as te,y as d,B as w,L as Al,x as t,M as H,N as U,O as Y,P as Se,Q as je,R as sl,S as Qt,T as ll,U as ol,u as nl,z as T,V as IA,W as $}from"./C0eoOjsX.js";import{_ as Tt}from"./DlAUqK2U.js";import{u as il}from"./y8qSb7BL.js";const al=ze({inheritAttrs:!1});function rl(S,h,y,b,k,m){return lt(S.$slots,"default")}var cl=It(al,[["render",rl],["__file","collection.vue"]]);const dl=ze({name:"ElCollectionItem",inheritAttrs:!1});function ul(S,h,y,b,k,m){return lt(S.$slots,"default")}var gl=It(dl,[["render",ul],["__file","collection-item.vue"]]);const vl="data-el-collection-item",ml=S=>{const h=`El${S}Collection`,y=`${h}Item`,b=Symbol(h),k=Symbol(y),m={...cl,name:h,setup(){const j=r(null),F=new Map;G(b,{itemMap:F,getItems:()=>{const z=l(j);if(!z)return[];const B=Array.from(z.querySelectorAll(`[${vl}]`));return[...F.values()].sort((N,g)=>B.indexOf(N.ref)-B.indexOf(g.ref))},collectionRef:j})}},R={...gl,name:y,setup(j,{attrs:F}){const q=r(null),z=Ce(b,void 0);G(k,{collectionItemRef:q}),ot(()=>{const B=l(q);B&&z.itemMap.set(B,{ref:B,...F})}),$s(()=>{const B=l(q);z.itemMap.delete(B)})}};return{COLLECTION_INJECTION_KEY:b,COLLECTION_ITEM_INJECTION_KEY:k,ElCollection:m,ElCollectionItem:R}},Rt=nt({trigger:Lt.trigger,triggerKeys:{type:de(Array),default:()=>[$e.enter,$e.numpadEnter,$e.space,$e.down]},effect:{...ee.effect,default:"light"},type:{type:de(String)},placement:{type:de(String),default:"bottom"},popperOptions:{type:de(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:de([Number,String]),default:0},maxHeight:{type:de([Number,String]),default:""},popperClass:{type:String,default:""},disabled:Boolean,role:{type:String,default:"menu"},buttonProps:{type:de(Object)},teleported:ee.teleported});nt({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Es}});nt({onKeydown:{type:de(Function)}});ml("Dropdown");const pl=nt({trigger:Lt.trigger,placement:Rt.placement,disabled:Lt.disabled,visible:ee.visible,transition:ee.transition,popperOptions:Rt.popperOptions,tabindex:Rt.tabindex,content:ee.content,popperStyle:ee.popperStyle,popperClass:ee.popperClass,enterable:{...ee.enterable,default:!0},effect:{...ee.effect,default:"light"},teleported:ee.teleported,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),fl={"update:visible":S=>el(S),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},hl="onUpdate:visible",Cl=ze({name:"ElPopover"}),kl=ze({...Cl,props:pl,emits:fl,setup(S,{expose:h,emit:y}){const b=S,k=Re(()=>b[hl]),m=tl("popover"),R=r(),j=Re(()=>{var C;return(C=l(R))==null?void 0:C.popperRef}),F=Re(()=>[{width:ws(b.width)},b.popperStyle]),q=Re(()=>[m.b(),b.popperClass,{[m.m("plain")]:!!b.content}]),z=Re(()=>b.transition===`${m.namespace.value}-fade-in-linear`),B=()=>{var C;(C=R.value)==null||C.hide()},P=()=>{y("before-enter")},N=()=>{y("before-leave")},g=()=>{y("after-enter")},ue=()=>{y("update:visible",!1),y("after-leave")};return h({popperRef:j,hide:B}),(C,W)=>(o(),Ot(l(Xs),Al({ref_key:"tooltipRef",ref:R},C.$attrs,{trigger:C.trigger,placement:C.placement,disabled:C.disabled,visible:C.visible,transition:C.transition,"popper-options":C.popperOptions,tabindex:C.tabindex,content:C.content,offset:C.offset,"show-after":C.showAfter,"hide-after":C.hideAfter,"auto-close":C.autoClose,"show-arrow":C.showArrow,"aria-label":C.title,effect:C.effect,enterable:C.enterable,"popper-class":l(q),"popper-style":l(F),teleported:C.teleported,persistent:C.persistent,"gpu-acceleration":l(z),"onUpdate:visible":l(k),onBeforeShow:P,onBeforeHide:N,onShow:g,onHide:ue}),{content:O(()=>[C.title?(o(),n("div",{key:0,class:te(l(m).e("title")),role:"title"},d(C.title),3)):v("v-if",!0),lt(C.$slots,"default",{},()=>[w(d(C.content),1)])]),default:O(()=>[C.$slots.reference?lt(C.$slots,"reference",{key:0}):v("v-if",!0)]),_:3},16,["trigger","placement","disabled","visible","transition","popper-options","tabindex","content","offset","show-after","hide-after","auto-close","show-arrow","aria-label","effect","enterable","popper-class","popper-style","teleported","persistent","gpu-acceleration","onUpdate:visible"]))}});var El=It(kl,[["__file","popover.vue"]]);const TA=(S,h)=>{const y=h.arg||h.value,b=y==null?void 0:y.popperRef;b&&(b.triggerRef=S)};var wl={mounted(S,h){TA(S,h)},updated(S,h){TA(S,h)}};const Bl="popover",bl=bs(wl,Bl),xl=Bs(El,{directive:bl}),yl=Symbol.for("nuxt:client-only"),Ql=ze({name:"ClientOnly",inheritAttrs:!1,props:["fallback","placeholder","placeholderTag","fallbackTag"],setup(S,{slots:h,attrs:y}){const b=r(!1);return ot(()=>{b.value=!0}),G(yl,!0),k=>{var F;if(b.value)return(F=h.default)==null?void 0:F.call(h);const m=h.fallback||h.placeholder;if(m)return m();const R=k.fallback||k.placeholder||"",j=k.fallbackTag||k.placeholderTag||"span";return n(j,y,R)}}}),Rl={class:"alert-form"},Sl={class:"comments reports"},Ul={class:"head"},Ll={class:"form"},Ol={class:"radio-area flexacenter"},Il=["onClick"],Tl={class:"text-box"},Dl={class:"text-num"},Ml={class:"footer"},Hl={__name:"Report",props:["reportToken"],setup(S){const h=S,y=["广告","辱骂","重复发送","不良信息","其他"];let b=Ce("reportAlertShow"),k=r([]),m=r(!1),R=r("");const j=z=>{const B=k.value.indexOf(z);B===-1?k.value.push(z):k.value.splice(B,1)},F=()=>{if(k.value.length==0){x.error("请选择举报类型");return}k.value.push(R.value),b.value=!1,xs({message:k.value,token:h.reportToken}).then(z=>{k.value=[],b.value=!1,x({message:z.message||"举报成功",type:"success"})})},q=()=>b.value=!1;return(z,B)=>(o(),n("div",Rl,[t("div",Sl,[t("div",Ul,[B[3]||(B[3]=t("span",{style:{display:"flex","align-items":"center"}},[t("img",{style:{width:"25px","margin-right":"7px"},src:"//app.gter.net/image/gter/offer/img/exclamationpoint.png"}),w("举报投诉 ")],-1)),t("div",{class:"close icon-close iconfont",onClick:B[0]||(B[0]=P=>H(m)?m.value=!1:m=!1)})]),t("div",Ll,[t("div",Ol,[(o(),n(U,null,Y(y,(P,N)=>t("div",{class:te(["radio-area-item flexacenter",{pitch:l(k).includes(P)}]),key:N,onClick:g=>j(P)},[B[4]||(B[4]=t("div",{class:"radio-area-frame"},null,-1)),w(" "+d(P),1)],10,Il)),64))]),t("div",Tl,[Se(t("textarea",{placeholder:"请输入举报原因","onUpdate:modelValue":B[1]||(B[1]=P=>H(R)?R.value=P:R=P),maxlength:"200"},null,512),[[je,l(R)]]),t("div",Dl,d(200-l(R).length),1)]),t("div",Ml,[t("button",{type:"button",onClick:B[2]||(B[2]=P=>q())},"取消"),t("button",{type:"submit",onClick:F},"提交")])])])]))}},jl=Tt(Hl,[["__scopeId","data-v-10f3bede"]]),zl={class:"pop-masking flexcenter"},Yl={class:"box"},Fl={class:"header flexacenter"},Pl={class:"total"},Gl={class:"list"},Nl={class:"number"},Jl={class:"middle flexacenter"},Kl=["src"],Vl={class:"nickname"},ql={class:"value flexacenter"},Wl={class:""},Xl={class:"bottom flexcenter"},Zl={__name:"RankingBox",props:["coinrankingList"],setup(S){let h=Ce("coinrankingState"),y=Ce("openCoinOperation");const b=()=>{h.value=!1,y()};return(k,m)=>(o(),n("div",zl,[t("div",Yl,[t("img",{class:"cross-icon",onClick:m[0]||(m[0]=R=>H(h)?h.value=!1:h=!1),src:He}),t("div",Fl,[m[3]||(m[3]=w(" 共 ")),t("div",Pl,d(S.coinrankingList.length),1),m[4]||(m[4]=w(" 个寄友给作者投币表达了感谢: "))]),t("div",Gl,[(o(!0),n(U,null,Y(S.coinrankingList,(R,j)=>(o(),n("div",{class:"item flexacenter",key:j},[t("div",Nl,d(j+1),1),t("div",Jl,[t("img",{class:"avatar",src:R.avatar},null,8,Kl),t("div",Vl,d(R.nickname),1)]),t("div",ql,[t("div",Wl,d(R.coinnum),1),m[5]||(m[5]=t("div",{class:"bi"},"币",-1))])]))),128))]),t("div",Xl,[t("div",{class:"bottom-item flexcenter",onClick:m[1]||(m[1]=R=>H(h)?h.value=!1:h=!1)},"关闭"),t("div",{class:"bottom-item green flexcenter",onClick:m[2]||(m[2]=R=>b())},"我要投币")])])]))}},_l=Tt(Zl,[["__scopeId","data-v-e0d5b424"]]),St="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEZ0lEQVR4nO2ZUU4bMRCGvUi8gcgNmp6giwCJN8wJmp6g9AQNJ0h6AsIJGk7Q9ARZ3pAAZTkBuUGD4A3B9rMW0kzWXhaSTRPiTxrNLHhizx/biZ1ALTleAGyp8QJgS00hAXZ3d6v39/d7QRBU1QKQJEl/dXX19OzsrK9eIMCc7OzshLzYEabVAsIbFmGH5+fnMY9WnAJQ/MHj4+NPwoVnZWXlGyK0lQWrAFtbWzXcL+w98eXy8rKDF2QE0FpXbm9vrwkr2HtisL6+/jGKogHxkIwA29vbddb8EeG7w+wHFxcXLcIhNgF6CBASjnPCWmqxlmLiuYW9K2TvqhN+xQQIECPAJuGQjACs/wQ3zhXrJ8QvDNQR4z5hAuoQNYsHA4k2AY5JrOMXBupo4b5jAuoQNYsHA4kZAZg6P5g6TbVAsJSbLOUGocAL4AXwAoiaxYPBC+AF8AIkOIEXwAvgBfACuASgfY3/f6czjY+xNifGY/7lRKd3DkeENWyARZzVD8fP6qPofzlapXcVEfd+h657v5kIQCeuuwPn4UmnhVwTVrBRrBcWBp3m9AirSjJAhE2bCIytfAFo+wdXwTJwd7DJTIgJBeS0leWs/sQJAzxQY1CMS2gztt+MrUYoIKdcAehA00GX0Ao5h+S0CAXk9cgLCTOQk7mwMJATkbNHaKNPUR/xAnKa5DQIBbQNcEPEg6GoAE83Lz1CK8wA600sA4sY2B5hBvo5pR+txiCnQ85nQhtXFJURlJwmOQ1CAW1FzeLBUFQAA237SqkP2Dg3rM3wNWvT4OoHsfOu6I8pqo4XuPqhrahZPBgoKsEJXAOjE00nHcINbIjr3X+GPmLcJ2yUKwYX4q3Ql20WXLFx6siycdK+SfsGoYA+RM3iwcDgEpzAJYDh6WezOm1COuzj27SN1AswwDpOq5SInBY+FzMT6KNGWME6eTm8fpO2DULB1AWYV7wAXgAvgBfAC+AF8AI0CAVeAC/AGwQA6zl9nkGADgKMnx0KCTDAbWCjDDjg7HPAiYnnHs4M5qjeJaxgo9wggPibTYC2st/YDLAOy6GvCkA70/50UtFMMbZ30gVtqyq9a6xg42RmckYApo7mRbqEUwEhWmtraz9sR9Y8NPeAd3d3vxiLVlOCseyzl0VqhIwABkTo0HFh1V+CjmNE2C8qgk6L7yaOq7O3wBh+U3yNUGAVQDMAbmEjlb20mIQ20+8bPhdN39MuHpwXJwFmRacDaTOQzzxOi1wRdNpnN5li8eadZ/YdRJbiDQGWC8tBM6ADlW4sG9ikWEXQ0y3+BjMbdptpH6kcAmzqmJ2bj6FIuQXLiIDQvZzib/gY1pN+otgIsFIoIgJFHeM3KLyJaWWntOINpQlgQIS86+wilFq8oVQBDBOIUHrxhtIFMLxBhJkUb5iJAIZXiDCz4g0zE8CACCGbXQvb49HGCT+pNW0/qZXFTAV4xvya9PDwoBGiqgAf802N7yr2Lytl8l8EmCe8ANhS4wXAlpq/sWppbrWv2fQAAAAASUVORK5CYII=",Ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE40lEQVR4nO3ZjVHbSBiH8f9WEKeCiAoiKshSQZwKTq4gpgJMBZgKMBXEVwFSBSgVRK7gTAV7j27ZwQLklWTMx8Ez8xvPxF/xK61XgNE772MAeNd9DADvuqEDSPEdibyXrJL3N0r0yqBPVtIFEr3O6gEcI1fHDLqWyX/4t9AEC3XIoEuZ3s6HD02wUCSDWCP8QX0bWmEmf8rVXrL01hyfEFrjAPVtawaxpjhD6DesIi/8Ao2QS/qK0DHmaK3LAHJJ3xA6RInXWIprhApYbckglkNohUSvu0rSF4QMWtt6520OoQJWr7slviNk0NrWO2977gEk8ksu0V2V/HtXijfGL9SdY4rWDGI5hApY7acUJxijrVzSKXJtL721xBqtGcRyCBWwevpOMFP3FvL7/M4ZxHIIFbB62i6QqX8lDrFTBrEcQgWsfCnqtZaoe3McIzSTP/qbrVA/rkQl//oppviCzc5R//vgDGI5hApY+RaS/kLfDlEikb/C3OwSU6zxWDM9HNgRcg3MIJZDqICVb46f6NsBKj0c4CUyxZupOYRcfgiDMojlECpg5UvkhzBC15aYo+4fjFB3g0TtR/5+lZrL4QCVBmQQyyFUwGr3UlwjdI4pulY/9gyhCRYakEGsfQxgjF8I/cASXbOSrhA6xUwDMojlECpgtXuZ/PYXOkKu7qW4RugUMw3IIJZDqIDV7lk1j+AEC3XPqvn8U8w0IINYDqECVruXqLkFXiJT96Y4Q+gIuQZkEMshVMDKZ+XX8QhtVfL7/hr3qzTsm3yEP6hvQ5+xRu8MYjmEClj5Fmru421NsNDDZmru5yUOEesCme66RKaBGcRyCBWw8s3xE7F+YIn7jVCp+Xu8EvXjKz1shDNkanaASgMziNU2gPo/NEei9nL5I92WVfPLLLSQf24l/z7jWyNsdow5BmcQyyFUwOppy+RP675dItOOGcRyCBWwerqs/DIao2+5/PaXa4cMYu1jACOcYIpdW2KCNXpnEMshVMBqt1JcoL59rBUqNY+slZSouW1utsYRSvTKIJZDqIDV8FJcYYTNbrCQ/0Kr1F4iv+4zPT6MCRbqkUEsh1ABq2GluMIIm51jJn8UuzbCFCe43xFydcwglkOogFX/RrhCitANxsg1vBS5mtcSaxyiUocMYjmEClj1b46fCN3AasCafaREfghfEMrlz4RoBrEcQgWs+mXlj/5mR8j1dKXI1TwTJlgokkEsh1ABq35dwequU8z09GXyu0uokr9M3ppBLIdQAavuJfI/uYVWqI/WGvuoxFeEfmCJ1gxiOYQKWHVvijOEjjHHvsrUPAsukWlLBrEcQgWsupfL/6Ez9Blr7LP69T+hrlJkGRjEcggVsOperrsBlDjEvst19551Bq1tvfM2h1ABq+4t8R2hCRbaXymuEVoh0ZYMYu0ygEzNNfncnWKmLRnEcggVsOpXia947m6QyH8ntGYQa9cBjLDENzxXK4xRYmsGsRxCBayGlck/N9H+WmN5a41oBrGeagCvMoNYmwOoFNlX31oGsXI11+8hSvwv6jKAKc4QKnGENd58BrFGqHR3eVlXye+vv1HizdZlAHWZXvaCpksTLNQzg65lev1D6PN5/qvvE6z8lL/gtbVCop4ZDCnFGIm8l66S/z1DiV4ZvOs+BoB33ccA8K77F/DNI1Ad1eJHAAAAAElFTkSuQmCC",$l="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAIwUlEQVRoBe2Ye2zeVRnH+7Zdxy7ILphQkEDnJgSUyyBlbB3boHLJcISF4ryFYKSJjmjmrt0y02V2bbfphIKOLbjoXMSNS1CDxICt7aoVF5wolTBZp+AYBu0UXLeuFz/ft7/n1/P7vef3vn23hb/2JOd97s95zjnPufzegoKzcHYGTmsGUqfl7TivWLGiJpVKLUH0YUfsI/+J3bcbGhoafcp8ZWdkAMuXL7+zsLDwZ/l0jv38+vr65/Lx8dkW+oT5yoqKim7L12dwcPCOfH189sU+Yb6ygYGBqZRF2g18D+XxlC8GZXYP+j3SMYBpPpt8ZWdkBUhqqnXc19d3wOg4xs7VfSyuPxU+5wBqa2sLly5den5ScPRaxUsC/SD4jSTb/v7+v6KTjeASfM8ZIjN/gz5z7tGsBmzO6Wy2JwlfRnuHthP+cTbfa0GXqVWrVt1HOewI+MONjY0XBbQXrVy58i0UaRv8Fo8dO3YrAxmQMf1NI/4XIe+jldK0YlXE/CPYC4kDIGhJT0/PK3hd5vHci2w3CXyGsrjR0bfS2RyHzyAZcAt+rs0+jH5IW0iTPJ7TgWPHjn2iqanpBLoM0PJ74fjx4zrTfcnLvkKN5EUbvA+x25gkTPLaxNfRxgc214PVkmAaq7QU5QafQZFPyGnxEeRKpkR6Ov0aaCvLOw78UZq7d3rhH+rt7V24efPmVuis0N7e/vvy8vLHOHpHYaiBuDn0wf+UtoymsvkkTTBj7ty5O9va2v47xA7/RqbQxNTpj6EXBfz+gwcPXr9nz55+8atXry5lM6pG72cF3oZ+YNOmTe7pErjlRqp5BrKdCVK974D+wYYNG96WZ3V19aiJEyfuh7xCPLCb8vz0EDn8mzEAanQuAZsDk0HwTTiq5uNgvrI5HUiMQy43k8uLFpwJu4U75lfGC5tzWqYjkQ3zBww/nlamUrtw+HxaOcIfOq2k03sxn027OHB7E1krJfiTeAK5wlLOT5CPzfyr3d3d127btu2k+UU2Mck/aMlj8B437AozzIWdcpjjsb2cuJcziGrKs5m4Krs3PHY+kfbDfJo2/ZUTJkxYDP4OLQ3uZpTg60NiliaVWr9x48bDxmfDJFXB7HaQoC/5uOs8bH9XU1MzK67w8eTwFvL1piMvHSghRAaA8kOmIZmFa9assRIwcQbWzCN8ljYpUOq8biLJGWzw8WrEupHYjyDXiSWYzCo8i69OtKwQ5HC3YzTBoQsiJUQn36WzmsBgBu+al6npL1C3z7tOLh2cIpb8P9DN99ycHcg7iPV94v8c+kLaZAa5DXwLzQvY304OO1Gebwbk+D2jhYtcprKysvnkyZP9GN2EXKszlvbZ2bNnF5eWlrZ2dnZGThw2mDr/Bk2gmZ/nST6t1M/evXuPzJw5s4X498Oq77JZs2a1cjccgg6hqqqqaMGCBesY7FaEunsE/fC1Y8aMWdfS0hLmESkhvUmoufV0cCsOR9JuDATHtWVlZfUBHyLs7HTQnnksW/LmxOZ9GXq78W4Mk6kv9Qlv+R1RTsrN3k1mawbGp7GOOkpjOsxLjsJnq5VKAzW9y+hcmOR+5Nj4Nr7b10vKJen4dQ2dmDw8uBHpqM0Rdju0kRcZwXul0+hcGNs/OzZ6tsTB7avVbue4kfjEAUjJsoW1Jt4DufQel7TI7XcgyUhyJjFrH26gSBy9eRCEJQI9MWIwxIT3xIkTJ6706L2imK1OrjiEfTGJc4Jc4jZp3jsAjq+bOb+12codr4yZYnJ+bXroET85XFs3hsUCu32VKxfl5OhDMjIAdnghR+Nagv4SiwsCqwFmYX1XV5fdD8POvG2MwaeaTq41Pgljcx22D5ieuyCMYTL1pT7hbSAXKCflphzNTlhncQi80+txdI+vd+H1L8P2+B0gJ871roqKCp0iZTTF+hR3RrPOe+gMCJLX/0fnBcoXOHqVaATUFzGaiaVT8Haa7qNCcpnHxTaae+NFc4jfxF82BbijuLj43rq6ujcdWQaph5neNigm0y5kpjp4G21Htmv06NF/kgOfplfR+eeCmR8lGfAupVE9RPp/9QLgKTGdpHdjMSOw+go4rIbIctCJe3w9kyt5BdSrkmTvgvyXeKCEtpiB/YbE31ODbyd5dRwmj88CvuC6kGUF5UBeT5sRcf5jtHBkAHQaPlPRraXmfGe065+m+ZeiHd8bYMKlzTAaFrzAzJfj89thUTJFDlpVlXUaGMzDRgtHSujo0aOP8hn3JeQ6EvX+3kxbRMsJwfu+kg7n0YmeGDqCLw4c/w5uQ/4EZdESyEaEWKmNDODcwPg13kKRAUS+yGSk4wqHcCbpNOMzLghmvlkvmsA2G0qMo+8MHFtpaRtyuY0J0AkZgjmHAhE46mjTZ6Ggk8+4a+wz7oP6qNeLdMqUKfvo/5p0FgUFz3BiLQzoEHkHoI8Idv5fsLKn7EroV2kqrztpbun1wj/C3yp1W7Zs+Td0TliyZMmkkpKSNRg+SNOmN+hjlp9jPz2O4FLohwJFD/QVzP4hMzTsHYCUrMJqUJ0ZjgC/j80qZunRbLbEXYy+gTY+m52rI/l1JF/ryoyOnEImFOYD/1ugA64soFXzLbSv0vbRDMbTUZUxWbBK001eMRSrhebbT128nRrReSFxAMF/kUrIBqE/nBpY3suYZX15NXEi3MCG14ymAXqq0VlwaCNfxVAsxVRs/LQ6h+XPhPwNm0WUZo94HySWkGOc4h+ESZzbdlE5qoIC3ibncFn9D6EmY5Az/lwuKPEZsGzZsnF8nOhiU78DJD8O/+MZhgjoczI3eTd6ew/5zKJ/bHktRiCkrnWjXipTBnA1A3hFdBywuxrZ/kB+iFkvi9vkyyeWUJ6BXjd73k/TjI5jysHVhT5xu3x49zjMxy9iS62+TnK3Sgh+kpmO6BMY21sJ6pGJz8gKkPTzI+suYvWLCHeKTOR74BRjFPA+P8B3gU6Kq2juEekL+Q4r9k3qf4dPeVZ2dgY+4Bn4P0YkZXhTwmuHAAAAAElFTkSuQmCC",eo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAB1CAMAAACxvxlTAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAftQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlInywAAAKh0Uk5TAAxuvub97Mp/Gk/n9HQBaZtC/HED1PMYRXiOwq8iQ+TBWyb2901mJESNsLuofCwe6TXoHav+J711zKCR17e5B0t9gVwROIVqISNshjRI4PJyJcYKDaLAIFGK6wYJyRLvPsO4cK0zAgUprCgxZbr4N0Cd2l8ZVvrL1UeD3LZ3rgT54cdM3hUWH+7x+4+/CDwXMhuxKpejdlpKEHnltA5+01c2pPVzaEFe/1WREgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAANCSURBVGje7drpXxJBHAbwwTKvTA1CSzNT88hQoixTO+zQzC7KkqKwMjGlO8tO7bDM7tvui6z5MwN2mZkFZvkYc/Rifi+f3c8838UFd2EBoI8lbdbsdMhp5mRkZgHzyc7hVa7P3Nx5Zv153A4eT75Jf8F8/v0QWqn9tgUi+qG9kAYoEtIP4UIaYJEgQDENUKJtty7mNaVawRIaoEzbvhTwmnKtoEI2oFIBFEABaNuXVUWmWhqA+yiAAvxfAFtN7fI6XrPCUZ8MUMD7+q+kwRSQx//617nSBJAt4PofulZRARbe9z/arKYC0oT0w8Y1NMBaMQDYRAPofwHnOl5TqRU00wD6KdjC7ROnVStYTwNAQYANCqAACqAACqAACqAACqAAMwds3NS2ecvW+HxbU3vH9vi4c0dX7k6WgF27w/mevTGxe184Ts/fb4y7D0Su7w/2MAN4ovfMhwxx9WE9LvaS8ZGjepzTwAjg64XROUbmx1HsIOMuFJ9gBOhDK8KTRNyPY5cfxwOYC0+xAQziFZ1ETN5LD+E4QMSn2QDO4BXPEnEb0XQOx+eJOJcN4AJe8SIRXyKahnHcScSX2QA8eMVaIi68guIRcverKK7wsQH4M6Ir9g6TOfo9sfFaYu91wAYAGm5oG+w1hth7U++/Zdw9U19ndIwVAPhaQu+t26Ox3+3Y+u6E6u8Wxe5+byS0yniHP24dc4DL7J/RwFB9d4IY9ATuJ4ofBCYSxUZA3kN9JqNnkgmAzRgBVmicdsmAR+WSAY+BXMATr1xA81MgEWAffBZJBAOe92vz4qVN3y4YED8KoAAKoAAKoADSAdHfFeOf+CO+AJhI4cFB/f7iFQ0wDmnzGu3jgKnPGxrgbXLAOwb9cIoGeJ8UwOL44eQH6klSlgTApB9+pJ+lWZ9MAUxef1g3RgcAd6sJgE3/5y+m71TLVycNwOT1//bd9CH28Nh+TFWh+YkBuD/4q+ofx+NO1h470wiAX/9gwUxXSWEQQFI/AuCPqOBvkf0IIOn44wGi+2MBwVLB/TEA8f1GgIR+A0BGPwmQ0k8A5PRjgKR+BJDVHwVI69cB8vo1gMT+CEBmfxggtT8EkNsPpiX3gz9C+/8CpF88QkIGjaAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDMtMTdUMTc6Mjg6NTUrMDg6MDChPsRaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAzLTE3VDE3OjI4OjU1KzA4OjAw0GN85gAAAEt0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fYzdqdmdreDE5cWgvbGlhb3RpYW4uc3Zny9FFYQAAAABJRU5ErkJggg==",tt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAALmklEQVR4nO2d7VnbSBeGZ6QF9l+cCkIqwFsBpIKQAgC5gpAKcCoIWwEKFBBvBXEqCFQQbwXr999CXkl7jywRA/6Q7fmS0H1d55ojIHA055lvyZGigWRRtPv/JHmVSNnlBjsiy3YzIXYFSCnVdRf3AZmUI74+EgVSiDE/fE05knz9tzC8kXE85luNgvurNyS7c5em+7jdLMsOuKEufgczwTgT4jrAEMxwOwi+1V0U1Ff9+Hl0tE8iDknCAa22y5fcoXqJLBtSkYOtq6tvfKVWSKwW3EVRN0uS97iHWAfzkTE2kGH453YcX+N7j9cCoHvfpXs/obVHtLJdUSPonUZUbsww8ZlhYiQ8hRj942cUHaRJcoIbiWYQB2H4eSuOh8IzJOYNKvFJkpwR1IFoIJkQwzAMP/okBIk5p+mJf4xPQpCYM9QYf5skFwRxIJ4ng+0w/OByjkDdu+H2+PiMJdwpbgd7zqgNp/Ody8uP+NaRmFXy7j5NL+o2qzeNWjWEQdCzPSxIzBp3R0efGP9OcVvmQELOt6+uPuBagb9nHjXWs57/Qpff5bJlGewusn/wzsbcwLgAaPURrf4Tbgdrqc5YhGFvJ44H+MYwKoBiotcXLWtDgowOCfx+/dDld+6SRLX6SLToIC6Wi2N8rWgXQJ78NP1Ky+9y2aKLybzgjW4RaBVAm3zDGBCBNgG0ybeD2i8IWCHoOm7WIoA2+XZRItgJgj909AQbC6BNviM0DQcbCaBNvmM0iGAjAdweHV1QRKLFJfHO1VWPci0kthZ3x8fnWZa9x21xjJTyz+3Ly1PclVlLALdRdCiS5Atuiy+E4bt1to1XFgDj/i67fN9xO1iLP4zZLVQrg5FYgZUEQPLbSZ/PMCncubz8A68yKwmgHff9Z9X5QGUBqCd50iT5itviOUEYvtmq+GSRxCrB0e73tuuvB2qn8PfLy9e4S5HYUkh+n+Sf4bbUBSk/Mh/oiyUsFQATPzXr/4HbUi8qrQqWCoDdvi8Uh1jLfG4Yd0/TNB3QU77g2hcG7BK+o5zLQgF4M/GT8n8yy04Z2849q2DFDS3tgJY2zt9gTtOhTzEizDeLJoQSm8u/R0df+YED4RKV/CA4UOffqoIR5ICYXvEdH7hPPn6ObzFmQgx/v7p6gzsTic3Ei9Y/lXyucpiTqOcNh0KIPcwdM2Ir8SbGgkW9gMRm4rz1+1zBC2IrcR7jFNmCXkBiT/Ch9RNYb/vqKhZzcFbBFZJf4izGGczrBST2BNb9MROZE1wnENTC5JdYr+AVkl9iPcZ5SPmZfYFIPEJiDyBgp+t+AqqU/BLiVRUcCyHeYkaRrKtXSf40rhuVggnrayasIzEF9f0QAu0T6BmudQimt0rypyHumLhPcI2wSWwlpmNcyozdQe7rIf8eH/9gzb0rLJMJ8YGJyjnu2piqYCpp4+SXmIqxCuyjPDkjkNg9ag2bTR72sMuc8WkddFew1Jj8Et0xroJ8NIxxf79wEpjG5Jfoug9pIPkKttcvKCLhgMfPC3CPvyCwfyg6mBUyIb7R7R8IA7CPcSonr6Wvx4zxUgfU8QVFJNwx5nzgJWUOdTTB4do/JqAepXaKzya4wF0NA72SwoPk50zvCUgsh26zT7d5huuC2BsRNDz5OVO9m8RyEIDrJ37ci8BQ8iv/fUtkU0OvxMrNlH9wXWNWBIuOk59J8kvYFHrJptBY4vv2oseA4HoqOHyt5MvcGef12VSL0Imvyc8pXiSRuP497i3lxi89zmOGCJ6c6evA6+RDuRzMBcCSaYizj+sPdkQwMpJ89fsnK6oO5iVZ0euRd4YAy+v/yhgWwZb6/4A0/271e31PfkG+HyCZADo9/VuKQRHopkbJz6H3eykdbgCtwliyeTG9h+0bdUu+Qm0ISdb/fcbCM659x1sR0IvW8qVZxv9enQSg8E4EdU1+DjuC0ssVwGK8EUGtkz/hrzoKQGHlg5QX0YDk50tB6eoJIB0g3J6J8/oqsHS+oIhEjcmUALgRyvriQgTU2QVFJGpO1gQBKGyKgPq6oIhEA+BwbNQIAShsiIC6uqCIRINojAAKYrY3e5TaKSZ9IyZ9L7hsDM0SgKEz/ZJ8t29yiNQYETRHAIaTX9I0ETRDAJaSX9IkETRBAEYe6FhGLoLJO4l7WC0h8WwEHR2NpCefZrEGTpJfkk8MfXjzd02yQgBDBLDPdd1wmvySOosgq7EAvEh+SW1FwNypbsfBKuiVP6TBBrUUgToOrpUAPE1+SSGCWFj4sAodZEJ8kJ69EzAfz5M/DY0qplGd4HpN/kgYqvX7oVBFjZJfUgcRMI96yfwvD3ZMsC9wvYQgtR/0KOHfpunXMAh6W8WbsrqhXmPq1U8R0KjYPOtIXOHzSoC4TCRfHezcP81j4m+U+CqCjCXg/Ysh3r0aVkBw2hPzOPklJv5WiZf1ywqAHqDPfROgh++xZcxQUeg5rjbmJb+EyjAnAt/qePrlUCrGr4kgGxSoMxKaoTte+hkI8pmIIJ8AspHG/U7gUOiaYg9zi6nkr/Y0T2zqwRJPRHDD/XUphcRyvBin/Eh+SXNFUIz/AiSW48E7gn9R4YeUWlkz+SVmRbDoE0sMojaAtoqlr8TuYYwcuwgIjBzuaOrVYmMiUM8U2H6wpFj/4+VI7B4EEBPMCa5NzCRftTB93az1j60xhSw+GQQ354EAHAwDdUj+BIOfU0DD6yOAM1zjyEUfFatgV3DEF1/hGiUT4u+dMOzqrlAjyS8xIAKj8T4io87ZW9kVU5DrhyCAU774Cdc0A8bWd5TasNKDaRSBzeTnTM3+S8j1QyxvCmmbYOVj6ST5HcwsExG8QwQjsSbWkw8Mt68fxyyxJ7B0GlC8xWywsQisJv8Xa39OQRHvd1x7zNljkdgTrHSlD1lbBEVlqlg7mG1WFoGreKfX/tNIbCbMBYZ8cx/XDpNu9Q1d1JirSjBcqUewfuB2MFdUFoGr5GfF0a+YgcRm4qAXIJrqIsiTv+BkzzJLReAq+Yp5rV8hsblY7wUUFUTgWfLvoa56s04SiVdNrNWY38Gski1o/QqJzcVJL6BYIAIq08vkl1ChD0TgOt5FrV8hsYVYXhH8AhHIIOg97lbpldz+l7YVIL5cBK6Tny1p/QqJLYSb2OUmrrmJF1za5sHYihgvKCJRAzjpUxtqEfXW5dI+HPrQi6qd1pFYADEux+Ze9QxyETCBeo8fiZZqzNj1m0UlAShofdcUe1iL52Qz9vznUVkAziaELSuzbOI3jcQqo+kBixaTVOz6S1YSgKIdCrzmhi31LmVlVhaA41VByzwqzvofs7IAFLV5o/gZQSJ7au9BrAj/bj3a+YBHrDjuT7O2ABTsD8QMBSe4La6Yc85fFYltRDspdMrGD9VuLAAmhepMfihaEdhm4+QrNhaAohWBdbQkX6FFAApEoM68B7itCMyiLfkKbQJQIIK2JzCL1uQrtApA0YrAGNqTr9AugJJ2iaiRDZd6i5CYMdrNos15/DKnbowKQJFvG6ep6g1ecNlSFfb2RRBE6nN8uDKGcQEomBe0K4TVUOP9IeP9SBjGigBK2iFhOaa7/MdYFYCieLLoHHcPa/nFjQzDqHwA1hbWBVDCKqEvhDht5wawwWnepjgTgKKYG5zjvsWeHyzvtoOgb2Osn4dTAZSoYSFJkj7B7HPZeDIhvoVh2K/64KZJqHN/aLoQMo8SX0Jd+4cSAhPFU9xmDA109TIIzm1P8KrgpQBK1BzhNkkOcdVrVq8oa0MmxN8U5zthOHA5xi9DYrUg7xXSNBJCHHq7cmD3jgqN2cGLfWztsyDe+pF/2EKaKiEccrmHueSGxA+CIBhueTS2V6WWApiGYaLzk2Eik3KXXcYDdtK6wlQPQQvnb1zzN4a08uttIYZ072O+U1sk1jgQxe6dEF2Rpl0u0UN2IICb7VDsYYu4Yfwe87NjEn7NNbkOhr8JcV33ZM/iP99/T4+xGHCrAAAAAElFTkSuQmCC",At="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAIiklEQVR4nO2bj13iSBTH33gFkKtArMBQAbECsQKhgTPhCtAtYCFWYKxAtgJjBeYqMFuB2QLOue8EiCQESAK4uLffz2d23oTMm/d+8yeB3VWyZ8bjcftI664o1dYitmhtcdmmWJRFYjFFqUSJRNwXvSn15HlewvW9wVi7h6RtHF+SRI9mW7YjQpQQ8e4RI6K9UxRlJ5C0dSRypbXui0hb9kOsRHxWhhEjob01+NuOhcRdmhblI0iUUv6byK23pRBbCXA7Gl2xNG+kQuLc90Rl9nYiR0ehlPH25rDc2yLSViJd6k0k3OdeDYf32I1QlNow67bS+g7TppSiRb5TTUhowiyF0gDGcRCsh9lXIi3qVYRaqQHjxFIT/NZj06zz2RNJ+wQzobkzEKOHGC4Bd2mWkSACw3qB1AB/1fHH4zuC6EsJepq4SwARzb2BEDYx+ATepbmMUgFBDLAqoSgbYVCLJf+A6UgBbZb6NPEJzQ+DmHozIY5p5kEELUJImw9I+q+HgUzyj5g2JYcW+cZg/SoD7QMTGyIEJHFOs0jEljjbFBt91+OPRs9UNiUHzvHt+Zg/HYToM0l3mHk4gFmaF1grWSvAqj1P8gOSD+SAQASHWCck1KL5DtsBEQZYpShKKTh0UXWMmYPkO96eD7qmELONCCFJtWhmEPPKCePeZYwjkn/EtCgZ6xwdCsTuzGJfJCH2M2KPsHOUClC273FA/8PY85tAhD4i3GEuErnDYYc6x5IAdHbpPMbM0Jz23nDYw/w0jEejgOQuMTPKJpF73iF5i+RfMC1Kip4+5206JjQ/DSYXzoOIBI9pzjFb4WQxFz5/Z/z16w3fsq4xM+hw4X3wS86uQIQeE/qAmcG31i/e33/fyIxMAG62uPkF06KkaF5vWfqOfGLYCiFJdjEzmFSzCmIBPpuyYvY7XsnJ+ZlgYm0m9hkzY3EVZAJw8r9QtWWG/gVmf07JKoh5IpxQi6KUq7TF3sef9YfWp/8q9cPbwQra1h/9e+T3gJkxz28qwGjkY1xhpmhOfma/LTVhIAs/16wxl+aciMEGDBZh14bX8fEu/JFjTGzHmCna/Mg6HPa5xiCFFx8+vOVDF7MWDOLj8AqzSEzQHW/h8VOFsnNpRm1/JbElbIM/FQJbLI9XLmTg/AznodQEITVVKfgc4DOQGmzwh7v8S806yNMhz0fMDHx0jAA9PnignYEyiFUP/CwNsMjiyVsF/Nn4e8YsRTdYpUVBEcBTxWWmG57+BGwR8CtmKWYw8DErUwx4kbqCGtgGITPbxUzRnAOKixMuntNO4WJtZecUfc3B5w9Rqo0ACc3KbPBnXs9jqQH+AvxdYqZoJtsIEHKxSzulibJzzCrAgfF3SjNFT4PtEWwoNZn5MyJ0aaboqT8Xf4HUpLjaDYpl9kptUVJYqmc4D2ULCNxJ/5Lj6CgWkQn+EurGFPyF+IulAfjpsU0fMDOMAJo6YxcCHCoIsHRQ/xbgtwD/dwF4CiScsi3slF9cgD4C3GFmGAHMY6uLnbLNY/DQKT4GNY9UI8AEAc5pp3Cx8YvQoVOSKy9Cy6o0ehX+DHDePVPZlBRyvd/Zl6FDhzwt8nzFzOC8GxgByj745Q5C8uyR5wNmBnmepDPN3ogwTjFTWBqNzgEGsajaiBdR7wXGaAswRiw1IMeAHC8xU/TsVy+upR/6GFeYc2K2wQl1ZQjMRuFHTAtlO94eRCiMMWCMQCrC/n+lsigpejbJCnvu+BkzgwEuPH40xKwEA5j+NsWQ0P+M/hH2TiBG8wwfY1qUFMY4YYxYNjDre4eZQd+OR3ypAAZWQUzjGHNOyCo4o64EAmiqRYwIF96WZwnBW2r5h9YU/J9V8U9sj1SOzNCz5S+A7ynFx6Gh6gCGsv4pSvla5At+Elq1uB2NLul7IyJtKcD1J5JwZAMI6DD7j5gZ5EU401+nFCWFG82PDzEXWjTn1FoFrKJQLbxVLjD/l533DBzLGkwcR1qf6xWJG/jsCWF7+EporoXZf6ayKSn0NT+otOd9FSWjbBZR68KreBaY4BFxgtMuzVVEjDH1x9/e8idRKJs/aab/KNKmrESzMJh5F3MjxNNn9u8wMxgj96pPrO/QwSQQc7FFc06MCB1vplgVWAk+Pq4wd4Zm3yKUSxwTmhsxuZD8C6ZFSdGF2TcoSg46unQcY77DjDHyBVZl8OMgphHilGZj0qDxw89h/mLgm2DpP1I5sgATeeEVBCS+ZZjBiA9ygdOZvtODow4zIVxMB58t6kro6T4PGDOQmpRuZfyxdRwpQEzLELRN0CEf5gJGhEGTgObgd/rjpmG67y2KIWG8iFqY6ZAxQmkIYyzve7OKGA+/sRQgx3JwtLwVABE6Hi8QmAcHMS8lbyDmM2IOpYSVAhjYCgE3XGLmwOEAh4EcECuTL5z6RchvPYgQclMXMwfXzH9UuMX86dyOx9da6xspoM17B38FLmsgj/WgrIWMITee0szD04FBzGpIaH04JjZm/QHTkQLEtTF5A3ltxgyECBNu7tIsErMl0CD/eNk3s9dkH9Oi5OB6peQN5FQdtkNAh0vMMkKE+IIQoewRJsNh1q8xHSmBGAih+uOafOpBAC6r4YaOLZplhHzmcz58w94ZzLj5fuBiOlICn5lHXY/kQ6kBsdYHEWxECOh8SnMVMQFN+GIz+Ws4fKJdC8aw6NtlRnuM1eOSRSmF5M1Lk0k+oVkLRWkMQboEd4OTFs1NhAQZc2/MEg6lAElYfG5Tt/Fpc8mUtXDvd/q4JD6h2QhF2QpEsHi7c00gOKsixNaQeKPvB2UQ825YEKKP02Mu7Rwt8g/+fczJtonPIdbdgxg2M9QXDiwGOKVuTJr0dPsEJB1h7xTi2y+IYVGZL0E2SdjYFqXNwMfUGdrsZ84HMYXfJFjeEXZI0gn13vgPpzOTBSef2gIAAAAASUVORK5CYII=",st="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAEMklEQVRoBdVYXVLbMBCOM4FnjpCeAB8hPUHbE+CcoGSGn0fcR+AhuQHmBMAJQk9AeoK2N2hfgSH9PlXrWcuycUKsGM0oK63k1fdJ2pWiqKfSxcXFV1QT5Fipu1Rc9Pv92dHR0bWAiliYTqd7T09PcxS7Clzwilzs7Ox8nEwmf/rUvDPwhBxbzL3o8vLycLlcTqllQvnb7u5uBna/jKIjP9glw8fHxySKojMFaRxh3z9AYbYOwZ+enqaqQ+eK5+fnqSKx4BbK9z1nvnOIHUAOxpgrsJQ+JycnxqmlLtITnUrRQPqGkBrzoG7AmugUv7y8ZDB0KNGgzk6bbSYKVQ3QIDrl0aDKRtv6SgKMThg89w84zgSz/YGZzq6AxViJRNWDFiu3EEAeCBKCPz4+nkkdMkU06KlowBM8U+3BipUrAAT57A8GgxI4NxoEQ+wMVEfA6drNaiUBbI8fAhknIP2hkHgqikL3FV0oWekDAJAhmysG9zqceomtdE1gz8/PB/CR/EhHWfsHuwRLlStAp9UzC5ApwupPZpYFIfvgAMykHlpWEiAQzPhIk3DBsY19XH3Iet0W6vG+DTAmzgMsb637BEfgKM+wShnr20y1BASY3SKZ1NuSOBBj2sZ4i6ZjNCLQ1Ni6/SzwG3w/pA3U7yEmTYjU+gCNtZ0s+DnGGaqxRijPZUWUvlTcKgEFfq+ErNej7lUSWyPgAX+HF4cvzAB+ZwkJicTWS2IrPuABP3bOklv0IegrZJK4Qp3OnaFcSMFXoAF4A9CCHSu0JMFbbyEFJdAUvCD0kJjBBlclT8EIrApeEHpIJNJGuZYP8I0GFzpzKuMq8d2e2NpuobwueDFCErDBamH2qVh5BWAowYXuAVeJW2Ze7qijMV+ybYzzEipdh/V9VtJ5VsL0WYkAwHAGmAUMjZgogev2GSs6WfC6/1rgxaaPRGMCFnwixlyJ1UhtH9OkwEvXN4EXI5aEVF/3Ac/b0F/cRlNYWNAKgB9CfGIZKQHwIdrvoJ/+V5nfjYBX9vJirRPTWbHHb9A7tl/8hvyMa7QBb3X3zmyPAH5k2yhaA0/jlVsIoPho9YA+Bjz/A+BNKMYSavC0ISekPnSMHt/wRpmZSks/XgJwyBHGmyPvcVyC5z+vunDpczCsxAG3IG20lUoEuB0wsAZ/jS0T14EXcB4S5umxTRIFAjYUMuyZhJkn+MRWG4nQJAoEMPOpQjleFbx8G5JEgYAAgHxz5AhFwiXAGP/RDq74rFcMQcIlMMK2uV8Prv+rtkkUCGCwUoz3w1pN2yaJAoE2w92mSPB2oKevz0NKFL5XaGnbhNwECfdVnCuQCTiQ4Sv0mctS2jchK0jwvlWbiInYiFE6IuzPIlbQsEBlXxreg+TO4Q3B+MBrr9BdI0Tw8ipuVkAA8h6ExvwVWvRdkQTObWO3oYH1D6b3GS95f85qAAAAAElFTkSuQmCC",zA=""+new URL("title.Bxzjc9QQ.png",import.meta.url).href,DA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='14px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter572'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.4%200%201%200%200%200.4%200%200%201%200%200.4%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1686%20-5323%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='14'%20height='14'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAIdQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92IrIQAAACx0Uk5TAB5tuNj0bB0bmfz9qiBQ8/JOb24cGp6ba7e12/HZ12n7nJgZSU1MFZGitmptU/ZgAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAQ1JREFUeNrt1utOwlAQReEC5WKrnGKrItaK4t3z/s+nicYIHacN2ZHErO8nk7UDDSEkCQAAAAAAAAAAAPBpMByl43E6mkwP0syOsvglPz7pN6Vs5iH+UCz6bCmb0zxuycvuLWUz33n949L5eZRNFWJLceZvSZvzaLjwx5TNILMOWeVtSZsympbemLS5tA8rb0zaXNmH1BuTNsE+BG9M2vxyqPcY26+5tg+NNyZtDv4lnNiHG29M2kzNH4i1+6OibW6tw13ikjazov16vfHHtM196+HkD0kHbVPu/lEYdm2pm8XW06kfu7fUzdPz+vttvWz6bMmbavnahNCs3qp+U3/ZAAAAAAAAAAAA4J97B6Y13hOEznw5AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAzLTE4VDEyOjI5OjA2KzA4OjAwpDFvtAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wMy0xOFQxMjoyOTowNiswODowMNVs1wgAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2V3MGNucnU1MjUvZ2VuZ2R1by5zdmfa+p/PAAAAAElFTkSuQmCC'%20x='1686px'%20y='5323px'%20filter='url(%23filter572)'%20/%3e%3c/g%3e%3c/svg%3e",MA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='13px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter571'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.4%200%201%200%200%200.4%200%200%201%200%200.4%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1740%20-5324%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='14'%20height='13'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg=='%20x='1740px'%20y='5324px'%20filter='url(%23filter571)'%20/%3e%3c/g%3e%3c/svg%3e",Dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg==",YA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFFklEQVRoBdWZW2icRRTHdze7MVsviblYRVEbr4iihnjpmnuCxEARtQYFxZc+ircHfUygUkXQPlnQKuibBEEkNRISkxDazUNDQLBREW0pPtikmsqa2N1ks/5OzLecmb0k+/ml+zkw7DlnZs78/zNn5puZDQZ2KI2MjFwVjUZfxf1+8q3ki+STmUzm/a6uri+RPUlBT7xYTsbHx+8Kh8NfA/ZGq8hRP0U40NnZueYY3P6G3DYs1G5ycrKmoqLiqyLgpekL5DcL+SjF7jkBOn+ZfLMF4i90e7RfGxsbKzRDVvPC6k4QeFp3FwwGjywuLtYRUtcgx1VZBJtRV5VtW/ScACBv070TSgf7+/tTra2tS+vr6+/qMuT7LL1k1VMCs7OzEQBHFIo0C/U3R2dtfO/I8gvZ27XuRvaUwPLy8g2CSwFZUnIAAr9qHbI3ad2N7CkBQuQWDYIRPqv1lpaWBLaUslUq2ZXoKQEQ9GoUjLARMlKGLUsAMhW6vhvZMwKDg4Pi60kLxJjWh4aGBPDljg0yq47s9tczAu3t7c8CYo8CcjGdTh9TeqChoeFqdL1GzupyN7InBEZHR2VUD1oAPu/p6fld21gjTVonhE5r3Y3sCYHKysqP6FyPfprweNsGFAqFHrVs31l6yWq45BaqASCDU1NThzA9o8wiHuXEecqyiWoQIMS+yVOnJJNrAsPDw7sA/wG9PWf1+FMkEnndsgUmJiYewnaPsieqq6tnlO5KLJmA7DZtbW1PEA7vMQP2YewCo7qfr2/CRkO8v2LZrkwkEilOr3LQ285uJPeJefJn5E+co7jeEbDnT3RyLSV3k9vJz5PzfUETEHqM0DlBuZHkiAHYPzFGjQL3yixN98kxRWK4lY6PYLi+gD9Z6NUFyjbMjO4v+Hgch3kXZTwej6ZSqfPU2VXMTyll9Dm3sLCwN4TTj2kooyt7dL5cDHwGRx+urq42FQIvoGKx2N/08xJ1/xDdi4S/pvr6+gNBwkPir9S1kKbNF+zrb3V3d89tF5CsH+oXG5CCrpLJ5HXcHw4DXO9kM24IvMhClY/UuYK97VABd+3dnGizx3O6SeR8yIjV3TCtdTKVZLSzidvV0XKAFwCAT2aB/CtEJHSMnaiurm6pubk5u60RYkabxsbGjGG4hApr6H5CSPd4OmcG2O6MGjQwCNrl2ttOy2B5xOrjRA4Bq4KvVGZgrwYEoRnZRo0RJsaNGdANyilv4nxYY2BNzPxvZmB6evpOSNQqAkuszx+3JMC0+WKG+ObEFHgR43xX1rckYDUqp2rEP0A2TrI5BObn5325BgBszACBEZfRzCEgxmKpHASJ9Rri/w6FS258J0UP2zGuKvlGBGwMnNnBRv62o6ND7hGlz0A5WAHYiH8IbYRPXgIDAwO+WwMQMOIfAtmraHZaioyssY1eaoLyGAbgBzU+CBWeAV3RDzKHy3vBcYXCco7L0xlH384MOHXL8svjgRH/gDiugQgBI0SYnqJrYKty7dwj2SaQjX/x7/sZAKOxgHX8+56AXCEBuUeAbqbkysqKcQf37QzwR/llXGsPOcg3f+f6+vqS2pbzGsE70c+6AluYVgN2uVHooUK/teQa7RL9mNZFziFApUa7kta3Ktd1PZZ/qKqqOmz7lBA6bxt9qJ/hKecpeSCzscmV8g2M8nDqu8SOs0B+B2AP8JQjD7s5aeMbIE/lpAbI/Oc/3XJ6cGlYW1u70Nvb69lTpEsYO9/sHwHIu0q4cL20AAAAAElFTkSuQmCC",to="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAIA0lEQVRoBc2aaWxVVRDHea9FEtomZXFBqlEj4DdDCsgXE+GDxqqIdGWTBAUUUInBxBijQYx8QAOBogIqhKVQyiYqrrEuiYIC+pGCSiLiVqlgW6SUtv7+l3tv553e9+hroXWS4ZyZc2bOf86Zs9xXYn0uAW3btu0a3IyPxWK3tbW13UL9JngQnA2LGuCT8E/0Odza2rqPsrqkpOR3NXaHYl013rlz56Dm5uapAJmOj1Fd9PMt9hszMjIqJk2apADTprQD2LFjR15LS8tCRpoF9097xGiDRlZuLcG8zKqciO4Sre10AKtXr+47YMCAubh5EQ5SI9pr17VnCGRpTk7OkoKCgqbOuOlUAOT4CJxVwrcmcdqC/hvlNeVBypqmpqZfGyD1z4b69et3LeDkJ59yPOUYOA5H0ffsk9KysrIjUY1Wd9EAKisrCwG0HqOoWT8OmFW0b0p36f1UnIbfeXAe7FI9ihn43eU2WDllAIB/BHDlGGRYI+q18LPwegY457SlJbK6VzAJMxlnMYaDHWOt7FzGWOPoQzFpAD7418Ke7ZUKqo/htK5d1f2af6qVE0hZhLc5yYKIDMBPG+W8nflmnM8tLi5+I2KAS6aqqqqaw4qsxGFf47QFXVFpaeluo/OqHQLwN+wBWm3OnwF8EeDfdx1cDpkJLGC8KnzbY7o+Ho/nFxUVHbVjJpwCykcaNfMWvGa+x8ALHDO9l6IEbpbsUw4nU6WO80ChMiEA5CfhhKPST5semXkBCoicf4+0eTyQ/XIkd9ECqwtTiNkfSkMNnBV0wMFmZkNHXa8RuLYyeKkB0MDTY3hhYeFv0tkVeAo5BE/9JE+GhGhl0Auk2/8vM262/5TxVF4AOsKQ9Lax9MyUKVOsoW3rsbqOa9L4eWfAOT7mCyugVyUd7I7/BXm9Y9RrIqmso/tnAyALzN594a0AEepJHBIG5UTerRs2dHYJKj6WhEsVzA/KdZw3yRDKfDNOa2Zm5mYj/1+qGwGip0VAoysqKq7OPH/+/B1EE55GtO5nhyuFQuIkuAdhNdwGP86MpHxghYZpVhjnAUx0C5MEbXP8+8DzwpgnaD+IoFesKMZE38HlFh97Qb7wL7HoSeySwOuYzYOrcDTF7dBd2fep29cbBxwa06VPrYIgx8b5R9+wISEfCIX2yvn2qvc+2sCACfvGtKdd9X1twNC+veyYgU+tQEgEOUKb+OZQQ4UVOWJl1en4KIXd1BpoHW+WGWrvDvk+1uHDgj/HmDr/XapxFMMUQK5V8t7wbjir0yMOhxPRnTX6DHTrmD0F1yUCvL4D3sLYBV8S9XBkv7rYchWAfbgJiPcZqIol36E2mQ1Cm38VT+Co2bLmHeoE/hDg19IgDAFplRmq+O1AYcvc3Nx6K1PPscZOW0eRk+AD9oi7EjF05czmvI4W0RoCfpiWNbAd/xx+ihhjT7RVtFYO3Bl3VyTBkqPtQ2bufpT/mgZUsZXM6nyji6wS6CyA6oSx4JuwL8T3O5FGvvLUqVM5Tnu9nPxtlWziIVaOqrPEH6G/G2407UqnFQB0n8BhFwKcDVAXvCbiPny+G3ZMUuHcd7GdUgA/2v5s4uFWTlZnqT9nJgtotyuolVgO0CdcO30qonsdtpemfgeagK+P3f5J5BGO/micAQ9bJQ5HWzlVnSX/AvsOQWCjIJ4ObAG/AL96yySAx3YCPj4J+l2spP8o2wefNZnMuH5oDZed+jjb6WJ1lv5LwCqd9Bloc3QJ6aQJOstArzh+ziArbRJuVqdPBxE/4x3l1zHvQZSZqfM1mJ1WPhhumDx58nGnc0qRWb6dARREykOA9gaCKlDgKR06jUzS9aiOwcHmb+NeGBLno+UPlAdM/zifbFON3KmqAAHsLjr/k8KgkT6a+bTAyx92whSAl2q/sHsKGjdKY2geEesXirQIYF/hS+l0OsLwNG130ueziLaUqr179/ZjdRPumQCzF4B+n8eDPRLzMJiZ0muSRgXhv3C300WpKdYr8za1UaZN/Easz92hxrARzJWSg7zvw4ZbRlT2I76OHBvR29/F+vYFh07KwUEATO4rnF4LJYc5BfiXke0qDCRKfVz0KgFex28Innq9j9XDFQbAZXKChhcsWuQy/wKy6h6rkxXK+2I7IJgWgTX821oYgDrV1dUto/jOGrBcK3Gky6pHiYm7F7DLnUEPgXGF1YV7IFBu3bp1OJtQx6q9lHTlF5N3OucvOwk842mT9jeD6XjOZ/Z/MLr2PRAo/T/r6EvL/gLQn9nYzUo8EvS7XKXSBvC78G/BC8t0F7wwdFgBKUXcA7Mp9HJ0qZKNNf9Sn06MdyUDrYITch6ZeLxfKNa6QCQnDUCNfhCvUs2QbOgkK/JcVlbWm539a6KxTajqkvLP+UU0DExoJAsA/yipGwlefVMGoA4s6UTAbqBq94SaRCfgct5Om9N9O23ZsuU63vfTAKiTxl5S8itSzitt9nhSkn8uGoDstm/fPkx/XKA6MomfVvTa+HpdHoRrYAXXAIuyORjy9K3BZIwC9Hh0+XDCKaiOPh2iLI3K+aBDUHYqAHWurq7OrK2t1WwthqNWQ926S94fugnyJcDbn3GS+u10AIEH/ZbKTD7FLGqTZwX6bpaN2OvAWArw8JLqjM+0Awic+m+UycjT4DFwur7asNnPRGxixrcAvA45bUp30MgBCOYqjtZxgBkLGP1UeSOsYzHbN9BeqIWP0ecwffaxgav5Hyp/+u1dLv4D4SL5jJQdUmEAAAAASUVORK5CYII=",Ao="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADEElEQVRoBe2Zy4tSURzH59YtJRMqcEhdaUyil6DUoQJr2boHEk0DRctes2hTtAp6bIJeULSJiB6UmbPptWjwH3BrBKKudKe4zFL7/oZ7Z47He9W5i3tOcA/cub9zuMf7+fx+5z4cZ2bc5mbAzYCbAZEZUJw+uaZp271ebx7nPYztRTQavZbL5Xp2OTbZnWh3HuAXMfcYNj+2pVqt9jKbzW62+3mOCyiK0mRhB4PBYrVafWVXwrY5C7GRuNFo/AqFQrOYM8/M29dut+cymcxyuVweMOMTQ8cFiKjZbH6FxC6EBxlCkojHYrFCvV7vM+NjQyECRASJb5DYiZCV0Lrd7oYkhAnoEt8tJBIYX4bkxEoIFWAkdiA+RH29JbCPTyMhXICAkWmqxIgE7lBUicK4SkghoEvQNeFFnKE+NdxyE5MkpBEgYGT6h5kERLRgMGhaCakEGAkP4iPU11sc+6TP58u3Wq2h1w7pBAiYKhEOh7ciZCX24jXkAC8hpQBJ4Im9YiExVAlpBQwJrP0tuAaOUl9vc6jEmoTUAgSM5bRiJuHxeFJ47cgr82i9Xu8WLOkFS+a2H3BDCcct9rna7/ffAX6PzORWbOA+Td8Htlkd8B+MD1SU4QJM7gM2JDkwvbny7b3j34l5gmn6yWTyNpJ8kzv2S6fTOTl0UXAHSNFNp9N3AMLDfwb8qUql8lvqCqRSqbuAv8Flcg2exh3/Us/BWHbN4LGMPmHCCcq8MVE1Apn2gL8HnussE2429L+kM6VS6Q87LtsSUgD/AIBLLCTBI/sj8HSMTAKm8GD8iG2BzzzBU5NFgOAfgufqKtX6n7HwdJgMFzHBPwILD5/z+/2my2bdT3wFDPgrLBRigl8oFot/ufGRrsgKKHjCPgYRD/9hWniyEfUkVvCEfYLzXyYIphH82Wkyb8wRUgGs+ae4NV4yIPT9W/xWMNWyYec5fhcC/HEAFFgIxG8Af87ODx0insS7WXg8oF5HIpHzduDpcxy/BgKBwE9VVZM49yzgnwH+ol14NhFu7GbAzYCbATEZ+Ad9hheLGRG4rAAAAABJRU5ErkJggg==",so="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1500%20-25%20)'%3e%3cpath%20d='M%203.63636363636364%2014.5454545454545%20L%205.45454545454545%2014.5454545454545%20L%205.45454545454545%2016.3636363636364%20L%203.63636363636364%2016.3636363636364%20L%203.63636363636364%2014.5454545454545%20Z%20M%203.63636363636364%203.63636363636364%20L%205.45454545454545%203.63636363636364%20L%205.45454545454545%205.45454545454545%20L%203.63636363636364%205.45454545454545%20L%203.63636363636364%203.63636363636364%20Z%20M%2014.5454545454545%203.63636363636364%20L%2016.3636363636364%203.63636363636364%20L%2016.3636363636364%205.45454545454545%20L%2014.5454545454545%205.45454545454545%20L%2014.5454545454545%203.63636363636364%20Z%20M%201.81818181818182%2012.7272727272727%20L%201.81818181818182%2018.1676136363636%20L%207.27272727272727%2018.1676136363636%20L%207.27272727272727%2012.7272727272727%20L%201.81818181818182%2012.7272727272727%20Z%20M%201.81818181818182%201.81818181818182%20L%201.81818181818182%207.27272727272727%20L%207.27272727272727%207.27272727272727%20L%207.27272727272727%201.81818181818182%20L%201.81818181818182%201.81818181818182%20Z%20M%2012.7272727272727%201.81818181818182%20L%2012.7272727272727%207.27272727272727%20L%2018.1818181818182%207.27272727272727%20L%2018.1818181818182%201.81818181818182%20L%2012.7272727272727%201.81818181818182%20Z%20M%200%2010.9090909090909%20L%209.09090909090909%2010.9090909090909%20L%209.09090909090909%2020%20L%200%2020%20L%200%2010.9090909090909%20Z%20M%2014.5454545454545%2018.1818181818182%20L%2016.3636363636364%2018.1818181818182%20L%2016.3636363636364%2020%20L%2014.5454545454545%2020%20L%2014.5454545454545%2018.1818181818182%20Z%20M%2018.1818181818182%2018.1818181818182%20L%2020%2018.1818181818182%20L%2020%2020%20L%2018.1818181818182%2020%20L%2018.1818181818182%2018.1818181818182%20Z%20M%2018.1818181818182%2010.9090909090909%20L%2020%2010.9090909090909%20L%2020%2016.3636363636364%20L%2014.5454545454545%2016.3636363636364%20L%2014.5454545454545%2014.5454545454545%20L%2012.7272727272727%2014.5454545454545%20L%2012.7272727272727%2020%20L%2010.9090909090909%2020%20L%2010.9090909090909%2010.9090909090909%20L%2016.3636363636364%2010.9090909090909%20L%2016.3636363636364%2012.7272727272727%20L%2018.1818181818182%2012.7272727272727%20L%2018.1818181818182%2010.9090909090909%20Z%20M%200%200%20L%209.09090909090909%200%20L%209.09090909090909%209.09090909090909%20L%200%209.09090909090909%20L%200%200%20Z%20M%2010.9090909090909%200%20L%2020%200%20L%2020%209.09090909090909%20L%2010.9090909090909%209.09090909090909%20L%2010.9090909090909%200%20Z%20'%20fill-rule='nonzero'%20fill='%23000000'%20stroke='none'%20transform='matrix(1%200%200%201%201500%2025%20)'%20/%3e%3c/g%3e%3c/svg%3e",lo="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-360%20-31%20)'%3e%3cpath%20d='M%209.65206473214286%206.26736111111111%20C%2010.6217447916667%205.70486111111111%2011.4281994047619%204.94907407407407%2012.0714285714286%204%20C%2011.3363095238095%202.90740740740741%2010.4149925595238%202.09027777777778%209.30747767857143%201.54861111111111%20C%209.60249255952381%202.03009259259259%209.75%202.55092592592593%209.75%203.11111111111111%20C%209.75%203.96759259259259%209.43201264880952%204.70023148148148%208.79603794642857%205.30902777777778%20C%208.16006324404762%205.91782407407407%207.39471726190476%206.22222222222222%206.5%206.22222222222222%20C%205.60528273809524%206.22222222222222%204.83993675595238%205.91782407407407%204.20396205357143%205.30902777777778%20C%203.56798735119048%204.70023148148148%203.25%203.96759259259259%203.25%203.11111111111111%20C%203.25%202.55092592592593%203.39750744047619%202.03009259259259%203.69252232142857%201.54861111111111%20C%202.58500744047619%202.09027777777778%201.66369047619048%202.90740740740741%200.928571428571428%204%20C%201.5718005952381%204.94907407407407%202.37825520833333%205.70486111111111%203.34793526785714%206.26736111111111%20C%204.31761532738095%206.82986111111111%205.36830357142857%207.11111111111111%206.5%207.11111111111111%20C%207.63169642857143%207.11111111111111%208.68238467261905%206.82986111111111%209.65206473214286%206.26736111111111%20Z%20M%206.74665178571429%201.56944444444444%20C%206.81436011904762%201.50462962962963%206.84821428571429%201.42592592592593%206.84821428571429%201.33333333333333%20C%206.84821428571429%201.24074074074074%206.81436011904762%201.16203703703704%206.74665178571429%201.09722222222222%20C%206.67894345238095%201.03240740740741%206.59672619047619%200.999999999999999%206.5%201%20C%205.89546130952381%200.999999999999999%205.37676711309524%201.20717592592593%204.94391741071429%201.62152777777778%20C%204.51106770833333%202.03587962962963%204.29464285714286%202.53240740740741%204.29464285714286%203.11111111111111%20C%204.29464285714286%203.2037037037037%204.32849702380952%203.28240740740741%204.39620535714286%203.34722222222222%20C%204.46391369047619%203.41203703703704%204.54613095238095%203.44444444444444%204.64285714285714%203.44444444444444%20C%204.73958333333333%203.44444444444444%204.8218005952381%203.41203703703704%204.88950892857143%203.34722222222222%20C%204.95721726190476%203.28240740740741%204.99107142857143%203.2037037037037%204.99107142857143%203.11111111111111%20C%204.99107142857143%202.71296296296296%205.13857886904762%202.37268518518519%205.43359375%202.09027777777778%20C%205.72860863095238%201.80787037037037%206.08407738095238%201.66666666666667%206.5%201.66666666666667%20C%206.59672619047619%201.66666666666667%206.67894345238095%201.63425925925926%206.74665178571429%201.56944444444444%20Z%20M%2012.8549107142857%203.52083333333333%20C%2012.9516369047619%203.68287037037037%2013%203.84259259259259%2013%204%20C%2013%204.15740740740741%2012.9516369047619%204.31712962962963%2012.8549107142857%204.47916666666667%20C%2012.1778273809524%205.54398148148148%2011.2673921130952%206.39699074074074%2010.1236049107143%207.03819444444444%20C%208.97981770833333%207.67939814814815%207.77194940476191%208%206.5%208%20C%205.2280505952381%208%204.02018229166667%207.67824074074074%202.87639508928571%207.03472222222222%20C%201.73260788690476%206.3912037037037%200.822172619047619%205.53935185185185%200.145089285714286%204.47916666666667%20C%200.0483630952380952%204.31712962962963%200%204.15740740740741%200%204%20C%200%203.84259259259259%200.0483630952380952%203.68287037037037%200.145089285714286%203.52083333333333%20C%200.822172619047619%202.46064814814815%201.73260788690476%201.6087962962963%202.87639508928571%200.965277777777778%20C%204.02018229166667%200.321759259259259%205.2280505952381%200%206.5%200%20C%207.77194940476191%200%208.97981770833333%200.321759259259259%2010.1236049107143%200.965277777777778%20C%2011.2673921130952%201.6087962962963%2012.1778273809524%202.46064814814815%2012.8549107142857%203.52083333333333%20Z%20'%20fill-rule='nonzero'%20fill='%23333333'%20stroke='none'%20transform='matrix(1%200%200%201%20360%2031%20)'%20/%3e%3c/g%3e%3c/svg%3e",oo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg==",no="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg==",io="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16px'%20height='15px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1406%20-827%20)'%3e%3cpath%20d='M%2015.4615384615385%205.37807183364839%20C%2015.8205128205128%205.43478260869565%2016%205.57971014492754%2016%205.81285444234405%20C%2016%205.95148078134846%2015.9166666666667%206.10270951480781%2015.75%206.26654064272212%20L%2012.2596153846154%209.6124763705104%20L%2013.0865384615385%2014.3383742911153%20C%2013.0929487179487%2014.3824826717076%2013.0961538461538%2014.4454946439824%2013.0961538461538%2014.5274102079395%20C%2013.0961538461538%2014.6597353497164%2013.0625%2014.7715816005041%2012.9951923076923%2014.8629489603025%20C%2012.9278846153846%2014.9543163201008%2012.8301282051282%2015%2012.7019230769231%2015%20C%2012.5801282051282%2015%2012.4519230769231%2014.9621928166352%2012.3173076923077%2014.8865784499055%20L%208%2012.65595463138%20L%203.68269230769231%2014.8865784499055%20C%203.54166666666667%2014.9621928166352%203.41346153846154%2015%203.29807692307692%2015%20C%203.16346153846154%2015%203.0625%2014.9543163201008%202.99519230769231%2014.8629489603025%20C%202.92788461538462%2014.7715816005041%202.89423076923077%2014.6597353497164%202.89423076923077%2014.5274102079395%20C%202.89423076923077%2014.4896030245747%202.90064102564103%2014.4265910522999%202.91346153846154%2014.3383742911153%20L%203.74038461538462%209.6124763705104%20L%200.240384615384615%206.26654064272212%20C%200.0801282051282051%206.09640831758034%200%205.94517958412098%200%205.81285444234405%20C%200%205.57971014492754%200.179487179487179%205.43478260869565%200.538461538461538%205.37807183364839%20L%205.36538461538461%204.68809073724008%20L%207.52884615384615%200.387523629489602%20C%207.65064102564103%200.1291745431632%207.80769230769231%200%208%200%20C%208.19230769230769%200%208.34935897435897%200.1291745431632%208.47115384615385%200.387523629489602%20L%2010.6346153846154%204.68809073724008%20L%2015.4615384615385%205.37807183364839%20Z%20'%20fill-rule='nonzero'%20fill='%23fa6b11'%20stroke='none'%20transform='matrix(1%200%200%201%201406%20827%20)'%20/%3e%3c/g%3e%3c/svg%3e",ao="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAEk0lEQVRoBd2YW6hVVRSGzXtw8pJkYeU5aZqVIWKgYdDxAkUpYqGJgdhDEliKCYqYGfRi2YV6SBQUxKAbPYRXEMQEfSuULkIXFBMpE6zUvKX1/bLH4W+59t5rudfu7O2Af8855hxzjH/MOddcc+0uXZpcutWRf298TwTnwKk6xqmb6814/gecAG2gqWQSbEU+sL6p2EP2CyOvJC6Au0BTSDssY+a9XNsU7CG5q0wCWoU20NDyMOx81t9FP29taxqaPeR2GtnfqLeAddamZFpBQ8o4WPnsLymxFGFfhfcakj2ktoNIQGf/TUZ0g/WdpX679TVEdQwsLoNIYFmC1VD0i9b/TqK/09UtRu4k9b4pjDaajVZhUIpNpzSNJqrP/ooyLO6m3VfhzTJ2/3vz50SMrfM79X4VGHxgtmeoD6xgW9cuBR4PXgQ++6+iV5J76bwEIuGPqD8G9Ix0B7nlhgojbqZvWAnDS6W2gdrS9vgftOu+o2egkoj00ykG2l6HwA/g+1L5Y6k8QqmJukqUQE/wBBgJgqhIKoE88hrGr2QYcD82B0C3DLZhovfIT8AT08FxTAbbQCxp3vI0Y/eDt4EmIqvMxHA3+AXkjRn2fzL2Dq3AcXALKCfKPpZSyxtQ29Fyg3K098E2tmqU2gnargOq+Jms/hdAZBXlZ7Spsw10BZ0l2sZjwUvAH37x3AM6tuFiFD9NNOtPgkaQWyHxNYjJDfJ+VbnC83l+Pcu/0Z+50tN5P7cR+lvg5Hejt4BUeY7WZBJzUi3r3ziYEHrenPx29BurhZ6NwUUbqJV4ttqggvtb8adj08lvRe+dNc4sDD0JPR/zsw6u0U4n0c/AyW9G75XX7wwGXDBHSmJhXic57e/BXkezk/8YvUdOPx3mU6jpn7VwqCQWdfQWW9E9SW/WiKXyQ9Ad1CTJJOR4SU0erx48iiZ9Qzv59eiFvYMexdlfFkAroTtNUaLriJNfg65bQqEyDW8eZEKB3n3r6LaamXyeJTqVIHwwodeiui9dEDVRmSRPAg+YxxPUdZMsSvS2Dcm1NfMk4I6/iWgFlZ7ASHzWZQvJcUjRCbi/FoK0RqBqZdYV0IzcZ858xqz5mqtKwPe9T1ZFp1kTuBMvfc2Tz5g1/6f6ENpbYC6o9ibV97TewCGZE4gB1crHMfAjVB8a5UQr9QnQuyLGHKY+D3R8gFBPin/abkp21qrrzRtkdNFKk1Ya1wLdXsM2WWrrzQBpD+kbNu4r6oXKRrwFmR0Jz4PQ9eb0i1/YprWpbx9oBy5zUGLcWeo134Hc+ZfmfHWpQ9toFfArRhA4XerrTzkV6G+U6PNyJ+0PAskY4H26mRYi2rdOcj76UnASeEDV9S2tbaRPQRcdFto6yY+UGK9ExgLffk+hFyL6wIhAQdJ11RV4AxgMKkkvOheAX0Gaj0vWvpJ6ITIdL8lgoeuk+RSMyBlJL6uXgf4MDl/JUn4LkRV4STqXrodZ+7YW0XP0OjgDkjG+q8Wxj12ecL4X/RE3KKCuk+x94KdWlpdlptA6SfRduhVMyTTi2o2GMFSHwC7QDq5/+RffN6xPYNWQnAAAAABJRU5ErkJggg==",ro="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADpUlEQVRoBe2ZO2gVQRSGTXxEo4UJYuEjGkHBoCjaKqIWViKIKFgJVkpANGlErGORSkUURBAFGy3FwkZFfKOJDxBBBG0EwfiM78f3x2wye+7c3b25s5uL5MB/d845M3P+M7MzO7u3blyyNCW7U72fqfE9tVa8wlRUtRuRTKFVJ+gBCvynSqiPE6AOpMlsKjwGinkJNIOKpIXaj0C1pH3t12Zg0m1iP0EXp0SpH/Rq5C+CJYm1R+5UUmnSbyq0od8AS43dq3Zg9Y1ctbZv9HsMZLmFplOv18OjD9sakCgP8Lpkr6FrBLSIq8Ek2lciSuIKcLmo/AVsAV7R6NgFu8hbsxjjZMKcBzaJX9jaLQWRbwR225qI7aetnJOu3UaLfCVYDLQbzQCtwCddGA8AJTggSsBmO2HQl9dFe/0OoFtVA2Xjp+mnaDMkRSYwjaj7wRuQRjLNvz7KoKgENhLwZQDiUWKbi0qggUDHU4g/x38S7AYbgNbDMnAQRITd623sQztcnjOgBXqzDAltHEfBCuCT7Rj1HHGJq6xjhm7FIckrgZlE8B1NtB1qRuQvJ/tw/AaW/Gls2iFjkkcCGqG7wBLQGlgVix5XtK13A9tO+iEgf4nkkcAFolgSt7Bpfy8n9TjOAttOM7anXCPZQyewiz4tCe332vuTZCtO2+4rtm1JjeQLmcAs+vsAXCI6FuuMkybtVHDbvUdfl9ZI/pAJnKE/l8Qn9DYFySBK8iFQ+xdgOcgkoRJYSDR7LOjMxGC40niKC0DJTjNcpbQUKgGd+93Rf1YpkVJq2SwhEtDT9i1wE9iZLXxFteZSWw+/I2BO1DJEApvozCX/Dl2vqaHlHh1Gce5EnYdI4LDTsQLEjrtRoCqvmmX36axygx4eIWS16eSy0UOoWuDuk1hl2areRjUI/SCaWl3ngdDiu1MaQ8yAFpN7vyuZV6HZl+svRALNpvPX6Lo/C5EQCWhqXfnoKnmXQyTwFJI6MkRyPSoUdfUtjkq/SuiMfw50Ab0L5CE+ngOz73NUmkAehG2fPp5BdiEbqFA9xBoolLANNpaAHZGi9bEZKHrEbbyxGbAjUrT+X8yAPh79MCPXYvRaUOcbEvpbTP+dDUgPv+4Lid6o8ngp+Ret8t9WmlwFLsf7bjcdxulWrNXyXjcBvVH5PoXXKvle+OrfzJjovo8+7dUqcfESeX0f8oqy0tToj2/fvyOjlZi46J4Xt9jIu58p8JVIU4lldAx95cL+BRfIP0NGsZjIAAAAAElFTkSuQmCC",co="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACWUlEQVRoBe2Zyy4sURSGm7QBI2dESI4WyTFhxuQ8BPEQLhPEROI2FzPxHNIJOZwnOE9gSjsuESNDA9f/a7WS1a2LiC69S/ZK/uy1V7H3vy5VvatWofBaumSaE/4KF8Kd8JSCBdk/K6yRtj57w+FQmBU6hTdlSlcvhbQF6+1ZO1C/H85MeA/a3WRJ+q7Q52yhqf0iVBYWjVhbohB5yNscc0XYS8ZbDA3kn2xHDewfMY3oj3+n/AMlMyhMCiXB5FEKnOFXoOZ92TxoviIUhVCkQ0RWBbhZWZ1Lr94T3LBmZIR8qLImYp7rDER52pjxWHpIkYefFzJREYzvATcxNWiyL+XeJgGOPFardZ9wG8WBHkf0zOmhqv8dsV4c8CUTcvSNt+dYxIFcS3Sg1emLGWh1Bjj7VH/NEiLNONtk7dNbZ6es947rxwjECMQI1EWAx+i4sCx0110LfXojgls4wAtCScijVDhK8HaTV3kiA2MCJfQjZ15QQps54xzpxgjECHy7CPAYzf0LjX2mY2zG9/6ss1zTEIkv9VmH+731Ywbei1DW179FBmq+9mYdsSasX/M1nQxcu0V/Oj1UteSIXaHTRLbfghPptHFCFbidCsb3D0TpgJuBkW5gqLIhYp7rNERpVV64C7Qy6QaGlAm4rAu+zXqmeSdnIYT2fVnwT6VTzWn60blsZaN7SPvDb0AwodGNrVpCZlyU4j30qUrTOZd8Vlgjbf1GdjjO26Y+4tsy0r6nnEIVuvNEfscIegew0YP9JXBjHwiXgv+d0PRLhb3hQKlw7B9OdA0v8gypmLKP2lSLggAAAABJRU5ErkJggg==",uo="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16px'%20height='16px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1367%20-4518%20)'%3e%3cpath%20d='M%2013.1979166666667%208.46875%20C%2013.3229166666667%208.34375%2013.3854166666667%208.1875%2013.3854166666667%208%20C%2013.3854166666667%207.8125%2013.3229166666667%207.65625%2013.1979166666667%207.53125%20L%2012.25%206.58333333333333%20L%208.47916666666667%202.8125%20C%208.35416666666667%202.6875%208.19791666666667%202.625%208.01041666666667%202.625%20C%207.82291666666667%202.625%207.66666666666667%202.6875%207.54166666666667%202.8125%20L%206.59375%203.76041666666667%20C%206.46875%203.88541666666667%206.40625%204.04166666666667%206.40625%204.22916666666667%20C%206.40625%204.41666666666667%206.46875%204.57291666666667%206.59375%204.69791666666667%20L%208.5625%206.66666666666667%20L%203.33333333333333%206.66666666666667%20C%203.15277777777778%206.66666666666667%202.99652777777778%206.73263888888889%202.86458333333333%206.86458333333333%20C%202.73263888888889%206.99652777777778%202.66666666666667%207.15277777777778%202.66666666666667%207.33333333333333%20L%202.66666666666667%208.66666666666667%20C%202.66666666666667%208.84722222222222%202.73263888888889%209.00347222222222%202.86458333333333%209.13541666666667%20C%202.99652777777778%209.26736111111111%203.15277777777778%209.33333333333333%203.33333333333333%209.33333333333333%20L%208.5625%209.33333333333333%20L%206.59375%2011.3020833333333%20C%206.46180555555556%2011.4340277777778%206.39583333333333%2011.5902777777778%206.39583333333333%2011.7708333333333%20C%206.39583333333333%2011.9513888888889%206.46180555555556%2012.1076388888889%206.59375%2012.2395833333333%20L%207.54166666666667%2013.1875%20C%207.66666666666667%2013.3125%207.82291666666667%2013.375%208.01041666666667%2013.375%20C%208.19791666666667%2013.375%208.35416666666667%2013.3125%208.47916666666667%2013.1875%20L%2012.25%209.41666666666667%20L%2013.1979166666667%208.46875%20Z%20M%2014.9270833333333%203.984375%20C%2015.6423611111111%205.21006944444444%2016%206.54861111111111%2016%208%20C%2016%209.45138888888889%2015.6423611111111%2010.7899305555556%2014.9270833333333%2012.015625%20C%2014.2118055555556%2013.2413194444444%2013.2413194444444%2014.2118055555556%2012.015625%2014.9270833333333%20C%2010.7899305555556%2015.6423611111111%209.45138888888889%2016%208%2016%20C%206.54861111111111%2016%205.21006944444444%2015.6423611111111%203.984375%2014.9270833333333%20C%202.75868055555556%2014.2118055555556%201.78819444444444%2013.2413194444444%201.07291666666667%2012.015625%20C%200.357638888888889%2010.7899305555556%200%209.45138888888889%200%208%20C%200%206.54861111111111%200.357638888888889%205.21006944444444%201.07291666666667%203.984375%20C%201.78819444444444%202.75868055555556%202.75868055555556%201.78819444444444%203.984375%201.07291666666667%20C%205.21006944444444%200.357638888888888%206.54861111111111%200%208%200%20C%209.45138888888889%200%2010.7899305555556%200.357638888888888%2012.015625%201.07291666666667%20C%2013.2413194444444%201.78819444444444%2014.2118055555556%202.75868055555556%2014.9270833333333%203.984375%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20transform='matrix(1%200%200%201%201367%204518%20)'%20/%3e%3c/g%3e%3c/svg%3e",HA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAGo0lEQVR4Ae2dTW8bVRSGEydOihDEUSW2ICQ2wBJERSLRDaJlwc8obBI5ShQkVl4SN5aVOEIgfgb9QioqCxcWXSLY0ILKjkWkuBVK4yQO5ygzMHbjyXzcO3PPue9Iluf73vu8z1zPxJnxxAQGEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABPQQmbTVlZWXl9cFg8GalUnk2MzPzYGNjo2erLI37rdfrtZOTk3epbbPE8Ld2u/2HjXYaF2B5efkNqvC3VNkPIhXuT05Ofj03N/d5o9F4FpmP0RECxOdCr9e7TuFfo0Uz4WKavkevT7e3t38P55l4NypAEP7PVLGLYyrXpd7g42az+XTMcq9nr6+vv9Tv928RhMUxIHbpQLpEvcHDMctTz66k3iJmg+DIHxc+b7lIDbzNDY3ZjZeLgvBvM6MYABepF/gmZnnqRcZ6AP7Mp8o9SliD+9QTXEVPcEorEv5CEn5TU1OvtVqtx0nWPW8dYz0An/CdV1hk+QJ6glMaacPnrQ4PD9+KsMw1akwAPttPWRPvJcgSPjPOwHpsNMYE4Es9KqU/tqSzF3grQdbwCeNBwPpsoinnGhOAr/P5Ui9l+by6dxLkCH+CzrO+MnnuZEwATpKv8+mty+MpB28kyBM+Me3Oz89/kZJt7OrGrgLCUtbW1l48Ojq6QdOXw3lJ36kH+Ym2vdrpdJ4k3UbSegGbm1Tn6B/JEjWB2VSr1Ssmj34u2LgAvFNIwBSGBxfD5xpaEYB3DAmYwungavhcO2sC8M4hwX8MnOr2OZtwsCoAF+KzBC4f+YUJ4KsEEsLnbKz3AKFpPvUEUsIvVAAuzAcJJIVfuADaJZAWfikCaJVAYvilCaBNAqnhlyqAFgkkh1+6ANIlkB6+EwJIlUBD+M4IIE0CLeE7JYAUCTSF75wArkugLXwnBXBVAo3hOyuAaxJoDd9pAVyRQHP4zgtQtgTawxchQFkS+BC+GAGKlsCX8EUJUJQEPoUvTgDbEvgWvkgBbEngY/hiBTAtga/hixbAlASzs7PHdDuas/+3z+20ORT2X8G2GpHzZsv7Qb0SPZljpA0qnnIiXgAOJejCM92QOhJqoklbN2omKtzwSioEYCZFSaApfOamRoAiJNAWvjoBbEqgMXyVAtiQQGv4agUwKYHm8FULYEIC7eEzI6MPieIdOjjkOtHd39/Ptb2DPIaqpLZxef68GyXEvYDmB1epFMBU+KEImiVQJ4Dp8LVLoEoAW+FrlkCNALbD1yqBCgGKCl+jBOIvA/nrYDpL/57CSf34VdqGvw4OvxIO8z33nR7Y/D79aMMtLvvclR1fQbQAfOTTD098R4xTf5/PZ/b8qyXT09Mf0fY/ZshpgX644c7S0tLLGbZ1ZhOxHwF5uv3Rv/AF+8r0/wTSLxFFCmAy/PBQ9FUCcQLYCN9nCUQJYDN8XyUQI0AR4fsogQgBigzfNwmcF6CM8H2SwGkBygzfFwmcFcCF8H2QwEkBXApfuwTOCeBi+JolcEoAl8PXKoEzAkgIX6METgggKXxtEpQugMTwNUlQqgCSw9ciQWkCaAhfgwSlCKApfOkSFC6AxvAlS1CoAJrDlypBYQL4EL5ECQoRwKfwpUlgXQAfw5ckgVUBfA5figTWBED4oQL5HmFn+74DKwIg/P/DD8cCJs7dfGJcAIQfRv78u4sSGL03sNFoXKAbNe9Q0zPdqFmtVq80m82nz6PTMWdzc/Mfuh/xE2pN1htSbzJjkzSMCtDr9a5T5RYzVFDFg5eTtJsF55tSad3UEjDbvb29L5OUk3QdYx8B9Xq9RoX+Ta+ZpIUH63kTfpRLjqecHxwfH7/S6XSeRPeXddxYD0Bnq+9QJRB+wiRy9ASz9GwCZm1kMCbAYDBI+9nk5ZEfTS2rBBlYR4sdGjcmAHVLvw7tOX7C+/BDPFkkoJPlNKzDos58NybAzs7On/TolHtnljI8E+EP85hIKcHdVqv1eGQXmSeNCcA1qFQq1+htN6Y2XT4D5gbHrOPloogE3RgAu9TTfhazPPUiowK02+2HdDJ4iV4/jNTkgHqHdq1W+xDhj5CJTDIbZkSztuh1EFnEo3cp/Pfo7P/RyPxck8YuA0drsbq6+ipV+G2av09H/QMEP0oofpofPhWc7b9AB88vW1tbf8VvgaUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg8C9yNG0zv/zA5QAAAABJRU5ErkJggg==",go=""+new URL("no-discussion.CTT65aaO.png",import.meta.url).href,vo={class:"content flexflex"},mo=["href"],po=["src"],fo=["href"],ho=["href"],Co={class:"mj-total flexacenter"},ko={class:"value"},Eo=["href"],wo={class:"mj-header flexacenter"},Bo={class:"label flexacenter"},bo={class:"label-title"},xo={key:0,class:"info-list flexflex"},yo={class:"info-item flexacenter"},Qo={class:"info-value flex1 ellipsis"},Ro={class:"info-item flexacenter"},So={class:"info-value flex1 ellipsis"},Uo={class:"info-item flexacenter"},Lo={class:"info-value flex1 ellipsis"},Oo={key:1,class:"thread-text ellipsis flexflex"},Io={key:0,class:"ask-label"},To={class:"flex1 ellipsis"},Do={key:2,class:"vote-list"},Mo={class:"vote-item"},Ho=["onClick","href"],jo={class:"mj-header flexacenter"},zo=["src"],Yo={class:"user-name"},Fo={class:"time"},Po={class:"info-list flexflex"},Go={key:0,class:"info-item flexacenter"},No={class:"info-value flex1 ellipsis"},Jo={key:1,class:"info-item flexacenter"},Ko={class:"info-value flex1 ellipsis"},Vo={key:2,class:"info-item flexacenter"},qo={class:"info-value flex1 ellipsis"},Wo={class:"header"},Xo={class:"titletitle"},Zo={class:"mj-header flexacenter"},_o={class:"mj-header-left flexacenter"},$o=["src"],en={key:0,class:"avatar-box flexflex"},tn={class:"user-name"},An={class:"time"},sn=["href"],ln={class:"details-box"},on={class:"details-item"},nn={class:"details-list"},an={class:"details-list-item flexacenter"},rn=["innerHTML"],cn={class:"unlock-mask flexflex",style:{width:"693px"}},dn={class:"unlock-text flexacenter"},un={class:"respond-list"},gn=["innerHTML","onClick"],vn={class:"details-item"},mn={class:"details-list"},pn={key:0,class:"details-list-item flexacenter"},fn=["href"],hn={key:1,class:"details-list-item flexacenter"},Cn={class:"details-value flex1"},kn={key:2,class:"details-list-item flexacenter"},En={class:"details-value flex1"},wn={class:"details-item"},Bn={class:"details-list"},bn={class:"details-list-item flexacenter"},xn={key:0,class:"details-value date"},yn={key:0,class:"edit-comment flexcenter"},Qn={class:"box"},Rn={class:"input-box"},Sn={class:"top flexflex"},Un={key:0,class:"picture-box"},Ln={class:"picture"},On=["src"],In={class:"bottom flexacenter"},Tn={class:"operate flexacenter"},Dn={class:"emoji-box"},Mn=["onClick"],Hn={class:"btn-list flexacenter"},jn={class:"comment-title flexacenter"},zn={class:"value"},Yn={class:"input-box"},Fn={class:"top flexflex"},Pn=["src"],Gn={key:0,class:"picture-box"},Nn={class:"picture"},Jn=["src"],Kn={class:"bottom flexacenter"},Vn={class:"operate flexacenter"},qn={class:"emoji-box"},Wn=["onClick"],Xn={key:1,class:"empty-box"},Zn={class:"comment-list"},_n=["src"],$n={key:0,class:"avatar-box flexflex"},e0=["onClick"],t0=["onClick"],A0={class:"comment-content flex1"},s0={class:"comment-header flexacenter"},l0={class:"comment-header-left flexacenter"},o0=["onClick"],n0={class:"comments-time"},i0={key:0,class:"comments-identity"},a0={key:1,class:"comments-title",src:zA},r0={class:"comment-header-right flexacenter"},c0={class:"menu-box flexacenter"},d0={class:"operate-box"},u0=["onClick"],g0=["onClick"],v0=["onClick"],m0=["onClick"],p0=["onClick"],f0={key:0,class:"like-icon",src:Dt},h0={key:1,class:"like-icon",src:YA},C0={class:"like-quantity"},k0=["onClick","innerHTML"],E0=["src"],w0={key:2,class:"input-box"},B0={class:"top flexflex"},b0=["src"],x0=["onUpdate:modelValue","onPaste"],y0={key:0,class:"picture-box"},Q0={class:"picture"},R0=["onClick"],S0=["src"],U0={class:"bottom flexacenter"},L0={class:"operate flexacenter"},O0=["onClick"],I0={class:"emoji-box"},T0=["onClick"],D0=["onChange"],M0=["onClick"],H0={key:3,class:"child-comments"},j0=["src"],z0={key:0,class:"avatar-box flexflex"},Y0=["onClick"],F0=["onClick"],P0={class:"comment-content flex1"},G0={class:"comment-header flexacenter"},N0={class:"comment-header-left flexacenter"},J0=["onClick"],K0={class:"comments-time"},V0={key:0,class:"comments-identity"},q0={key:1,class:"comments-title",src:zA},W0={class:"comment-header-right flexacenter"},X0={class:"menu-box flexacenter"},Z0={class:"operate-box"},_0=["onClick"],$0=["onClick"],ei=["onClick"],ti=["onClick"],Ai=["onClick"],si={key:0,class:"like-icon",src:Dt},li={key:1,class:"like-icon",src:YA},oi={class:"like-quantity"},ni=["onClick"],ii={key:0,class:"comments-reply"},ai=["src"],ri={key:2,class:"input-box"},ci={class:"top flexflex"},di=["placeholder","onUpdate:modelValue","onPaste"],ui={key:0,class:"picture-box"},gi={class:"picture"},vi=["onClick"],mi=["src"],pi={class:"bottom flexacenter"},fi={class:"operate flexacenter"},hi=["onClick"],Ci={class:"emoji-box"},ki=["onClick"],Ei=["onChange"],wi=["onClick"],Bi=["onClick"],bi={class:""},xi={key:0,class:"comment-end"},yi={class:"floor-content flexacenter"},Qi=["src"],Ri={class:"floor-left flexacenter"},Si={key:0,class:"item flexacenter",style:{cursor:"auto"}},Ui={key:0,class:"icon h16",src:Dt},Li={key:1,class:"icon h16",src:oo},Oi={key:0,class:"icon h16",src:io},Ii={key:1,class:"icon h16",src:ao},Ti={class:"transmit-box flexflex"},Di={class:"transmit-left transmit-web"},Mi={class:"transmit-content"},Hi={class:"transmit-headline"},ji={class:"transmit-url"},zi={class:"transmit-right transmit-mini"},Yi={class:"transmit-content flexcenter"},Fi=["src"],Pi={key:0,class:"pop-masking flexcenter"},Gi={key:0,class:"slit-pop-box",style:{"border-radius":"11px"}},Ni={class:"slit-box"},Ji={class:"slit-head",style:{flex:"1","flex-direction":"column","align-items":"flex-start"}},Ki={class:"slit-head-title flexflex",style:{width:"100%","justify-content":"space-between"}},Vi={class:"in-all"},qi={class:"coin-quantity flexacenter"},Wi=["onClick"],Xi={class:"message-box"},Zi={class:"operation"},_i={key:1,class:"no-jituobi-pop-box"},$i={class:"no-jituobi-head flexacenter"},e2={style:{"margin-top":"10px"}},t2=["href"],A2={class:"strategy-btn greenBj flexcenter"},s2={key:2,class:"respond-pop-mask"},l2={class:"respond-pop"},o2={key:0,class:"respond-pop-no"},n2={class:"respond-pop-title"},i2={class:"respond-pop-amount"},a2={class:"respond-list"},r2=["innerHTML","onClick"],c2={class:"respond-content flex1"},d2={class:"respond-total"},u2=["onClick"],g2=["src"],v2={class:"detail-image flexcenter"},m2=["src"],p2={class:"dialog-footer"},jA=20*1024*1024,f2={__name:"[id]",async setup(S){const h=sl();let y=h.params.id,b=Ce("userInfo"),k=Ce("isNeedLogin");const m=Ce("goLogin");il({script:[{src:"https://app.gter.net/bottom?tpl=header&menukey=mj"},{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]});let R=r(null),j=r(null);ot(()=>{window.addEventListener("scroll",zt),at(),Qt(()=>{new ResizeObserver(e=>{for(const i of e)j.value=i.contentRect.height}).observe(R.value)}),q()}),r(!1),ll(()=>h.path,(A,e)=>{if(typeof window<"u"&&h.path&&(window._hmt&&window._hmt.push(["_trackPageview",h.fullPath]),window._czc)){let i=window.location,a=i.pathname+i.hash;window._czc.push(["_trackPageview",a,"/"]),window._czc.push(["_setAutoPageview",!1])}});let F=0;const q=()=>{const A=document.querySelector("section.index-footer");if(!A){F++,setTimeout(()=>q(),200);return}F!=5&&(A.style.display="none")},z=()=>{y=h.params.id,g.value={},ue.value="",C.value=0,W.value=!0,ke.value=0,it.value=0,se.value=[],rt.value=0,Le.value=null,Oe.value={},Pe.value=0,le.value=1,f.value=[],Ie=!1,I=""};let B=r(!1);const P=A=>{B.value=A};let N=r(!1),g=r({}),ue=r(""),C=r(0),W=r(!0),ke=r(0),it=r(0),Ue=r(!1);const at=()=>{Ue.value||(Ue.value=!0,ys({uniqid:y}).then(A=>{if(A.code!=200){x.error(A.message),setTimeout(()=>Qs("/index.html",!1),1e3);return}let e=A.data;I=e.token,g.value=e.info,Oe.value=e.seo,C.value=e.iscollection||0,W.value=e.isdisplay,ke.value=e.islike,it.value=e.ismyself,ue.value=e.share.qrcode,se.value.length==0?Fe():Mt(),JSON.stringify(me.value)=="{}"&&ZA(),Ue.value=!1,Ht(),os()}))},Mt=()=>{let A=[...se.value];A.forEach((e,i)=>{e.uniqid==y&&(Le.value=i)}),Le.value==null&&(A.unshift({avatar:g.value.avatar,interviewtime:Ft(g.value.interviewtime),profession:g.value.profession,project:g.value.project,releasetime:g.value.releasetime,subject:g.value.subject,uniqid:y,username:g.value.nickname}),se.value=A,Le.value=0)};let se=r([]),rt=r(0),Ye=r(1),ct=!1,Le=r(null);const Fe=()=>{ct||Ye.value==0||!I||(ct=!0,Rs({token:I,page:Ye.value}).then(A=>{if(A.code!=200)return;let e=A.data;se.value=se.value.concat(e.data),rt.value=e.count,se.value.length>=e.count?Ye.value=0:Ye.value++,Mt()}).finally(()=>{ct=!1}))};let Oe=r({}),Pe=r(0),ge=r(0),le=r(1),f=r([]),Ie=!1,I="",Ge=r(!1);const Ht=()=>{le.value==0||Ie||Ue.value||(Ie=!0,le.value!=1&&Fe(),Ss({page:le.value,childlimit:1,limit:10,token:I}).then(A=>{if(A.code!=200)return;let e=A.data;Pe.value=e.count,e.count==0?Ge.value=!0:Ge.value=!1,f.value=f.value.concat(e.data),ge.value=e.comments,f.value.length==e.count?le.value=0:le.value++}).finally(()=>Ie=!1))},FA=(A,e)=>{let i={...f.value[A]};const a=i.id;let u=i.childPage??1;Gs({childlimit:1,limit:10,page:u,parentid:a,token:I}).then(p=>{if(p.code!=200)return;let L=p.data;const D=i.child.concat(L.data).filter((ye,Qe,re)=>re.findIndex(_e=>_e.id==ye.id)==Qe);i.child=D,i.childnum=L.count,i.child.length==L.count?u=0:u++,i.childPage=u,f.value[A]=i})},jt=(A,e)=>{if(k.value){m();return}const i=[...f.value];let a="";e!=null?a=i[A].child[e].token:a=i[A].token,Ps({token:a}).then(u=>{if(u.code!=200)return;let p=u.data;e!=null?(i[A].child[e].islike=p.status,i[A].child[e].likenum=p.likenum):(i[A].islike=p.status,i[A].likenum=p.likenum),x.success(u.message)})};let PA=r(0);const zt=()=>{const A=document.documentElement.scrollTop||document.body.scrollTop;PA.value=A;const e=document.documentElement.scrollHeight,i=document.documentElement.clientHeight;if(A+i>=e-40){Ht();const a=document.querySelector(".content .left .mj-list");a.scrollHeight>a.clientHeight||a.scrollWidth>a.clientWidth||Fe()}},Ne=(A,e)=>{if(k.value){m();return}X(),e==null?f.value[A].childState=!0:f.value[A].child[e].childState=!0},X=()=>{Yt.value="",f.value.forEach(A=>{A.childState=!1,A.commentInput="",A.child&&A.child.length!=0&&A.child.forEach(e=>{e.childState=!1,e.commentInput=""})})};let ve=r(""),Yt=r("");const dt=(A,e,i)=>{if(k.value){m();return}const a=[...f.value];let u=null,p={};i!=null?(u=a[e].child[i].id,p=f.value[e].child[i].picture||{}):e!=null?(u=a[e].id,p=f.value[e].picture||{}):p=ie.value,Ds({content:A,token:I,parentid:u,image:p?{aid:p.aid,url:p.url}:null}).then(L=>{if(L.code!=200){x.error(L.message);return}let K=L.data;if(W.value=!0,i!=null){let D={id:K.commentid,content:A,isauthor:1,islike:0,likenum:0,reply:{nickname:a[e].child[i].nickname},...K,image:p};a[e].child.unshift(D),a[e].childnum++}else{let D={id:K.commentid,content:A,isauthor:1,islike:0,likenum:0,...K,child:[],image:p};e!=null?(a[e].child.unshift(D),a[e].childnum++):(a.unshift(D),Pe.value++)}ge.value++,f.value=a,ve.value="",Yt.value="",Ge.value=!1,X(),ie.value={},x({message:L.message,type:"success"}),W.value||(W.value=!0)})},Ft=A=>{const e=new Date(A*1e3),i=e.getFullYear(),a=(e.getMonth()+1).toString().padStart(2,"0"),u=e.getDate().toString().padStart(2,"0");return`${i}-${a}-${u}`};ol(()=>window.removeEventListener("scroll",zt));const Pt=()=>{if(!(typeof window>"u"))return window.location.href};let Je=A=>{navigator.clipboard?Je=()=>{navigator.clipboard.writeText(A),x({message:"复制成功",type:"success"})}:Je=()=>{var e=document.createElement("input");e.value=A,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),x({message:"复制成功",type:"success"})},Je()};const Gt=()=>{if(ke.value){x.error("不可取消点赞");return}if(k.value){m();return}Is({token:I}).then(A=>{if(A.code!=200)return;let e=A.data;g.value.likenum=e.count,ke.value=e.status,W.value=!0,x.success(A.message)})};let Nt=r(null);const GA=()=>{if(k.value){m();return}Nt.value.count={},Ns({token:I}).then(A=>{if(A.code!=200){x.error(A.message);return}let e=A.data;g.value.favnum=e.count,C.value=e.status,x.success(A.message)})},Jt=nl(),NA=A=>{var e;A!=((e=h==null?void 0:h.params)==null?void 0:e.id)&&(Jt.push(`/details/${A}`),y=A,g.value.message="",g.value.subject="",g.value.profession="",ue.value="",C.value=0,W.value=!0,ke.value=0,it.value=0,Pe.value=0,le.value=1,f.value=[],Ie=!1,I="",Qt(()=>at()),JA(A),window.scrollTo({top:0,behavior:"smooth"}))},JA=A=>{typeof window>"u"||window.history.pushState({},"",`${window.location.origin}/details/${A}`)};let ut=r(!1),Kt=r("");const Vt=A=>{if(k.value){m();return}Kt.value=A,ut.value=!0};G("reportAlertShow",ut),G("clearAllData",z),G("getDetails",at);const KA=Re(()=>!0),gt=A=>{if(A&&typeof messagePrivateItem=="function"){messagePrivateItem({uin:A});return}else qt(`https://bbs.gter.net/home.php?mod=space&showmsg=1&uid=${A}`)},Ke=A=>{qt(`https://bbs.gter.net/home.php?mod=space&uid=${A}`)},qt=A=>{const e=document.createElement("a");e.href=A,e.target="_blank",e.click()},VA=A=>{const e=A.target;e.scrollHeight-e.scrollTop>=e.clientHeight+40||Fe()},Wt=r(null),qA=()=>{const A=Wt.value;A&&window.scrollTo({top:A.offsetTop-85||0,behavior:"smooth"})},Xt=(A,e)=>{e!=null?f.value[A].child[e].popoverState=!0:f.value[A].popoverState=!0};let J=r(!1),Te=r({}),me=r({});r(0);let WA=r({}),oe=r(null);r(null);let XA=r(0),pe=r(""),vt=!1;const ZA=()=>{Us({token:I}).then(A=>{if(A.code!=200)return;let e=A.data;me.value=e.config,Te.value=e.mybalance,WA.value=e.ranklist,XA.value=e.defaultcoinnum})},_A=()=>{if(k.value){m();return}J.value=!0},$A=A=>{oe.value=A},es=()=>{vt||(vt=!0,Ms({token:I,coinnum:oe.value,message:pe.value}).then(A=>{if(A.code!=200){x.error(A.message);return}let e=A.data;if(g.value.coins=g.value.coins+e.coinnum,Te.value=Te.value-e.coinnum,oe.value=null,J.value=!1,x.success(A.message),e.comment){const i=window.userInfoWin||{};ge.value=e.comment.count;let a={avatar:i.avatar,child:[],childnum:0,content:pe.value,id:parseInt(e.comment.commentid),...e.comment,islike:0,likenum:0,nickname:i.nickname||"匿名用户",parentid:0,reply:[],timestamp:ts()};f.value.unshift(a)}pe.value="",Zt.value=[]}).finally(()=>vt=!1))};let Zt=r([]),_t=r(!1);const ts=()=>{let A=new Date,e=A.getFullYear()+"-",i=(A.getMonth()+1<10?"0"+(A.getMonth()+1):A.getMonth()+1)+"-",a=(A.getDate()<10?"0"+A.getDate():A.getDate())+" ",u=(A.getHours()<10?"0"+A.getHours():A.getHours())+":",p=A.getMinutes()<10?"0"+A.getMinutes():A.getMinutes();return""+e+i+a+u+p};G("coinrankingState",_t),G("openCoinOperation",_A);const As=()=>Ys({token:I}),ss=()=>{k.value&&m()};G("unbookmarkSamePage",()=>{C.value=0,g.value.favnum--});let ls={offer:"Offer",vote:"投票",mj:"面经",thread:"帖子",ask:"回答"};r(!1),r(null);let ne=r([]),mt=r({}),Ve=r({});G("riposteoptions",Ve);const os=()=>{Ls({token:I}).then(A=>{if(A.code!=200)return;let e=A.data;mt.value=e.count||{},ne.value=e.list||[],Ve.value=e.options||[],ne.value.length<=3&&eA()})};let $t=r([]);G("randomEmojis",$t);const eA=()=>{let A=ne.value,e=[];A.forEach(p=>{e.push(p.item)});let i=[];for(const p in Ve.value[0].data)p!="c150"&&i.push(p);const a=[];e.includes("c150")||a.push("c150"),i=i.filter(p=>!e.includes(p));let u=[];for(;u.length<7;){let p=Math.floor(Math.random()*i.length);u.indexOf(p)===-1&&(u.push(p),a.push(i[p]))}$t.value=a},pt=A=>`&#x${A};`;G("jointriposte",pt);let Ee=!1;G("selectEomji",A=>{if(k.value){m();return}Ee||(Ee=!0,yt({token:I,item:A}).then(e=>{if(e.code!=200){x.error(e.message);return}let i=e.data;ft(i)}).finally(()=>{Ee=!1}))});const tA=(A,e)=>{if(k.value){m();return}let i=ne.value;const a=i.findIndex(u=>u.item==A);a!=-1&&i[a].selected||Ee||(Ee=!0,yt({token:I,item:A}).then(u=>{if(u.code!=200){x.error(u.message);return}e&&rs();let p=u.data;ht.value=!1,ft(p)}).finally(()=>{Ee=!1}))};G("selectEomjiPop",tA);const ft=A=>{let e=ne.value,i=!0;e.forEach((u,p)=>{u.item==A.item&&(i=!1,u.selected?u.num--:u.num++,u.selected=!u.selected)}),i&&e.push({item:A.item,num:1,selected:!0});let a=[];e.forEach(u=>{u.num>0&&a.push(u)}),a.length<3&&eA(),mt.value=A.count,ne.value=a,W.value||(W.value=!0)};let AA=r(!1),De=r({});const sA=()=>{AA.value=!1},ns=A=>{let e=De.value[A];yt({token:I,item:e.item}).then(i=>{if(i.code!=200){x.error(i.message);return}let a=i.data;ft(a),e.selected?e.user=e.user.filter(p=>p.uin!=a.uin):e.user.push(a);let u=ne.value;e.user.length==0?(u=u.filter(p=>p.item!=A),delete De.value[A]):(e.selected=!e.selected,De.value[A]=e),ne.value=u})};let ht=r(!1);const is=A=>{ht.value=A},as=r(null),rs=()=>{const i=as.value.getBoundingClientRect().top+window.scrollY-60;window.scrollTo({top:i,behavior:"smooth"})};let ie=r({}),Ct=r(!1),kt=r(!1);const qe=["😀","😁","😆","😅","😂","😉","😍","🥰","😋","😜","🤪","😎","🤩","🥳","😔","🙁","😭","😡","😳","🤗","🤔","🤭","🤫","😯","😵","🙄","🥴","🤢","🤑","🤠","👌","✌️","🤟","🤘","🤙","👍","👎","✊","👏","🤝","🙏","💪","❤️","💔","🌹","🥀","🎉","🎁","🧧","🌙","⭐","🌍","💌","📬","🚗","🚕","🚲","🛵","🚀","🚁","⛵","🚢","🍎","🍐","🍊","🍉","🍓","🍑","🍔","🍟","🍕","🥪","🍜","🍡","🍨","🍦","🎂","🍰","🍭","🍿","🍩","🧃","🍹"],Et=(A,e)=>{if(k.value){m();return}e!=null?f.value[A].child[e].emojiState=!0:A!=null?f.value[A].emojiState=!0:(Me(),X(),Ct.value=!0),kt.value=!0},Me=(A,e)=>{f.value.forEach(i=>{i.emojiState=!1,i.child&&i.child.length!=0&&i.child.forEach(a=>{a.emojiState=!1})}),Ct.value=!1,kt.value=!1,he.value=!1},wt=(A,e,i)=>{Me(),i!=null?(f.value[e].child[i].commentInput||(f.value[e].child[i].commentInput=""),f.value[e].child[i].commentInput+=A):e!=null?(f.value[e].commentInput||(f.value[e].commentInput=""),f.value[e].commentInput+=A):ve.value+=A},We=A=>{A.target.style.height="auto",A.target.style.height=`${A.target.scrollHeight}px`},Xe=(A,e,i)=>{const a=A.clipboardData.items;for(let u=0;u<a.length;u++){const p=a[u];if(p.type.startsWith("image/")){A.preventDefault();const L=p.getAsFile();if(L.size>jA){x({message:"文件大小不能超过 20MB",type:"error"});return}const K=new FileReader;K.onload=D=>{const ye=D.target.result;lA(ye).then(Qe=>{const re={base64:ye,...Qe};be.value?Z.value=re:i!=null?f.value[e].child[i].picture=re:e!=null?f.value[e].picture=re:ie.value=re,x.success("上传成功")})},K.readAsDataURL(L)}}},Ze=(A,e,i)=>{Me();const a=A.target.files[0];if(!a)return;if(a.size>jA){x({message:"文件大小不能超过 20MB",type:"error"});return}const u=new FileReader;u.onload=p=>{const L=p.target.result;lA(L).then(K=>{const D={base64:L,...K};be.value?Z.value=D:i!=null?f.value[e].child[i].picture=D:e!=null?f.value[e].picture=D:ie.value=D,x({message:"上传成功",type:"success"})})},u.readAsDataURL(a)},Bt=(A,e)=>{e!=null?f.value[A].child[e].picture={}:A!=null?f.value[A].picture={}:ie.value={}},lA=A=>new Promise((e,i)=>{Hs({data:A}).then(a=>{if(a.code!=200){x({message:a.message||"上传失败",type:"error"});return}let u=a.data;e(u)}).catch(a=>{console.log("err",a)})});let fe=r("");const we=A=>{if(A.target.tagName==="IMG"){var e=A.target.getAttribute("src");fe.value=e,window.addEventListener("keydown",oA)}},oA=A=>{A.key==="Escape"&&(fe.value="",window.removeEventListener("keydown",oA))};let Be=r([]);ot(()=>{setTimeout(()=>{Be.value=["mj.hide","comment.edit","comment.delete"]},1e3)});let Ae=r(!1);const cs=()=>Ae.value=!0,ds=()=>{Js({token:I}).then(A=>{Ae.value=!1,x.success(A.message||"隐藏成功"),Jt.replace("/index.html")})},nA=(A,e,i)=>{Fs({token:A}).then(a=>{if(a.code!=200){x.error(a.message);return}i>=0?(f.value[e].child.splice(i,1),f.value[e].childnum-=1,console.log("childnum",f.value[e])):(ge.value-=f.value[e].childnum,f.value.splice(e,1)),ge.value-=1})},ae=()=>{k.value&&m()};let be=r(!1),xe="",Z=r({}),_=r(""),he=r(!1);const bt=r(null),iA=(A,e,i)=>{const a=JSON.parse(JSON.stringify(f.value));let u={};i!=null?u=a[e].child[i]:u=a[e],console.log(A,e,i,u),xe=u.token||"",_.value=u.content||"",Z.value=u.image||{},be.value=!0,Qt(()=>{bt.value.style.height=`${bt.value.scrollHeight}px`})},us=()=>{Z.value={},xe="",_.value="",be.value=!1},gs=(A,e)=>{if(k.value){m();return}he.value=!0},vs=A=>{Me(),_.value+=A},ms=()=>{if(k.value){m();return}const A=Z.value;Ts({content:_.value,token:xe,image:A?{aid:A.aid,url:A.url}:null}).then(e=>{if(e.code!=200){x.error(e.message);return}f.value.forEach(i=>{i.token==xe&&(i.content=_.value,i.image=A),i.child&&i.child.forEach(a=>{a.token==xe&&(a.content=_.value,a.image=A)})}),Z.value={},xe="",be.value=!1,he.value=!1,x.success(e.message)})},ps=()=>he.value=!1,fs=()=>{he.value=!1,ae()},hs=()=>Z.value={};return(A,e)=>{var aA,rA,cA,dA,uA,gA,vA,mA,pA,fA,hA,CA,kA,EA,wA,BA;const i=js,a=zs,u=Os,p=qs,L=xl,K=Ws,D=Ql,ye=jl,Qe=Zs,re=_l,_e=_s,Cs=Vs,ks=Ks;return o(),n(U,null,[T(u,null,{default:O(()=>[T(i,null,{default:O(()=>[w(d(`${l(Oe).title||"面经"} - 寄托天下出国留学网`),1)]),_:1}),T(a,{name:"keyword",content:l(Oe).keyword},null,8,["content"]),T(a,{name:"description",content:l(Oe).description},null,8,["content"])]),_:1}),t("div",null,[T(p,{ref_key:"topHeadRef",ref:Nt},null,512),t("div",vo,[t("div",{class:"left",style:IA({height:l(j)+"px"})},[t("div",{class:"school-box flexcenter",style:IA({"pointer-events":(aA=l(g).school)!=null&&aA.url?"auto":"none"})},[t("a",{class:"school-box-icon",href:(rA=l(g).school)==null?void 0:rA.url,target:"_blank"},[(cA=l(g).school)!=null&&cA.image?(o(),n("img",{key:0,class:"school-icon",src:(dA=l(g).school)==null?void 0:dA.image},null,8,po)):v("",!0)],8,mo),t("a",{class:"school-name",href:(uA=l(g).school)==null?void 0:uA.url,target:"_blank"},d((gA=l(g).school)==null?void 0:gA.name),9,fo),t("a",{class:"school-en-name",href:(vA=l(g).school)==null?void 0:vA.url,target:"_blank"},d((mA=l(g).school)==null?void 0:mA.enname),9,ho)],4),t("div",Co,[e[43]||(e[43]=w(" 该校共有 ")),t("div",ko,d(l(rt)),1),e[44]||(e[44]=w(" 个面经 "))]),t("div",{class:"mj-list",onScroll:VA},[(o(!0),n(U,null,Y(l(se),(s,E)=>(o(),n(U,{key:E},[s.type?(o(),n("a",{key:0,class:"mj-item flexflex recommend",href:s==null?void 0:s.url,target:"_blank"},[t("div",wo,[t("div",Bo,[e[45]||(e[45]=t("div",{class:"label-text flexcenter"},"荐",-1)),t("div",bo,d(l(ls)[s.type||"offer"]),1)]),t("h1",null,d(s.title),1)]),s.type=="offer"?(o(),n("div",xo,[t("div",yo,[e[46]||(e[46]=t("div",{class:"info-name"},"专业",-1)),t("div",Qo,d(s.professional),1)]),t("div",Ro,[e[47]||(e[47]=t("div",{class:"info-name"},"学位",-1)),t("div",So,d(s.degree),1)]),t("div",Uo,[e[48]||(e[48]=t("div",{class:"info-name"},"结果",-1)),t("div",Lo,d(s.apply_results),1)])])):v("",!0),s.type=="thread"||s.type=="ask"?(o(),n("div",Oo,[s.type=="ask"?(o(),n("div",Io,"回答:")):v("",!0),t("div",To,d(s.message),1)])):v("",!0),s.type=="vote"?(o(),n("div",Do,[(o(!0),n(U,null,Y(s.option.slice(0,2),(M,ce)=>(o(),n("div",{class:"vote-item",key:ce},d(("numberToEnclosed"in A?A.numberToEnclosed:l(OA))(ce))+" "+d(M),1))),128)),t("div",Mo,d(("numberToEnclosed"in A?A.numberToEnclosed:l(OA))(3))+" …",1)])):v("",!0)],8,Eo)):(o(),n("a",{key:1,class:te(["mj-item flexflex",{pitch:l(Le)==E}]),onClick:$(M=>NA(s.uniqid),["stop","prevent"]),href:`./details/${s.uniqid}`},[t("div",jo,[t("img",{class:"mj-avatar",src:s.avatar},null,8,zo),t("div",Yo,d(s.username||"匿名用户"),1),t("div",Fo,d(("handleDate"in A?A.handleDate:l(et))(s.releasetime))+"发布",1)]),t("div",Po,[s.profession?(o(),n("div",Go,[e[49]||(e[49]=t("div",{class:"info-name"},"专业",-1)),t("div",No,d(s.profession),1)])):v("",!0),s.project?(o(),n("div",Jo,[e[50]||(e[50]=t("div",{class:"info-name"},"项目",-1)),t("div",Ko,d(s.project),1)])):v("",!0),s.interviewtime?(o(),n("div",Vo,[e[51]||(e[51]=t("div",{class:"info-name"},"面试",-1)),t("div",qo,d(s.interviewtime),1)])):v("",!0)])],10,Ho))],64))),128))],32)],4),Se((o(),n("div",{class:"right flex1",ref_key:"contentRightRef",ref:R},[t("div",Wo,[t("div",Xo,d(l(g).subject),1),t("div",Zo,[t("div",_o,[T(L,{placement:"bottom-start",width:140,trigger:"click","popper-class":"avatar-box-popper","show-arrow":!1},{reference:O(()=>[t("img",{class:"mj-avatar",src:l(g).avatar},null,8,$o)]),default:O(()=>[l(g).uin?(o(),n("div",en,[t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:e[0]||(e[0]=$(s=>gt(l(g).uin),["prevent"]))},e[52]||(e[52]=[t("img",{class:"avatar-icon",src:St},null,-1),w(" 发送信息 ")])),t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:e[1]||(e[1]=$(s=>Ke(l(g).uin),["prevent"]))},e[53]||(e[53]=[t("img",{class:"avatar-icon",src:Ut},null,-1),w(" TA的主页 ")]))])):v("",!0)]),_:1}),t("div",tn,d(l(g).nickname||"匿名用户"),1),t("div",An,d(("handleDate"in A?A.handleDate:l(et))(l(g).releasetime))+"发布",1),l(Be).includes("mj.hide")?(o(),n("div",{key:0,class:"hide flexacenter",onClick:cs},e[54]||(e[54]=[t("img",{class:"icon",src:$l},null,-1),w(" 隐藏 ")]))):v("",!0)]),t("a",{class:"mj-header-right flexacenter",target:"_blank",href:l(g).threadurl},e[55]||(e[55]=[t("img",{class:"original-icon",src:eo},null,-1),w(" 论坛原帖 ")]),8,sn)])]),t("div",ln,[t("div",on,[e[59]||(e[59]=t("div",{class:"details-top"},"面试过程及内容",-1)),t("div",nn,[t("div",an,[l(g).message?(o(),n("div",{key:0,class:te(["details-value describe",{"unlock-unlock":!l(W)}])},[t("div",{class:"text",innerHTML:l(g).message},null,8,rn),t("div",cn,[t("div",{class:"unlock-text-box flexcenter",onClick:Gt},[e[58]||(e[58]=t("div",{class:"unlock-text"},"作者设置了浏览限制",-1)),t("div",dn,[t("div",{class:"emphasis",onClick:e[2]||(e[2]=s=>ss())},"“评论/点赞”"),e[56]||(e[56]=w(" 后即可查看完整内容 "))]),l(ht)?(o(),n(U,{key:0},[t("div",{class:"respond-list-mask",onClick:e[3]||(e[3]=$(s=>is(!1),["stop"]))}),t("div",{class:"respond-list-box",onClick:e[4]||(e[4]=$(()=>{},["stop"]))},[e[57]||(e[57]=t("div",{class:"respond-list-title"},"选择你的回应:",-1)),t("div",un,[(o(!0),n(U,null,Y(l(Ve),s=>(o(),n(U,{key:s},[(o(!0),n(U,null,Y(s.data,(E,M)=>(o(),n("div",{class:"respond-item",key:M,innerHTML:pt(M),onClick:$(ce=>tA(M,!0),["stop"])},null,8,gn))),128))],64))),128))])])],64)):v("",!0)])])],2)):v("",!0)])])]),t("div",vn,[e[63]||(e[63]=t("div",{class:"details-top"},"申请信息",-1)),t("div",mn,[l(g).school?(o(),n("div",pn,[e[60]||(e[60]=t("div",{class:"details-name"},"学校",-1)),t("a",{class:"details-value flex1",target:"_blank",href:(pA=l(g).school)==null?void 0:pA.url},d((fA=l(g).school)==null?void 0:fA.name),9,fn)])):v("",!0),l(g).profession?(o(),n("div",hn,[e[61]||(e[61]=t("div",{class:"details-name"},"专业",-1)),t("div",Cn,d(l(g).profession),1)])):v("",!0),l(g).project?(o(),n("div",kn,[e[62]||(e[62]=t("div",{class:"details-name"},"项目",-1)),t("div",En,d(l(g).project),1)])):v("",!0)])]),t("div",wn,[e[65]||(e[65]=t("div",{class:"details-top"},"面试时间",-1)),t("div",Bn,[t("div",bn,[e[64]||(e[64]=t("div",{class:"details-name"},"日期",-1)),l(g).interviewtime?(o(),n("div",xn,d(Ft(l(g).interviewtime)),1)):v("",!0)])])])]),v("",!0),l(kt)?(o(),n("div",{key:1,class:"emoji-box-mask",onClick:e[5]||(e[5]=s=>Me())})):v("",!0),t("div",{class:"comment-box",ref_key:"commentBoxRef",ref:Wt},[l(be)?(o(),n("div",yn,[t("div",Qn,[e[72]||(e[72]=t("div",{class:"text"},"编辑评论",-1)),t("div",Rn,[t("div",Sn,[Se(t("textarea",{ref_key:"editInputRef",ref:bt,class:"input-textarea flex1",maxlength:"500","onUpdate:modelValue":e[6]||(e[6]=s=>H(_)?_.value=s:_=s),onFocus:ae,onInput:We,onPaste:Xe,placeholder:"说说你的想法或疑问…"},null,544),[[je,l(_)]])]),l(Z).url?(o(),n("div",Un,[t("div",Ln,[t("img",{class:"close",onClick:e[7]||(e[7]=s=>hs()),src:tt}),t("img",{class:"img",onClick:we,src:l(Z).base64||l(Z).url},null,8,On)])])):v("",!0),t("div",In,[t("div",Tn,[t("div",{class:te(["item",{pitch:l(he)}])},[t("img",{class:"icon",src:At,onClick:e[8]||(e[8]=s=>gs()),alt:""}),l(he)?(o(),n("div",{key:0,class:"emoji-edit-box-mask",onClick:e[9]||(e[9]=s=>ps())})):v("",!0),t("div",Dn,[(o(),n(U,null,Y(qe,s=>t("div",{class:"emoji-icon",key:s,onClick:E=>vs(s)},d(s),9,Mn)),64))])],2),t("div",{class:"item flexacenter",onClick:e[11]||(e[11]=s=>fs())},[t("input",{class:"file",type:"file",onChange:e[10]||(e[10]=s=>Ze(s)),accept:".png, .jpg, .jpeg"},null,32),e[70]||(e[70]=t("img",{class:"icon",style:{"border-radius":"0"},src:st,alt:""},null,-1)),e[71]||(e[71]=t("span",{class:"file-hint"},"最多可上传1张图片,支持在输入框中直接粘贴图片。",-1))])])])]),t("div",Hn,[t("div",{class:"btn",onClick:e[12]||(e[12]=s=>us())},"取消"),t("div",{class:"btn send",onClick:e[13]||(e[13]=s=>ms())},"发送")])])])):v("",!0),t("div",jn,[e[73]||(e[73]=w(" 讨论 ")),t("div",zn,d(l(ge)||""),1)]),t("div",Yn,[t("div",Fn,[l(b).avatar?(o(),n("img",{key:0,class:"avatar",src:l(b).avatar},null,8,Pn)):v("",!0),Se(t("textarea",{class:"input-textarea flex1",maxlength:"500","onUpdate:modelValue":e[14]||(e[14]=s=>H(ve)?ve.value=s:ve=s),onFocus:ae,onInput:We,onPaste:Xe,placeholder:"说说你的想法或疑问…"},null,544),[[je,l(ve)]])]),l(ie).url?(o(),n("div",Gn,[t("div",Nn,[t("img",{class:"close",onClick:e[15]||(e[15]=s=>Bt()),src:tt}),t("img",{class:"img",onClick:we,src:l(ie).base64||l(ie).url},null,8,Jn)])])):v("",!0),t("div",Kn,[t("div",Vn,[t("div",{class:te(["item",{pitch:l(Ct)}])},[t("img",{class:"icon",src:At,onClick:e[16]||(e[16]=s=>Et()),alt:""}),t("div",qn,[(o(),n(U,null,Y(qe,s=>t("div",{class:"emoji-icon",key:s,onClick:E=>wt(s)},d(s),9,Wn)),64))])],2),t("div",{class:"item flexacenter",onClick:e[18]||(e[18]=s=>ae())},[t("input",{class:"file",type:"file",onChange:e[17]||(e[17]=s=>Ze(s)),accept:".png, .jpg, .jpeg"},null,32),e[74]||(e[74]=t("img",{class:"icon",style:{"border-radius":"0"},src:st,alt:""},null,-1)),e[75]||(e[75]=t("span",{class:"file-hint"},"最多可上传1张图片,支持在输入框中直接粘贴图片。",-1))])]),t("div",{class:"btn",onClick:e[19]||(e[19]=s=>dt(l(ve)))},"发送")])]),l(Ge)?(o(),n("div",Xn,[T(K,{hint:"说说你的观点吧"})])):(o(),n(U,{key:2},[t("div",Zn,[(o(!0),n(U,null,Y(l(f),(s,E)=>{var M,ce,xt,bA,xA;return o(),n("div",{class:"comment-item flexflex",key:s.id},[T(L,{placement:"bottom-start",width:140,trigger:"click","popper-class":"avatar-box-popper","show-arrow":!1,visible:s.popoverState,"onUpdate:visible":c=>s.popoverState=c},{reference:O(()=>[t("img",{class:"comment-avatar",src:s.avatar},null,8,_n)]),default:O(()=>[s.uin?(o(),n("div",$n,[t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:$(c=>gt(s.uin),["prevent"])},e[76]||(e[76]=[t("img",{class:"avatar-icon",src:St},null,-1),w(" 发送信息 ")]),8,e0),t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:$(c=>Ke(s.uin),["prevent"])},e[77]||(e[77]=[t("img",{class:"avatar-icon",src:Ut},null,-1),w(" TA的主页 ")]),8,t0)])):v("",!0)]),_:2},1032,["visible","onUpdate:visible"]),t("div",A0,[t("div",s0,[t("div",l0,[t("div",{class:"comments-username",onClick:c=>Xt(E)},d(s.nickname),9,o0),t("div",n0,d(("handleDate"in A?A.handleDate:l(et))(s.timestamp)),1),s.isauthor?(o(),n("div",i0,"作者")):v("",!0),s.groupid==14?(o(),n("img",a0)):v("",!0)]),t("div",r0,[t("div",c0,[e[78]||(e[78]=t("img",{class:"menu-icon",src:DA},null,-1)),t("div",d0,[t("div",{class:"item flexcenter",onClick:c=>Vt(s.token)},"举报",8,u0),l(Be).includes("comment.edit")?(o(),n("div",{key:0,class:"item flexcenter",onClick:c=>iA(s.token,E)},"编辑",8,g0)):v("",!0),l(Be).includes("comment.delete")?(o(),n("div",{key:1,class:"item flexcenter",onClick:c=>nA(s.token,E)},"删除",8,v0)):v("",!0)])]),t("img",{class:"comment-icon",title:"回复",onClick:c=>s.childState?X():Ne(E),src:MA},null,8,m0),t("div",{class:"flexacenter like-box",onClick:c=>jt(E)},[s.islike==1?(o(),n("img",f0)):(o(),n("img",h0)),t("div",C0,d(s.likenum||0),1)],8,p0)])]),s.content?(o(),n("div",{key:0,class:"comment-text",onClick:c=>s.childState?X():Ne(E),innerHTML:s.content},null,8,k0)):v("",!0),(M=s.image)!=null&&M.url?(o(),n("img",{key:1,class:"comments-img",onClick:we,src:((ce=s.image)==null?void 0:ce.base64)||((xt=s.image)==null?void 0:xt.url)},null,8,E0)):v("",!0),s.childState?(o(),n("div",w0,[t("img",{class:"cross",onClick:e[20]||(e[20]=c=>X()),src:He}),t("div",B0,[l(b).avatar?(o(),n("img",{key:0,class:"avatar",src:l(b).avatar},null,8,b0)):v("",!0),Se(t("textarea",{class:"input-textarea flex1",maxlength:"500",placeholder:"说说你的想法或疑问…","onUpdate:modelValue":c=>s.commentInput=c,onFocus:ae,onInput:We,onPaste:c=>Xe(c,E)},null,40,x0),[[je,s.commentInput]])]),(bA=s.picture)!=null&&bA.url?(o(),n("div",y0,[t("div",Q0,[t("img",{class:"close",onClick:c=>Bt(E),src:tt},null,8,R0),t("img",{class:"img",onClick:we,src:((xA=s.picture)==null?void 0:xA.base64)||s.picture.url},null,8,S0)])])):v("",!0),t("div",U0,[t("div",L0,[t("div",{class:te(["item",{pitch:s.emojiState}])},[t("img",{class:"icon",src:At,onClick:c=>Et(E),alt:""},null,8,O0),t("div",I0,[(o(),n(U,null,Y(qe,c=>t("div",{class:"emoji-icon",key:c,onClick:V=>wt(c,E)},d(c),9,T0)),64))])],2),t("div",{class:"item flexacenter",onClick:e[21]||(e[21]=c=>ae())},[t("input",{class:"file",type:"file",onChange:c=>Ze(c,E),accept:".png, .jpg, .jpeg"},null,40,D0),e[79]||(e[79]=t("img",{class:"icon",style:{"border-radius":"0"},src:st,alt:""},null,-1)),e[80]||(e[80]=t("span",{class:"file-hint"},"最多可上传1张图片,支持在输入框中直接粘贴图片。",-1))])]),t("div",{class:"btn",onClick:c=>dt(s.commentInput,E)},"发送",8,M0)])])):v("",!0),s.child.length>0?(o(),n("div",H0,[(o(!0),n(U,null,Y(s.child,(c,V)=>{var yA,QA,RA,SA,UA,LA;return o(),n("div",{class:"comment-item flexflex",key:c.id},[T(L,{placement:"bottom-start",width:140,trigger:"click","popper-class":"avatar-box-popper","show-arrow":!1,visible:c.popoverState,"onUpdate:visible":Q=>c.popoverState=Q},{reference:O(()=>[t("img",{class:"comment-avatar",src:c.avatar},null,8,j0)]),default:O(()=>[c.uin?(o(),n("div",z0,[t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:$(Q=>gt(c.uin),["prevent"])},e[81]||(e[81]=[t("img",{class:"avatar-icon",src:St},null,-1),w(" 发送信息 ")]),8,Y0),t("a",{class:"avatar-item flexcenter",target:"_blank",onClick:$(Q=>Ke(c.uin),["prevent"])},e[82]||(e[82]=[t("img",{class:"avatar-icon",src:Ut},null,-1),w(" TA的主页 ")]),8,F0)])):v("",!0)]),_:2},1032,["visible","onUpdate:visible"]),t("div",P0,[t("div",G0,[t("div",N0,[t("div",{class:"comments-username",onClick:Q=>Xt(E,V)},d(c.nickname),9,J0),t("div",K0,d(("handleDate"in A?A.handleDate:l(et))(c.timestamp)),1),c.isauthor?(o(),n("div",V0,"作者")):v("",!0),c.groupid==14?(o(),n("img",q0)):v("",!0)]),t("div",W0,[t("div",X0,[e[83]||(e[83]=t("img",{class:"menu-icon",src:DA},null,-1)),t("div",Z0,[t("div",{class:"item flexcenter",onClick:Q=>Vt(c.token)},"举报",8,_0),l(Be).includes("comment.edit")?(o(),n("div",{key:0,class:"item flexcenter",onClick:Q=>iA(c.token,E,V)},"编辑",8,$0)):v("",!0),l(Be).includes("comment.delete")?(o(),n("div",{key:1,class:"item flexcenter",onClick:Q=>nA(c.token,E,V)},"删除",8,ei)):v("",!0)])]),t("img",{class:"comment-icon",title:"回复",onClick:Q=>c.childState?X():Ne(E,V),src:MA},null,8,ti),t("div",{class:"flexacenter like-box",onClick:Q=>jt(E,V)},[c.islike==1?(o(),n("img",si)):(o(),n("img",li)),t("div",oi,d(c.likenum||0),1)],8,Ai)])]),c.content?(o(),n("div",{key:0,class:"comment-text",onClick:Q=>c.childState?X():Ne(E,V)},[(yA=c==null?void 0:c.reply)!=null&&yA.nickname?(o(),n("div",ii,"@"+d((QA=c==null?void 0:c.reply)==null?void 0:QA.nickname),1)):v("",!0),w(" "+d(c.content),1)],8,ni)):v("",!0),(RA=c.image)!=null&&RA.url?(o(),n("img",{key:1,class:"comments-img",onClick:we,src:((SA=c.image)==null?void 0:SA.base64)||((UA=c.image)==null?void 0:UA.url)},null,8,ai)):v("",!0),c.childState?(o(),n("div",ri,[t("img",{class:"cross",onClick:e[22]||(e[22]=Q=>X()),src:He}),t("div",ci,[Se(t("textarea",{class:"input-textarea flex1",maxlength:"500",onFocus:ae,placeholder:"回复“"+(c.nickname||"匿名用户")+"”:","onUpdate:modelValue":Q=>c.commentInput=Q,onInput:We,onPaste:Q=>Xe(Q,E)},null,40,di),[[je,c.commentInput]])]),(LA=c.picture)!=null&&LA.url?(o(),n("div",ui,[t("div",gi,[t("img",{class:"close",onClick:Q=>Bt(E,V),src:tt},null,8,vi),t("img",{class:"img",onClick:we,src:c.picture.base64||c.picture.url},null,8,mi)])])):v("",!0),t("div",pi,[t("div",fi,[t("div",{class:te(["item",{pitch:c.emojiState}])},[t("img",{class:"icon",src:At,onClick:Q=>Et(E,V),alt:""},null,8,hi),t("div",Ci,[(o(),n(U,null,Y(qe,Q=>t("div",{class:"emoji-icon",key:Q,onClick:k2=>wt(Q,E,V)},d(Q),9,ki)),64))])],2),t("div",{class:"item flexacenter",onClick:e[23]||(e[23]=Q=>ae())},[t("input",{class:"file",type:"file",onChange:Q=>Ze(Q,E,V),accept:".png, .jpg, .jpeg"},null,40,Ei),e[84]||(e[84]=t("img",{class:"icon",style:{"border-radius":"0"},src:st,alt:""},null,-1)),e[85]||(e[85]=t("span",{class:"file-hint"},"最多可上传1张图片,支持在输入框中直接粘贴图片。",-1))])]),t("div",{class:"btn",onClick:Q=>dt(c.commentInput,E,V)},"发送",8,wi)])])):v("",!0)])])}),128))])):v("",!0),s.childnum>s.child.length?(o(),n("div",{key:4,class:"comments-also flexacenter",onClick:c=>FA(E)},[t("div",bi,"还有"+d(s.childnum-s.child.length)+"条回复",1),e[86]||(e[86]=t("img",{class:"also-icon",src:to},null,-1))],8,Bi)):v("",!0)])])}),128))]),l(le)==0&&l(f).length!=0?(o(),n("div",xi,"· End ·")):v("",!0)],64))],512)])),[[ks,l(Ue)]]),t("div",{class:"floor-area flexacenter",onClick:e[32]||(e[32]=s=>X())},[t("div",yi,[t("div",{class:"floor-right flexacenter",onMouseenter:e[25]||(e[25]=s=>P(!0)),onMouseleave:e[26]||(e[26]=s=>P(!1))},[e[88]||(e[88]=w(" 手机查看该面经 ")),e[89]||(e[89]=t("img",{class:"arrows-icon",src:Ao},null,-1)),T(L,{placement:"bottom",width:"160px",trigger:"hover",visible:l(B),"onUpdate:visible":e[24]||(e[24]=s=>H(B)?B.value=s:B=s),"popper-style":"padding: 24px;border-radius: 18px;"},{reference:O(()=>e[87]||(e[87]=[t("div",{class:"QR-code-ball flexcenter"},[t("img",{class:"",src:so})],-1)])),default:O(()=>[t("img",{class:"examine-code",src:l(ue)},null,8,Qi)]),_:1},8,["visible"])],32),t("div",Ri,[l(KA)?(o(),n("div",Si,[e[90]||(e[90]=t("img",{class:"icon h8",src:lo},null,-1)),w(" "+d(l(g).views),1)])):v("",!0),(o(),n("div",{key:1,class:"item flexacenter",onClick:Gt},[l(ke)==1?(o(),n("img",Ui)):(o(),n("img",Li)),w(" "+d(l(g).likenum||""),1)])),t("div",{class:"item flexacenter",onClick:e[27]||(e[27]=s=>qA())},[e[92]||(e[92]=t("img",{class:"icon h15",src:no},null,-1)),w(d(l(ge)),1)]),T(D,null,{default:O(()=>[t("div",{class:"item flexacenter",onClick:e[28]||(e[28]=s=>GA())},[l(C)==1?(o(),n("img",Oi)):(o(),n("img",Ii)),w(" "+d(l(g).favnum||"收藏"),1)])]),_:1}),T(D,null,{default:O(()=>[T(L,{placement:"bottom",width:"628px",trigger:"click","popper-style":"padding: 0;border-radius: 10px;",visible:l(N),"onUpdate:visible":e[31]||(e[31]=s=>H(N)?N.value=s:N=s)},{reference:O(()=>[t("div",{class:"item flexacenter",onClick:As},e[93]||(e[93]=[t("img",{class:"icon h15",src:ro},null,-1),w("转发")]))]),default:O(()=>[t("div",Ti,[t("img",{class:"cross-icon",onClick:e[29]||(e[29]=s=>H(N)?N.value=!1:N=!1),src:He}),t("div",Di,[e[94]||(e[94]=t("div",{class:"transmit-title"},"转发网页版",-1)),t("div",Mi,[t("div",Hi,d(l(g).subject),1),t("div",ji,d(Pt()),1)]),t("div",{class:"transmit-web-btn flexcenter",onClick:e[30]||(e[30]=s=>l(Je)(`${l(g).subject} + ${Pt()}`))},"复制链接")]),t("div",zi,[e[96]||(e[96]=t("div",{class:"transmit-title"},"转发小程序版",-1)),t("div",Yi,[t("img",{class:"transmit-mini-img",src:l(ue)},null,8,Fi),e[95]||(e[95]=t("div",{class:"flexcenter"},[t("img",{class:"give-sweep",src:co}),w(" 扫码转发该面经 ")],-1))])])])]),_:1},8,["visible"])]),_:1})])])])]),l(ut)?(o(),Ot(ye,{key:0,reportToken:l(Kt)},null,8,["reportToken"])):v("",!0)]),l(J)?(o(),n("div",Pi,[l(Te)>0?(o(),n("div",Gi,[e[101]||(e[101]=t("div",{class:"slit-left",style:{width:"50px"}},[t("img",{class:"slit-left-icon",src:"//app.gter.net/image/gter/offer/imgdetails/u620.png",style:{"margin-top":"-8px"}})],-1)),t("div",Ni,[t("div",Ji,[t("div",Ki,[e[99]||(e[99]=t("span",null,"投币",-1)),t("div",Vi,[e[97]||(e[97]=w(" 你共有 ")),t("span",null,d(l(Te)),1),e[98]||(e[98]=w(" 寄托币 "))])])]),t("div",qi,[(o(!0),n(U,null,Y(l(me).list,(s,E)=>(o(),n("div",{class:te(["coin-quantity-item",{"coin-pitch":l(oe)==s}]),key:E,onClick:M=>$A(s)},[w(d(s)+" ",1),t("span",null,d(l(me).unit),1)],10,Wi))),128))]),T(Qe,{class:"slit-input",modelValue:l(oe),"onUpdate:modelValue":e[33]||(e[33]=s=>H(oe)?oe.value=s:oe=s),placeholder:"自定义投币金额","show-word-limit":"false"},null,8,["modelValue"]),t("div",Xi,[e[100]||(e[100]=t("div",{class:"message-hint"},"顺便说点什么",-1)),T(Qe,{class:"slit-input",style:{"font-size":"15px"},modelValue:l(pe),"onUpdate:modelValue":e[34]||(e[34]=s=>H(pe)?pe.value=s:pe=s),placeholder:"请输入",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),t("div",Zi,[t("div",{class:"operation-item flexcenter",onClick:e[35]||(e[35]=s=>H(J)?J.value=!l(J):J=!l(J))},"取消"),t("div",{class:"operation-item flexcenter greenBj",onClick:e[36]||(e[36]=s=>es())},"确定")])])])):(o(),n("div",_i,[t("img",{class:"no-jituobi-close",onClick:e[37]||(e[37]=s=>H(J)?J.value=!l(J):J=!l(J)),src:He}),t("div",$i,[e[102]||(e[102]=t("img",{class:"bi-icon",src:"//app.gter.net/image/gter/offer/imgdetails/u620.png",style:{"margin-right":"12px"}},null,-1)),t("span",e2,d((CA=(hA=l(me))==null?void 0:hA.strategy)==null?void 0:CA.tips),1)]),t("a",{href:(EA=(kA=l(me))==null?void 0:kA.strategy)==null?void 0:EA.url,target:"_blank"},[t("div",A2,[w(d((BA=(wA=l(me))==null?void 0:wA.strategy)==null?void 0:BA.button),1),e[103]||(e[103]=t("img",{class:"strategy-icon",src:uo},null,-1))])],8,t2)]))])):v("",!0),l(_t)?(o(),Ot(re,{key:1,coinrankingList:l(Zt)},null,8,["coinrankingList"])):v("",!0),l(AA)?(o(),n("div",s2,[t("div",l2,[JSON.stringify(l(De))=="{}"?(o(),n("div",o2,[t("img",{class:"respond-title-icon",onClick:e[38]||(e[38]=s=>sA()),src:HA}),e[104]||(e[104]=t("img",{src:go,class:"respond-pop-no-icon"},null,-1)),e[105]||(e[105]=t("div",{class:"respond-pop-no-text"},"- 暂无数据 -",-1))])):(o(),n(U,{key:1},[t("div",n2,[e[106]||(e[106]=w(" 共")),t("span",i2,d(l(mt).user),1),e[107]||(e[107]=w("人回应 ")),t("img",{class:"respond-title-icon",onClick:e[39]||(e[39]=s=>sA()),src:HA})]),t("div",a2,[(o(!0),n(U,null,Y(l(De),(s,E)=>(o(),n("div",{class:"respond-item",key:E},[t("div",{class:te(["respond-code",{pitch:s.selected}]),innerHTML:pt(s.item),onClick:M=>ns(s.item)},null,10,r2),t("div",c2,[t("div",d2,d(s.user.length)+" 人作此回应",1),(o(!0),n(U,null,Y(s.user,(M,ce)=>(o(),n("div",{class:"user-item",key:ce,onClick:xt=>Ke(M.uin)},[t("img",{class:"user-avatar",src:M.avatar},null,8,g2),w(" "+d(M.nickname||M.username),1)],8,u2))),128))])]))),128))])],64))])])):v("",!0),l(fe)?(o(),n("div",{key:3,class:"detail-image-mask flexcenter",onClick:e[40]||(e[40]=s=>H(fe)?fe.value="":fe="")},[t("div",v2,[t("img",{class:"detail-img",src:l(fe)},null,8,m2)])])):v("",!0),T(Cs,{modelValue:l(Ae),"onUpdate:modelValue":e[42]||(e[42]=s=>H(Ae)?Ae.value=s:Ae=s),title:"提示",width:"500"},{footer:O(()=>[t("div",p2,[T(_e,{onClick:e[41]||(e[41]=s=>H(Ae)?Ae.value=!1:Ae=!1)},{default:O(()=>e[108]||(e[108]=[w("取 消")])),_:1}),T(_e,{type:"primary",onClick:ds},{default:O(()=>e[109]||(e[109]=[w("确 定")])),_:1})])]),default:O(()=>[e[110]||(e[110]=t("span",null,"确定隐藏该面经吗?",-1))]),_:1},8,["modelValue"])],64)}}},Q2=Tt(f2,[["__scopeId","data-v-ec58218d"]]);export{Q2 as default}; diff --git a/.output/public/_nuxt/BfpgDEj5.js b/.output/public/_nuxt/BfpgDEj5.js new file mode 100644 index 0000000..b6ef4bb --- /dev/null +++ b/.output/public/_nuxt/BfpgDEj5.js @@ -0,0 +1,15 @@ +import{an as V}from"./BnReMd0k.js";function $(x,v){for(var d=0;d<v.length;d++){const g=v[d];if(typeof g!="string"&&!Array.isArray(g)){for(const f in g)if(f!=="default"&&!(f in x)){const h=Object.getOwnPropertyDescriptor(g,f);h&&Object.defineProperty(x,f,h.get?h:{enumerable:!0,get:()=>g[f]})}}}return Object.freeze(Object.defineProperty(x,Symbol.toStringTag,{value:"Module"}))}var L={exports:{}},C={exports:{}},W={exports:{}},j=W.exports,F;function Q(){return F||(F=1,function(x){(function(v,d){x.exports?x.exports=d():v.EvEmitter=d()})(typeof window<"u"?window:j,function(){function v(){}var d=v.prototype;return d.on=function(g,f){if(!(!g||!f)){var h=this._events=this._events||{},a=h[g]=h[g]||[];return a.indexOf(f)==-1&&a.push(f),this}},d.once=function(g,f){if(!(!g||!f)){this.on(g,f);var h=this._onceEvents=this._onceEvents||{},a=h[g]=h[g]||{};return a[f]=!0,this}},d.off=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){var a=h.indexOf(f);return a!=-1&&h.splice(a,1),this}},d.emitEvent=function(g,f){var h=this._events&&this._events[g];if(!(!h||!h.length)){h=h.slice(0),f=f||[];for(var a=this._onceEvents&&this._onceEvents[g],o=0;o<h.length;o++){var s=h[o],l=a&&a[s];l&&(this.off(g,s),delete a[s]),s.apply(this,f)}return this}},d.allOff=function(){delete this._events,delete this._onceEvents},v})}(W)),W.exports}var R={exports:{}};/*! + * getSize v2.0.3 + * measure size of elements + * MIT license + */var q;function H(){return q||(q=1,function(x){(function(v,d){x.exports?x.exports=d():v.getSize=d()})(window,function(){function d(n){var E=parseFloat(n),p=n.indexOf("%")==-1&&!isNaN(E);return p&&E}function g(){}var f=typeof console>"u"?g:function(n){console.error(n)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],a=h.length;function o(){for(var n={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},E=0;E<a;E++){var p=h[E];n[p]=0}return n}function s(n){var E=getComputedStyle(n);return E||f("Style returned "+E+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),E}var l=!1,y;function u(){if(!l){l=!0;var n=document.createElement("div");n.style.width="200px",n.style.padding="1px 2px 3px 4px",n.style.borderStyle="solid",n.style.borderWidth="1px 2px 3px 4px",n.style.boxSizing="border-box";var E=document.body||document.documentElement;E.appendChild(n);var p=s(n);y=Math.round(d(p.width))==200,_.isBoxSizeOuter=y,E.removeChild(n)}}function _(n){if(u(),typeof n=="string"&&(n=document.querySelector(n)),!(!n||typeof n!="object"||!n.nodeType)){var E=s(n);if(E.display=="none")return o();var p={};p.width=n.offsetWidth,p.height=n.offsetHeight;for(var e=p.isBorderBox=E.boxSizing=="border-box",t=0;t<a;t++){var i=h[t],r=E[i],c=parseFloat(r);p[i]=isNaN(c)?0:c}var m=p.paddingLeft+p.paddingRight,z=p.paddingTop+p.paddingBottom,S=p.marginLeft+p.marginRight,T=p.marginTop+p.marginBottom,b=p.borderLeftWidth+p.borderRightWidth,I=p.borderTopWidth+p.borderBottomWidth,O=e&&y,D=d(E.width);D!==!1&&(p.width=D+(O?0:m+b));var A=d(E.height);return A!==!1&&(p.height=A+(O?0:z+I)),p.innerWidth=p.width-(m+b),p.innerHeight=p.height-(z+I),p.outerWidth=p.width+S,p.outerHeight=p.height+T,p}}return _})}(R)),R.exports}var P={exports:{}},M={exports:{}},Y;function X(){return Y||(Y=1,function(x){(function(v,d){x.exports?x.exports=d():v.matchesSelector=d()})(window,function(){var d=function(){var g=window.Element.prototype;if(g.matches)return"matches";if(g.matchesSelector)return"matchesSelector";for(var f=["webkit","moz","ms","o"],h=0;h<f.length;h++){var a=f[h],o=a+"MatchesSelector";if(g[o])return o}}();return function(f,h){return f[d](h)}})}(M)),M.exports}var k;function Z(){return k||(k=1,function(x){(function(v,d){x.exports?x.exports=d(v,X()):v.fizzyUIUtils=d(v,v.matchesSelector)})(window,function(d,g){var f={};f.extend=function(o,s){for(var l in s)o[l]=s[l];return o},f.modulo=function(o,s){return(o%s+s)%s};var h=Array.prototype.slice;f.makeArray=function(o){if(Array.isArray(o))return o;if(o==null)return[];var s=typeof o=="object"&&typeof o.length=="number";return s?h.call(o):[o]},f.removeFrom=function(o,s){var l=o.indexOf(s);l!=-1&&o.splice(l,1)},f.getParent=function(o,s){for(;o.parentNode&&o!=document.body;)if(o=o.parentNode,g(o,s))return o},f.getQueryElement=function(o){return typeof o=="string"?document.querySelector(o):o},f.handleEvent=function(o){var s="on"+o.type;this[s]&&this[s](o)},f.filterFindElements=function(o,s){o=f.makeArray(o);var l=[];return o.forEach(function(y){if(y instanceof HTMLElement){if(!s){l.push(y);return}g(y,s)&&l.push(y);for(var u=y.querySelectorAll(s),_=0;_<u.length;_++)l.push(u[_])}}),l},f.debounceMethod=function(o,s,l){l=l||100;var y=o.prototype[s],u=s+"Timeout";o.prototype[s]=function(){var _=this[u];clearTimeout(_);var n=arguments,E=this;this[u]=setTimeout(function(){y.apply(E,n),delete E[u]},l)}},f.docReady=function(o){var s=document.readyState;s=="complete"||s=="interactive"?setTimeout(o):document.addEventListener("DOMContentLoaded",o)},f.toDashed=function(o){return o.replace(/(.)([A-Z])/g,function(s,l,y){return l+"-"+y}).toLowerCase()};var a=d.console;return f.htmlInit=function(o,s){f.docReady(function(){var l=f.toDashed(s),y="data-"+l,u=document.querySelectorAll("["+y+"]"),_=document.querySelectorAll(".js-"+l),n=f.makeArray(u).concat(f.makeArray(_)),E=y+"-options",p=d.jQuery;n.forEach(function(e){var t=e.getAttribute(y)||e.getAttribute(E),i;try{i=t&&JSON.parse(t)}catch(c){a&&a.error("Error parsing "+y+" on "+e.className+": "+c);return}var r=new o(e,i);p&&p.data(e,s,r)})})},f})}(P)),P.exports}var B={exports:{}},G;function J(){return G||(G=1,function(x){(function(v,d){x.exports?x.exports=d(Q(),H()):(v.Outlayer={},v.Outlayer.Item=d(v.EvEmitter,v.getSize))})(window,function(d,g){function f(e){for(var t in e)return!1;return t=null,!0}var h=document.documentElement.style,a=typeof h.transition=="string"?"transition":"WebkitTransition",o=typeof h.transform=="string"?"transform":"WebkitTransform",s={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[a],l={transform:o,transition:a,transitionDuration:a+"Duration",transitionProperty:a+"Property",transitionDelay:a+"Delay"};function y(e,t){e&&(this.element=e,this.layout=t,this.position={x:0,y:0},this._create())}var u=y.prototype=Object.create(d.prototype);u.constructor=y,u._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},u.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.getSize=function(){this.size=g(this.element)},u.css=function(e){var t=this.element.style;for(var i in e){var r=l[i]||i;t[r]=e[i]}},u.getPosition=function(){var e=getComputedStyle(this.element),t=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),r=e[t?"left":"right"],c=e[i?"top":"bottom"],m=parseFloat(r),z=parseFloat(c),S=this.layout.size;r.indexOf("%")!=-1&&(m=m/100*S.width),c.indexOf("%")!=-1&&(z=z/100*S.height),m=isNaN(m)?0:m,z=isNaN(z)?0:z,m-=t?S.paddingLeft:S.paddingRight,z-=i?S.paddingTop:S.paddingBottom,this.position.x=m,this.position.y=z},u.layoutPosition=function(){var e=this.layout.size,t={},i=this.layout._getOption("originLeft"),r=this.layout._getOption("originTop"),c=i?"paddingLeft":"paddingRight",m=i?"left":"right",z=i?"right":"left",S=this.position.x+e[c];t[m]=this.getXValue(S),t[z]="";var T=r?"paddingTop":"paddingBottom",b=r?"top":"bottom",I=r?"bottom":"top",O=this.position.y+e[T];t[b]=this.getYValue(O),t[I]="",this.css(t),this.emitEvent("layout",[this])},u.getXValue=function(e){var t=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!t?e/this.layout.size.width*100+"%":e+"px"},u.getYValue=function(e){var t=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&t?e/this.layout.size.height*100+"%":e+"px"},u._transitionTo=function(e,t){this.getPosition();var i=this.position.x,r=this.position.y,c=e==this.position.x&&t==this.position.y;if(this.setPosition(e,t),c&&!this.isTransitioning){this.layoutPosition();return}var m=e-i,z=t-r,S={};S.transform=this.getTranslate(m,z),this.transition({to:S,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},u.getTranslate=function(e,t){var i=this.layout._getOption("originLeft"),r=this.layout._getOption("originTop");return e=i?e:-e,t=r?t:-t,"translate3d("+e+"px, "+t+"px, 0)"},u.goTo=function(e,t){this.setPosition(e,t),this.layoutPosition()},u.moveTo=u._transitionTo,u.setPosition=function(e,t){this.position.x=parseFloat(e),this.position.y=parseFloat(t)},u._nonTransition=function(e){this.css(e.to),e.isCleaning&&this._removeStyles(e.to);for(var t in e.onTransitionEnd)e.onTransitionEnd[t].call(this)},u.transition=function(e){if(!parseFloat(this.layout.options.transitionDuration)){this._nonTransition(e);return}var t=this._transn;for(var i in e.onTransitionEnd)t.onEnd[i]=e.onTransitionEnd[i];for(i in e.to)t.ingProperties[i]=!0,e.isCleaning&&(t.clean[i]=!0);e.from&&(this.css(e.from),this.element.offsetHeight),this.enableTransition(e.to),this.css(e.to),this.isTransitioning=!0};function _(e){return e.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var n="opacity,"+_(o);u.enableTransition=function(){if(!this.isTransitioning){var e=this.layout.options.transitionDuration;e=typeof e=="number"?e+"ms":e,this.css({transitionProperty:n,transitionDuration:e,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(s,this,!1)}},u.onwebkitTransitionEnd=function(e){this.ontransitionend(e)},u.onotransitionend=function(e){this.ontransitionend(e)};var E={"-webkit-transform":"transform"};u.ontransitionend=function(e){if(e.target===this.element){var t=this._transn,i=E[e.propertyName]||e.propertyName;if(delete t.ingProperties[i],f(t.ingProperties)&&this.disableTransition(),i in t.clean&&(this.element.style[e.propertyName]="",delete t.clean[i]),i in t.onEnd){var r=t.onEnd[i];r.call(this),delete t.onEnd[i]}this.emitEvent("transitionEnd",[this])}},u.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(s,this,!1),this.isTransitioning=!1},u._removeStyles=function(e){var t={};for(var i in e)t[i]="";this.css(t)};var p={transitionProperty:"",transitionDuration:"",transitionDelay:""};return u.removeTransitionStyles=function(){this.css(p)},u.stagger=function(e){e=isNaN(e)?0:e,this.staggerDelay=e+"ms"},u.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},u.remove=function(){if(!a||!parseFloat(this.layout.options.transitionDuration)){this.removeElem();return}this.once("transitionEnd",function(){this.removeElem()}),this.hide()},u.reveal=function(){delete this.isHidden,this.css({display:""});var e=this.layout.options,t={},i=this.getHideRevealTransitionEndProperty("visibleStyle");t[i]=this.onRevealTransitionEnd,this.transition({from:e.hiddenStyle,to:e.visibleStyle,isCleaning:!0,onTransitionEnd:t})},u.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},u.getHideRevealTransitionEndProperty=function(e){var t=this.layout.options[e];if(t.opacity)return"opacity";for(var i in t)return i},u.hide=function(){this.isHidden=!0,this.css({display:""});var e=this.layout.options,t={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");t[i]=this.onHideTransitionEnd,this.transition({from:e.visibleStyle,to:e.hiddenStyle,isCleaning:!0,onTransitionEnd:t})},u.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},u.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},y})}(B)),B.exports}/*! + * Outlayer v2.1.1 + * the brains and guts of a layout library + * MIT license + */var N;function K(){return N||(N=1,function(x){(function(v,d){x.exports?x.exports=d(v,Q(),H(),Z(),J()):v.Outlayer=d(v,v.EvEmitter,v.getSize,v.fizzyUIUtils,v.Outlayer.Item)})(window,function(d,g,f,h,a){var o=d.console,s=d.jQuery,l=function(){},y=0,u={};function _(t,i){var r=h.getQueryElement(t);if(!r){o&&o.error("Bad element for "+this.constructor.namespace+": "+(r||t));return}this.element=r,s&&(this.$element=s(this.element)),this.options=h.extend({},this.constructor.defaults),this.option(i);var c=++y;this.element.outlayerGUID=c,u[c]=this,this._create();var m=this._getOption("initLayout");m&&this.layout()}_.namespace="outlayer",_.Item=a,_.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var n=_.prototype;h.extend(n,g.prototype),n.option=function(t){h.extend(this.options,t)},n._getOption=function(t){var i=this.constructor.compatOptions[t];return i&&this.options[i]!==void 0?this.options[i]:this.options[t]},_.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},n._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),h.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},n.reloadItems=function(){this.items=this._itemize(this.element.children)},n._itemize=function(t){for(var i=this._filterFindItemElements(t),r=this.constructor.Item,c=[],m=0;m<i.length;m++){var z=i[m],S=new r(z,this);c.push(S)}return c},n._filterFindItemElements=function(t){return h.filterFindElements(t,this.options.itemSelector)},n.getItemElements=function(){return this.items.map(function(t){return t.element})},n.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),i=t!==void 0?t:!this._isLayoutInited;this.layoutItems(this.items,i),this._isLayoutInited=!0},n._init=n.layout,n._resetLayout=function(){this.getSize()},n.getSize=function(){this.size=f(this.element)},n._getMeasurement=function(t,i){var r=this.options[t],c;r?(typeof r=="string"?c=this.element.querySelector(r):r instanceof HTMLElement&&(c=r),this[t]=c?f(c)[i]:r):this[t]=0},n.layoutItems=function(t,i){t=this._getItemsForLayout(t),this._layoutItems(t,i),this._postLayout()},n._getItemsForLayout=function(t){return t.filter(function(i){return!i.isIgnored})},n._layoutItems=function(t,i){if(this._emitCompleteOnItems("layout",t),!(!t||!t.length)){var r=[];t.forEach(function(c){var m=this._getItemLayoutPosition(c);m.item=c,m.isInstant=i||c.isLayoutInstant,r.push(m)},this),this._processLayoutQueue(r)}},n._getItemLayoutPosition=function(){return{x:0,y:0}},n._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(i,r){this._positionItem(i.item,i.x,i.y,i.isInstant,r)},this)},n.updateStagger=function(){var t=this.options.stagger;if(t==null){this.stagger=0;return}return this.stagger=e(t),this.stagger},n._positionItem=function(t,i,r,c,m){c?t.goTo(i,r):(t.stagger(m*this.stagger),t.moveTo(i,r))},n._postLayout=function(){this.resizeContainer()},n.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var i=this._getContainerSize();i&&(this._setContainerMeasure(i.width,!0),this._setContainerMeasure(i.height,!1))}},n._getContainerSize=l,n._setContainerMeasure=function(t,i){if(t!==void 0){var r=this.size;r.isBorderBox&&(t+=i?r.paddingLeft+r.paddingRight+r.borderLeftWidth+r.borderRightWidth:r.paddingBottom+r.paddingTop+r.borderTopWidth+r.borderBottomWidth),t=Math.max(t,0),this.element.style[i?"width":"height"]=t+"px"}},n._emitCompleteOnItems=function(t,i){var r=this;function c(){r.dispatchEvent(t+"Complete",null,[i])}var m=i.length;if(!i||!m){c();return}var z=0;function S(){z++,z==m&&c()}i.forEach(function(T){T.once(t,S)})},n.dispatchEvent=function(t,i,r){var c=i?[i].concat(r):r;if(this.emitEvent(t,c),s)if(this.$element=this.$element||s(this.element),i){var m=s.Event(i);m.type=t,this.$element.trigger(m,r)}else this.$element.trigger(t,r)},n.ignore=function(t){var i=this.getItem(t);i&&(i.isIgnored=!0)},n.unignore=function(t){var i=this.getItem(t);i&&delete i.isIgnored},n.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},n.unstamp=function(t){t=this._find(t),t&&t.forEach(function(i){h.removeFrom(this.stamps,i),this.unignore(i)},this)},n._find=function(t){if(t)return typeof t=="string"&&(t=this.element.querySelectorAll(t)),t=h.makeArray(t),t},n._manageStamps=function(){!this.stamps||!this.stamps.length||(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},n._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),i=this.size;this._boundingRect={left:t.left+i.paddingLeft+i.borderLeftWidth,top:t.top+i.paddingTop+i.borderTopWidth,right:t.right-(i.paddingRight+i.borderRightWidth),bottom:t.bottom-(i.paddingBottom+i.borderBottomWidth)}},n._manageStamp=l,n._getElementOffset=function(t){var i=t.getBoundingClientRect(),r=this._boundingRect,c=f(t),m={left:i.left-r.left-c.marginLeft,top:i.top-r.top-c.marginTop,right:r.right-i.right-c.marginRight,bottom:r.bottom-i.bottom-c.marginBottom};return m},n.handleEvent=h.handleEvent,n.bindResize=function(){d.addEventListener("resize",this),this.isResizeBound=!0},n.unbindResize=function(){d.removeEventListener("resize",this),this.isResizeBound=!1},n.onresize=function(){this.resize()},h.debounceMethod(_,"onresize",100),n.resize=function(){!this.isResizeBound||!this.needsResizeLayout()||this.layout()},n.needsResizeLayout=function(){var t=f(this.element),i=this.size&&t;return i&&t.innerWidth!==this.size.innerWidth},n.addItems=function(t){var i=this._itemize(t);return i.length&&(this.items=this.items.concat(i)),i},n.appended=function(t){var i=this.addItems(t);i.length&&(this.layoutItems(i,!0),this.reveal(i))},n.prepended=function(t){var i=this._itemize(t);if(i.length){var r=this.items.slice(0);this.items=i.concat(r),this._resetLayout(),this._manageStamps(),this.layoutItems(i,!0),this.reveal(i),this.layoutItems(r)}},n.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),!(!t||!t.length)){var i=this.updateStagger();t.forEach(function(r,c){r.stagger(c*i),r.reveal()})}},n.hide=function(t){if(this._emitCompleteOnItems("hide",t),!(!t||!t.length)){var i=this.updateStagger();t.forEach(function(r,c){r.stagger(c*i),r.hide()})}},n.revealItemElements=function(t){var i=this.getItems(t);this.reveal(i)},n.hideItemElements=function(t){var i=this.getItems(t);this.hide(i)},n.getItem=function(t){for(var i=0;i<this.items.length;i++){var r=this.items[i];if(r.element==t)return r}},n.getItems=function(t){t=h.makeArray(t);var i=[];return t.forEach(function(r){var c=this.getItem(r);c&&i.push(c)},this),i},n.remove=function(t){var i=this.getItems(t);this._emitCompleteOnItems("remove",i),!(!i||!i.length)&&i.forEach(function(r){r.remove(),h.removeFrom(this.items,r)},this)},n.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(r){r.destroy()}),this.unbindResize();var i=this.element.outlayerGUID;delete u[i],delete this.element.outlayerGUID,s&&s.removeData(this.element,this.constructor.namespace)},_.data=function(t){t=h.getQueryElement(t);var i=t&&t.outlayerGUID;return i&&u[i]},_.create=function(t,i){var r=E(_);return r.defaults=h.extend({},_.defaults),h.extend(r.defaults,i),r.compatOptions=h.extend({},_.compatOptions),r.namespace=t,r.data=_.data,r.Item=E(a),h.htmlInit(r,t),s&&s.bridget&&s.bridget(t,r),r};function E(t){function i(){t.apply(this,arguments)}return i.prototype=Object.create(t.prototype),i.prototype.constructor=i,i}var p={ms:1,s:1e3};function e(t){if(typeof t=="number")return t;var i=t.match(/(^\d*\.?\d*)(\w*)/),r=i&&i[1],c=i&&i[2];if(!r.length)return 0;r=parseFloat(r);var m=p[c]||1;return r*m}return _.Item=a,_})}(C)),C.exports}/*! + * Masonry v4.2.2 + * Cascading grid layout library + * https://masonry.desandro.com + * MIT License + * by David DeSandro + */var U;function tt(){return U||(U=1,function(x){(function(v,d){x.exports?x.exports=d(K(),H()):v.Masonry=d(v.Outlayer,v.getSize)})(window,function(d,g){var f=d.create("masonry");f.compatOptions.fitWidth="isFitWidth";var h=f.prototype;return h._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var a=0;a<this.cols;a++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},h.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],o=a&&a.element;this.columnWidth=o&&g(o).outerWidth||this.containerWidth}var s=this.columnWidth+=this.gutter,l=this.containerWidth+this.gutter,y=l/s,u=s-l%s,_=u&&u<1?"round":"floor";y=Math[_](y),this.cols=Math.max(y,1)},h.getContainerWidth=function(){var a=this._getOption("fitWidth"),o=a?this.element.parentNode:this.element,s=g(o);this.containerWidth=s&&s.innerWidth},h._getItemLayoutPosition=function(a){a.getSize();var o=a.size.outerWidth%this.columnWidth,s=o&&o<1?"round":"ceil",l=Math[s](a.size.outerWidth/this.columnWidth);l=Math.min(l,this.cols);for(var y=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",u=this[y](l,a),_={x:this.columnWidth*u.col,y:u.y},n=u.y+a.size.outerHeight,E=l+u.col,p=u.col;p<E;p++)this.colYs[p]=n;return _},h._getTopColPosition=function(a){var o=this._getTopColGroup(a),s=Math.min.apply(Math,o);return{col:o.indexOf(s),y:s}},h._getTopColGroup=function(a){if(a<2)return this.colYs;for(var o=[],s=this.cols+1-a,l=0;l<s;l++)o[l]=this._getColGroupY(l,a);return o},h._getColGroupY=function(a,o){if(o<2)return this.colYs[a];var s=this.colYs.slice(a,a+o);return Math.max.apply(Math,s)},h._getHorizontalColPosition=function(a,o){var s=this.horizontalColIndex%this.cols,l=a>1&&s+a>this.cols;s=l?0:s;var y=o.size.outerWidth&&o.size.outerHeight;return this.horizontalColIndex=y?s+a:this.horizontalColIndex,{col:s,y:this._getColGroupY(s,a)}},h._manageStamp=function(a){var o=g(a),s=this._getElementOffset(a),l=this._getOption("originLeft"),y=l?s.left:s.right,u=y+o.outerWidth,_=Math.floor(y/this.columnWidth);_=Math.max(0,_);var n=Math.floor(u/this.columnWidth);n-=u%this.columnWidth?0:1,n=Math.min(this.cols-1,n);for(var E=this._getOption("originTop"),p=(E?s.top:s.bottom)+o.outerHeight,e=_;e<=n;e++)this.colYs[e]=Math.max(p,this.colYs[e])},h._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this._getOption("fitWidth")&&(a.width=this._getContainerFitWidth()),a},h._getContainerFitWidth=function(){for(var a=0,o=this.cols;--o&&this.colYs[o]===0;)a++;return(this.cols-a)*this.columnWidth-this.gutter},h.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!=this.containerWidth},f})}(L)),L.exports}var w=tt();const it=V(w),nt=$({__proto__:null,default:it},[w]);export{nt as m}; diff --git a/.output/public/_nuxt/BnReMd0k.js b/.output/public/_nuxt/BnReMd0k.js new file mode 100644 index 0000000..2c1443b --- /dev/null +++ b/.output/public/_nuxt/BnReMd0k.js @@ -0,0 +1,9 @@ +import{u as Li}from"./y8qSb7BL.js";import{aF as Di,aG as va,T as Le,aA as ga,a2 as Ye,r as le,aH as Bi,aI as Mi,aJ as wa,aK as ki,d as M,ah as ba,aL as Mn,aM as Ui,at as Zr,o as It,e as ln,C as De,E as x,S as kn,ag as Rt,F as _a,I as Je,v as k,aN as qi,$ as $i,aO as Hi,am as Ze,aP as zi,H as un,j as $,au as ji,t as G,L as Vi,x as V,D as Lt,M as Wi,a0 as et,a4 as cn,a7 as Gi,a5 as Ki,aQ as Ji,aR as Qi,aS as Xi,z as fn,A as Et,P as Sa,V as Aa,K as Ie,B as Yi,y as Ea,ac as Oa,aa as Pa,aT as Zi,J as bt,a1 as es,N as ts,W as rs,a8 as ns,aU as Ca,G as Un,aV as qn}from"./C0eoOjsX.js";function Xe(e){var t;const r=wa(e);return(t=r==null?void 0:r.$el)!=null?t:r}const pn=Ye?window:void 0;function Ot(...e){let t,r,n,o;if(Di(e[0])||Array.isArray(e[0])?([r,n,o]=e,t=pn):[t,r,n,o]=e,!t)return va;Array.isArray(r)||(r=[r]),Array.isArray(n)||(n=[n]);const a=[],i=()=>{a.forEach(c=>c()),a.length=0},s=(c,p,b,d)=>(c.addEventListener(p,b,d),()=>c.removeEventListener(p,b,d)),g=Le(()=>[Xe(t),wa(o)],([c,p])=>{i(),c&&a.push(...r.flatMap(b=>n.map(d=>s(c,b,d,p))))},{immediate:!0,flush:"post"}),f=()=>{g(),i()};return ga(f),f}let $n=!1;function Pp(e,t,r={}){const{window:n=pn,ignore:o=[],capture:a=!0,detectIframe:i=!1}=r;if(!n)return;Mi&&!$n&&($n=!0,Array.from(n.document.body.children).forEach(b=>b.addEventListener("click",va)));let s=!0;const g=b=>o.some(d=>{if(typeof d=="string")return Array.from(n.document.querySelectorAll(d)).some(l=>l===b.target||b.composedPath().includes(l));{const l=Xe(d);return l&&(b.target===l||b.composedPath().includes(l))}}),c=[Ot(n,"click",b=>{const d=Xe(e);if(!(!d||d===b.target||b.composedPath().includes(d))){if(b.detail===0&&(s=!g(b)),!s){s=!0;return}t(b)}},{passive:!0,capture:a}),Ot(n,"pointerdown",b=>{const d=Xe(e);d&&(s=!b.composedPath().includes(d)&&!g(b))},{passive:!0}),i&&Ot(n,"blur",b=>{var d;const l=Xe(e);((d=n.document.activeElement)==null?void 0:d.tagName)==="IFRAME"&&!(l!=null&&l.contains(n.document.activeElement))&&t(b)})].filter(Boolean);return()=>c.forEach(b=>b())}function os(e,t=!1){const r=le(),n=()=>r.value=!!e();return n(),Bi(n,t),r}const Hn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zn="__vueuse_ssr_handlers__";Hn[zn]=Hn[zn]||{};var jn=Object.getOwnPropertySymbols,as=Object.prototype.hasOwnProperty,is=Object.prototype.propertyIsEnumerable,ss=(e,t)=>{var r={};for(var n in e)as.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&jn)for(var n of jn(e))t.indexOf(n)<0&&is.call(e,n)&&(r[n]=e[n]);return r};function ls(e,t,r={}){const n=r,{window:o=pn}=n,a=ss(n,["window"]);let i;const s=os(()=>o&&"ResizeObserver"in o),g=()=>{i&&(i.disconnect(),i=void 0)},f=Le(()=>Xe(e),p=>{g(),s.value&&o&&p&&(i=new ResizeObserver(t),i.observe(p,a))},{immediate:!0,flush:"post"}),c=()=>{g(),f()};return ga(c),{isSupported:s,stop:c}}var Vn;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Vn||(Vn={}));var us=Object.defineProperty,Wn=Object.getOwnPropertySymbols,cs=Object.prototype.hasOwnProperty,fs=Object.prototype.propertyIsEnumerable,Gn=(e,t,r)=>t in e?us(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ps=(e,t)=>{for(var r in t||(t={}))cs.call(t,r)&&Gn(e,r,t[r]);if(Wn)for(var r of Wn(t))fs.call(t,r)&&Gn(e,r,t[r]);return e};const ds={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};ps({linear:ki},ds);class ys extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Cp(e,t){throw new ys(`[${e}] ${t}`)}function Tp(e,t){}var hs=typeof global=="object"&&global&&global.Object===Object&&global,ms=typeof self=="object"&&self&&self.Object===Object&&self,dn=hs||ms||Function("return this")(),tt=dn.Symbol,Ta=Object.prototype,vs=Ta.hasOwnProperty,gs=Ta.toString,ct=tt?tt.toStringTag:void 0;function ws(e){var t=vs.call(e,ct),r=e[ct];try{e[ct]=void 0;var n=!0}catch{}var o=gs.call(e);return n&&(t?e[ct]=r:delete e[ct]),o}var bs=Object.prototype,_s=bs.toString;function Ss(e){return _s.call(e)}var As="[object Null]",Es="[object Undefined]",Kn=tt?tt.toStringTag:void 0;function Ra(e){return e==null?e===void 0?Es:As:Kn&&Kn in Object(e)?ws(e):Ss(e)}function Os(e){return e!=null&&typeof e=="object"}var Ps="[object Symbol]";function yn(e){return typeof e=="symbol"||Os(e)&&Ra(e)==Ps}function Cs(e,t){for(var r=-1,n=e==null?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}var hn=Array.isArray,Jn=tt?tt.prototype:void 0,Qn=Jn?Jn.toString:void 0;function xa(e){if(typeof e=="string")return e;if(hn(e))return Cs(e,xa)+"";if(yn(e))return Qn?Qn.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function Fa(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Ts="[object AsyncFunction]",Rs="[object Function]",xs="[object GeneratorFunction]",Fs="[object Proxy]";function Ns(e){if(!Fa(e))return!1;var t=Ra(e);return t==Rs||t==xs||t==Ts||t==Fs}var tr=dn["__core-js_shared__"],Xn=function(){var e=/[^.]+$/.exec(tr&&tr.keys&&tr.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Is(e){return!!Xn&&Xn in e}var Ls=Function.prototype,Ds=Ls.toString;function Bs(e){if(e!=null){try{return Ds.call(e)}catch{}try{return e+""}catch{}}return""}var Ms=/[\\^$.*+?()[\]{}|]/g,ks=/^\[object .+?Constructor\]$/,Us=Function.prototype,qs=Object.prototype,$s=Us.toString,Hs=qs.hasOwnProperty,zs=RegExp("^"+$s.call(Hs).replace(Ms,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function js(e){if(!Fa(e)||Is(e))return!1;var t=Ns(e)?zs:ks;return t.test(Bs(e))}function Vs(e,t){return e==null?void 0:e[t]}function Na(e,t){var r=Vs(e,t);return js(r)?r:void 0}function Ws(e,t){return e===t||e!==e&&t!==t}var Gs=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ks=/^\w*$/;function Js(e,t){if(hn(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||yn(e)?!0:Ks.test(e)||!Gs.test(e)||t!=null&&e in Object(t)}var pt=Na(Object,"create");function Qs(){this.__data__=pt?pt(null):{},this.size=0}function Xs(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ys="__lodash_hash_undefined__",Zs=Object.prototype,el=Zs.hasOwnProperty;function tl(e){var t=this.__data__;if(pt){var r=t[e];return r===Ys?void 0:r}return el.call(t,e)?t[e]:void 0}var rl=Object.prototype,nl=rl.hasOwnProperty;function ol(e){var t=this.__data__;return pt?t[e]!==void 0:nl.call(t,e)}var al="__lodash_hash_undefined__";function il(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=pt&&t===void 0?al:t,this}function qe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}qe.prototype.clear=Qs;qe.prototype.delete=Xs;qe.prototype.get=tl;qe.prototype.has=ol;qe.prototype.set=il;function sl(){this.__data__=[],this.size=0}function Dt(e,t){for(var r=e.length;r--;)if(Ws(e[r][0],t))return r;return-1}var ll=Array.prototype,ul=ll.splice;function cl(e){var t=this.__data__,r=Dt(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():ul.call(t,r,1),--this.size,!0}function fl(e){var t=this.__data__,r=Dt(t,e);return r<0?void 0:t[r][1]}function pl(e){return Dt(this.__data__,e)>-1}function dl(e,t){var r=this.__data__,n=Dt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}function nt(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}nt.prototype.clear=sl;nt.prototype.delete=cl;nt.prototype.get=fl;nt.prototype.has=pl;nt.prototype.set=dl;var yl=Na(dn,"Map");function hl(){this.size=0,this.__data__={hash:new qe,map:new(yl||nt),string:new qe}}function ml(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Bt(e,t){var r=e.__data__;return ml(t)?r[typeof t=="string"?"string":"hash"]:r.map}function vl(e){var t=Bt(this,e).delete(e);return this.size-=t?1:0,t}function gl(e){return Bt(this,e).get(e)}function wl(e){return Bt(this,e).has(e)}function bl(e,t){var r=Bt(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}function He(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}He.prototype.clear=hl;He.prototype.delete=vl;He.prototype.get=gl;He.prototype.has=wl;He.prototype.set=bl;var _l="Expected a function";function mn(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(_l);var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(mn.Cache||He),r}mn.Cache=He;var Sl=500;function Al(e){var t=mn(e,function(n){return r.size===Sl&&r.clear(),n}),r=t.cache;return t}var El=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ol=/\\(\\)?/g,Pl=Al(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(El,function(r,n,o,a){t.push(o?a.replace(Ol,"$1"):n||r)}),t});function Cl(e){return e==null?"":xa(e)}function Tl(e,t){return hn(e)?e:Js(e,t)?[e]:Pl(Cl(e))}function Rl(e){if(typeof e=="string"||yn(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function xl(e,t){t=Tl(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Rl(t[r++])];return r&&r==n?e:void 0}function Fl(e,t,r){var n=e==null?void 0:xl(e,t);return n===void 0?r:n}function Nl(e){for(var t=-1,r=e==null?0:e.length,n={};++t<r;){var o=e[t];n[o[0]]=o[1]}return n}function Il(e){return e==null}function Rp(e){return e===void 0}const Ll=e=>{const t=Object.create(null);for(const r in e){const n=e[r];n!==void 0&&(t[r]=n)}return t},Ia=(e,t)=>(r,n)=>(Li(()=>e({...Ll(r),...n.attrs},n)),()=>{var o,a;return t?(a=(o=n.slots).default)==null?void 0:a.call(o):null}),Dl={accesskey:String,autocapitalize:String,autofocus:{type:Boolean,default:void 0},class:[String,Object,Array],contenteditable:{type:Boolean,default:void 0},contextmenu:String,dir:String,draggable:{type:Boolean,default:void 0},enterkeyhint:String,exportparts:String,hidden:{type:Boolean,default:void 0},id:String,inputmode:String,is:String,itemid:String,itemprop:String,itemref:String,itemscope:String,itemtype:String,lang:String,nonce:String,part:String,slot:String,spellcheck:{type:Boolean,default:void 0},style:[String,Object,Array],tabindex:String,title:String,translate:String},xp=M({name:"Title",inheritAttrs:!1,setup:Ia((e,{slots:t})=>{var r,n,o;return{title:((o=(n=(r=t.default)==null?void 0:r.call(t))==null?void 0:n[0])==null?void 0:o.children)||null}})}),Fp=M({name:"Meta",inheritAttrs:!1,props:{...Dl,charset:String,content:String,httpEquiv:String,name:String,body:Boolean,renderPriority:[String,Number]},setup:Ia(e=>{const t={...e};return t.httpEquiv&&(t["http-equiv"]=t.httpEquiv,delete t.httpEquiv),{meta:[t]}})}),Np=M({name:"Head",inheritAttrs:!1,setup:(e,t)=>()=>{var r,n;return(n=(r=t.slots).default)==null?void 0:n.call(r)}}),La="__epPropKey",me=e=>e,Bl=e=>ba(e)&&!!e[La],Da=(e,t)=>{if(!ba(e)||Bl(e))return e;const{values:r,required:n,default:o,type:a,validator:i}=e,g={type:a,required:!!n,validator:r||i?f=>{let c=!1,p=[];if(r&&(p=Array.from(r),Mn(e,"default")&&p.push(o),c||(c=p.includes(f))),i&&(c||(c=i(f))),!c&&p.length>0){const b=[...new Set(p)].map(d=>JSON.stringify(d)).join(", ");Ui(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${b}], got value ${JSON.stringify(f)}.`)}return c}:void 0,[La]:!0};return Mn(e,"default")&&(g.default=o),g},ot=e=>Nl(Object.entries(e).map(([t,r])=>[t,Da(r,t)])),rr="focus-trap.focus-after-trapped",nr="focus-trap.focus-after-released",Ml="focus-trap.focusout-prevented",Yn={cancelable:!0,bubbles:!1},kl={cancelable:!0,bubbles:!1},Zn="focusAfterTrapped",eo="focusAfterReleased",Ul=Symbol("elFocusTrap"),ql=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true")return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},vn=le(),Mt=le(0),gn=le(0);let _t=0;const Ba=e=>{const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const o=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||o?NodeFilter.FILTER_SKIP:n.tabIndex>=0||n===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t},to=(e,t)=>{for(const r of e)if(!$l(r,t))return r},$l=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Hl=e=>{const t=Ba(e),r=to(t,e),n=to(t.reverse(),e);return[r,n]},zl=e=>e instanceof HTMLInputElement&&"select"in e,Ne=(e,t)=>{if(e&&e.focus){const r=document.activeElement;let n=!1;Zr(e)&&!ql(e)&&!e.getAttribute("tabindex")&&(e.setAttribute("tabindex","-1"),n=!0),e.focus({preventScroll:!0}),gn.value=window.performance.now(),e!==r&&zl(e)&&t&&e.select(),Zr(e)&&n&&e.removeAttribute("tabindex")}};function ro(e,t){const r=[...e],n=e.indexOf(t);return n!==-1&&r.splice(n,1),r}const jl=()=>{let e=[];return{push:n=>{const o=e[0];o&&n!==o&&o.pause(),e=ro(e,n),e.unshift(n)},remove:n=>{var o,a;e=ro(e,n),(a=(o=e[0])==null?void 0:o.resume)==null||a.call(o)}}},Vl=(e,t=!1)=>{const r=document.activeElement;for(const n of e)if(Ne(n,t),document.activeElement!==r)return},no=jl(),Wl=()=>Mt.value>gn.value,St=()=>{vn.value="pointer",Mt.value=window.performance.now()},oo=()=>{vn.value="keyboard",Mt.value=window.performance.now()},Gl=()=>(It(()=>{_t===0&&(document.addEventListener("mousedown",St),document.addEventListener("touchstart",St),document.addEventListener("keydown",oo)),_t++}),ln(()=>{_t--,_t<=0&&(document.removeEventListener("mousedown",St),document.removeEventListener("touchstart",St),document.removeEventListener("keydown",oo))}),{focusReason:vn,lastUserFocusTimestamp:Mt,lastAutomatedFocusTimestamp:gn}),At=e=>new CustomEvent(Ml,{...kl,detail:e});var yt=(e,t)=>{const r=e.__vccOpts||e;for(const[n,o]of t)r[n]=o;return r};const wn={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"};let Qe=[];const ao=e=>{e.code===wn.esc&&Qe.forEach(t=>t(e))},Kl=e=>{It(()=>{Qe.length===0&&document.addEventListener("keydown",ao),Ye&&Qe.push(e)}),ln(()=>{Qe=Qe.filter(t=>t!==e),Qe.length===0&&Ye&&document.removeEventListener("keydown",ao)})},Jl=M({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Zn,eo,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const r=le();let n,o;const{focusReason:a}=Gl();Kl(l=>{e.trapped&&!i.paused&&t("release-requested",l)});const i={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=l=>{if(!e.loop&&!e.trapped||i.paused)return;const{code:_,altKey:u,ctrlKey:h,metaKey:m,currentTarget:S,shiftKey:A}=l,{loop:O}=e,P=_===wn.tab&&!u&&!h&&!m,E=document.activeElement;if(P&&E){const T=S,[I,R]=Hl(T);if(I&&R){if(!A&&E===R){const C=At({focusReason:a.value});t("focusout-prevented",C),C.defaultPrevented||(l.preventDefault(),O&&Ne(I,!0))}else if(A&&[I,T].includes(E)){const C=At({focusReason:a.value});t("focusout-prevented",C),C.defaultPrevented||(l.preventDefault(),O&&Ne(R,!0))}}else if(E===T){const C=At({focusReason:a.value});t("focusout-prevented",C),C.defaultPrevented||l.preventDefault()}}};_a(Ul,{focusTrapRef:r,onKeydown:s}),Le(()=>e.focusTrapEl,l=>{l&&(r.value=l)},{immediate:!0}),Le([r],([l],[_])=>{l&&(l.addEventListener("keydown",s),l.addEventListener("focusin",c),l.addEventListener("focusout",p)),_&&(_.removeEventListener("keydown",s),_.removeEventListener("focusin",c),_.removeEventListener("focusout",p))});const g=l=>{t(Zn,l)},f=l=>t(eo,l),c=l=>{const _=x(r);if(!_)return;const u=l.target,h=l.relatedTarget,m=u&&_.contains(u);e.trapped||h&&_.contains(h)||(n=h),m&&t("focusin",l),!i.paused&&e.trapped&&(m?o=u:Ne(o,!0))},p=l=>{const _=x(r);if(!(i.paused||!_))if(e.trapped){const u=l.relatedTarget;!Il(u)&&!_.contains(u)&&setTimeout(()=>{if(!i.paused&&e.trapped){const h=At({focusReason:a.value});t("focusout-prevented",h),h.defaultPrevented||Ne(o,!0)}},0)}else{const u=l.target;u&&_.contains(u)||t("focusout",l)}};async function b(){await kn();const l=x(r);if(l){no.push(i);const _=l.contains(document.activeElement)?n:document.activeElement;if(n=_,!l.contains(_)){const h=new Event(rr,Yn);l.addEventListener(rr,g),l.dispatchEvent(h),h.defaultPrevented||kn(()=>{let m=e.focusStartEl;Rt(m)||(Ne(m),document.activeElement!==m&&(m="first")),m==="first"&&Vl(Ba(l),!0),(document.activeElement===_||m==="container")&&Ne(l)})}}}function d(){const l=x(r);if(l){l.removeEventListener(rr,g);const _=new CustomEvent(nr,{...Yn,detail:{focusReason:a.value}});l.addEventListener(nr,f),l.dispatchEvent(_),!_.defaultPrevented&&(a.value=="keyboard"||!Wl()||l.contains(document.activeElement))&&Ne(n??document.body),l.removeEventListener(nr,f),no.remove(i)}}return It(()=>{e.trapped&&b(),Le(()=>e.trapped,l=>{l?b():d()})}),ln(()=>{e.trapped&&d(),r.value&&(r.value.removeEventListener("keydown",s),r.value.removeEventListener("focusin",c),r.value.removeEventListener("focusout",p),r.value=void 0)}),{onKeydown:s}}});function Ql(e,t,r,n,o,a){return De(e.$slots,"default",{handleKeydown:e.onKeydown})}var Ip=yt(Jl,[["render",Ql],["__file","focus-trap.vue"]]);const Xl=ot({to:{type:me([String,Object]),required:!0},disabled:Boolean}),Yl=M({__name:"teleport",props:Xl,setup(e){return(t,r)=>t.disabled?De(t.$slots,"default",{key:0}):(k(),Je(qi,{key:1,to:t.to},[De(t.$slots,"default")],8,["to"]))}});var Zl=yt(Yl,[["__file","teleport.vue"]]);const bn=(e,t)=>{if(e.install=r=>{for(const n of[e,...Object.values(t??{})])r.component(n.name,n)},t)for(const[r,n]of Object.entries(t))e[r]=n;return e},eu=(e,t)=>(e.install=r=>{e._context=r._context,r.config.globalProperties[t]=e},e),Lp=(e,t)=>(e.install=r=>{r.directive(t,e)},e),Dp=e=>(e.install=$i,e),Bp=bn(Zl),tu=ot({size:{type:me([Number,String])},color:{type:String}}),io=e=>Object.keys(e),Ma=(e="")=>e.split(" ").filter(t=>!!t.trim()),Mp=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},kp=(e,t)=>{!e||!t.trim()||e.classList.add(...Ma(t))},Up=(e,t)=>{!e||!t.trim()||e.classList.remove(...Ma(t))},qp=(e,t)=>{var r;if(!Ye||!e||!t)return"";let n=Hi(t);n==="float"&&(n="cssFloat");try{const o=e.style[n];if(o)return o;const a=(r=document.defaultView)==null?void 0:r.getComputedStyle(e,"");return a?a[n]:""}catch{return e.style[n]}};function en(e,t="px"){if(!e)return"";if(Ze(e)||zi(e))return`${e}${t}`;if(Rt(e))return e}const ru=M({name:"ElIcon",inheritAttrs:!1}),nu=M({...ru,props:tu,setup(e){const t=e,r=un("icon"),n=$(()=>{const{size:o,color:a}=t;return!o&&!a?{}:{fontSize:ji(o)?void 0:en(o),"--color":a}});return(o,a)=>(k(),G("i",Vi({class:x(r).b(),style:x(n)},o.$attrs),[De(o.$slots,"default")],16))}});var ou=yt(nu,[["__file","icon.vue"]]);const so=bn(ou);/*! Element Plus Icons Vue v2.3.1 */var au=M({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"})]))}}),$p=au,iu=M({name:"ArrowLeft",__name:"arrow-left",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"})]))}}),Hp=iu,su=M({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),zp=su,lu=M({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),jp=lu,uu=M({name:"Calendar",__name:"calendar",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),Vp=uu,cu=M({name:"CircleCheck",__name:"circle-check",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),V("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"})]))}}),fu=cu,pu=M({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),du=pu,yu=M({name:"CircleClose",__name:"circle-close",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),V("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),hu=yu,mu=M({name:"Clock",__name:"clock",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),V("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),V("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),Wp=mu,vu=M({name:"Close",__name:"close",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),ka=vu,gu=M({name:"DArrowLeft",__name:"d-arrow-left",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"})]))}}),Gp=gu,wu=M({name:"DArrowRight",__name:"d-arrow-right",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"})]))}}),Kp=wu,bu=M({name:"Hide",__name:"hide",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),V("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"})]))}}),Jp=bu,_u=M({name:"InfoFilled",__name:"info-filled",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Su=_u,Au=M({name:"Loading",__name:"loading",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"})]))}}),Eu=Au,Ou=M({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),Pu=Ou,Cu=M({name:"View",__name:"view",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),Qp=Cu,Tu=M({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,r)=>(k(),G("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[V("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Ru=Tu;const xu=me([String,Object,Function]),Xp={Close:ka},Fu={Close:ka},lo={success:Pu,warning:Ru,error:du,info:Su},Yp={validating:Eu,success:fu,error:hu};var Nu={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const Iu=e=>(t,r)=>Lu(t,r,x(e)),Lu=(e,t,r)=>Fl(r,e,e).replace(/\{(\w+)\}/g,(n,o)=>{var a;return`${(a=t==null?void 0:t[o])!=null?a:`{${o}}`}`}),Du=e=>{const t=$(()=>x(e).name),r=Wi(e)?e:le(e);return{lang:t,locale:r,t:Iu(e)}},Ua=Symbol("localeContextKey"),Bu=e=>{const t=e||Lt(Ua,le());return Du($(()=>t.value||Nu))},Zp="update:modelValue",ed="change",td="input",qa=Symbol(),Mu=["","default","small","large"],ku=Da({type:String,values:Mu,required:!1}),$a=Symbol("size"),rd=()=>{const e=Lt($a,{});return $(()=>x(e.size)||"")},Ha=Symbol("emptyValuesContextKey"),Uu=["",void 0,null],qu=ot({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>et(e)?!e():!e}}),nd=(e,t)=>{const r=cn()?Lt(Ha,le({})):le({}),n=$(()=>e.emptyValues||r.value.emptyValues||Uu),o=$(()=>et(e.valueOnClear)?e.valueOnClear():e.valueOnClear!==void 0?e.valueOnClear:et(r.value.valueOnClear)?r.value.valueOnClear():r.value.valueOnClear!==void 0?r.value.valueOnClear:t),a=i=>n.value.includes(i);return n.value.includes(o.value),{emptyValues:n,valueOnClear:o,isEmptyValue:a}},xt=le();function za(e,t=void 0){const r=cn()?Lt(qa,xt):xt;return e?$(()=>{var n,o;return(o=(n=r.value)==null?void 0:n[e])!=null?o:t}):r}function $u(e,t){const r=za(),n=un(e,$(()=>{var s;return((s=r.value)==null?void 0:s.namespace)||Gi})),o=Bu($(()=>{var s;return(s=r.value)==null?void 0:s.locale})),a=Ki($(()=>{var s;return((s=r.value)==null?void 0:s.zIndex)||Ji})),i=$(()=>{var s;return x(t)||((s=r.value)==null?void 0:s.size)||""});return ja($(()=>x(r)||{})),{ns:n,locale:o,zIndex:a,size:i}}const ja=(e,t,r=!1)=>{var n;const o=!!cn(),a=o?za():void 0,i=(n=void 0)!=null?n:o?_a:void 0;if(!i)return;const s=$(()=>{const g=x(e);return a!=null&&a.value?Hu(a.value,g):g});return i(qa,s),i(Ua,$(()=>s.value.locale)),i(Qi,$(()=>s.value.namespace)),i(Xi,$(()=>s.value.zIndex)),i($a,{size:$(()=>s.value.size||"")}),i(Ha,$(()=>({emptyValues:s.value.emptyValues,valueOnClear:s.value.valueOnClear}))),(r||!xt.value)&&(xt.value=s.value),s},Hu=(e,t)=>{const r=[...new Set([...io(e),...io(t)])],n={};for(const o of r)n[o]=t[o]!==void 0?t[o]:e[o];return n},od=({from:e,replacement:t,scope:r,version:n,ref:o,type:a="API"},i)=>{Le(()=>x(i),s=>{},{immediate:!0})},ad=(e=new Date)=>{e=e||null;var t=new Date(e);t=t.getTime();var r=1e3*60,n=r*60,o=n*24,a=new Date().getTime(),i=a-t,s;if(!(i<0)){var g=i/o,f=i/(n+1),c=i/r;if(g>=7){let p=new Date(t),b=p.getFullYear()+"-",d=(p.getMonth()+1<10?"0"+(p.getMonth()+1):p.getMonth()+1)+"-",l=(p.getDate()<10?"0"+p.getDate():p.getDate())+" ",_=(p.getHours()<10?"0"+p.getHours():p.getHours())+":",u=p.getMinutes()<10?"0"+p.getMinutes():p.getMinutes();s=""+b+d+l+" "+_+u}else g>=1?s=""+Math.round(g)+"天前":f>=1?s=""+Math.round(f)+"小时前":c>=1?s=""+Math.round(c)+"分钟前":s="刚刚";return s}},id=(e,t=!0)=>{if(typeof document!="object")return;let r=document.createElement("a");document.body.appendChild(r),r.setAttribute("href",e),t&&r.setAttribute("target","_blank"),r.click()},sd=e=>({1:"①",2:"②",3:"③",4:"④",5:"⑤"})[e],ld="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAGo0lEQVR4Ae2dTW8bVRSGEydOihDEUSW2ICQ2wBJERSLRDaJlwc8obBI5ShQkVl4SN5aVOEIgfgb9QioqCxcWXSLY0ILKjkWkuBVK4yQO5ygzMHbjyXzcO3PPue9Iluf73vu8z1zPxJnxxAQGEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABPQQmbTVlZWXl9cFg8GalUnk2MzPzYGNjo2erLI37rdfrtZOTk3epbbPE8Ld2u/2HjXYaF2B5efkNqvC3VNkPIhXuT05Ofj03N/d5o9F4FpmP0RECxOdCr9e7TuFfo0Uz4WKavkevT7e3t38P55l4NypAEP7PVLGLYyrXpd7g42az+XTMcq9nr6+vv9Tv928RhMUxIHbpQLpEvcHDMctTz66k3iJmg+DIHxc+b7lIDbzNDY3ZjZeLgvBvM6MYABepF/gmZnnqRcZ6AP7Mp8o9SliD+9QTXEVPcEorEv5CEn5TU1OvtVqtx0nWPW8dYz0An/CdV1hk+QJ6glMaacPnrQ4PD9+KsMw1akwAPttPWRPvJcgSPjPOwHpsNMYE4Es9KqU/tqSzF3grQdbwCeNBwPpsoinnGhOAr/P5Ui9l+by6dxLkCH+CzrO+MnnuZEwATpKv8+mty+MpB28kyBM+Me3Oz89/kZJt7OrGrgLCUtbW1l48Ojq6QdOXw3lJ36kH+Ym2vdrpdJ4k3UbSegGbm1Tn6B/JEjWB2VSr1Ssmj34u2LgAvFNIwBSGBxfD5xpaEYB3DAmYwungavhcO2sC8M4hwX8MnOr2OZtwsCoAF+KzBC4f+YUJ4KsEEsLnbKz3AKFpPvUEUsIvVAAuzAcJJIVfuADaJZAWfikCaJVAYvilCaBNAqnhlyqAFgkkh1+6ANIlkB6+EwJIlUBD+M4IIE0CLeE7JYAUCTSF75wArkugLXwnBXBVAo3hOyuAaxJoDd9pAVyRQHP4zgtQtgTawxchQFkS+BC+GAGKlsCX8EUJUJQEPoUvTgDbEvgWvkgBbEngY/hiBTAtga/hixbAlASzs7PHdDuas/+3z+20ORT2X8G2GpHzZsv7Qb0SPZljpA0qnnIiXgAOJejCM92QOhJqoklbN2omKtzwSioEYCZFSaApfOamRoAiJNAWvjoBbEqgMXyVAtiQQGv4agUwKYHm8FULYEIC7eEzI6MPieIdOjjkOtHd39/Ptb2DPIaqpLZxef68GyXEvYDmB1epFMBU+KEImiVQJ4Dp8LVLoEoAW+FrlkCNALbD1yqBCgGKCl+jBOIvA/nrYDpL/57CSf34VdqGvw4OvxIO8z33nR7Y/D79aMMtLvvclR1fQbQAfOTTD098R4xTf5/PZ/b8qyXT09Mf0fY/ZshpgX644c7S0tLLGbZ1ZhOxHwF5uv3Rv/AF+8r0/wTSLxFFCmAy/PBQ9FUCcQLYCN9nCUQJYDN8XyUQI0AR4fsogQgBigzfNwmcF6CM8H2SwGkBygzfFwmcFcCF8H2QwEkBXApfuwTOCeBi+JolcEoAl8PXKoEzAkgIX6METgggKXxtEpQugMTwNUlQqgCSw9ciQWkCaAhfgwSlCKApfOkSFC6AxvAlS1CoAJrDlypBYQL4EL5ECQoRwKfwpUlgXQAfw5ckgVUBfA5figTWBED4oQL5HmFn+74DKwIg/P/DD8cCJs7dfGJcAIQfRv78u4sSGL03sNFoXKAbNe9Q0zPdqFmtVq80m82nz6PTMWdzc/Mfuh/xE2pN1htSbzJjkzSMCtDr9a5T5RYzVFDFg5eTtJsF55tSad3UEjDbvb29L5OUk3QdYx8B9Xq9RoX+Ta+ZpIUH63kTfpRLjqecHxwfH7/S6XSeRPeXddxYD0Bnq+9QJRB+wiRy9ASz9GwCZm1kMCbAYDBI+9nk5ZEfTS2rBBlYR4sdGjcmAHVLvw7tOX7C+/BDPFkkoJPlNKzDos58NybAzs7On/TolHtnljI8E+EP85hIKcHdVqv1eGQXmSeNCcA1qFQq1+htN6Y2XT4D5gbHrOPloogE3RgAu9TTfhazPPUiowK02+2HdDJ4iV4/jNTkgHqHdq1W+xDhj5CJTDIbZkSztuh1EFnEo3cp/Pfo7P/RyPxck8YuA0drsbq6+ipV+G2av09H/QMEP0oofpofPhWc7b9AB88vW1tbf8VvgaUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg8C9yNG0zv/zA5QAAAABJRU5ErkJggg==";function Va(e,t){return function(){return e.apply(t,arguments)}}const{toString:zu}=Object.prototype,{getPrototypeOf:_n}=Object,kt=(e=>t=>{const r=zu.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ge=e=>(e=e.toLowerCase(),t=>kt(t)===e),Ut=e=>t=>typeof t===e,{isArray:at}=Array,dt=Ut("undefined");function ju(e){return e!==null&&!dt(e)&&e.constructor!==null&&!dt(e.constructor)&&ue(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Wa=ge("ArrayBuffer");function Vu(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Wa(e.buffer),t}const Wu=Ut("string"),ue=Ut("function"),Ga=Ut("number"),qt=e=>e!==null&&typeof e=="object",Gu=e=>e===!0||e===!1,Pt=e=>{if(kt(e)!=="object")return!1;const t=_n(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Ku=ge("Date"),Ju=ge("File"),Qu=ge("Blob"),Xu=ge("FileList"),Yu=e=>qt(e)&&ue(e.pipe),Zu=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ue(e.append)&&((t=kt(e))==="formdata"||t==="object"&&ue(e.toString)&&e.toString()==="[object FormData]"))},ec=ge("URLSearchParams"),[tc,rc,nc,oc]=["ReadableStream","Request","Response","Headers"].map(ge),ac=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function ht(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>"u")return;let n,o;if(typeof e!="object"&&(e=[e]),at(e))for(n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else{const a=r?Object.getOwnPropertyNames(e):Object.keys(e),i=a.length;let s;for(n=0;n<i;n++)s=a[n],t.call(null,e[s],s,e)}}function Ka(e,t){t=t.toLowerCase();const r=Object.keys(e);let n=r.length,o;for(;n-- >0;)if(o=r[n],t===o.toLowerCase())return o;return null}const ke=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Ja=e=>!dt(e)&&e!==ke;function tn(){const{caseless:e}=Ja(this)&&this||{},t={},r=(n,o)=>{const a=e&&Ka(t,o)||o;Pt(t[a])&&Pt(n)?t[a]=tn(t[a],n):Pt(n)?t[a]=tn({},n):at(n)?t[a]=n.slice():t[a]=n};for(let n=0,o=arguments.length;n<o;n++)arguments[n]&&ht(arguments[n],r);return t}const ic=(e,t,r,{allOwnKeys:n}={})=>(ht(t,(o,a)=>{r&&ue(o)?e[a]=Va(o,r):e[a]=o},{allOwnKeys:n}),e),sc=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),lc=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},uc=(e,t,r,n)=>{let o,a,i;const s={};if(t=t||{},e==null)return t;do{for(o=Object.getOwnPropertyNames(e),a=o.length;a-- >0;)i=o[a],(!n||n(i,e,t))&&!s[i]&&(t[i]=e[i],s[i]=!0);e=r!==!1&&_n(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},cc=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},fc=e=>{if(!e)return null;if(at(e))return e;let t=e.length;if(!Ga(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},pc=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&_n(Uint8Array)),dc=(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let o;for(;(o=n.next())&&!o.done;){const a=o.value;t.call(e,a[0],a[1])}},yc=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},hc=ge("HTMLFormElement"),mc=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,o){return n.toUpperCase()+o}),uo=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),vc=ge("RegExp"),Qa=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};ht(r,(o,a)=>{let i;(i=t(o,a,e))!==!1&&(n[a]=i||o)}),Object.defineProperties(e,n)},gc=e=>{Qa(e,(t,r)=>{if(ue(e)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=e[r];if(ue(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},wc=(e,t)=>{const r={},n=o=>{o.forEach(a=>{r[a]=!0})};return at(e)?n(e):n(String(e).split(t)),r},bc=()=>{},_c=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,or="abcdefghijklmnopqrstuvwxyz",co="0123456789",Xa={DIGIT:co,ALPHA:or,ALPHA_DIGIT:or+or.toUpperCase()+co},Sc=(e=16,t=Xa.ALPHA_DIGIT)=>{let r="";const{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r};function Ac(e){return!!(e&&ue(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const Ec=e=>{const t=new Array(10),r=(n,o)=>{if(qt(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[o]=n;const a=at(n)?[]:{};return ht(n,(i,s)=>{const g=r(i,o+1);!dt(g)&&(a[s]=g)}),t[o]=void 0,a}}return n};return r(e,0)},Oc=ge("AsyncFunction"),Pc=e=>e&&(qt(e)||ue(e))&&ue(e.then)&&ue(e.catch),Ya=((e,t)=>e?setImmediate:t?((r,n)=>(ke.addEventListener("message",({source:o,data:a})=>{o===ke&&a===r&&n.length&&n.shift()()},!1),o=>{n.push(o),ke.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",ue(ke.postMessage)),Cc=typeof queueMicrotask<"u"?queueMicrotask.bind(ke):typeof process<"u"&&process.nextTick||Ya,w={isArray:at,isArrayBuffer:Wa,isBuffer:ju,isFormData:Zu,isArrayBufferView:Vu,isString:Wu,isNumber:Ga,isBoolean:Gu,isObject:qt,isPlainObject:Pt,isReadableStream:tc,isRequest:rc,isResponse:nc,isHeaders:oc,isUndefined:dt,isDate:Ku,isFile:Ju,isBlob:Qu,isRegExp:vc,isFunction:ue,isStream:Yu,isURLSearchParams:ec,isTypedArray:pc,isFileList:Xu,forEach:ht,merge:tn,extend:ic,trim:ac,stripBOM:sc,inherits:lc,toFlatObject:uc,kindOf:kt,kindOfTest:ge,endsWith:cc,toArray:fc,forEachEntry:dc,matchAll:yc,isHTMLForm:hc,hasOwnProperty:uo,hasOwnProp:uo,reduceDescriptors:Qa,freezeMethods:gc,toObjectSet:wc,toCamelCase:mc,noop:bc,toFiniteNumber:_c,findKey:Ka,global:ke,isContextDefined:Ja,ALPHABET:Xa,generateString:Sc,isSpecCompliantForm:Ac,toJSONObject:Ec,isAsyncFn:Oc,isThenable:Pc,setImmediate:Ya,asap:Cc};function F(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}w.inherits(F,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:w.toJSONObject(this.config),code:this.code,status:this.status}}});const Za=F.prototype,ei={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{ei[e]={value:e}});Object.defineProperties(F,ei);Object.defineProperty(Za,"isAxiosError",{value:!0});F.from=(e,t,r,n,o,a)=>{const i=Object.create(Za);return w.toFlatObject(e,i,function(g){return g!==Error.prototype},s=>s!=="isAxiosError"),F.call(i,e.message,t,r,n,o),i.cause=e,i.name=e.name,a&&Object.assign(i,a),i};const Tc=null;function rn(e){return w.isPlainObject(e)||w.isArray(e)}function ti(e){return w.endsWith(e,"[]")?e.slice(0,-2):e}function fo(e,t,r){return e?e.concat(t).map(function(o,a){return o=ti(o),!r&&a?"["+o+"]":o}).join(r?".":""):t}function Rc(e){return w.isArray(e)&&!e.some(rn)}const xc=w.toFlatObject(w,{},null,function(t){return/^is[A-Z]/.test(t)});function $t(e,t,r){if(!w.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,r=w.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(_,u){return!w.isUndefined(u[_])});const n=r.metaTokens,o=r.visitor||c,a=r.dots,i=r.indexes,g=(r.Blob||typeof Blob<"u"&&Blob)&&w.isSpecCompliantForm(t);if(!w.isFunction(o))throw new TypeError("visitor must be a function");function f(l){if(l===null)return"";if(w.isDate(l))return l.toISOString();if(!g&&w.isBlob(l))throw new F("Blob is not supported. Use a Buffer instead.");return w.isArrayBuffer(l)||w.isTypedArray(l)?g&&typeof Blob=="function"?new Blob([l]):Buffer.from(l):l}function c(l,_,u){let h=l;if(l&&!u&&typeof l=="object"){if(w.endsWith(_,"{}"))_=n?_:_.slice(0,-2),l=JSON.stringify(l);else if(w.isArray(l)&&Rc(l)||(w.isFileList(l)||w.endsWith(_,"[]"))&&(h=w.toArray(l)))return _=ti(_),h.forEach(function(S,A){!(w.isUndefined(S)||S===null)&&t.append(i===!0?fo([_],A,a):i===null?_:_+"[]",f(S))}),!1}return rn(l)?!0:(t.append(fo(u,_,a),f(l)),!1)}const p=[],b=Object.assign(xc,{defaultVisitor:c,convertValue:f,isVisitable:rn});function d(l,_){if(!w.isUndefined(l)){if(p.indexOf(l)!==-1)throw Error("Circular reference detected in "+_.join("."));p.push(l),w.forEach(l,function(h,m){(!(w.isUndefined(h)||h===null)&&o.call(t,h,w.isString(m)?m.trim():m,_,b))===!0&&d(h,_?_.concat(m):[m])}),p.pop()}}if(!w.isObject(e))throw new TypeError("data must be an object");return d(e),t}function po(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(n){return t[n]})}function Sn(e,t){this._pairs=[],e&&$t(e,this,t)}const ri=Sn.prototype;ri.append=function(t,r){this._pairs.push([t,r])};ri.toString=function(t){const r=t?function(n){return t.call(this,n,po)}:po;return this._pairs.map(function(o){return r(o[0])+"="+r(o[1])},"").join("&")};function Fc(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ni(e,t,r){if(!t)return e;const n=r&&r.encode||Fc;w.isFunction(r)&&(r={serialize:r});const o=r&&r.serialize;let a;if(o?a=o(t,r):a=w.isURLSearchParams(t)?t.toString():new Sn(t,r).toString(n),a){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+a}return e}class yo{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){w.forEach(this.handlers,function(n){n!==null&&t(n)})}}const oi={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Nc=typeof URLSearchParams<"u"?URLSearchParams:Sn,Ic=typeof FormData<"u"?FormData:null,Lc=typeof Blob<"u"?Blob:null,Dc={isBrowser:!0,classes:{URLSearchParams:Nc,FormData:Ic,Blob:Lc},protocols:["http","https","file","blob","url","data"]},An=typeof window<"u"&&typeof document<"u",nn=typeof navigator=="object"&&navigator||void 0,Bc=An&&(!nn||["ReactNative","NativeScript","NS"].indexOf(nn.product)<0),Mc=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",kc=An&&window.location.href||"http://localhost",Uc=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:An,hasStandardBrowserEnv:Bc,hasStandardBrowserWebWorkerEnv:Mc,navigator:nn,origin:kc},Symbol.toStringTag,{value:"Module"})),re={...Uc,...Dc};function qc(e,t){return $t(e,new re.classes.URLSearchParams,Object.assign({visitor:function(r,n,o,a){return re.isNode&&w.isBuffer(r)?(this.append(n,r.toString("base64")),!1):a.defaultVisitor.apply(this,arguments)}},t))}function $c(e){return w.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function Hc(e){const t={},r=Object.keys(e);let n;const o=r.length;let a;for(n=0;n<o;n++)a=r[n],t[a]=e[a];return t}function ai(e){function t(r,n,o,a){let i=r[a++];if(i==="__proto__")return!0;const s=Number.isFinite(+i),g=a>=r.length;return i=!i&&w.isArray(o)?o.length:i,g?(w.hasOwnProp(o,i)?o[i]=[o[i],n]:o[i]=n,!s):((!o[i]||!w.isObject(o[i]))&&(o[i]=[]),t(r,n,o[i],a)&&w.isArray(o[i])&&(o[i]=Hc(o[i])),!s)}if(w.isFormData(e)&&w.isFunction(e.entries)){const r={};return w.forEachEntry(e,(n,o)=>{t($c(n),o,r,0)}),r}return null}function zc(e,t,r){if(w.isString(e))try{return(t||JSON.parse)(e),w.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}const mt={transitional:oi,adapter:["xhr","http","fetch"],transformRequest:[function(t,r){const n=r.getContentType()||"",o=n.indexOf("application/json")>-1,a=w.isObject(t);if(a&&w.isHTMLForm(t)&&(t=new FormData(t)),w.isFormData(t))return o?JSON.stringify(ai(t)):t;if(w.isArrayBuffer(t)||w.isBuffer(t)||w.isStream(t)||w.isFile(t)||w.isBlob(t)||w.isReadableStream(t))return t;if(w.isArrayBufferView(t))return t.buffer;if(w.isURLSearchParams(t))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(a){if(n.indexOf("application/x-www-form-urlencoded")>-1)return qc(t,this.formSerializer).toString();if((s=w.isFileList(t))||n.indexOf("multipart/form-data")>-1){const g=this.env&&this.env.FormData;return $t(s?{"files[]":t}:t,g&&new g,this.formSerializer)}}return a||o?(r.setContentType("application/json",!1),zc(t)):t}],transformResponse:[function(t){const r=this.transitional||mt.transitional,n=r&&r.forcedJSONParsing,o=this.responseType==="json";if(w.isResponse(t)||w.isReadableStream(t))return t;if(t&&w.isString(t)&&(n&&!this.responseType||o)){const i=!(r&&r.silentJSONParsing)&&o;try{return JSON.parse(t)}catch(s){if(i)throw s.name==="SyntaxError"?F.from(s,F.ERR_BAD_RESPONSE,this,null,this.response):s}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:re.classes.FormData,Blob:re.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};w.forEach(["delete","get","head","post","put","patch"],e=>{mt.headers[e]={}});const jc=w.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Vc=e=>{const t={};let r,n,o;return e&&e.split(` +`).forEach(function(i){o=i.indexOf(":"),r=i.substring(0,o).trim().toLowerCase(),n=i.substring(o+1).trim(),!(!r||t[r]&&jc[r])&&(r==="set-cookie"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)}),t},ho=Symbol("internals");function ft(e){return e&&String(e).trim().toLowerCase()}function Ct(e){return e===!1||e==null?e:w.isArray(e)?e.map(Ct):String(e)}function Wc(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const Gc=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function ar(e,t,r,n,o){if(w.isFunction(n))return n.call(this,t,r);if(o&&(t=r),!!w.isString(t)){if(w.isString(n))return t.indexOf(n)!==-1;if(w.isRegExp(n))return n.test(t)}}function Kc(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function Jc(e,t){const r=w.toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(o,a,i){return this[n].call(this,t,o,a,i)},configurable:!0})})}let oe=class{constructor(t){t&&this.set(t)}set(t,r,n){const o=this;function a(s,g,f){const c=ft(g);if(!c)throw new Error("header name must be a non-empty string");const p=w.findKey(o,c);(!p||o[p]===void 0||f===!0||f===void 0&&o[p]!==!1)&&(o[p||g]=Ct(s))}const i=(s,g)=>w.forEach(s,(f,c)=>a(f,c,g));if(w.isPlainObject(t)||t instanceof this.constructor)i(t,r);else if(w.isString(t)&&(t=t.trim())&&!Gc(t))i(Vc(t),r);else if(w.isHeaders(t))for(const[s,g]of t.entries())a(g,s,n);else t!=null&&a(r,t,n);return this}get(t,r){if(t=ft(t),t){const n=w.findKey(this,t);if(n){const o=this[n];if(!r)return o;if(r===!0)return Wc(o);if(w.isFunction(r))return r.call(this,o,n);if(w.isRegExp(r))return r.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,r){if(t=ft(t),t){const n=w.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||ar(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let o=!1;function a(i){if(i=ft(i),i){const s=w.findKey(n,i);s&&(!r||ar(n,n[s],s,r))&&(delete n[s],o=!0)}}return w.isArray(t)?t.forEach(a):a(t),o}clear(t){const r=Object.keys(this);let n=r.length,o=!1;for(;n--;){const a=r[n];(!t||ar(this,this[a],a,t,!0))&&(delete this[a],o=!0)}return o}normalize(t){const r=this,n={};return w.forEach(this,(o,a)=>{const i=w.findKey(n,a);if(i){r[i]=Ct(o),delete r[a];return}const s=t?Kc(a):String(a).trim();s!==a&&delete r[a],r[s]=Ct(o),n[s]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return w.forEach(this,(n,o)=>{n!=null&&n!==!1&&(r[o]=t&&w.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+": "+r).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...r){const n=new this(t);return r.forEach(o=>n.set(o)),n}static accessor(t){const n=(this[ho]=this[ho]={accessors:{}}).accessors,o=this.prototype;function a(i){const s=ft(i);n[s]||(Jc(o,i),n[s]=!0)}return w.isArray(t)?t.forEach(a):a(t),this}};oe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);w.reduceDescriptors(oe.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});w.freezeMethods(oe);function ir(e,t){const r=this||mt,n=t||r,o=oe.from(n.headers);let a=n.data;return w.forEach(e,function(s){a=s.call(r,a,o.normalize(),t?t.status:void 0)}),o.normalize(),a}function ii(e){return!!(e&&e.__CANCEL__)}function it(e,t,r){F.call(this,e??"canceled",F.ERR_CANCELED,t,r),this.name="CanceledError"}w.inherits(it,F,{__CANCEL__:!0});function si(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new F("Request failed with status code "+r.status,[F.ERR_BAD_REQUEST,F.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function Qc(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Xc(e,t){e=e||10;const r=new Array(e),n=new Array(e);let o=0,a=0,i;return t=t!==void 0?t:1e3,function(g){const f=Date.now(),c=n[a];i||(i=f),r[o]=g,n[o]=f;let p=a,b=0;for(;p!==o;)b+=r[p++],p=p%e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),f-i<t)return;const d=c&&f-c;return d?Math.round(b*1e3/d):void 0}}function Yc(e,t){let r=0,n=1e3/t,o,a;const i=(f,c=Date.now())=>{r=c,o=null,a&&(clearTimeout(a),a=null),e.apply(null,f)};return[(...f)=>{const c=Date.now(),p=c-r;p>=n?i(f,c):(o=f,a||(a=setTimeout(()=>{a=null,i(o)},n-p)))},()=>o&&i(o)]}const Ft=(e,t,r=3)=>{let n=0;const o=Xc(50,250);return Yc(a=>{const i=a.loaded,s=a.lengthComputable?a.total:void 0,g=i-n,f=o(g),c=i<=s;n=i;const p={loaded:i,total:s,progress:s?i/s:void 0,bytes:g,rate:f||void 0,estimated:f&&s&&c?(s-i)/f:void 0,event:a,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(p)},r)},mo=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},vo=e=>(...t)=>w.asap(()=>e(...t)),Zc=re.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,re.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(re.origin),re.navigator&&/(msie|trident)/i.test(re.navigator.userAgent)):()=>!0,ef=re.hasStandardBrowserEnv?{write(e,t,r,n,o,a){const i=[e+"="+encodeURIComponent(t)];w.isNumber(r)&&i.push("expires="+new Date(r).toGMTString()),w.isString(n)&&i.push("path="+n),w.isString(o)&&i.push("domain="+o),a===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function tf(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function rf(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function li(e,t){return e&&!tf(t)?rf(e,t):t}const go=e=>e instanceof oe?{...e}:e;function $e(e,t){t=t||{};const r={};function n(f,c,p,b){return w.isPlainObject(f)&&w.isPlainObject(c)?w.merge.call({caseless:b},f,c):w.isPlainObject(c)?w.merge({},c):w.isArray(c)?c.slice():c}function o(f,c,p,b){if(w.isUndefined(c)){if(!w.isUndefined(f))return n(void 0,f,p,b)}else return n(f,c,p,b)}function a(f,c){if(!w.isUndefined(c))return n(void 0,c)}function i(f,c){if(w.isUndefined(c)){if(!w.isUndefined(f))return n(void 0,f)}else return n(void 0,c)}function s(f,c,p){if(p in t)return n(f,c);if(p in e)return n(void 0,f)}const g={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:s,headers:(f,c,p)=>o(go(f),go(c),p,!0)};return w.forEach(Object.keys(Object.assign({},e,t)),function(c){const p=g[c]||o,b=p(e[c],t[c],c);w.isUndefined(b)&&p!==s||(r[c]=b)}),r}const ui=e=>{const t=$e({},e);let{data:r,withXSRFToken:n,xsrfHeaderName:o,xsrfCookieName:a,headers:i,auth:s}=t;t.headers=i=oe.from(i),t.url=ni(li(t.baseURL,t.url),e.params,e.paramsSerializer),s&&i.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):"")));let g;if(w.isFormData(r)){if(re.hasStandardBrowserEnv||re.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((g=i.getContentType())!==!1){const[f,...c]=g?g.split(";").map(p=>p.trim()).filter(Boolean):[];i.setContentType([f||"multipart/form-data",...c].join("; "))}}if(re.hasStandardBrowserEnv&&(n&&w.isFunction(n)&&(n=n(t)),n||n!==!1&&Zc(t.url))){const f=o&&a&&ef.read(a);f&&i.set(o,f)}return t},nf=typeof XMLHttpRequest<"u",of=nf&&function(e){return new Promise(function(r,n){const o=ui(e);let a=o.data;const i=oe.from(o.headers).normalize();let{responseType:s,onUploadProgress:g,onDownloadProgress:f}=o,c,p,b,d,l;function _(){d&&d(),l&&l(),o.cancelToken&&o.cancelToken.unsubscribe(c),o.signal&&o.signal.removeEventListener("abort",c)}let u=new XMLHttpRequest;u.open(o.method.toUpperCase(),o.url,!0),u.timeout=o.timeout;function h(){if(!u)return;const S=oe.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders()),O={data:!s||s==="text"||s==="json"?u.responseText:u.response,status:u.status,statusText:u.statusText,headers:S,config:e,request:u};si(function(E){r(E),_()},function(E){n(E),_()},O),u=null}"onloadend"in u?u.onloadend=h:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(h)},u.onabort=function(){u&&(n(new F("Request aborted",F.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new F("Network Error",F.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let A=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const O=o.transitional||oi;o.timeoutErrorMessage&&(A=o.timeoutErrorMessage),n(new F(A,O.clarifyTimeoutError?F.ETIMEDOUT:F.ECONNABORTED,e,u)),u=null},a===void 0&&i.setContentType(null),"setRequestHeader"in u&&w.forEach(i.toJSON(),function(A,O){u.setRequestHeader(O,A)}),w.isUndefined(o.withCredentials)||(u.withCredentials=!!o.withCredentials),s&&s!=="json"&&(u.responseType=o.responseType),f&&([b,l]=Ft(f,!0),u.addEventListener("progress",b)),g&&u.upload&&([p,d]=Ft(g),u.upload.addEventListener("progress",p),u.upload.addEventListener("loadend",d)),(o.cancelToken||o.signal)&&(c=S=>{u&&(n(!S||S.type?new it(null,e,u):S),u.abort(),u=null)},o.cancelToken&&o.cancelToken.subscribe(c),o.signal&&(o.signal.aborted?c():o.signal.addEventListener("abort",c)));const m=Qc(o.url);if(m&&re.protocols.indexOf(m)===-1){n(new F("Unsupported protocol "+m+":",F.ERR_BAD_REQUEST,e));return}u.send(a||null)})},af=(e,t)=>{const{length:r}=e=e?e.filter(Boolean):[];if(t||r){let n=new AbortController,o;const a=function(f){if(!o){o=!0,s();const c=f instanceof Error?f:this.reason;n.abort(c instanceof F?c:new it(c instanceof Error?c.message:c))}};let i=t&&setTimeout(()=>{i=null,a(new F(`timeout ${t} of ms exceeded`,F.ETIMEDOUT))},t);const s=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(a):f.removeEventListener("abort",a)}),e=null)};e.forEach(f=>f.addEventListener("abort",a));const{signal:g}=n;return g.unsubscribe=()=>w.asap(s),g}},sf=function*(e,t){let r=e.byteLength;if(r<t){yield e;return}let n=0,o;for(;n<r;)o=n+t,yield e.slice(n,o),n=o},lf=async function*(e,t){for await(const r of uf(e))yield*sf(r,t)},uf=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:r,value:n}=await t.read();if(r)break;yield n}}finally{await t.cancel()}},wo=(e,t,r,n)=>{const o=lf(e,t);let a=0,i,s=g=>{i||(i=!0,n&&n(g))};return new ReadableStream({async pull(g){try{const{done:f,value:c}=await o.next();if(f){s(),g.close();return}let p=c.byteLength;if(r){let b=a+=p;r(b)}g.enqueue(new Uint8Array(c))}catch(f){throw s(f),f}},cancel(g){return s(g),o.return()}},{highWaterMark:2})},Ht=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",ci=Ht&&typeof ReadableStream=="function",cf=Ht&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),fi=(e,...t)=>{try{return!!e(...t)}catch{return!1}},ff=ci&&fi(()=>{let e=!1;const t=new Request(re.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),bo=64*1024,on=ci&&fi(()=>w.isReadableStream(new Response("").body)),Nt={stream:on&&(e=>e.body)};Ht&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Nt[t]&&(Nt[t]=w.isFunction(e[t])?r=>r[t]():(r,n)=>{throw new F(`Response type '${t}' is not supported`,F.ERR_NOT_SUPPORT,n)})})})(new Response);const pf=async e=>{if(e==null)return 0;if(w.isBlob(e))return e.size;if(w.isSpecCompliantForm(e))return(await new Request(re.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(w.isArrayBufferView(e)||w.isArrayBuffer(e))return e.byteLength;if(w.isURLSearchParams(e)&&(e=e+""),w.isString(e))return(await cf(e)).byteLength},df=async(e,t)=>{const r=w.toFiniteNumber(e.getContentLength());return r??pf(t)},yf=Ht&&(async e=>{let{url:t,method:r,data:n,signal:o,cancelToken:a,timeout:i,onDownloadProgress:s,onUploadProgress:g,responseType:f,headers:c,withCredentials:p="same-origin",fetchOptions:b}=ui(e);f=f?(f+"").toLowerCase():"text";let d=af([o,a&&a.toAbortSignal()],i),l;const _=d&&d.unsubscribe&&(()=>{d.unsubscribe()});let u;try{if(g&&ff&&r!=="get"&&r!=="head"&&(u=await df(c,n))!==0){let O=new Request(t,{method:"POST",body:n,duplex:"half"}),P;if(w.isFormData(n)&&(P=O.headers.get("content-type"))&&c.setContentType(P),O.body){const[E,T]=mo(u,Ft(vo(g)));n=wo(O.body,bo,E,T)}}w.isString(p)||(p=p?"include":"omit");const h="credentials"in Request.prototype;l=new Request(t,{...b,signal:d,method:r.toUpperCase(),headers:c.normalize().toJSON(),body:n,duplex:"half",credentials:h?p:void 0});let m=await fetch(l);const S=on&&(f==="stream"||f==="response");if(on&&(s||S&&_)){const O={};["status","statusText","headers"].forEach(I=>{O[I]=m[I]});const P=w.toFiniteNumber(m.headers.get("content-length")),[E,T]=s&&mo(P,Ft(vo(s),!0))||[];m=new Response(wo(m.body,bo,E,()=>{T&&T(),_&&_()}),O)}f=f||"text";let A=await Nt[w.findKey(Nt,f)||"text"](m,e);return!S&&_&&_(),await new Promise((O,P)=>{si(O,P,{data:A,headers:oe.from(m.headers),status:m.status,statusText:m.statusText,config:e,request:l})})}catch(h){throw _&&_(),h&&h.name==="TypeError"&&/fetch/i.test(h.message)?Object.assign(new F("Network Error",F.ERR_NETWORK,e,l),{cause:h.cause||h}):F.from(h,h&&h.code,e,l)}}),an={http:Tc,xhr:of,fetch:yf};w.forEach(an,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const _o=e=>`- ${e}`,hf=e=>w.isFunction(e)||e===null||e===!1,pi={getAdapter:e=>{e=w.isArray(e)?e:[e];const{length:t}=e;let r,n;const o={};for(let a=0;a<t;a++){r=e[a];let i;if(n=r,!hf(r)&&(n=an[(i=String(r)).toLowerCase()],n===void 0))throw new F(`Unknown adapter '${i}'`);if(n)break;o[i||"#"+a]=n}if(!n){const a=Object.entries(o).map(([s,g])=>`adapter ${s} `+(g===!1?"is not supported by the environment":"is not available in the build"));let i=t?a.length>1?`since : +`+a.map(_o).join(` +`):" "+_o(a[0]):"as no adapter specified";throw new F("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return n},adapters:an};function sr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new it(null,e)}function So(e){return sr(e),e.headers=oe.from(e.headers),e.data=ir.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),pi.getAdapter(e.adapter||mt.adapter)(e).then(function(n){return sr(e),n.data=ir.call(e,e.transformResponse,n),n.headers=oe.from(n.headers),n},function(n){return ii(n)||(sr(e),n&&n.response&&(n.response.data=ir.call(e,e.transformResponse,n.response),n.response.headers=oe.from(n.response.headers))),Promise.reject(n)})}const di="1.7.9",zt={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{zt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Ao={};zt.transitional=function(t,r,n){function o(a,i){return"[Axios v"+di+"] Transitional option '"+a+"'"+i+(n?". "+n:"")}return(a,i,s)=>{if(t===!1)throw new F(o(i," has been removed"+(r?" in "+r:"")),F.ERR_DEPRECATED);return r&&!Ao[i]&&(Ao[i]=!0,console.warn(o(i," has been deprecated since v"+r+" and will be removed in the near future"))),t?t(a,i,s):!0}};zt.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function mf(e,t,r){if(typeof e!="object")throw new F("options must be an object",F.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let o=n.length;for(;o-- >0;){const a=n[o],i=t[a];if(i){const s=e[a],g=s===void 0||i(s,a,e);if(g!==!0)throw new F("option "+a+" must be "+g,F.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new F("Unknown option "+a,F.ERR_BAD_OPTION)}}const Tt={assertOptions:mf,validators:zt},we=Tt.validators;let Ue=class{constructor(t){this.defaults=t,this.interceptors={request:new yo,response:new yo}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const a=o.stack?o.stack.replace(/^.+\n/,""):"";try{n.stack?a&&!String(n.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(n.stack+=` +`+a):n.stack=a}catch{}}throw n}}_request(t,r){typeof t=="string"?(r=r||{},r.url=t):r=t||{},r=$e(this.defaults,r);const{transitional:n,paramsSerializer:o,headers:a}=r;n!==void 0&&Tt.assertOptions(n,{silentJSONParsing:we.transitional(we.boolean),forcedJSONParsing:we.transitional(we.boolean),clarifyTimeoutError:we.transitional(we.boolean)},!1),o!=null&&(w.isFunction(o)?r.paramsSerializer={serialize:o}:Tt.assertOptions(o,{encode:we.function,serialize:we.function},!0)),Tt.assertOptions(r,{baseUrl:we.spelling("baseURL"),withXsrfToken:we.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let i=a&&w.merge(a.common,a[r.method]);a&&w.forEach(["delete","get","head","post","put","patch","common"],l=>{delete a[l]}),r.headers=oe.concat(i,a);const s=[];let g=!0;this.interceptors.request.forEach(function(_){typeof _.runWhen=="function"&&_.runWhen(r)===!1||(g=g&&_.synchronous,s.unshift(_.fulfilled,_.rejected))});const f=[];this.interceptors.response.forEach(function(_){f.push(_.fulfilled,_.rejected)});let c,p=0,b;if(!g){const l=[So.bind(this),void 0];for(l.unshift.apply(l,s),l.push.apply(l,f),b=l.length,c=Promise.resolve(r);p<b;)c=c.then(l[p++],l[p++]);return c}b=s.length;let d=r;for(p=0;p<b;){const l=s[p++],_=s[p++];try{d=l(d)}catch(u){_.call(this,u);break}}try{c=So.call(this,d)}catch(l){return Promise.reject(l)}for(p=0,b=f.length;p<b;)c=c.then(f[p++],f[p++]);return c}getUri(t){t=$e(this.defaults,t);const r=li(t.baseURL,t.url);return ni(r,t.params,t.paramsSerializer)}};w.forEach(["delete","get","head","options"],function(t){Ue.prototype[t]=function(r,n){return this.request($e(n||{},{method:t,url:r,data:(n||{}).data}))}});w.forEach(["post","put","patch"],function(t){function r(n){return function(a,i,s){return this.request($e(s||{},{method:t,headers:n?{"Content-Type":"multipart/form-data"}:{},url:a,data:i}))}}Ue.prototype[t]=r(),Ue.prototype[t+"Form"]=r(!0)});let vf=class yi{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(a){r=a});const n=this;this.promise.then(o=>{if(!n._listeners)return;let a=n._listeners.length;for(;a-- >0;)n._listeners[a](o);n._listeners=null}),this.promise.then=o=>{let a;const i=new Promise(s=>{n.subscribe(s),a=s}).then(o);return i.cancel=function(){n.unsubscribe(a)},i},t(function(a,i,s){n.reason||(n.reason=new it(a,i,s),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new yi(function(o){t=o}),cancel:t}}};function gf(e){return function(r){return e.apply(null,r)}}function wf(e){return w.isObject(e)&&e.isAxiosError===!0}const sn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(sn).forEach(([e,t])=>{sn[t]=e});function hi(e){const t=new Ue(e),r=Va(Ue.prototype.request,t);return w.extend(r,Ue.prototype,t,{allOwnKeys:!0}),w.extend(r,t,null,{allOwnKeys:!0}),r.create=function(o){return hi($e(e,o))},r}const H=hi(mt);H.Axios=Ue;H.CanceledError=it;H.CancelToken=vf;H.isCancel=ii;H.VERSION=di;H.toFormData=$t;H.AxiosError=F;H.Cancel=H.CanceledError;H.all=function(t){return Promise.all(t)};H.spread=gf;H.isAxiosError=wf;H.mergeConfig=$e;H.AxiosHeaders=oe;H.formToJSON=e=>ai(w.isHTMLForm(e)?new FormData(e):e);H.getAdapter=pi.getAdapter;H.HttpStatusCode=sn;H.default=H;const{Axios:fd,AxiosError:pd,CanceledError:dd,isCancel:yd,CancelToken:hd,VERSION:md,all:vd,Cancel:gd,isAxiosError:wd,spread:bd,toFormData:_d,AxiosHeaders:Sd,HttpStatusCode:Ad,formToJSON:Ed,getAdapter:Od,mergeConfig:Pd}=H;var Eo=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function bf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function _f(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}),r}var lr,Oo;function st(){return Oo||(Oo=1,lr=TypeError),lr}const Sf={},Af=Object.freeze(Object.defineProperty({__proto__:null,default:Sf},Symbol.toStringTag,{value:"Module"})),Ef=_f(Af);var ur,Po;function jt(){if(Po)return ur;Po=1;var e=typeof Map=="function"&&Map.prototype,t=Object.getOwnPropertyDescriptor&&e?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,r=e&&t&&typeof t.get=="function"?t.get:null,n=e&&Map.prototype.forEach,o=typeof Set=="function"&&Set.prototype,a=Object.getOwnPropertyDescriptor&&o?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,i=o&&a&&typeof a.get=="function"?a.get:null,s=o&&Set.prototype.forEach,g=typeof WeakMap=="function"&&WeakMap.prototype,f=g?WeakMap.prototype.has:null,c=typeof WeakSet=="function"&&WeakSet.prototype,p=c?WeakSet.prototype.has:null,b=typeof WeakRef=="function"&&WeakRef.prototype,d=b?WeakRef.prototype.deref:null,l=Boolean.prototype.valueOf,_=Object.prototype.toString,u=Function.prototype.toString,h=String.prototype.match,m=String.prototype.slice,S=String.prototype.replace,A=String.prototype.toUpperCase,O=String.prototype.toLowerCase,P=RegExp.prototype.test,E=Array.prototype.concat,T=Array.prototype.join,I=Array.prototype.slice,R=Math.floor,q=typeof BigInt=="function"?BigInt.prototype.valueOf:null,C=Object.getOwnPropertySymbols,Y=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,J=typeof Symbol=="function"&&typeof Symbol.iterator=="object",ae=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===J||!0)?Symbol.toStringTag:null,be=Object.prototype.propertyIsEnumerable,_e=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(y){return y.__proto__}:null);function L(y,v){if(y===1/0||y===-1/0||y!==y||y&&y>-1e3&&y<1e3||P.call(/e/,v))return v;var B=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof y=="number"){var j=y<0?-R(-y):R(y);if(j!==y){var W=String(j),N=m.call(v,W.length+1);return S.call(W,B,"$&_")+"."+S.call(S.call(N,/([0-9]{3})/g,"$&_"),/_$/,"")}}return S.call(v,B,"$&_")}var ie=Ef,Se=ie.custom,Be=Z(Se)?Se:null,Ee={__proto__:null,double:'"',single:"'"},Oe={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};ur=function y(v,B,j,W){var N=B||{};if(ne(N,"quoteStyle")&&!ne(Ee,N.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(ne(N,"maxStringLength")&&(typeof N.maxStringLength=="number"?N.maxStringLength<0&&N.maxStringLength!==1/0:N.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var xe=ne(N,"customInspect")?N.customInspect:!0;if(typeof xe!="boolean"&&xe!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(ne(N,"indent")&&N.indent!==null&&N.indent!==" "&&!(parseInt(N.indent,10)===N.indent&&N.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(ne(N,"numericSeparator")&&typeof N.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Me=N.numericSeparator;if(typeof v>"u")return"undefined";if(v===null)return"null";if(typeof v=="boolean")return v?"true":"false";if(typeof v=="string")return Cn(v,N);if(typeof v=="number"){if(v===0)return 1/0/v>0?"0":"-0";var se=String(v);return Me?L(v,se):se}if(typeof v=="bigint"){var Fe=String(v)+"n";return Me?L(v,Fe):Fe}var Kt=typeof N.depth>"u"?5:N.depth;if(typeof j>"u"&&(j=0),j>=Kt&&Kt>0&&typeof v=="object")return Ce(v)?"[Array]":"[Object]";var Ge=Fi(N,j);if(typeof W>"u")W=[];else if(Re(W,v)>=0)return"[Circular]";function ye(Ke,wt,Ii){if(wt&&(W=I.call(W),W.push(wt)),Ii){var Bn={depth:N.depth};return ne(N,"quoteStyle")&&(Bn.quoteStyle=N.quoteStyle),y(Ke,Bn,j+1,W)}return y(Ke,N,j+1,W)}if(typeof v=="function"&&!X(v)){var Rn=ze(v),xn=vt(v,ye);return"[Function"+(Rn?": "+Rn:" (anonymous)")+"]"+(xn.length>0?" { "+T.call(xn,", ")+" }":"")}if(Z(v)){var Fn=J?S.call(String(v),/^(Symbol\(.*\))_[^)]*$/,"$1"):Y.call(v);return typeof v=="object"&&!J?lt(Fn):Fn}if(Ti(v)){for(var ut="<"+O.call(String(v.nodeName)),Jt=v.attributes||[],gt=0;gt<Jt.length;gt++)ut+=" "+Jt[gt].name+"="+Pe(Ae(Jt[gt].value),"double",N);return ut+=">",v.childNodes&&v.childNodes.length&&(ut+="..."),ut+="</"+O.call(String(v.nodeName))+">",ut}if(Ce(v)){if(v.length===0)return"[]";var Qt=vt(v,ye);return Ge&&!xi(Qt)?"["+Gt(Qt,Ge)+"]":"[ "+T.call(Qt,", ")+" ]"}if(D(v)){var Xt=vt(v,ye);return!("cause"in Error.prototype)&&"cause"in v&&!be.call(v,"cause")?"{ ["+String(v)+"] "+T.call(E.call("[cause]: "+ye(v.cause),Xt),", ")+" }":Xt.length===0?"["+String(v)+"]":"{ ["+String(v)+"] "+T.call(Xt,", ")+" }"}if(typeof v=="object"&&xe){if(Be&&typeof v[Be]=="function"&&ie)return ie(v,{depth:Kt-j});if(xe!=="symbol"&&typeof v.inspect=="function")return v.inspect()}if(de(v)){var Nn=[];return n&&n.call(v,function(Ke,wt){Nn.push(ye(wt,v,!0)+" => "+ye(Ke,v))}),Tn("Map",r.call(v),Nn,Ge)}if(We(v)){var In=[];return s&&s.call(v,function(Ke){In.push(ye(Ke,v))}),Tn("Set",i.call(v),In,Ge)}if(je(v))return Wt("WeakMap");if(Ci(v))return Wt("WeakSet");if(Ve(v))return Wt("WeakRef");if(z(v))return lt(ye(Number(v)));if(fe(v))return lt(ye(q.call(v)));if(Q(v))return lt(l.call(v));if(K(v))return lt(ye(String(v)));if(typeof window<"u"&&v===window)return"{ [object Window] }";if(typeof globalThis<"u"&&v===globalThis||typeof Eo<"u"&&v===Eo)return"{ [object globalThis] }";if(!Te(v)&&!X(v)){var Yt=vt(v,ye),Ln=_e?_e(v)===Object.prototype:v instanceof Object||v.constructor===Object,Zt=v instanceof Object?"":"null prototype",Dn=!Ln&&ae&&Object(v)===v&&ae in v?m.call(pe(v),8,-1):Zt?"Object":"",Ni=Ln||typeof v.constructor!="function"?"":v.constructor.name?v.constructor.name+" ":"",er=Ni+(Dn||Zt?"["+T.call(E.call([],Dn||[],Zt||[]),": ")+"] ":"");return Yt.length===0?er+"{}":Ge?er+"{"+Gt(Yt,Ge)+"}":er+"{ "+T.call(Yt,", ")+" }"}return String(v)};function Pe(y,v,B){var j=B.quoteStyle||v,W=Ee[j];return W+y+W}function Ae(y){return S.call(String(y),/"/g,""")}function ce(y){return!ae||!(typeof y=="object"&&(ae in y||typeof y[ae]<"u"))}function Ce(y){return pe(y)==="[object Array]"&&ce(y)}function Te(y){return pe(y)==="[object Date]"&&ce(y)}function X(y){return pe(y)==="[object RegExp]"&&ce(y)}function D(y){return pe(y)==="[object Error]"&&ce(y)}function K(y){return pe(y)==="[object String]"&&ce(y)}function z(y){return pe(y)==="[object Number]"&&ce(y)}function Q(y){return pe(y)==="[object Boolean]"&&ce(y)}function Z(y){if(J)return y&&typeof y=="object"&&y instanceof Symbol;if(typeof y=="symbol")return!0;if(!y||typeof y!="object"||!Y)return!1;try{return Y.call(y),!0}catch{}return!1}function fe(y){if(!y||typeof y!="object"||!q)return!1;try{return q.call(y),!0}catch{}return!1}var ee=Object.prototype.hasOwnProperty||function(y){return y in this};function ne(y,v){return ee.call(y,v)}function pe(y){return _.call(y)}function ze(y){if(y.name)return y.name;var v=h.call(u.call(y),/^function\s*([\w$]+)/);return v?v[1]:null}function Re(y,v){if(y.indexOf)return y.indexOf(v);for(var B=0,j=y.length;B<j;B++)if(y[B]===v)return B;return-1}function de(y){if(!r||!y||typeof y!="object")return!1;try{r.call(y);try{i.call(y)}catch{return!0}return y instanceof Map}catch{}return!1}function je(y){if(!f||!y||typeof y!="object")return!1;try{f.call(y,f);try{p.call(y,p)}catch{return!0}return y instanceof WeakMap}catch{}return!1}function Ve(y){if(!d||!y||typeof y!="object")return!1;try{return d.call(y),!0}catch{}return!1}function We(y){if(!i||!y||typeof y!="object")return!1;try{i.call(y);try{r.call(y)}catch{return!0}return y instanceof Set}catch{}return!1}function Ci(y){if(!p||!y||typeof y!="object")return!1;try{p.call(y,p);try{f.call(y,f)}catch{return!0}return y instanceof WeakSet}catch{}return!1}function Ti(y){return!y||typeof y!="object"?!1:typeof HTMLElement<"u"&&y instanceof HTMLElement?!0:typeof y.nodeName=="string"&&typeof y.getAttribute=="function"}function Cn(y,v){if(y.length>v.maxStringLength){var B=y.length-v.maxStringLength,j="... "+B+" more character"+(B>1?"s":"");return Cn(m.call(y,0,v.maxStringLength),v)+j}var W=Oe[v.quoteStyle||"single"];W.lastIndex=0;var N=S.call(S.call(y,W,"\\$1"),/[\x00-\x1f]/g,Ri);return Pe(N,"single",v)}function Ri(y){var v=y.charCodeAt(0),B={8:"b",9:"t",10:"n",12:"f",13:"r"}[v];return B?"\\"+B:"\\x"+(v<16?"0":"")+A.call(v.toString(16))}function lt(y){return"Object("+y+")"}function Wt(y){return y+" { ? }"}function Tn(y,v,B,j){var W=j?Gt(B,j):T.call(B,", ");return y+" ("+v+") {"+W+"}"}function xi(y){for(var v=0;v<y.length;v++)if(Re(y[v],` +`)>=0)return!1;return!0}function Fi(y,v){var B;if(y.indent===" ")B=" ";else if(typeof y.indent=="number"&&y.indent>0)B=T.call(Array(y.indent+1)," ");else return null;return{base:B,prev:T.call(Array(v+1),B)}}function Gt(y,v){if(y.length===0)return"";var B=` +`+v.prev+v.base;return B+T.call(y,","+B)+` +`+v.prev}function vt(y,v){var B=Ce(y),j=[];if(B){j.length=y.length;for(var W=0;W<y.length;W++)j[W]=ne(y,W)?v(y[W],y):""}var N=typeof C=="function"?C(y):[],xe;if(J){xe={};for(var Me=0;Me<N.length;Me++)xe["$"+N[Me]]=N[Me]}for(var se in y)ne(y,se)&&(B&&String(Number(se))===se&&se<y.length||J&&xe["$"+se]instanceof Symbol||(P.call(/[^\w$]/,se)?j.push(v(se,y)+": "+v(y[se],y)):j.push(se+": "+v(y[se],y))));if(typeof C=="function")for(var Fe=0;Fe<N.length;Fe++)be.call(y,N[Fe])&&j.push("["+v(N[Fe])+"]: "+v(y[N[Fe]],y));return j}return ur}var cr,Co;function Of(){if(Co)return cr;Co=1;var e=jt(),t=st(),r=function(s,g,f){for(var c=s,p;(p=c.next)!=null;c=p)if(p.key===g)return c.next=p.next,f||(p.next=s.next,s.next=p),p},n=function(s,g){if(s){var f=r(s,g);return f&&f.value}},o=function(s,g,f){var c=r(s,g);c?c.value=f:s.next={key:g,next:s.next,value:f}},a=function(s,g){return s?!!r(s,g):!1},i=function(s,g){if(s)return r(s,g,!0)};return cr=function(){var g,f={assert:function(c){if(!f.has(c))throw new t("Side channel does not contain "+e(c))},delete:function(c){var p=g&&g.next,b=i(g,c);return b&&p&&p===b&&(g=void 0),!!b},get:function(c){return n(g,c)},has:function(c){return a(g,c)},set:function(c,p){g||(g={next:void 0}),o(g,c,p)}};return f},cr}var fr,To;function mi(){return To||(To=1,fr=Object),fr}var pr,Ro;function Pf(){return Ro||(Ro=1,pr=Error),pr}var dr,xo;function Cf(){return xo||(xo=1,dr=EvalError),dr}var yr,Fo;function Tf(){return Fo||(Fo=1,yr=RangeError),yr}var hr,No;function Rf(){return No||(No=1,hr=ReferenceError),hr}var mr,Io;function xf(){return Io||(Io=1,mr=SyntaxError),mr}var vr,Lo;function Ff(){return Lo||(Lo=1,vr=URIError),vr}var gr,Do;function Nf(){return Do||(Do=1,gr=Math.abs),gr}var wr,Bo;function If(){return Bo||(Bo=1,wr=Math.floor),wr}var br,Mo;function Lf(){return Mo||(Mo=1,br=Math.max),br}var _r,ko;function Df(){return ko||(ko=1,_r=Math.min),_r}var Sr,Uo;function Bf(){return Uo||(Uo=1,Sr=Math.pow),Sr}var Ar,qo;function Mf(){return qo||(qo=1,Ar=Math.round),Ar}var Er,$o;function kf(){return $o||($o=1,Er=Number.isNaN||function(t){return t!==t}),Er}var Or,Ho;function Uf(){if(Ho)return Or;Ho=1;var e=kf();return Or=function(r){return e(r)||r===0?r:r<0?-1:1},Or}var Pr,zo;function qf(){return zo||(zo=1,Pr=Object.getOwnPropertyDescriptor),Pr}var Cr,jo;function vi(){if(jo)return Cr;jo=1;var e=qf();if(e)try{e([],"length")}catch{e=null}return Cr=e,Cr}var Tr,Vo;function $f(){if(Vo)return Tr;Vo=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return Tr=e,Tr}var Rr,Wo;function Hf(){return Wo||(Wo=1,Rr=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var o=42;t[r]=o;for(var a in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var i=Object.getOwnPropertySymbols(t);if(i.length!==1||i[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==o||s.enumerable!==!0)return!1}return!0}),Rr}var xr,Go;function zf(){if(Go)return xr;Go=1;var e=typeof Symbol<"u"&&Symbol,t=Hf();return xr=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},xr}var Fr,Ko;function gi(){return Ko||(Ko=1,Fr=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),Fr}var Nr,Jo;function wi(){if(Jo)return Nr;Jo=1;var e=mi();return Nr=e.getPrototypeOf||null,Nr}var Ir,Qo;function jf(){if(Qo)return Ir;Qo=1;var e="Function.prototype.bind called on incompatible ",t=Object.prototype.toString,r=Math.max,n="[object Function]",o=function(g,f){for(var c=[],p=0;p<g.length;p+=1)c[p]=g[p];for(var b=0;b<f.length;b+=1)c[b+g.length]=f[b];return c},a=function(g,f){for(var c=[],p=f,b=0;p<g.length;p+=1,b+=1)c[b]=g[p];return c},i=function(s,g){for(var f="",c=0;c<s.length;c+=1)f+=s[c],c+1<s.length&&(f+=g);return f};return Ir=function(g){var f=this;if(typeof f!="function"||t.apply(f)!==n)throw new TypeError(e+f);for(var c=a(arguments,1),p,b=function(){if(this instanceof p){var h=f.apply(this,o(c,arguments));return Object(h)===h?h:this}return f.apply(g,o(c,arguments))},d=r(0,f.length-c.length),l=[],_=0;_<d;_++)l[_]="$"+_;if(p=Function("binder","return function ("+i(l,",")+"){ return binder.apply(this,arguments); }")(b),f.prototype){var u=function(){};u.prototype=f.prototype,p.prototype=new u,u.prototype=null}return p},Ir}var Lr,Xo;function Vt(){if(Xo)return Lr;Xo=1;var e=jf();return Lr=Function.prototype.bind||e,Lr}var Dr,Yo;function En(){return Yo||(Yo=1,Dr=Function.prototype.call),Dr}var Br,Zo;function bi(){return Zo||(Zo=1,Br=Function.prototype.apply),Br}var Mr,ea;function Vf(){return ea||(ea=1,Mr=typeof Reflect<"u"&&Reflect&&Reflect.apply),Mr}var kr,ta;function Wf(){if(ta)return kr;ta=1;var e=Vt(),t=bi(),r=En(),n=Vf();return kr=n||e.call(r,t),kr}var Ur,ra;function _i(){if(ra)return Ur;ra=1;var e=Vt(),t=st(),r=En(),n=Wf();return Ur=function(a){if(a.length<1||typeof a[0]!="function")throw new t("a function is required");return n(e,r,a)},Ur}var qr,na;function Gf(){if(na)return qr;na=1;var e=_i(),t=vi(),r;try{r=[].__proto__===Array.prototype}catch(i){if(!i||typeof i!="object"||!("code"in i)||i.code!=="ERR_PROTO_ACCESS")throw i}var n=!!r&&t&&t(Object.prototype,"__proto__"),o=Object,a=o.getPrototypeOf;return qr=n&&typeof n.get=="function"?e([n.get]):typeof a=="function"?function(s){return a(s==null?s:o(s))}:!1,qr}var $r,oa;function Kf(){if(oa)return $r;oa=1;var e=gi(),t=wi(),r=Gf();return $r=e?function(o){return e(o)}:t?function(o){if(!o||typeof o!="object"&&typeof o!="function")throw new TypeError("getProto: not an object");return t(o)}:r?function(o){return r(o)}:null,$r}var Hr,aa;function Jf(){if(aa)return Hr;aa=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,r=Vt();return Hr=r.call(e,t),Hr}var zr,ia;function On(){if(ia)return zr;ia=1;var e,t=mi(),r=Pf(),n=Cf(),o=Tf(),a=Rf(),i=xf(),s=st(),g=Ff(),f=Nf(),c=If(),p=Lf(),b=Df(),d=Bf(),l=Mf(),_=Uf(),u=Function,h=function(X){try{return u('"use strict"; return ('+X+").constructor;")()}catch{}},m=vi(),S=$f(),A=function(){throw new s},O=m?function(){try{return arguments.callee,A}catch{try{return m(arguments,"callee").get}catch{return A}}}():A,P=zf()(),E=Kf(),T=wi(),I=gi(),R=bi(),q=En(),C={},Y=typeof Uint8Array>"u"||!E?e:E(Uint8Array),J={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":P&&E?E([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":C,"%AsyncGenerator%":C,"%AsyncGeneratorFunction%":C,"%AsyncIteratorPrototype%":C,"%Atomics%":typeof Atomics>"u"?e:Atomics,"%BigInt%":typeof BigInt>"u"?e:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?e:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?e:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?e:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":n,"%Float32Array%":typeof Float32Array>"u"?e:Float32Array,"%Float64Array%":typeof Float64Array>"u"?e:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?e:FinalizationRegistry,"%Function%":u,"%GeneratorFunction%":C,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":P&&E?E(E([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!P||!E?e:E(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":t,"%Object.getOwnPropertyDescriptor%":m,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?e:Promise,"%Proxy%":typeof Proxy>"u"?e:Proxy,"%RangeError%":o,"%ReferenceError%":a,"%Reflect%":typeof Reflect>"u"?e:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?e:Set,"%SetIteratorPrototype%":typeof Set>"u"||!P||!E?e:E(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":P&&E?E(""[Symbol.iterator]()):e,"%Symbol%":P?Symbol:e,"%SyntaxError%":i,"%ThrowTypeError%":O,"%TypedArray%":Y,"%TypeError%":s,"%Uint8Array%":typeof Uint8Array>"u"?e:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?e:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?e:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?e:Uint32Array,"%URIError%":g,"%WeakMap%":typeof WeakMap>"u"?e:WeakMap,"%WeakRef%":typeof WeakRef>"u"?e:WeakRef,"%WeakSet%":typeof WeakSet>"u"?e:WeakSet,"%Function.prototype.call%":q,"%Function.prototype.apply%":R,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":T,"%Math.abs%":f,"%Math.floor%":c,"%Math.max%":p,"%Math.min%":b,"%Math.pow%":d,"%Math.round%":l,"%Math.sign%":_,"%Reflect.getPrototypeOf%":I};if(E)try{null.error}catch(X){var ae=E(E(X));J["%Error.prototype%"]=ae}var be=function X(D){var K;if(D==="%AsyncFunction%")K=h("async function () {}");else if(D==="%GeneratorFunction%")K=h("function* () {}");else if(D==="%AsyncGeneratorFunction%")K=h("async function* () {}");else if(D==="%AsyncGenerator%"){var z=X("%AsyncGeneratorFunction%");z&&(K=z.prototype)}else if(D==="%AsyncIteratorPrototype%"){var Q=X("%AsyncGenerator%");Q&&E&&(K=E(Q.prototype))}return J[D]=K,K},_e={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},L=Vt(),ie=Jf(),Se=L.call(q,Array.prototype.concat),Be=L.call(R,Array.prototype.splice),Ee=L.call(q,String.prototype.replace),Oe=L.call(q,String.prototype.slice),Pe=L.call(q,RegExp.prototype.exec),Ae=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,ce=/\\(\\)?/g,Ce=function(D){var K=Oe(D,0,1),z=Oe(D,-1);if(K==="%"&&z!=="%")throw new i("invalid intrinsic syntax, expected closing `%`");if(z==="%"&&K!=="%")throw new i("invalid intrinsic syntax, expected opening `%`");var Q=[];return Ee(D,Ae,function(Z,fe,ee,ne){Q[Q.length]=ee?Ee(ne,ce,"$1"):fe||Z}),Q},Te=function(D,K){var z=D,Q;if(ie(_e,z)&&(Q=_e[z],z="%"+Q[0]+"%"),ie(J,z)){var Z=J[z];if(Z===C&&(Z=be(z)),typeof Z>"u"&&!K)throw new s("intrinsic "+D+" exists, but is not available. Please file an issue!");return{alias:Q,name:z,value:Z}}throw new i("intrinsic "+D+" does not exist!")};return zr=function(D,K){if(typeof D!="string"||D.length===0)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof K!="boolean")throw new s('"allowMissing" argument must be a boolean');if(Pe(/^%?[^%]*%?$/,D)===null)throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var z=Ce(D),Q=z.length>0?z[0]:"",Z=Te("%"+Q+"%",K),fe=Z.name,ee=Z.value,ne=!1,pe=Z.alias;pe&&(Q=pe[0],Be(z,Se([0,1],pe)));for(var ze=1,Re=!0;ze<z.length;ze+=1){var de=z[ze],je=Oe(de,0,1),Ve=Oe(de,-1);if((je==='"'||je==="'"||je==="`"||Ve==='"'||Ve==="'"||Ve==="`")&&je!==Ve)throw new i("property names with quotes must have matching quotes");if((de==="constructor"||!Re)&&(ne=!0),Q+="."+de,fe="%"+Q+"%",ie(J,fe))ee=J[fe];else if(ee!=null){if(!(de in ee)){if(!K)throw new s("base intrinsic for "+D+" exists, but the property is not available.");return}if(m&&ze+1>=z.length){var We=m(ee,de);Re=!!We,Re&&"get"in We&&!("originalValue"in We.get)?ee=We.get:ee=ee[de]}else Re=ie(ee,de),ee=ee[de];Re&&!ne&&(J[fe]=ee)}}return ee},zr}var jr,sa;function Si(){if(sa)return jr;sa=1;var e=On(),t=_i(),r=t([e("%String.prototype.indexOf%")]);return jr=function(o,a){var i=e(o,!!a);return typeof i=="function"&&r(o,".prototype.")>-1?t([i]):i},jr}var Vr,la;function Ai(){if(la)return Vr;la=1;var e=On(),t=Si(),r=jt(),n=st(),o=e("%Map%",!0),a=t("Map.prototype.get",!0),i=t("Map.prototype.set",!0),s=t("Map.prototype.has",!0),g=t("Map.prototype.delete",!0),f=t("Map.prototype.size",!0);return Vr=!!o&&function(){var p,b={assert:function(d){if(!b.has(d))throw new n("Side channel does not contain "+r(d))},delete:function(d){if(p){var l=g(p,d);return f(p)===0&&(p=void 0),l}return!1},get:function(d){if(p)return a(p,d)},has:function(d){return p?s(p,d):!1},set:function(d,l){p||(p=new o),i(p,d,l)}};return b},Vr}var Wr,ua;function Qf(){if(ua)return Wr;ua=1;var e=On(),t=Si(),r=jt(),n=Ai(),o=st(),a=e("%WeakMap%",!0),i=t("WeakMap.prototype.get",!0),s=t("WeakMap.prototype.set",!0),g=t("WeakMap.prototype.has",!0),f=t("WeakMap.prototype.delete",!0);return Wr=a?function(){var p,b,d={assert:function(l){if(!d.has(l))throw new o("Side channel does not contain "+r(l))},delete:function(l){if(a&&l&&(typeof l=="object"||typeof l=="function")){if(p)return f(p,l)}else if(n&&b)return b.delete(l);return!1},get:function(l){return a&&l&&(typeof l=="object"||typeof l=="function")&&p?i(p,l):b&&b.get(l)},has:function(l){return a&&l&&(typeof l=="object"||typeof l=="function")&&p?g(p,l):!!b&&b.has(l)},set:function(l,_){a&&l&&(typeof l=="object"||typeof l=="function")?(p||(p=new a),s(p,l,_)):n&&(b||(b=n()),b.set(l,_))}};return d}:n,Wr}var Gr,ca;function Xf(){if(ca)return Gr;ca=1;var e=st(),t=jt(),r=Of(),n=Ai(),o=Qf(),a=o||n||r;return Gr=function(){var s,g={assert:function(f){if(!g.has(f))throw new e("Side channel does not contain "+t(f))},delete:function(f){return!!s&&s.delete(f)},get:function(f){return s&&s.get(f)},has:function(f){return!!s&&s.has(f)},set:function(f,c){s||(s=a()),s.set(f,c)}};return g},Gr}var Kr,fa;function Pn(){if(fa)return Kr;fa=1;var e=String.prototype.replace,t=/%20/g,r={RFC1738:"RFC1738",RFC3986:"RFC3986"};return Kr={default:r.RFC3986,formatters:{RFC1738:function(n){return e.call(n,t,"+")},RFC3986:function(n){return String(n)}},RFC1738:r.RFC1738,RFC3986:r.RFC3986},Kr}var Jr,pa;function Ei(){if(pa)return Jr;pa=1;var e=Pn(),t=Object.prototype.hasOwnProperty,r=Array.isArray,n=function(){for(var u=[],h=0;h<256;++h)u.push("%"+((h<16?"0":"")+h.toString(16)).toUpperCase());return u}(),o=function(h){for(;h.length>1;){var m=h.pop(),S=m.obj[m.prop];if(r(S)){for(var A=[],O=0;O<S.length;++O)typeof S[O]<"u"&&A.push(S[O]);m.obj[m.prop]=A}}},a=function(h,m){for(var S=m&&m.plainObjects?{__proto__:null}:{},A=0;A<h.length;++A)typeof h[A]<"u"&&(S[A]=h[A]);return S},i=function u(h,m,S){if(!m)return h;if(typeof m!="object"&&typeof m!="function"){if(r(h))h.push(m);else if(h&&typeof h=="object")(S&&(S.plainObjects||S.allowPrototypes)||!t.call(Object.prototype,m))&&(h[m]=!0);else return[h,m];return h}if(!h||typeof h!="object")return[h].concat(m);var A=h;return r(h)&&!r(m)&&(A=a(h,S)),r(h)&&r(m)?(m.forEach(function(O,P){if(t.call(h,P)){var E=h[P];E&&typeof E=="object"&&O&&typeof O=="object"?h[P]=u(E,O,S):h.push(O)}else h[P]=O}),h):Object.keys(m).reduce(function(O,P){var E=m[P];return t.call(O,P)?O[P]=u(O[P],E,S):O[P]=E,O},A)},s=function(h,m){return Object.keys(m).reduce(function(S,A){return S[A]=m[A],S},h)},g=function(u,h,m){var S=u.replace(/\+/g," ");if(m==="iso-8859-1")return S.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(S)}catch{return S}},f=1024,c=function(h,m,S,A,O){if(h.length===0)return h;var P=h;if(typeof h=="symbol"?P=Symbol.prototype.toString.call(h):typeof h!="string"&&(P=String(h)),S==="iso-8859-1")return escape(P).replace(/%u[0-9a-f]{4}/gi,function(Y){return"%26%23"+parseInt(Y.slice(2),16)+"%3B"});for(var E="",T=0;T<P.length;T+=f){for(var I=P.length>=f?P.slice(T,T+f):P,R=[],q=0;q<I.length;++q){var C=I.charCodeAt(q);if(C===45||C===46||C===95||C===126||C>=48&&C<=57||C>=65&&C<=90||C>=97&&C<=122||O===e.RFC1738&&(C===40||C===41)){R[R.length]=I.charAt(q);continue}if(C<128){R[R.length]=n[C];continue}if(C<2048){R[R.length]=n[192|C>>6]+n[128|C&63];continue}if(C<55296||C>=57344){R[R.length]=n[224|C>>12]+n[128|C>>6&63]+n[128|C&63];continue}q+=1,C=65536+((C&1023)<<10|I.charCodeAt(q)&1023),R[R.length]=n[240|C>>18]+n[128|C>>12&63]+n[128|C>>6&63]+n[128|C&63]}E+=R.join("")}return E},p=function(h){for(var m=[{obj:{o:h},prop:"o"}],S=[],A=0;A<m.length;++A)for(var O=m[A],P=O.obj[O.prop],E=Object.keys(P),T=0;T<E.length;++T){var I=E[T],R=P[I];typeof R=="object"&&R!==null&&S.indexOf(R)===-1&&(m.push({obj:P,prop:I}),S.push(R))}return o(m),h},b=function(h){return Object.prototype.toString.call(h)==="[object RegExp]"},d=function(h){return!h||typeof h!="object"?!1:!!(h.constructor&&h.constructor.isBuffer&&h.constructor.isBuffer(h))},l=function(h,m){return[].concat(h,m)},_=function(h,m){if(r(h)){for(var S=[],A=0;A<h.length;A+=1)S.push(m(h[A]));return S}return m(h)};return Jr={arrayToObject:a,assign:s,combine:l,compact:p,decode:g,encode:c,isBuffer:d,isRegExp:b,maybeMap:_,merge:i},Jr}var Qr,da;function Yf(){if(da)return Qr;da=1;var e=Xf(),t=Ei(),r=Pn(),n=Object.prototype.hasOwnProperty,o={brackets:function(u){return u+"[]"},comma:"comma",indices:function(u,h){return u+"["+h+"]"},repeat:function(u){return u}},a=Array.isArray,i=Array.prototype.push,s=function(_,u){i.apply(_,a(u)?u:[u])},g=Date.prototype.toISOString,f=r.default,c={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:t.encode,encodeValuesOnly:!1,filter:void 0,format:f,formatter:r.formatters[f],indices:!1,serializeDate:function(u){return g.call(u)},skipNulls:!1,strictNullHandling:!1},p=function(u){return typeof u=="string"||typeof u=="number"||typeof u=="boolean"||typeof u=="symbol"||typeof u=="bigint"},b={},d=function _(u,h,m,S,A,O,P,E,T,I,R,q,C,Y,J,ae,be,_e){for(var L=u,ie=_e,Se=0,Be=!1;(ie=ie.get(b))!==void 0&&!Be;){var Ee=ie.get(u);if(Se+=1,typeof Ee<"u"){if(Ee===Se)throw new RangeError("Cyclic object value");Be=!0}typeof ie.get(b)>"u"&&(Se=0)}if(typeof I=="function"?L=I(h,L):L instanceof Date?L=C(L):m==="comma"&&a(L)&&(L=t.maybeMap(L,function(fe){return fe instanceof Date?C(fe):fe})),L===null){if(O)return T&&!ae?T(h,c.encoder,be,"key",Y):h;L=""}if(p(L)||t.isBuffer(L)){if(T){var Oe=ae?h:T(h,c.encoder,be,"key",Y);return[J(Oe)+"="+J(T(L,c.encoder,be,"value",Y))]}return[J(h)+"="+J(String(L))]}var Pe=[];if(typeof L>"u")return Pe;var Ae;if(m==="comma"&&a(L))ae&&T&&(L=t.maybeMap(L,T)),Ae=[{value:L.length>0?L.join(",")||null:void 0}];else if(a(I))Ae=I;else{var ce=Object.keys(L);Ae=R?ce.sort(R):ce}var Ce=E?String(h).replace(/\./g,"%2E"):String(h),Te=S&&a(L)&&L.length===1?Ce+"[]":Ce;if(A&&a(L)&&L.length===0)return Te+"[]";for(var X=0;X<Ae.length;++X){var D=Ae[X],K=typeof D=="object"&&D&&typeof D.value<"u"?D.value:L[D];if(!(P&&K===null)){var z=q&&E?String(D).replace(/\./g,"%2E"):String(D),Q=a(L)?typeof m=="function"?m(Te,z):Te:Te+(q?"."+z:"["+z+"]");_e.set(u,Se);var Z=e();Z.set(b,_e),s(Pe,_(K,Q,m,S,A,O,P,E,m==="comma"&&ae&&a(L)?null:T,I,R,q,C,Y,J,ae,be,Z))}}return Pe},l=function(u){if(!u)return c;if(typeof u.allowEmptyArrays<"u"&&typeof u.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof u.encodeDotInKeys<"u"&&typeof u.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(u.encoder!==null&&typeof u.encoder<"u"&&typeof u.encoder!="function")throw new TypeError("Encoder has to be a function.");var h=u.charset||c.charset;if(typeof u.charset<"u"&&u.charset!=="utf-8"&&u.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var m=r.default;if(typeof u.format<"u"){if(!n.call(r.formatters,u.format))throw new TypeError("Unknown format option provided.");m=u.format}var S=r.formatters[m],A=c.filter;(typeof u.filter=="function"||a(u.filter))&&(A=u.filter);var O;if(u.arrayFormat in o?O=u.arrayFormat:"indices"in u?O=u.indices?"indices":"repeat":O=c.arrayFormat,"commaRoundTrip"in u&&typeof u.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var P=typeof u.allowDots>"u"?u.encodeDotInKeys===!0?!0:c.allowDots:!!u.allowDots;return{addQueryPrefix:typeof u.addQueryPrefix=="boolean"?u.addQueryPrefix:c.addQueryPrefix,allowDots:P,allowEmptyArrays:typeof u.allowEmptyArrays=="boolean"?!!u.allowEmptyArrays:c.allowEmptyArrays,arrayFormat:O,charset:h,charsetSentinel:typeof u.charsetSentinel=="boolean"?u.charsetSentinel:c.charsetSentinel,commaRoundTrip:!!u.commaRoundTrip,delimiter:typeof u.delimiter>"u"?c.delimiter:u.delimiter,encode:typeof u.encode=="boolean"?u.encode:c.encode,encodeDotInKeys:typeof u.encodeDotInKeys=="boolean"?u.encodeDotInKeys:c.encodeDotInKeys,encoder:typeof u.encoder=="function"?u.encoder:c.encoder,encodeValuesOnly:typeof u.encodeValuesOnly=="boolean"?u.encodeValuesOnly:c.encodeValuesOnly,filter:A,format:m,formatter:S,serializeDate:typeof u.serializeDate=="function"?u.serializeDate:c.serializeDate,skipNulls:typeof u.skipNulls=="boolean"?u.skipNulls:c.skipNulls,sort:typeof u.sort=="function"?u.sort:null,strictNullHandling:typeof u.strictNullHandling=="boolean"?u.strictNullHandling:c.strictNullHandling}};return Qr=function(_,u){var h=_,m=l(u),S,A;typeof m.filter=="function"?(A=m.filter,h=A("",h)):a(m.filter)&&(A=m.filter,S=A);var O=[];if(typeof h!="object"||h===null)return"";var P=o[m.arrayFormat],E=P==="comma"&&m.commaRoundTrip;S||(S=Object.keys(h)),m.sort&&S.sort(m.sort);for(var T=e(),I=0;I<S.length;++I){var R=S[I],q=h[R];m.skipNulls&&q===null||s(O,d(q,R,P,E,m.allowEmptyArrays,m.strictNullHandling,m.skipNulls,m.encodeDotInKeys,m.encode?m.encoder:null,m.filter,m.sort,m.allowDots,m.serializeDate,m.format,m.formatter,m.encodeValuesOnly,m.charset,T))}var C=O.join(m.delimiter),Y=m.addQueryPrefix===!0?"?":"";return m.charsetSentinel&&(m.charset==="iso-8859-1"?Y+="utf8=%26%2310003%3B&":Y+="utf8=%E2%9C%93&"),C.length>0?Y+C:""},Qr}var Xr,ya;function Zf(){if(ya)return Xr;ya=1;var e=Ei(),t=Object.prototype.hasOwnProperty,r=Array.isArray,n={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:e.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},o=function(b){return b.replace(/&#(\d+);/g,function(d,l){return String.fromCharCode(parseInt(l,10))})},a=function(b,d,l){if(b&&typeof b=="string"&&d.comma&&b.indexOf(",")>-1)return b.split(",");if(d.throwOnLimitExceeded&&l>=d.arrayLimit)throw new RangeError("Array limit exceeded. Only "+d.arrayLimit+" element"+(d.arrayLimit===1?"":"s")+" allowed in an array.");return b},i="utf8=%26%2310003%3B",s="utf8=%E2%9C%93",g=function(d,l){var _={__proto__:null},u=l.ignoreQueryPrefix?d.replace(/^\?/,""):d;u=u.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var h=l.parameterLimit===1/0?void 0:l.parameterLimit,m=u.split(l.delimiter,l.throwOnLimitExceeded?h+1:h);if(l.throwOnLimitExceeded&&m.length>h)throw new RangeError("Parameter limit exceeded. Only "+h+" parameter"+(h===1?"":"s")+" allowed.");var S=-1,A,O=l.charset;if(l.charsetSentinel)for(A=0;A<m.length;++A)m[A].indexOf("utf8=")===0&&(m[A]===s?O="utf-8":m[A]===i&&(O="iso-8859-1"),S=A,A=m.length);for(A=0;A<m.length;++A)if(A!==S){var P=m[A],E=P.indexOf("]="),T=E===-1?P.indexOf("="):E+1,I,R;T===-1?(I=l.decoder(P,n.decoder,O,"key"),R=l.strictNullHandling?null:""):(I=l.decoder(P.slice(0,T),n.decoder,O,"key"),R=e.maybeMap(a(P.slice(T+1),l,r(_[I])?_[I].length:0),function(C){return l.decoder(C,n.decoder,O,"value")})),R&&l.interpretNumericEntities&&O==="iso-8859-1"&&(R=o(String(R))),P.indexOf("[]=")>-1&&(R=r(R)?[R]:R);var q=t.call(_,I);q&&l.duplicates==="combine"?_[I]=e.combine(_[I],R):(!q||l.duplicates==="last")&&(_[I]=R)}return _},f=function(b,d,l,_){var u=0;if(b.length>0&&b[b.length-1]==="[]"){var h=b.slice(0,-1).join("");u=Array.isArray(d)&&d[h]?d[h].length:0}for(var m=_?d:a(d,l,u),S=b.length-1;S>=0;--S){var A,O=b[S];if(O==="[]"&&l.parseArrays)A=l.allowEmptyArrays&&(m===""||l.strictNullHandling&&m===null)?[]:e.combine([],m);else{A=l.plainObjects?{__proto__:null}:{};var P=O.charAt(0)==="["&&O.charAt(O.length-1)==="]"?O.slice(1,-1):O,E=l.decodeDotInKeys?P.replace(/%2E/g,"."):P,T=parseInt(E,10);!l.parseArrays&&E===""?A={0:m}:!isNaN(T)&&O!==E&&String(T)===E&&T>=0&&l.parseArrays&&T<=l.arrayLimit?(A=[],A[T]=m):E!=="__proto__"&&(A[E]=m)}m=A}return m},c=function(d,l,_,u){if(d){var h=_.allowDots?d.replace(/\.([^.[]+)/g,"[$1]"):d,m=/(\[[^[\]]*])/,S=/(\[[^[\]]*])/g,A=_.depth>0&&m.exec(h),O=A?h.slice(0,A.index):h,P=[];if(O){if(!_.plainObjects&&t.call(Object.prototype,O)&&!_.allowPrototypes)return;P.push(O)}for(var E=0;_.depth>0&&(A=S.exec(h))!==null&&E<_.depth;){if(E+=1,!_.plainObjects&&t.call(Object.prototype,A[1].slice(1,-1))&&!_.allowPrototypes)return;P.push(A[1])}if(A){if(_.strictDepth===!0)throw new RangeError("Input depth exceeded depth option of "+_.depth+" and strictDepth is true");P.push("["+h.slice(A.index)+"]")}return f(P,l,_,u)}},p=function(d){if(!d)return n;if(typeof d.allowEmptyArrays<"u"&&typeof d.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof d.decodeDotInKeys<"u"&&typeof d.decodeDotInKeys!="boolean")throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(d.decoder!==null&&typeof d.decoder<"u"&&typeof d.decoder!="function")throw new TypeError("Decoder has to be a function.");if(typeof d.charset<"u"&&d.charset!=="utf-8"&&d.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");if(typeof d.throwOnLimitExceeded<"u"&&typeof d.throwOnLimitExceeded!="boolean")throw new TypeError("`throwOnLimitExceeded` option must be a boolean");var l=typeof d.charset>"u"?n.charset:d.charset,_=typeof d.duplicates>"u"?n.duplicates:d.duplicates;if(_!=="combine"&&_!=="first"&&_!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var u=typeof d.allowDots>"u"?d.decodeDotInKeys===!0?!0:n.allowDots:!!d.allowDots;return{allowDots:u,allowEmptyArrays:typeof d.allowEmptyArrays=="boolean"?!!d.allowEmptyArrays:n.allowEmptyArrays,allowPrototypes:typeof d.allowPrototypes=="boolean"?d.allowPrototypes:n.allowPrototypes,allowSparse:typeof d.allowSparse=="boolean"?d.allowSparse:n.allowSparse,arrayLimit:typeof d.arrayLimit=="number"?d.arrayLimit:n.arrayLimit,charset:l,charsetSentinel:typeof d.charsetSentinel=="boolean"?d.charsetSentinel:n.charsetSentinel,comma:typeof d.comma=="boolean"?d.comma:n.comma,decodeDotInKeys:typeof d.decodeDotInKeys=="boolean"?d.decodeDotInKeys:n.decodeDotInKeys,decoder:typeof d.decoder=="function"?d.decoder:n.decoder,delimiter:typeof d.delimiter=="string"||e.isRegExp(d.delimiter)?d.delimiter:n.delimiter,depth:typeof d.depth=="number"||d.depth===!1?+d.depth:n.depth,duplicates:_,ignoreQueryPrefix:d.ignoreQueryPrefix===!0,interpretNumericEntities:typeof d.interpretNumericEntities=="boolean"?d.interpretNumericEntities:n.interpretNumericEntities,parameterLimit:typeof d.parameterLimit=="number"?d.parameterLimit:n.parameterLimit,parseArrays:d.parseArrays!==!1,plainObjects:typeof d.plainObjects=="boolean"?d.plainObjects:n.plainObjects,strictDepth:typeof d.strictDepth=="boolean"?!!d.strictDepth:n.strictDepth,strictNullHandling:typeof d.strictNullHandling=="boolean"?d.strictNullHandling:n.strictNullHandling,throwOnLimitExceeded:typeof d.throwOnLimitExceeded=="boolean"?d.throwOnLimitExceeded:!1}};return Xr=function(b,d){var l=p(d);if(b===""||b===null||typeof b>"u")return l.plainObjects?{__proto__:null}:{};for(var _=typeof b=="string"?g(b,l):b,u=l.plainObjects?{__proto__:null}:{},h=Object.keys(_),m=0;m<h.length;++m){var S=h[m],A=c(S,_[S],l,typeof b=="string");u=e.merge(u,A,l)}return l.allowSparse===!0?u:e.compact(u)},Xr}var Yr,ha;function ep(){if(ha)return Yr;ha=1;var e=Yf(),t=Zf(),r=Pn();return Yr={formats:r,parse:t,stringify:e},Yr}var tp=ep();const rp=bf(tp);H.defaults.baseURL="https://interviewexperience.gter.net";H.defaults.emulateJSON=!0;H.defaults.withCredentials=!0;H.interceptors.request.use(async e=>(e.headers.authorization=!1,e),e=>Promise.error(e));H.interceptors.response.use(e=>e.status===200?Promise.resolve(e):Promise.reject(e),e=>{if(e.response.status){switch(e.response.status){}return Promise.reject(e.response)}});const np=(e,t)=>new Promise((r,n)=>{H.get(e,{params:t}).then(o=>{r(o.data)}).catch(o=>n(o.data))}),op=(e,t)=>new Promise((r,n)=>{H.post(e,rp.stringify(t)).then(o=>{let a=o.data;a.code==401&&ma(),r(a)}).catch(o=>{o.data.code==401?(ma(),r(o.data)):n(o.data)})}),ma=()=>{typeof ajax_login=="function"&&ajax_login()},U={get:np,post:op},Cd=e=>U.post("/api/lists",e),Td=e=>U.post("/api/operate/like",e),Rd=e=>U.post("/api/operate/collect",e),xd=e=>U.post("/api/details/relatedlist",e),Fd=e=>U.post("/api/details",e),Nd=e=>U.post("/api/comment/lists",e),Id=e=>U.post("/api/comment/childrenList",e),Ld=e=>U.post("/api/comment/submit",e),Dd=e=>U.post("/api/comment/commentsEditSubmit",e),Bd=e=>U.post("/api/comment/like",e),Md=e=>U.post("/api/publish",e),kd=e=>U.get("/api/publish/schoolSearch",e),Ud=e=>U.get("/api/publish/professionSearch",e),qd=e=>U.post("/api/publish/submit",e),$d=e=>U.post("/api/publish/changeAnonymous",e),Hd=e=>U.post("/api/user",e),zd=e=>U.post("/api/user/publish",e),jd=e=>U.post("/api/user/deleteCollect",e),Vd=e=>U.post("/api/user/collect",e),Wd=e=>U.post("/api/operate/report",e),Gd=e=>U.post("https://oss.gter.net/upload/base64",e),Kd=e=>U.post("/api/operate/coin",e),Jd=e=>U.post("/api/operate/coinsubmit",e),Qd=e=>U.post("/api/operate/share",e),Xd=e=>U.post("/api/riposte/riposteGet",e),Yd=e=>U.post("/api/riposte/riposteSubmit",e),Zd=e=>U.post("/api/details/interviewExperienceHide",e),ey=e=>U.post("/api/comment/commentDelete",e),ap=ot({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:me([String,Object,Array])},offset:{type:me(Array),default:[0,0]},badgeClass:{type:String}}),ip=M({name:"ElBadge"}),sp=M({...ip,props:ap,setup(e,{expose:t}){const r=e,n=un("badge"),o=$(()=>r.isDot?"":Ze(r.value)&&Ze(r.max)?r.max<r.value?`${r.max}+`:`${r.value}`:`${r.value}`),a=$(()=>{var i,s,g,f,c;return[{backgroundColor:r.color,marginRight:en(-((s=(i=r.offset)==null?void 0:i[0])!=null?s:0)),marginTop:en((f=(g=r.offset)==null?void 0:g[1])!=null?f:0)},(c=r.badgeStyle)!=null?c:{}]});return t({content:o}),(i,s)=>(k(),G("div",{class:Ie(x(n).b())},[De(i.$slots,"default"),fn(Pa,{name:`${x(n).namespace.value}-zoom-in-center`,persisted:""},{default:Et(()=>[Sa(V("sup",{class:Ie([x(n).e("content"),x(n).em("content",i.type),x(n).is("fixed",!!i.$slots.default),x(n).is("dot",i.isDot),x(n).is("hide-zero",!i.showZero&&r.value===0),i.badgeClass]),style:Aa(x(a))},[De(i.$slots,"content",{value:x(o)},()=>[Yi(Ea(x(o)),1)])],6),[[Oa,!i.hidden&&(x(o)||i.isDot||i.$slots.content)]])]),_:3},8,["name"])],2))}});var lp=yt(sp,[["__file","badge.vue"]]);const up=bn(lp),cp=e=>e,Oi=["success","info","warning","error"],te=cp({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",plain:!1,offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:Ye?document.body:void 0}),fp=ot({customClass:{type:String,default:te.customClass},center:{type:Boolean,default:te.center},dangerouslyUseHTMLString:{type:Boolean,default:te.dangerouslyUseHTMLString},duration:{type:Number,default:te.duration},icon:{type:xu,default:te.icon},id:{type:String,default:te.id},message:{type:me([String,Object,Function]),default:te.message},onClose:{type:me(Function),default:te.onClose},showClose:{type:Boolean,default:te.showClose},type:{type:String,values:Oi,default:te.type},plain:{type:Boolean,default:te.plain},offset:{type:Number,default:te.offset},zIndex:{type:Number,default:te.zIndex},grouping:{type:Boolean,default:te.grouping},repeatNum:{type:Number,default:te.repeatNum}}),pp={destroy:()=>!0},ve=Zi([]),dp=e=>{const t=ve.findIndex(o=>o.id===e),r=ve[t];let n;return t>0&&(n=ve[t-1]),{current:r,prev:n}},yp=e=>{const{prev:t}=dp(e);return t?t.vm.exposed.bottom.value:0},hp=(e,t)=>ve.findIndex(n=>n.id===e)>0?16:t,mp=M({name:"ElMessage"}),vp=M({...mp,props:fp,emits:pp,setup(e,{expose:t}){const r=e,{Close:n}=Fu,{ns:o,zIndex:a}=$u("message"),{currentZIndex:i,nextZIndex:s}=a,g=le(),f=le(!1),c=le(0);let p;const b=$(()=>r.type?r.type==="error"?"danger":r.type:"info"),d=$(()=>{const E=r.type;return{[o.bm("icon",E)]:E&&lo[E]}}),l=$(()=>r.icon||lo[r.type]||""),_=$(()=>yp(r.id)),u=$(()=>hp(r.id,r.offset)+_.value),h=$(()=>c.value+u.value),m=$(()=>({top:`${u.value}px`,zIndex:i.value}));function S(){r.duration!==0&&({stop:p}=ns(()=>{O()},r.duration))}function A(){p==null||p()}function O(){f.value=!1}function P({code:E}){E===wn.esc&&O()}return It(()=>{S(),s(),f.value=!0}),Le(()=>r.repeatNum,()=>{A(),S()}),Ot(document,"keydown",P),ls(g,()=>{c.value=g.value.getBoundingClientRect().height}),t({visible:f,bottom:h,close:O}),(E,T)=>(k(),Je(Pa,{name:x(o).b("fade"),onBeforeLeave:E.onClose,onAfterLeave:I=>E.$emit("destroy"),persisted:""},{default:Et(()=>[Sa(V("div",{id:E.id,ref_key:"messageRef",ref:g,class:Ie([x(o).b(),{[x(o).m(E.type)]:E.type},x(o).is("center",E.center),x(o).is("closable",E.showClose),x(o).is("plain",E.plain),E.customClass]),style:Aa(x(m)),role:"alert",onMouseenter:A,onMouseleave:S},[E.repeatNum>1?(k(),Je(x(up),{key:0,value:E.repeatNum,type:x(b),class:Ie(x(o).e("badge"))},null,8,["value","type","class"])):bt("v-if",!0),x(l)?(k(),Je(x(so),{key:1,class:Ie([x(o).e("icon"),x(d)])},{default:Et(()=>[(k(),Je(es(x(l))))]),_:1},8,["class"])):bt("v-if",!0),De(E.$slots,"default",{},()=>[E.dangerouslyUseHTMLString?(k(),G(ts,{key:1},[bt(" Caution here, message could've been compromised, never use user's input as message "),V("p",{class:Ie(x(o).e("content")),innerHTML:E.message},null,10,["innerHTML"])],2112)):(k(),G("p",{key:0,class:Ie(x(o).e("content"))},Ea(E.message),3))]),E.showClose?(k(),Je(x(so),{key:2,class:Ie(x(o).e("closeBtn")),onClick:rs(O,["stop"])},{default:Et(()=>[fn(x(n))]),_:1},8,["class","onClick"])):bt("v-if",!0)],46,["id"]),[[Oa,f.value]])]),_:3},8,["name","onBeforeLeave","onAfterLeave"]))}});var gp=yt(vp,[["__file","message.vue"]]);const wp=ot({a11y:{type:Boolean,default:!0},locale:{type:me(Object)},size:ku,button:{type:me(Object)},experimentalFeatures:{type:me(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:me(Object)},zIndex:Number,namespace:{type:String,default:"el"},...qu}),he={},ty=M({name:"ElConfigProvider",props:wp,setup(e,{slots:t}){Le(()=>e.message,n=>{Object.assign(he,n??{})},{immediate:!0,deep:!0});const r=ja(e);return()=>De(t,"default",{config:r==null?void 0:r.value})}});let bp=1;const Pi=e=>{const t=!e||Rt(e)||Ca(e)||et(e)?{message:e}:e,r={...te,...t};if(!r.appendTo)r.appendTo=document.body;else if(Rt(r.appendTo)){let n=document.querySelector(r.appendTo);Zr(n)||(n=document.body),r.appendTo=n}return Un(he.grouping)&&!r.grouping&&(r.grouping=he.grouping),Ze(he.duration)&&r.duration===3e3&&(r.duration=he.duration),Ze(he.offset)&&r.offset===16&&(r.offset=he.offset),Un(he.showClose)&&!r.showClose&&(r.showClose=he.showClose),r},_p=e=>{const t=ve.indexOf(e);if(t===-1)return;ve.splice(t,1);const{handler:r}=e;r.close()},Sp=({appendTo:e,...t},r)=>{const n=`message_${bp++}`,o=t.onClose,a=document.createElement("div"),i={...t,id:n,onClose:()=>{o==null||o(),_p(c)},onDestroy:()=>{qn(null,a)}},s=fn(gp,i,et(i.message)||Ca(i.message)?{default:et(i.message)?i.message:()=>i.message}:null);s.appContext=r||rt._context,qn(s,a),e.appendChild(a.firstElementChild);const g=s.component,c={id:n,vnode:s,vm:g,handler:{close:()=>{g.exposed.visible.value=!1}},props:s.component.props};return c},rt=(e={},t)=>{if(!Ye)return{close:()=>{}};const r=Pi(e);if(r.grouping&&ve.length){const o=ve.find(({vnode:a})=>{var i;return((i=a.props)==null?void 0:i.message)===r.message});if(o)return o.props.repeatNum+=1,o.props.type=r.type,o.handler}if(Ze(he.max)&&ve.length>=he.max)return{close:()=>{}};const n=Sp(r,t);return ve.push(n),n.handler};Oi.forEach(e=>{rt[e]=(t={},r)=>{const n=Pi(t);return rt({...n,type:e},r)}});function Ap(e){for(const t of ve)(!e||e===t.props.type)&&t.handler.close()}rt.closeAll=Ap;rt._context=null;const ry=eu(rt,"$message");export{Vd as $,Id as A,Rd as B,Zd as C,Cd as D,wn as E,Bu as F,Ul as G,Np as H,Xp as I,so as J,Cp as K,Mp as L,Fp as M,kp as N,qp as O,Up as P,za as Q,Rp as R,od as S,xp as T,Zp as U,Ip as V,Bp as W,$u as X,jd as Y,$d as Z,yt as _,en as a,zd as a0,Hd as a1,yn as a2,Fa as a3,Na as a4,dn as a5,Ns as a6,Os as a7,Ra as a8,hs as a9,Hp as aA,zp as aB,Kp as aC,Md as aD,qd as aE,kd as aF,Ud as aG,Tl as aH,Rl as aI,xl as aJ,ql as aK,Il as aL,Nl as aM,Da as aN,Ne as aO,cp as aP,rd as aQ,Yp as aR,Qp as aS,Jp as aT,Dp as aU,hn as aa,nt as ab,yl as ac,He as ad,Bs as ae,tt as af,Ws as ag,Ot as ah,ls as ai,ed as aj,td as ak,Pp as al,Eu as am,bf as an,ty as ao,qu as ap,ku as aq,hu as ar,nd as as,Tp as at,Wp as au,Vp as av,Xe as aw,jp as ax,$p as ay,Gp as az,ot as b,Lp as c,me as d,ry as e,Wd as f,ld as g,Fd as h,xu as i,id as j,Nd as k,Kd as l,Xd as m,Dd as n,Td as o,Ld as p,Jd as q,xd as r,Gd as s,sd as t,ad as u,Qd as v,bn as w,Yd as x,ey as y,Bd as z}; diff --git a/.output/public/_nuxt/Bur7c29Y.js b/.output/public/_nuxt/Bur7c29Y.js new file mode 100644 index 0000000..8677a15 --- /dev/null +++ b/.output/public/_nuxt/Bur7c29Y.js @@ -0,0 +1 @@ +import{u as t}from"./C0eoOjsX.js";import{u as e}from"./y8qSb7BL.js";const a={__name:"index",setup(r){return t().replace("/index.html"),e({script:[{src:"https://app.gter.net/bottom?tpl=header&menukey=mj"},{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]}),(p,s)=>null}};export{a as default}; diff --git a/.output/public/_nuxt/C0eoOjsX.js b/.output/public/_nuxt/C0eoOjsX.js new file mode 100644 index 0000000..0d505ad --- /dev/null +++ b/.output/public/_nuxt/C0eoOjsX.js @@ -0,0 +1,25 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BP-Bk3NB.js","./BnReMd0k.js","./y8qSb7BL.js","./index.C-c7eKmS.css","./ijtA8km9.js","./DlAUqK2U.js","./top-head.Dl-EBmIP.css","./BE7hzMIt.js","./el-button.CsYDH6uT.css","./_id_.DdwZQJ0A.css","./CGGlHf3T.js","./index.D8KBBzil.css","./Bur7c29Y.js","./B4CZI61d.js","./index.DBngYpzy.css","./C5qEE_Gi.js","./error-404.Dt7vALhq.css","./DeU7cwoU.js","./error-500.CCfoYDQF.css"])))=>i.map(i=>d[i]); +var $c=Object.defineProperty;var Lc=(e,t,n)=>t in e?$c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var vt=(e,t,n)=>Lc(e,typeof t!="symbol"?t+"":t,n);/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function so(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ae={},rn=[],Ye=()=>{},Nc=()=>!1,qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),oo=e=>e.startsWith("onUpdate:"),Te=Object.assign,io=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},jc=Object.prototype.hasOwnProperty,oe=(e,t)=>jc.call(e,t),J=Array.isArray,sn=e=>_n(e)==="[object Map]",gl=e=>_n(e)==="[object Set]",Jm=e=>_n(e)==="[object Date]",Fc=e=>_n(e)==="[object RegExp]",Q=e=>typeof e=="function",de=e=>typeof e=="string",yt=e=>typeof e=="symbol",ce=e=>e!==null&&typeof e=="object",lo=e=>(ce(e)||Q(e))&&Q(e.then)&&Q(e.catch),ml=Object.prototype.toString,_n=e=>ml.call(e),Dc=e=>_n(e).slice(8,-1),yl=e=>_n(e)==="[object Object]",ao=e=>de(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,on=so(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Bc=/-(\w)/g,We=Hr(e=>e.replace(Bc,(t,n)=>n?n.toUpperCase():"")),Uc=/\B([A-Z])/g,kt=Hr(e=>e.replace(Uc,"-$1").toLowerCase()),$r=Hr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xr=Hr(e=>e?`on${$r(e)}`:""),xt=(e,t)=>!Object.is(e,t),ln=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},_l=(e,t,n,r=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},bl=e=>{const t=de(e)?Number(e):NaN;return isNaN(t)?e:t};let Fo;const Lr=()=>Fo||(Fo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Nr(e){if(J(e)){const t={};for(let n=0;n<e.length;n++){const r=e[n],s=de(r)?qc(r):Nr(r);if(s)for(const o in s)t[o]=s[o]}return t}else if(de(e)||ce(e))return e}const Kc=/;(?![^(]*\))/g,Vc=/:([^]+)/,Wc=/\/\*[^]*?\*\//g;function qc(e){const t={};return e.replace(Wc,"").split(Kc).forEach(n=>{if(n){const r=n.split(Vc);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function jr(e){let t="";if(de(e))t=e;else if(J(e))for(let n=0;n<e.length;n++){const r=jr(e[n]);r&&(t+=r+" ")}else if(ce(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function Gc(e){if(!e)return null;let{class:t,style:n}=e;return t&&!de(t)&&(e.class=jr(t)),n&&(e.style=Nr(n)),e}const Jc="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Yc=so(Jc);function vl(e){return!!e||e===""}const wl=e=>!!(e&&e.__v_isRef===!0),Qc=e=>de(e)?e:e==null?"":J(e)||ce(e)&&(e.toString===ml||!Q(e.toString))?wl(e)?Qc(e.value):JSON.stringify(e,El,2):String(e),El=(e,t)=>wl(t)?El(e,t.value):sn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[zr(r,o)+" =>"]=s,n),{})}:gl(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>zr(n))}:yt(t)?zr(t):ce(t)&&!J(t)&&!yl(t)?String(t):t,zr=(e,t="")=>{var n;return yt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Pe;class Tl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Pe,!t&&Pe&&(this.index=(Pe.scopes||(Pe.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=Pe;try{return Pe=this,t()}finally{Pe=n}}}on(){Pe=this}off(){Pe=this.parent}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n<r;n++)this.effects[n].stop();for(this.effects.length=0,n=0,r=this.cleanups.length;n<r;n++)this.cleanups[n]();if(this.cleanups.length=0,this.scopes){for(n=0,r=this.scopes.length;n<r;n++)this.scopes[n].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function Xc(e){return new Tl(e)}function co(){return Pe}function zc(e,t=!1){Pe&&Pe.cleanups.push(e)}let ue;const Zr=new WeakSet;class Rl{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,Pe&&Pe.active&&Pe.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Zr.has(this)&&(Zr.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Sl(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Do(this),xl(this);const t=ue,n=Qe;ue=this,Qe=!0;try{return this.fn()}finally{Al(this),ue=t,Qe=n,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)ho(t);this.deps=this.depsTail=void 0,Do(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Zr.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){ws(this)&&this.run()}get dirty(){return ws(this)}}let Cl=0,An,Pn;function Sl(e,t=!1){if(e.flags|=8,t){e.next=Pn,Pn=e;return}e.next=An,An=e}function fo(){Cl++}function uo(){if(--Cl>0)return;if(Pn){let t=Pn;for(Pn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;An;){let t=An;for(An=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function xl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Al(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),ho(r),Zc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function ws(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Pl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Pl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===jn))return;e.globalVersion=jn;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!ws(e)){e.flags&=-3;return}const n=ue,r=Qe;ue=e,Qe=!0;try{xl(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ue=n,Qe=r,Al(e),e.flags&=-3}}function ho(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)ho(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Zc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Qe=!0;const kl=[];function Ot(){kl.push(Qe),Qe=!1}function It(){const e=kl.pop();Qe=e===void 0?!0:e}function Do(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ue;ue=void 0;try{t()}finally{ue=n}}}let jn=0;class ef{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class po{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!ue||!Qe||ue===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ue)n=this.activeLink=new ef(ue,this),ue.deps?(n.prevDep=ue.depsTail,ue.depsTail.nextDep=n,ue.depsTail=n):ue.deps=ue.depsTail=n,Ol(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ue.depsTail,n.nextDep=void 0,ue.depsTail.nextDep=n,ue.depsTail=n,ue.deps===n&&(ue.deps=r)}return n}trigger(t){this.version++,jn++,this.notify(t)}notify(t){fo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{uo()}}}function Ol(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ol(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const mr=new WeakMap,Bt=Symbol(""),Es=Symbol(""),Fn=Symbol("");function Se(e,t,n){if(Qe&&ue){let r=mr.get(e);r||mr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new po),s.map=r,s.key=n),s.track()}}function dt(e,t,n,r,s,o){const i=mr.get(e);if(!i){jn++;return}const l=a=>{a&&a.trigger()};if(fo(),t==="clear")i.forEach(l);else{const a=J(e),f=a&&ao(n);if(a&&n==="length"){const c=Number(r);i.forEach((u,d)=>{(d==="length"||d===Fn||!yt(d)&&d>=c)&&l(u)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),f&&l(i.get(Fn)),t){case"add":a?f&&l(i.get("length")):(l(i.get(Bt)),sn(e)&&l(i.get(Es)));break;case"delete":a||(l(i.get(Bt)),sn(e)&&l(i.get(Es)));break;case"set":sn(e)&&l(i.get(Bt));break}}uo()}function tf(e,t){const n=mr.get(e);return n&&n.get(t)}function Qt(e){const t=te(e);return t===e?t:(Se(t,"iterate",Fn),Ve(e)?t:t.map(xe))}function Fr(e){return Se(e=te(e),"iterate",Fn),e}const nf={__proto__:null,[Symbol.iterator](){return es(this,Symbol.iterator,xe)},concat(...e){return Qt(this).concat(...e.map(t=>J(t)?Qt(t):t))},entries(){return es(this,"entries",e=>(e[1]=xe(e[1]),e))},every(e,t){return at(this,"every",e,t,void 0,arguments)},filter(e,t){return at(this,"filter",e,t,n=>n.map(xe),arguments)},find(e,t){return at(this,"find",e,t,xe,arguments)},findIndex(e,t){return at(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return at(this,"findLast",e,t,xe,arguments)},findLastIndex(e,t){return at(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return at(this,"forEach",e,t,void 0,arguments)},includes(...e){return ts(this,"includes",e)},indexOf(...e){return ts(this,"indexOf",e)},join(e){return Qt(this).join(e)},lastIndexOf(...e){return ts(this,"lastIndexOf",e)},map(e,t){return at(this,"map",e,t,void 0,arguments)},pop(){return En(this,"pop")},push(...e){return En(this,"push",e)},reduce(e,...t){return Bo(this,"reduce",e,t)},reduceRight(e,...t){return Bo(this,"reduceRight",e,t)},shift(){return En(this,"shift")},some(e,t){return at(this,"some",e,t,void 0,arguments)},splice(...e){return En(this,"splice",e)},toReversed(){return Qt(this).toReversed()},toSorted(e){return Qt(this).toSorted(e)},toSpliced(...e){return Qt(this).toSpliced(...e)},unshift(...e){return En(this,"unshift",e)},values(){return es(this,"values",xe)}};function es(e,t,n){const r=Fr(e),s=r[t]();return r!==e&&!Ve(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.value&&(o.value=n(o.value)),o}),s}const rf=Array.prototype;function at(e,t,n,r,s,o){const i=Fr(e),l=i!==e&&!Ve(e),a=i[t];if(a!==rf[t]){const u=a.apply(e,o);return l?xe(u):u}let f=n;i!==e&&(l?f=function(u,d){return n.call(this,xe(u),d,e)}:n.length>2&&(f=function(u,d){return n.call(this,u,d,e)}));const c=a.call(i,f,r);return l&&s?s(c):c}function Bo(e,t,n,r){const s=Fr(e);let o=n;return s!==e&&(Ve(e)?n.length>3&&(o=function(i,l,a){return n.call(this,i,l,a,e)}):o=function(i,l,a){return n.call(this,i,xe(l),a,e)}),s[t](o,...r)}function ts(e,t,n){const r=te(e);Se(r,"iterate",Fn);const s=r[t](...n);return(s===-1||s===!1)&&yo(n[0])?(n[0]=te(n[0]),r[t](...n)):s}function En(e,t,n=[]){Ot(),fo();const r=te(e)[t].apply(e,n);return uo(),It(),r}const sf=so("__proto__,__v_isRef,__isVue"),Il=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(yt));function of(e){yt(e)||(e=String(e));const t=te(this);return Se(t,"has",e),t.hasOwnProperty(e)}class Ml{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?mf:Nl:o?Ll:$l).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=J(t);if(!s){let a;if(i&&(a=nf[n]))return a;if(n==="hasOwnProperty")return of}const l=Reflect.get(t,n,Ee(t)?t:r);return(yt(n)?Il.has(n):sf(n))||(s||Se(t,"get",n),o)?l:Ee(l)?i&&ao(n)?l:l.value:ce(l)?s?Dr(l):Mt(l):l}}class Hl extends Ml{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const a=Pt(o);if(!Ve(r)&&!Pt(r)&&(o=te(o),r=te(r)),!J(t)&&Ee(o)&&!Ee(r))return a?!1:(o.value=r,!0)}const i=J(t)&&ao(n)?Number(n)<t.length:oe(t,n),l=Reflect.set(t,n,r,Ee(t)?t:s);return t===te(s)&&(i?xt(r,o)&&dt(t,"set",n,r):dt(t,"add",n,r)),l}deleteProperty(t,n){const r=oe(t,n);t[n];const s=Reflect.deleteProperty(t,n);return s&&r&&dt(t,"delete",n,void 0),s}has(t,n){const r=Reflect.has(t,n);return(!yt(n)||!Il.has(n))&&Se(t,"has",n),r}ownKeys(t){return Se(t,"iterate",J(t)?"length":Bt),Reflect.ownKeys(t)}}class lf extends Ml{constructor(t=!1){super(!0,t)}set(t,n){return!0}deleteProperty(t,n){return!0}}const af=new Hl,cf=new lf,ff=new Hl(!0);const Ts=e=>e,zn=e=>Reflect.getPrototypeOf(e);function uf(e,t,n){return function(...r){const s=this.__v_raw,o=te(s),i=sn(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,f=s[e](...r),c=n?Ts:t?Rs:xe;return!t&&Se(o,"iterate",a?Es:Bt),{next(){const{value:u,done:d}=f.next();return d?{value:u,done:d}:{value:l?[c(u[0]),c(u[1])]:c(u),done:d}},[Symbol.iterator](){return this}}}}function Zn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function df(e,t){const n={get(s){const o=this.__v_raw,i=te(o),l=te(s);e||(xt(s,l)&&Se(i,"get",s),Se(i,"get",l));const{has:a}=zn(i),f=t?Ts:e?Rs:xe;if(a.call(i,s))return f(o.get(s));if(a.call(i,l))return f(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Se(te(s),"iterate",Bt),Reflect.get(s,"size",s)},has(s){const o=this.__v_raw,i=te(o),l=te(s);return e||(xt(s,l)&&Se(i,"has",s),Se(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,a=te(l),f=t?Ts:e?Rs:xe;return!e&&Se(a,"iterate",Bt),l.forEach((c,u)=>s.call(o,f(c),f(u),i))}};return Te(n,e?{add:Zn("add"),set:Zn("set"),delete:Zn("delete"),clear:Zn("clear")}:{add(s){!t&&!Ve(s)&&!Pt(s)&&(s=te(s));const o=te(this);return zn(o).has.call(o,s)||(o.add(s),dt(o,"add",s,s)),this},set(s,o){!t&&!Ve(o)&&!Pt(o)&&(o=te(o));const i=te(this),{has:l,get:a}=zn(i);let f=l.call(i,s);f||(s=te(s),f=l.call(i,s));const c=a.call(i,s);return i.set(s,o),f?xt(o,c)&&dt(i,"set",s,o):dt(i,"add",s,o),this},delete(s){const o=te(this),{has:i,get:l}=zn(o);let a=i.call(o,s);a||(s=te(s),a=i.call(o,s)),l&&l.call(o,s);const f=o.delete(s);return a&&dt(o,"delete",s,void 0),f},clear(){const s=te(this),o=s.size!==0,i=s.clear();return o&&dt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=uf(s,e,t)}),n}function go(e,t){const n=df(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const hf={get:go(!1,!1)},pf={get:go(!1,!0)},gf={get:go(!0,!1)};const $l=new WeakMap,Ll=new WeakMap,Nl=new WeakMap,mf=new WeakMap;function yf(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function _f(e){return e.__v_skip||!Object.isExtensible(e)?0:yf(Dc(e))}function Mt(e){return Pt(e)?e:mo(e,!1,af,hf,$l)}function gt(e){return mo(e,!1,ff,pf,Ll)}function Dr(e){return mo(e,!0,cf,gf,Nl)}function mo(e,t,n,r,s){if(!ce(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=_f(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Ut(e){return Pt(e)?Ut(e.__v_raw):!!(e&&e.__v_isReactive)}function Pt(e){return!!(e&&e.__v_isReadonly)}function Ve(e){return!!(e&&e.__v_isShallow)}function yo(e){return e?!!e.__v_raw:!1}function te(e){const t=e&&e.__v_raw;return t?te(t):e}function bf(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&_l(e,"__v_skip",!0),e}const xe=e=>ce(e)?Mt(e):e,Rs=e=>ce(e)?Dr(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function Oe(e){return jl(e,!1)}function dn(e){return jl(e,!0)}function jl(e,t){return Ee(e)?e:new vf(e,t)}class vf{constructor(t,n){this.dep=new po,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:te(t),this._value=n?t:xe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ve(t)||Pt(t);t=r?t:te(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:xe(t),this.dep.trigger())}}function le(e){return Ee(e)?e.value:e}const wf={get:(e,t,n)=>t==="__v_raw"?e:le(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Ee(s)&&!Ee(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Fl(e){return Ut(e)?e:new Proxy(e,wf)}function Ym(e){const t=J(e)?new Array(e.length):{};for(const n in e)t[n]=Dl(e,n);return t}class Ef{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return tf(te(this._object),this._key)}}class Tf{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Rf(e,t,n){return Ee(e)?e:Q(e)?new Tf(e):ce(e)&&arguments.length>1?Dl(e,t,n):Oe(e)}function Dl(e,t,n){const r=e[t];return Ee(r)?r:new Ef(e,t,n)}class Cf{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new po(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=jn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ue!==this)return Sl(this,!0),!0}get value(){const t=this.dep.track();return Pl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sf(e,t,n=!1){let r,s;return Q(e)?r=e:(r=e.get,s=e.set),new Cf(r,s,n)}const er={},yr=new WeakMap;let Ft;function xf(e,t=!1,n=Ft){if(n){let r=yr.get(n);r||yr.set(n,r=[]),r.push(e)}}function Af(e,t,n=ae){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,f=_=>s?_:Ve(_)||s===!1||s===0?ht(_,1):ht(_);let c,u,d,h,b=!1,y=!1;if(Ee(e)?(u=()=>e.value,b=Ve(e)):Ut(e)?(u=()=>f(e),b=!0):J(e)?(y=!0,b=e.some(_=>Ut(_)||Ve(_)),u=()=>e.map(_=>{if(Ee(_))return _.value;if(Ut(_))return f(_);if(Q(_))return a?a(_,2):_()})):Q(e)?t?u=a?()=>a(e,2):e:u=()=>{if(d){Ot();try{d()}finally{It()}}const _=Ft;Ft=c;try{return a?a(e,3,[h]):e(h)}finally{Ft=_}}:u=Ye,t&&s){const _=u,v=s===!0?1/0:s;u=()=>ht(_(),v)}const R=co(),T=()=>{c.stop(),R&&R.active&&io(R.effects,c)};if(o&&t){const _=t;t=(...v)=>{_(...v),T()}}let E=y?new Array(e.length).fill(er):er;const g=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const v=c.run();if(s||b||(y?v.some((C,M)=>xt(C,E[M])):xt(v,E))){d&&d();const C=Ft;Ft=c;try{const M=[v,E===er?void 0:y&&E[0]===er?[]:E,h];a?a(t,3,M):t(...M),E=v}finally{Ft=C}}}else c.run()};return l&&l(g),c=new Rl(u),c.scheduler=i?()=>i(g,!1):g,h=_=>xf(_,!1,c),d=c.onStop=()=>{const _=yr.get(c);if(_){if(a)a(_,4);else for(const v of _)v();yr.delete(c)}},t?r?g(!0):E=c.run():i?i(g.bind(null,!0),!0):c.run(),T.pause=c.pause.bind(c),T.resume=c.resume.bind(c),T.stop=T,T}function ht(e,t=1/0,n){if(t<=0||!ce(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,Ee(e))ht(e.value,t,n);else if(J(e))for(let r=0;r<e.length;r++)ht(e[r],t,n);else if(gl(e)||sn(e))e.forEach(r=>{ht(r,t,n)});else if(yl(e)){for(const r in e)ht(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ht(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Gn(e,t,n,r){try{return r?e(...r):e()}catch(s){bn(s,t,n)}}function Xe(e,t,n,r){if(Q(e)){const s=Gn(e,t,n,r);return s&&lo(s)&&s.catch(o=>{bn(o,t,n)}),s}if(J(e)){const s=[];for(let o=0;o<e.length;o++)s.push(Xe(e[o],t,n,r));return s}}function bn(e,t,n,r=!0){const s=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:i}=t&&t.appContext.config||ae;if(t){let l=t.parent;const a=t.proxy,f=`https://vuejs.org/error-reference/#runtime-${n}`;for(;l;){const c=l.ec;if(c){for(let u=0;u<c.length;u++)if(c[u](e,a,f)===!1)return}l=l.parent}if(o){Ot(),Gn(o,null,10,[e,a,f]),It();return}}Pf(e,n,s,r,i)}function Pf(e,t,n,r=!0,s=!1){if(s)throw e;console.error(e)}const ke=[];let rt=-1;const an=[];let Et=null,zt=0;const Bl=Promise.resolve();let _r=null;function vn(e){const t=_r||Bl;return e?t.then(this?e.bind(this):e):t}function kf(e){let t=rt+1,n=ke.length;for(;t<n;){const r=t+n>>>1,s=ke[r],o=Dn(s);o<e||o===e&&s.flags&2?t=r+1:n=r}return t}function _o(e){if(!(e.flags&1)){const t=Dn(e),n=ke[ke.length-1];!n||!(e.flags&2)&&t>=Dn(n)?ke.push(e):ke.splice(kf(t),0,e),e.flags|=1,Ul()}}function Ul(){_r||(_r=Bl.then(Kl))}function Cs(e){J(e)?an.push(...e):Et&&e.id===-1?Et.splice(zt+1,0,e):e.flags&1||(an.push(e),e.flags|=1),Ul()}function Uo(e,t,n=rt+1){for(;n<ke.length;n++){const r=ke[n];if(r&&r.flags&2){if(e&&r.id!==e.uid)continue;ke.splice(n,1),n--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function br(e){if(an.length){const t=[...new Set(an)].sort((n,r)=>Dn(n)-Dn(r));if(an.length=0,Et){Et.push(...t);return}for(Et=t,zt=0;zt<Et.length;zt++){const n=Et[zt];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}Et=null,zt=0}}const Dn=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Kl(e){try{for(rt=0;rt<ke.length;rt++){const t=ke[rt];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Gn(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;rt<ke.length;rt++){const t=ke[rt];t&&(t.flags&=-2)}rt=-1,ke.length=0,br(),_r=null,(ke.length||an.length)&&Kl()}}let ve=null,Vl=null;function vr(e){const t=ve;return ve=e,Vl=e&&e.type.__scopeId||null,t}function Wl(e,t=ve,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&si(-1);const o=vr(t);let i;try{i=e(...s)}finally{vr(o),r._d&&si(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Qm(e,t){if(ve===null)return e;const n=Vr(ve),r=e.dirs||(e.dirs=[]);for(let s=0;s<t.length;s++){let[o,i,l,a=ae]=t[s];o&&(Q(o)&&(o={mounted:o,updated:o}),o.deep&&ht(i),r.push({dir:o,instance:n,value:i,oldValue:void 0,arg:l,modifiers:a}))}return e}function st(e,t,n,r){const s=e.dirs,o=t&&t.dirs;for(let i=0;i<s.length;i++){const l=s[i];o&&(l.oldValue=o[i].value);let a=l.dir[r];a&&(Ot(),Xe(a,n,8,[e.el,l,e,t]),It())}}const ql=Symbol("_vte"),Gl=e=>e.__isTeleport,kn=e=>e&&(e.disabled||e.disabled===""),Ko=e=>e&&(e.defer||e.defer===""),Vo=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Wo=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Ss=(e,t)=>{const n=e&&e.to;return de(n)?t?t(n):null:n},Jl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,a,f){const{mc:c,pc:u,pbc:d,o:{insert:h,querySelector:b,createText:y,createComment:R}}=f,T=kn(t.props);let{shapeFlag:E,children:g,dynamicChildren:_}=t;if(e==null){const v=t.el=y(""),C=t.anchor=y("");h(v,n,r),h(C,n,r);const M=(P,O)=>{E&16&&(s&&s.isCE&&(s.ce._teleportTarget=P),c(g,P,O,s,o,i,l,a))},D=()=>{const P=t.target=Ss(t.props,b),O=Yl(P,t,y,h);P&&(i!=="svg"&&Vo(P)?i="svg":i!=="mathml"&&Wo(P)&&(i="mathml"),T||(M(P,O),fr(t,!1)))};T&&(M(n,C),fr(t,!0)),Ko(t.props)?ye(()=>{D(),t.el.__isMounted=!0},o):D()}else{if(Ko(t.props)&&!e.el.__isMounted){ye(()=>{Jl.process(e,t,n,r,s,o,i,l,a,f),delete e.el.__isMounted},o);return}t.el=e.el,t.targetStart=e.targetStart;const v=t.anchor=e.anchor,C=t.target=e.target,M=t.targetAnchor=e.targetAnchor,D=kn(e.props),P=D?n:C,O=D?v:M;if(i==="svg"||Vo(C)?i="svg":(i==="mathml"||Wo(C))&&(i="mathml"),_?(d(e.dynamicChildren,_,P,s,o,i,l),Eo(e,t,!0)):a||u(e,t,P,O,s,o,i,l,!1),T)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):tr(t,n,v,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const K=t.target=Ss(t.props,b);K&&tr(t,K,null,f,0)}else D&&tr(t,C,M,f,1);fr(t,T)}},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:a,targetStart:f,targetAnchor:c,target:u,props:d}=e;if(u&&(s(f),s(c)),o&&s(a),i&16){const h=o||!kn(d);for(let b=0;b<l.length;b++){const y=l[b];r(y,t,n,h,!!y.dynamicChildren)}}},move:tr,hydrate:Of};function tr(e,t,n,{o:{insert:r},m:s},o=2){o===0&&r(e.targetAnchor,t,n);const{el:i,anchor:l,shapeFlag:a,children:f,props:c}=e,u=o===2;if(u&&r(i,t,n),(!u||kn(c))&&a&16)for(let d=0;d<f.length;d++)s(f[d],t,n,2);u&&r(l,t,n)}function Of(e,t,n,r,s,o,{o:{nextSibling:i,parentNode:l,querySelector:a,insert:f,createText:c}},u){const d=t.target=Ss(t.props,a);if(d){const h=kn(t.props),b=d._lpa||d.firstChild;if(t.shapeFlag&16)if(h)t.anchor=u(i(e),t,l(e),n,r,s,o),t.targetStart=b,t.targetAnchor=b&&i(b);else{t.anchor=i(e);let y=b;for(;y;){if(y&&y.nodeType===8){if(y.data==="teleport start anchor")t.targetStart=y;else if(y.data==="teleport anchor"){t.targetAnchor=y,d._lpa=t.targetAnchor&&i(t.targetAnchor);break}}y=i(y)}t.targetAnchor||Yl(d,t,c,f),u(b&&i(b),t,d,n,r,s,o)}fr(t,h)}return t.anchor&&i(t.anchor)}const Xm=Jl;function fr(e,t){const n=e.ctx;if(n&&n.ut){let r,s;for(t?(r=e.el,s=e.anchor):(r=e.targetStart,s=e.targetAnchor);r&&r!==s;)r.nodeType===1&&r.setAttribute("data-v-owner",n.uid),r=r.nextSibling;n.ut()}}function Yl(e,t,n,r){const s=t.targetStart=n(""),o=t.targetAnchor=n("");return s[ql]=o,e&&(r(s,e),r(o,e)),o}const Tt=Symbol("_leaveCb"),nr=Symbol("_enterCb");function If(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Qn(()=>{e.isMounted=!0}),vo(()=>{e.isUnmounting=!0}),e}const Be=[Function,Array],Ql={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Be,onEnter:Be,onAfterEnter:Be,onEnterCancelled:Be,onBeforeLeave:Be,onLeave:Be,onAfterLeave:Be,onLeaveCancelled:Be,onBeforeAppear:Be,onAppear:Be,onAfterAppear:Be,onAppearCancelled:Be},Xl=e=>{const t=e.subTree;return t.component?Xl(t.component):t},Mf={name:"BaseTransition",props:Ql,setup(e,{slots:t}){const n=lt(),r=If();return()=>{const s=t.default&&ea(t.default(),!0);if(!s||!s.length)return;const o=zl(s),i=te(e),{mode:l}=i;if(r.isLeaving)return ns(o);const a=qo(o);if(!a)return ns(o);let f=xs(a,i,r,n,u=>f=u);a.type!==_e&&hn(a,f);let c=n.subTree&&qo(n.subTree);if(c&&c.type!==_e&&!Je(a,c)&&Xl(n).type!==_e){let u=xs(c,i,r,n);if(hn(c,u),l==="out-in"&&a.type!==_e)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},ns(o);l==="in-out"&&a.type!==_e?u.delayLeave=(d,h,b)=>{const y=Zl(r,c);y[String(c.key)]=c,d[Tt]=()=>{h(),d[Tt]=void 0,delete f.delayedLeave,c=void 0},f.delayedLeave=()=>{b(),delete f.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function zl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==_e){t=n;break}}return t}const Hf=Mf;function Zl(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function xs(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:f,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:d,onLeave:h,onAfterLeave:b,onLeaveCancelled:y,onBeforeAppear:R,onAppear:T,onAfterAppear:E,onAppearCancelled:g}=t,_=String(e.key),v=Zl(n,e),C=(P,O)=>{P&&Xe(P,r,9,O)},M=(P,O)=>{const K=O[1];C(P,O),J(P)?P.every(H=>H.length<=1)&&K():P.length<=1&&K()},D={mode:i,persisted:l,beforeEnter(P){let O=a;if(!n.isMounted)if(o)O=R||a;else return;P[Tt]&&P[Tt](!0);const K=v[_];K&&Je(e,K)&&K.el[Tt]&&K.el[Tt](),C(O,[P])},enter(P){let O=f,K=c,H=u;if(!n.isMounted)if(o)O=T||f,K=E||c,H=g||u;else return;let q=!1;const Z=P[nr]=ne=>{q||(q=!0,ne?C(H,[P]):C(K,[P]),D.delayedLeave&&D.delayedLeave(),P[nr]=void 0)};O?M(O,[P,Z]):Z()},leave(P,O){const K=String(e.key);if(P[nr]&&P[nr](!0),n.isUnmounting)return O();C(d,[P]);let H=!1;const q=P[Tt]=Z=>{H||(H=!0,O(),Z?C(y,[P]):C(b,[P]),P[Tt]=void 0,v[K]===e&&delete v[K])};v[K]=e,h?M(h,[P,q]):q()},clone(P){const O=xs(P,t,n,r,s);return s&&s(O),O}};return D}function ns(e){if(Yn(e))return e=mt(e),e.children=null,e}function qo(e){if(!Yn(e))return Gl(e.type)&&e.children?zl(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Q(n.default))return n.default()}}function hn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,hn(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 ea(e,t=!1,n){let r=[],s=0;for(let o=0;o<e.length;o++){let i=e[o];const l=n==null?i.key:String(n)+String(i.key!=null?i.key:o);i.type===Re?(i.patchFlag&128&&s++,r=r.concat(ea(i.children,t,l))):(t||i.type!==_e)&&r.push(l!=null?mt(i,{key:l}):i)}if(s>1)for(let o=0;o<r.length;o++)r[o].patchFlag=-2;return r}/*! #__NO_SIDE_EFFECTS__ */function Jn(e,t){return Q(e)?Te({name:e.name},t,{setup:e}):e}function bo(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Bn(e,t,n,r,s=!1){if(J(e)){e.forEach((b,y)=>Bn(b,t&&(J(t)?t[y]:t),n,r,s));return}if(At(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Bn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Vr(r.component):r.el,i=s?null:o,{i:l,r:a}=e,f=t&&t.r,c=l.refs===ae?l.refs={}:l.refs,u=l.setupState,d=te(u),h=u===ae?()=>!1:b=>oe(d,b);if(f!=null&&f!==a&&(de(f)?(c[f]=null,h(f)&&(u[f]=null)):Ee(f)&&(f.value=null)),Q(a))Gn(a,l,12,[i,c]);else{const b=de(a),y=Ee(a);if(b||y){const R=()=>{if(e.f){const T=b?h(a)?u[a]:c[a]:a.value;s?J(T)&&io(T,o):J(T)?T.includes(o)||T.push(o):b?(c[a]=[o],h(a)&&(u[a]=c[a])):(a.value=[o],e.k&&(c[e.k]=a.value))}else b?(c[a]=i,h(a)&&(u[a]=i)):y&&(a.value=i,e.k&&(c[e.k]=i))};i?(R.id=-1,ye(R,n)):R()}}}let Go=!1;const Xt=()=>{Go||(console.error("Hydration completed but contains mismatches."),Go=!0)},$f=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Lf=e=>e.namespaceURI.includes("MathML"),rr=e=>{if(e.nodeType===1){if($f(e))return"svg";if(Lf(e))return"mathml"}},tn=e=>e.nodeType===8;function Nf(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:a,createComment:f}}=e,c=(g,_)=>{if(!_.hasChildNodes()){n(null,g,_),br(),_._vnode=g;return}u(_.firstChild,g,null,null,null),br(),_._vnode=g},u=(g,_,v,C,M,D=!1)=>{D=D||!!_.dynamicChildren;const P=tn(g)&&g.data==="[",O=()=>y(g,_,v,C,M,P),{type:K,ref:H,shapeFlag:q,patchFlag:Z}=_;let ne=g.nodeType;_.el=g,Z===-2&&(D=!1,_.dynamicChildren=null);let U=null;switch(K){case Vt:ne!==3?_.children===""?(a(_.el=s(""),i(g),g),U=g):U=O():(g.data!==_.children&&(Xt(),g.data=_.children),U=o(g));break;case _e:E(g)?(U=o(g),T(_.el=g.content.firstChild,g,v)):ne!==8||P?U=O():U=o(g);break;case In:if(P&&(g=o(g),ne=g.nodeType),ne===1||ne===3){U=g;const z=!_.children.length;for(let V=0;V<_.staticCount;V++)z&&(_.children+=U.nodeType===1?U.outerHTML:U.data),V===_.staticCount-1&&(_.anchor=U),U=o(U);return P?o(U):U}else O();break;case Re:P?U=b(g,_,v,C,M,D):U=O();break;default:if(q&1)(ne!==1||_.type.toLowerCase()!==g.tagName.toLowerCase())&&!E(g)?U=O():U=d(g,_,v,C,M,D);else if(q&6){_.slotScopeIds=M;const z=i(g);if(P?U=R(g):tn(g)&&g.data==="teleport start"?U=R(g,g.data,"teleport end"):U=o(g),t(_,z,null,v,C,rr(z),D),At(_)&&!_.type.__asyncResolved){let V;P?(V=pe(Re),V.anchor=U?U.previousSibling:z.lastChild):V=g.nodeType===3?La(""):pe("div"),V.el=g,_.component.subTree=V}}else q&64?ne!==8?U=O():U=_.type.hydrate(g,_,v,C,M,D,e,h):q&128&&(U=_.type.hydrate(g,_,v,C,rr(i(g)),M,D,e,u))}return H!=null&&Bn(H,null,C,_),U},d=(g,_,v,C,M,D)=>{D=D||!!_.dynamicChildren;const{type:P,props:O,patchFlag:K,shapeFlag:H,dirs:q,transition:Z}=_,ne=P==="input"||P==="option";if(ne||K!==-1){q&&st(_,null,v,"created");let U=!1;if(E(g)){U=Ra(null,Z)&&v&&v.vnode.props&&v.vnode.props.appear;const V=g.content.firstChild;U&&Z.beforeEnter(V),T(V,g,v),_.el=g=V}if(H&16&&!(O&&(O.innerHTML||O.textContent))){let V=h(g.firstChild,_,g,v,C,M,D);for(;V;){sr(g,1)||Xt();const me=V;V=V.nextSibling,l(me)}}else if(H&8){let V=_.children;V[0]===` +`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(V=V.slice(1)),g.textContent!==V&&(sr(g,0)||Xt(),g.textContent=_.children)}if(O){if(ne||!D||K&48){const V=g.tagName.includes("-");for(const me in O)(ne&&(me.endsWith("value")||me==="indeterminate")||qn(me)&&!on(me)||me[0]==="."||V)&&r(g,me,null,O[me],void 0,v)}else if(O.onClick)r(g,"onClick",null,O.onClick,void 0,v);else if(K&4&&Ut(O.style))for(const V in O.style)O.style[V]}let z;(z=O&&O.onVnodeBeforeMount)&&Me(z,v,_),q&&st(_,null,v,"beforeMount"),((z=O&&O.onVnodeMounted)||q||U)&&ka(()=>{z&&Me(z,v,_),U&&Z.enter(g),q&&st(_,null,v,"mounted")},C)}return g.nextSibling},h=(g,_,v,C,M,D,P)=>{P=P||!!_.dynamicChildren;const O=_.children,K=O.length;for(let H=0;H<K;H++){const q=P?O[H]:O[H]=Fe(O[H]),Z=q.type===Vt;g?(Z&&!P&&H+1<K&&Fe(O[H+1]).type===Vt&&(a(s(g.data.slice(q.children.length)),v,o(g)),g.data=q.children),g=u(g,q,C,M,D,P)):Z&&!q.children?a(q.el=s(""),v):(sr(v,1)||Xt(),n(null,q,v,null,C,M,rr(v),D))}return g},b=(g,_,v,C,M,D)=>{const{slotScopeIds:P}=_;P&&(M=M?M.concat(P):P);const O=i(g),K=h(o(g),_,O,v,C,M,D);return K&&tn(K)&&K.data==="]"?o(_.anchor=K):(Xt(),a(_.anchor=f("]"),O,K),K)},y=(g,_,v,C,M,D)=>{if(sr(g.parentElement,1)||Xt(),_.el=null,D){const K=R(g);for(;;){const H=o(g);if(H&&H!==K)l(H);else break}}const P=o(g),O=i(g);return l(g),n(null,_,O,P,v,C,rr(O),M),v&&(v.vnode.el=_.el,Kr(v,_.el)),P},R=(g,_="[",v="]")=>{let C=0;for(;g;)if(g=o(g),g&&tn(g)&&(g.data===_&&C++,g.data===v)){if(C===0)return o(g);C--}return g},T=(g,_,v)=>{const C=_.parentNode;C&&C.replaceChild(g,_);let M=v;for(;M;)M.vnode.el===_&&(M.vnode.el=M.subTree.el=g),M=M.parent},E=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[c,u]}const Jo="data-allow-mismatch",jf={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function sr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Jo);)e=e.parentElement;const n=e&&e.getAttribute(Jo);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(jf[t])}}Lr().requestIdleCallback;Lr().cancelIdleCallback;function Ff(e,t){if(tn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(tn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const At=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Yo(e){Q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:l=!0,onError:a}=e;let f=null,c,u=0;const d=()=>(u++,f=null,h()),h=()=>{let b;return f||(b=f=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((R,T)=>{a(y,()=>R(d()),()=>T(y),u+1)});throw y}).then(y=>b!==f&&f?f:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return Jn({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(b,y,R){const T=o?()=>{const E=o(R,g=>Ff(b,g));E&&(y.bum||(y.bum=[])).push(E)}:R;c?T():h().then(()=>!y.isUnmounted&&T())},get __asyncResolved(){return c},setup(){const b=be;if(bo(b),c)return()=>rs(c,b);const y=g=>{f=null,bn(g,b,13,!r)};if(l&&b.suspense||gn)return h().then(g=>()=>rs(g,b)).catch(g=>(y(g),()=>r?pe(r,{error:g}):null));const R=Oe(!1),T=Oe(),E=Oe(!!s);return s&&setTimeout(()=>{E.value=!1},s),i!=null&&setTimeout(()=>{if(!R.value&&!T.value){const g=new Error(`Async component timed out after ${i}ms.`);y(g),T.value=g}},i),h().then(()=>{R.value=!0,b.parent&&Yn(b.parent.vnode)&&b.parent.update()}).catch(g=>{y(g),T.value=g}),()=>{if(R.value&&c)return rs(c,b);if(T.value&&r)return pe(r,{error:T.value});if(n&&!E.value)return pe(n)}}})}function rs(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=pe(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const Yn=e=>e.type.__isKeepAlive,Df={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=lt(),r=n.ctx;if(!r.renderer)return()=>{const E=t.default&&t.default();return E&&E.length===1?E[0]:E};const s=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:a,m:f,um:c,o:{createElement:u}}}=r,d=u("div");r.activate=(E,g,_,v,C)=>{const M=E.component;f(E,g,_,0,l),a(M.vnode,E,g,_,M,l,v,E.slotScopeIds,C),ye(()=>{M.isDeactivated=!1,M.a&&ln(M.a);const D=E.props&&E.props.onVnodeMounted;D&&Me(D,M.parent,E)},l)},r.deactivate=E=>{const g=E.component;Er(g.m),Er(g.a),f(E,d,null,1,l),ye(()=>{g.da&&ln(g.da);const _=E.props&&E.props.onVnodeUnmounted;_&&Me(_,g.parent,E),g.isDeactivated=!0},l)};function h(E){ss(E),c(E,n,l,!0)}function b(E){s.forEach((g,_)=>{const v=Ls(g.type);v&&!E(v)&&y(_)})}function y(E){const g=s.get(E);g&&(!i||!Je(g,i))?h(g):i&&ss(i),s.delete(E),o.delete(E)}cn(()=>[e.include,e.exclude],([E,g])=>{E&&b(_=>Sn(E,_)),g&&b(_=>!Sn(g,_))},{flush:"post",deep:!0});let R=null;const T=()=>{R!=null&&(Tr(n.subTree.type)?ye(()=>{s.set(R,or(n.subTree))},n.subTree.suspense):s.set(R,or(n.subTree)))};return Qn(T),na(T),vo(()=>{s.forEach(E=>{const{subTree:g,suspense:_}=n,v=or(g);if(E.type===v.type&&E.key===v.key){ss(v);const C=v.component.da;C&&ye(C,_);return}h(E)})}),()=>{if(R=null,!t.default)return i=null;const E=t.default(),g=E[0];if(E.length>1)return i=null,E;if(!Wt(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return i=null,g;let _=or(g);if(_.type===_e)return i=null,_;const v=_.type,C=Ls(At(_)?_.type.__asyncResolved||{}:v),{include:M,exclude:D,max:P}=e;if(M&&(!C||!Sn(M,C))||D&&C&&Sn(D,C))return _.shapeFlag&=-257,i=_,g;const O=_.key==null?v:_.key,K=s.get(O);return _.el&&(_=mt(_),g.shapeFlag&128&&(g.ssContent=_)),R=O,K?(_.el=K.el,_.component=K.component,_.transition&&hn(_,_.transition),_.shapeFlag|=512,o.delete(O),o.add(O)):(o.add(O),P&&o.size>parseInt(P,10)&&y(o.values().next().value)),_.shapeFlag|=256,i=_,Tr(g.type)?g:_}}},Bf=Df;function Sn(e,t){return J(e)?e.some(n=>Sn(n,t)):de(e)?e.split(",").includes(t):Fc(e)?(e.lastIndex=0,e.test(t)):!1}function Uf(e,t){ta(e,"a",t)}function Kf(e,t){ta(e,"da",t)}function ta(e,t,n=be){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Br(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Yn(s.parent.vnode)&&Vf(r,t,n,s),s=s.parent}}function Vf(e,t,n,r){const s=Br(t,e,r,!0);ra(()=>{io(r[t],s)},n)}function ss(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function or(e){return e.shapeFlag&128?e.ssContent:e}function Br(e,t,n=be,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Ot();const l=qt(n),a=Xe(t,n,e,i);return l(),It(),a});return r?s.unshift(o):s.push(o),o}}const _t=e=>(t,n=be)=>{(!gn||e==="sp")&&Br(e,(...r)=>t(...r),n)},Wf=_t("bm"),Qn=_t("m"),qf=_t("bu"),na=_t("u"),vo=_t("bum"),ra=_t("um"),Gf=_t("sp"),Jf=_t("rtg"),Yf=_t("rtc");function sa(e,t=be){Br("ec",e,t)}const oa="components";function zm(e,t){return la(oa,e,!0,t)||e}const ia=Symbol.for("v-ndc");function Qf(e){return de(e)?la(oa,e,!1)||e:e||ia}function la(e,t,n=!0,r=!1){const s=ve||be;if(s){const o=s.type;{const l=Ls(o,!1);if(l&&(l===t||l===We(t)||l===$r(We(t))))return o}const i=Qo(s[e]||o[e],t)||Qo(s.appContext[e],t);return!i&&r?o:i}}function Qo(e,t){return e&&(e[t]||e[We(t)]||e[$r(We(t))])}function Zm(e,t,n,r){let s;const o=n,i=J(e);if(i||de(e)){const l=i&&Ut(e);let a=!1;l&&(a=!Ve(e),e=Fr(e)),s=new Array(e.length);for(let f=0,c=e.length;f<c;f++)s[f]=t(a?xe(e[f]):e[f],f,void 0,o)}else if(typeof e=="number"){s=new Array(e);for(let l=0;l<e;l++)s[l]=t(l+1,l,void 0,o)}else if(ce(e))if(e[Symbol.iterator])s=Array.from(e,(l,a)=>t(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,f=l.length;a<f;a++){const c=l[a];s[a]=t(e[c],c,a,o)}}else s=[];return s}function ey(e,t){for(let n=0;n<t.length;n++){const r=t[n];if(J(r))for(let s=0;s<r.length;s++)e[r[s].name]=r[s].fn;else r&&(e[r.name]=r.key?(...s)=>{const o=r.fn(...s);return o&&(o.key=r.key),o}:r.fn)}return e}function ty(e,t,n={},r,s){if(ve.ce||ve.parent&&At(ve.parent)&&ve.parent.ce)return t!=="default"&&(n.name=t),Ke(),pt(Re,null,[pe("slot",n,r&&r())],64);let o=e[t];o&&o._c&&(o._d=!1),Ke();const i=o&&aa(o(n)),l=n.key||i&&i.key,a=pt(Re,{key:(l&&!yt(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||(r?r():[]),i&&e._===1?64:-2);return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function aa(e){return e.some(t=>Wt(t)?!(t.type===_e||t.type===Re&&!aa(t.children)):!0)?e:null}const As=e=>e?Na(e)?Vr(e):As(e.parent):null,On=Te(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=>As(e.parent),$root:e=>As(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ua(e),$forceUpdate:e=>e.f||(e.f=()=>{_o(e.update)}),$nextTick:e=>e.n||(e.n=vn.bind(e.proxy)),$watch:e=>yu.bind(e)}),os=(e,t)=>e!==ae&&!e.__isScriptSetup&&oe(e,t),Xf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:a}=e;let f;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(os(r,t))return i[t]=1,r[t];if(s!==ae&&oe(s,t))return i[t]=2,s[t];if((f=e.propsOptions[0])&&oe(f,t))return i[t]=3,o[t];if(n!==ae&&oe(n,t))return i[t]=4,n[t];Ps&&(i[t]=0)}}const c=On[t];let u,d;if(c)return t==="$attrs"&&Se(e.attrs,"get",""),c(e);if((u=l.__cssModules)&&(u=u[t]))return u;if(n!==ae&&oe(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,oe(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return os(s,t)?(s[t]=n,!0):r!==ae&&oe(r,t)?(r[t]=n,!0):oe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==ae&&oe(e,i)||os(t,i)||(l=o[0])&&oe(l,i)||oe(r,i)||oe(On,i)||oe(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ny(){return ca().slots}function ry(){return ca().attrs}function ca(){const e=lt();return e.setupContext||(e.setupContext=Fa(e))}function Xo(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function sy(e){const t=lt();let n=e();return Hs(),lo(n)&&(n=n.catch(r=>{throw qt(t),r})),[n,()=>qt(t)]}let Ps=!0;function zf(e){const t=ua(e),n=e.proxy,r=e.ctx;Ps=!1,t.beforeCreate&&zo(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:f,created:c,beforeMount:u,mounted:d,beforeUpdate:h,updated:b,activated:y,deactivated:R,beforeDestroy:T,beforeUnmount:E,destroyed:g,unmounted:_,render:v,renderTracked:C,renderTriggered:M,errorCaptured:D,serverPrefetch:P,expose:O,inheritAttrs:K,components:H,directives:q,filters:Z}=t;if(f&&Zf(f,r,null),i)for(const z in i){const V=i[z];Q(V)&&(r[z]=V.bind(n))}if(s){const z=s.call(n,n);ce(z)&&(e.data=Mt(z))}if(Ps=!0,o)for(const z in o){const V=o[z],me=Q(V)?V.bind(n,n):Q(V.get)?V.get.bind(n,n):Ye,bt=!Q(V)&&Q(V.set)?V.set.bind(n):Ye,tt=He({get:me,set:bt});Object.defineProperty(r,z,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Ie=>tt.value=Ie})}if(l)for(const z in l)fa(l[z],r,n,z);if(a){const z=Q(a)?a.call(n):a;Reflect.ownKeys(z).forEach(V=>{ot(V,z[V])})}c&&zo(c,e,"c");function U(z,V){J(V)?V.forEach(me=>z(me.bind(n))):V&&z(V.bind(n))}if(U(Wf,u),U(Qn,d),U(qf,h),U(na,b),U(Uf,y),U(Kf,R),U(sa,D),U(Yf,C),U(Jf,M),U(vo,E),U(ra,_),U(Gf,P),J(O))if(O.length){const z=e.exposed||(e.exposed={});O.forEach(V=>{Object.defineProperty(z,V,{get:()=>n[V],set:me=>n[V]=me})})}else e.exposed||(e.exposed={});v&&e.render===Ye&&(e.render=v),K!=null&&(e.inheritAttrs=K),H&&(e.components=H),q&&(e.directives=q),P&&bo(e)}function Zf(e,t,n=Ye){J(e)&&(e=ks(e));for(const r in e){const s=e[r];let o;ce(s)?"default"in s?o=we(s.from||r,s.default,!0):o=we(s.from||r):o=we(s),Ee(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function zo(e,t,n){Xe(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function fa(e,t,n,r){let s=r.includes(".")?Sa(n,r):()=>n[r];if(de(e)){const o=t[e];Q(o)&&cn(s,o)}else if(Q(e))cn(s,e.bind(n));else if(ce(e))if(J(e))e.forEach(o=>fa(o,t,n,r));else{const o=Q(e.handler)?e.handler.bind(n):t[e.handler];Q(o)&&cn(s,o,e)}}function ua(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let a;return l?a=l:!s.length&&!n&&!r?a=t:(a={},s.length&&s.forEach(f=>wr(a,f,i,!0)),wr(a,t,i)),ce(t)&&o.set(t,a),a}function wr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&wr(e,o,n,!0),s&&s.forEach(i=>wr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=eu[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const eu={data:Zo,props:ei,emits:ei,methods:xn,computed:xn,beforeCreate:Ae,created:Ae,beforeMount:Ae,mounted:Ae,beforeUpdate:Ae,updated:Ae,beforeDestroy:Ae,beforeUnmount:Ae,destroyed:Ae,unmounted:Ae,activated:Ae,deactivated:Ae,errorCaptured:Ae,serverPrefetch:Ae,components:xn,directives:xn,watch:nu,provide:Zo,inject:tu};function Zo(e,t){return t?e?function(){return Te(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function tu(e,t){return xn(ks(e),ks(t))}function ks(e){if(J(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Ae(e,t){return e?[...new Set([].concat(e,t))]:t}function xn(e,t){return e?Te(Object.create(null),e,t):t}function ei(e,t){return e?J(e)&&J(t)?[...new Set([...e,...t])]:Te(Object.create(null),Xo(e),Xo(t??{})):t}function nu(e,t){if(!e)return t;if(!t)return e;const n=Te(Object.create(null),e);for(const r in t)n[r]=Ae(e[r],t[r]);return n}function da(){return{app:null,config:{isNativeTag:Nc,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 ru=0;function su(e,t){return function(r,s=null){Q(r)||(r=Te({},r)),s!=null&&!ce(s)&&(s=null);const o=da(),i=new WeakSet,l=[];let a=!1;const f=o.app={_uid:ru++,_component:r,_props:s,_container:null,_context:o,_instance:null,version:Da,get config(){return o.config},set config(c){},use(c,...u){return i.has(c)||(c&&Q(c.install)?(i.add(c),c.install(f,...u)):Q(c)&&(i.add(c),c(f,...u))),f},mixin(c){return o.mixins.includes(c)||o.mixins.push(c),f},component(c,u){return u?(o.components[c]=u,f):o.components[c]},directive(c,u){return u?(o.directives[c]=u,f):o.directives[c]},mount(c,u,d){if(!a){const h=f._ceVNode||pe(r,s);return h.appContext=o,d===!0?d="svg":d===!1&&(d=void 0),u&&t?t(h,c):e(h,c,d),a=!0,f._container=c,c.__vue_app__=f,Vr(h.component)}},onUnmount(c){l.push(c)},unmount(){a&&(Xe(l,f._instance,16),e(null,f._container),delete f._container.__vue_app__)},provide(c,u){return o.provides[c]=u,f},runWithContext(c){const u=Kt;Kt=f;try{return c()}finally{Kt=u}}};return f}}let Kt=null;function ot(e,t){if(be){let n=be.provides;const r=be.parent&&be.parent.provides;r===n&&(n=be.provides=Object.create(r)),n[e]=t}}function we(e,t,n=!1){const r=be||ve;if(r||Kt){const s=Kt?Kt._context.provides:r?r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(s&&e in s)return s[e];if(arguments.length>1)return n&&Q(t)?t.call(r&&r.proxy):t}}function ha(){return!!(be||ve||Kt)}const pa={},ga=()=>Object.create(pa),ma=e=>Object.getPrototypeOf(e)===pa;function ou(e,t,n,r=!1){const s={},o=ga();e.propsDefaults=Object.create(null),ya(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:gt(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function iu(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=te(s),[a]=e.propsOptions;let f=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let u=0;u<c.length;u++){let d=c[u];if(Ur(e.emitsOptions,d))continue;const h=t[d];if(a)if(oe(o,d))h!==o[d]&&(o[d]=h,f=!0);else{const b=We(d);s[b]=Os(a,l,b,h,e,!1)}else h!==o[d]&&(o[d]=h,f=!0)}}}else{ya(e,t,s,o)&&(f=!0);let c;for(const u in l)(!t||!oe(t,u)&&((c=kt(u))===u||!oe(t,c)))&&(a?n&&(n[u]!==void 0||n[c]!==void 0)&&(s[u]=Os(a,l,u,void 0,e,!0)):delete s[u]);if(o!==l)for(const u in o)(!t||!oe(t,u))&&(delete o[u],f=!0)}f&&dt(e.attrs,"set","")}function ya(e,t,n,r){const[s,o]=e.propsOptions;let i=!1,l;if(t)for(let a in t){if(on(a))continue;const f=t[a];let c;s&&oe(s,c=We(a))?!o||!o.includes(c)?n[c]=f:(l||(l={}))[c]=f:Ur(e.emitsOptions,a)||(!(a in r)||f!==r[a])&&(r[a]=f,i=!0)}if(o){const a=te(n),f=l||ae;for(let c=0;c<o.length;c++){const u=o[c];n[u]=Os(s,a,u,f[u],e,!oe(f,u))}}return i}function Os(e,t,n,r,s,o){const i=e[n];if(i!=null){const l=oe(i,"default");if(l&&r===void 0){const a=i.default;if(i.type!==Function&&!i.skipFactory&&Q(a)){const{propsDefaults:f}=s;if(n in f)r=f[n];else{const c=qt(s);r=f[n]=a.call(null,t),c()}}else r=a;s.ce&&s.ce._setProp(n,r)}i[0]&&(o&&!l?r=!1:i[1]&&(r===""||r===kt(n))&&(r=!0))}return r}const lu=new WeakMap;function _a(e,t,n=!1){const r=n?lu:t.propsCache,s=r.get(e);if(s)return s;const o=e.props,i={},l=[];let a=!1;if(!Q(e)){const c=u=>{a=!0;const[d,h]=_a(u,t,!0);Te(i,d),h&&l.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!a)return ce(e)&&r.set(e,rn),rn;if(J(o))for(let c=0;c<o.length;c++){const u=We(o[c]);ti(u)&&(i[u]=ae)}else if(o)for(const c in o){const u=We(c);if(ti(u)){const d=o[c],h=i[u]=J(d)||Q(d)?{type:d}:Te({},d),b=h.type;let y=!1,R=!0;if(J(b))for(let T=0;T<b.length;++T){const E=b[T],g=Q(E)&&E.name;if(g==="Boolean"){y=!0;break}else g==="String"&&(R=!1)}else y=Q(b)&&b.name==="Boolean";h[0]=y,h[1]=R,(y||oe(h,"default"))&&l.push(u)}}const f=[i,l];return ce(e)&&r.set(e,f),f}function ti(e){return e[0]!=="$"&&!on(e)}const ba=e=>e[0]==="_"||e==="$stable",wo=e=>J(e)?e.map(Fe):[Fe(e)],au=(e,t,n)=>{if(t._n)return t;const r=Wl((...s)=>wo(t(...s)),n);return r._c=!1,r},va=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ba(s))continue;const o=e[s];if(Q(o))t[s]=au(s,o,r);else if(o!=null){const i=wo(o);t[s]=()=>i}}},wa=(e,t)=>{const n=wo(t);e.slots.default=()=>n},Ea=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},cu=(e,t,n)=>{const r=e.slots=ga();if(e.vnode.shapeFlag&32){const s=t._;s?(Ea(r,t,n),n&&_l(r,"_",s,!0)):va(t,r)}else t&&wa(e,t)},fu=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ae;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ea(s,t,n):(o=!t.$stable,va(t,s)),i=t}else t&&(wa(e,t),i={default:1});if(o)for(const l in s)!ba(l)&&i[l]==null&&delete s[l]},ye=ka;function uu(e){return Ta(e)}function du(e){return Ta(e,Nf)}function Ta(e,t){const n=Lr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:f,setElementText:c,parentNode:u,nextSibling:d,setScopeId:h=Ye,insertStaticContent:b}=e,y=(p,m,w,A=null,S=null,k=null,N=void 0,L=null,$=!!m.dynamicChildren)=>{if(p===m)return;p&&!Je(p,m)&&(A=x(p),Ie(p,S,k,!0),p=null),m.patchFlag===-2&&($=!1,m.dynamicChildren=null);const{type:I,ref:Y,shapeFlag:F}=m;switch(I){case Vt:R(p,m,w,A);break;case _e:T(p,m,w,A);break;case In:p==null&&E(m,w,A,N);break;case Re:H(p,m,w,A,S,k,N,L,$);break;default:F&1?v(p,m,w,A,S,k,N,L,$):F&6?q(p,m,w,A,S,k,N,L,$):(F&64||F&128)&&I.process(p,m,w,A,S,k,N,L,$,W)}Y!=null&&S&&Bn(Y,p&&p.ref,k,m||p,!m)},R=(p,m,w,A)=>{if(p==null)r(m.el=l(m.children),w,A);else{const S=m.el=p.el;m.children!==p.children&&f(S,m.children)}},T=(p,m,w,A)=>{p==null?r(m.el=a(m.children||""),w,A):m.el=p.el},E=(p,m,w,A)=>{[p.el,p.anchor]=b(p.children,m,w,A,p.el,p.anchor)},g=({el:p,anchor:m},w,A)=>{let S;for(;p&&p!==m;)S=d(p),r(p,w,A),p=S;r(m,w,A)},_=({el:p,anchor:m})=>{let w;for(;p&&p!==m;)w=d(p),s(p),p=w;s(m)},v=(p,m,w,A,S,k,N,L,$)=>{m.type==="svg"?N="svg":m.type==="math"&&(N="mathml"),p==null?C(m,w,A,S,k,N,L,$):P(p,m,S,k,N,L,$)},C=(p,m,w,A,S,k,N,L)=>{let $,I;const{props:Y,shapeFlag:F,transition:G,dirs:X}=p;if($=p.el=i(p.type,k,Y&&Y.is,Y),F&8?c($,p.children):F&16&&D(p.children,$,null,A,S,is(p,k),N,L),X&&st(p,null,A,"created"),M($,p,p.scopeId,N,A),Y){for(const fe in Y)fe!=="value"&&!on(fe)&&o($,fe,null,Y[fe],k,A);"value"in Y&&o($,"value",null,Y.value,k),(I=Y.onVnodeBeforeMount)&&Me(I,A,p)}X&&st(p,null,A,"beforeMount");const ee=Ra(S,G);ee&&G.beforeEnter($),r($,m,w),((I=Y&&Y.onVnodeMounted)||ee||X)&&ye(()=>{I&&Me(I,A,p),ee&&G.enter($),X&&st(p,null,A,"mounted")},S)},M=(p,m,w,A,S)=>{if(w&&h(p,w),A)for(let k=0;k<A.length;k++)h(p,A[k]);if(S){let k=S.subTree;if(m===k||Tr(k.type)&&(k.ssContent===m||k.ssFallback===m)){const N=S.vnode;M(p,N,N.scopeId,N.slotScopeIds,S.parent)}}},D=(p,m,w,A,S,k,N,L,$=0)=>{for(let I=$;I<p.length;I++){const Y=p[I]=L?Rt(p[I]):Fe(p[I]);y(null,Y,m,w,A,S,k,N,L)}},P=(p,m,w,A,S,k,N)=>{const L=m.el=p.el;let{patchFlag:$,dynamicChildren:I,dirs:Y}=m;$|=p.patchFlag&16;const F=p.props||ae,G=m.props||ae;let X;if(w&&Ht(w,!1),(X=G.onVnodeBeforeUpdate)&&Me(X,w,m,p),Y&&st(m,p,w,"beforeUpdate"),w&&Ht(w,!0),(F.innerHTML&&G.innerHTML==null||F.textContent&&G.textContent==null)&&c(L,""),I?O(p.dynamicChildren,I,L,w,A,is(m,S),k):N||V(p,m,L,null,w,A,is(m,S),k,!1),$>0){if($&16)K(L,F,G,w,S);else if($&2&&F.class!==G.class&&o(L,"class",null,G.class,S),$&4&&o(L,"style",F.style,G.style,S),$&8){const ee=m.dynamicProps;for(let fe=0;fe<ee.length;fe++){const ie=ee[fe],Le=F[ie],Ce=G[ie];(Ce!==Le||ie==="value")&&o(L,ie,Le,Ce,S,w)}}$&1&&p.children!==m.children&&c(L,m.children)}else!N&&I==null&&K(L,F,G,w,S);((X=G.onVnodeUpdated)||Y)&&ye(()=>{X&&Me(X,w,m,p),Y&&st(m,p,w,"updated")},A)},O=(p,m,w,A,S,k,N)=>{for(let L=0;L<m.length;L++){const $=p[L],I=m[L],Y=$.el&&($.type===Re||!Je($,I)||$.shapeFlag&70)?u($.el):w;y($,I,Y,null,A,S,k,N,!0)}},K=(p,m,w,A,S)=>{if(m!==w){if(m!==ae)for(const k in m)!on(k)&&!(k in w)&&o(p,k,m[k],null,S,A);for(const k in w){if(on(k))continue;const N=w[k],L=m[k];N!==L&&k!=="value"&&o(p,k,L,N,S,A)}"value"in w&&o(p,"value",m.value,w.value,S)}},H=(p,m,w,A,S,k,N,L,$)=>{const I=m.el=p?p.el:l(""),Y=m.anchor=p?p.anchor:l("");let{patchFlag:F,dynamicChildren:G,slotScopeIds:X}=m;X&&(L=L?L.concat(X):X),p==null?(r(I,w,A),r(Y,w,A),D(m.children||[],w,Y,S,k,N,L,$)):F>0&&F&64&&G&&p.dynamicChildren?(O(p.dynamicChildren,G,w,S,k,N,L),(m.key!=null||S&&m===S.subTree)&&Eo(p,m,!0)):V(p,m,w,Y,S,k,N,L,$)},q=(p,m,w,A,S,k,N,L,$)=>{m.slotScopeIds=L,p==null?m.shapeFlag&512?S.ctx.activate(m,w,A,N,$):Z(m,w,A,S,k,N,$):ne(p,m,$)},Z=(p,m,w,A,S,k,N)=>{const L=p.component=Hu(p,A,S);if(Yn(p)&&(L.ctx.renderer=W),$u(L,!1,N),L.asyncDep){if(S&&S.registerDep(L,U,N),!p.el){const $=L.subTree=pe(_e);T(null,$,m,w)}}else U(L,p,m,w,S,k,N)},ne=(p,m,w)=>{const A=m.component=p.component;if(Tu(p,m,w))if(A.asyncDep&&!A.asyncResolved){z(A,m,w);return}else A.next=m,A.update();else m.el=p.el,A.vnode=m},U=(p,m,w,A,S,k,N)=>{const L=()=>{if(p.isMounted){let{next:F,bu:G,u:X,parent:ee,vnode:fe}=p;{const Ne=Ca(p);if(Ne){F&&(F.el=fe.el,z(p,F,N)),Ne.asyncDep.then(()=>{p.isUnmounted||L()});return}}let ie=F,Le;Ht(p,!1),F?(F.el=fe.el,z(p,F,N)):F=fe,G&&ln(G),(Le=F.props&&F.props.onVnodeBeforeUpdate)&&Me(Le,ee,F,fe),Ht(p,!0);const Ce=ls(p),qe=p.subTree;p.subTree=Ce,y(qe,Ce,u(qe.el),x(qe),p,S,k),F.el=Ce.el,ie===null&&Kr(p,Ce.el),X&&ye(X,S),(Le=F.props&&F.props.onVnodeUpdated)&&ye(()=>Me(Le,ee,F,fe),S)}else{let F;const{el:G,props:X}=m,{bm:ee,m:fe,parent:ie,root:Le,type:Ce}=p,qe=At(m);if(Ht(p,!1),ee&&ln(ee),!qe&&(F=X&&X.onVnodeBeforeMount)&&Me(F,ie,m),Ht(p,!0),G&&he){const Ne=()=>{p.subTree=ls(p),he(G,p.subTree,p,S,null)};qe&&Ce.__asyncHydrate?Ce.__asyncHydrate(G,p,Ne):Ne()}else{Le.ce&&Le.ce._injectChildStyle(Ce);const Ne=p.subTree=ls(p);y(null,Ne,w,A,p,S,k),m.el=Ne.el}if(fe&&ye(fe,S),!qe&&(F=X&&X.onVnodeMounted)){const Ne=m;ye(()=>Me(F,ie,Ne),S)}(m.shapeFlag&256||ie&&At(ie.vnode)&&ie.vnode.shapeFlag&256)&&p.a&&ye(p.a,S),p.isMounted=!0,m=w=A=null}};p.scope.on();const $=p.effect=new Rl(L);p.scope.off();const I=p.update=$.run.bind($),Y=p.job=$.runIfDirty.bind($);Y.i=p,Y.id=p.uid,$.scheduler=()=>_o(Y),Ht(p,!0),I()},z=(p,m,w)=>{m.component=p;const A=p.vnode.props;p.vnode=m,p.next=null,iu(p,m.props,A,w),fu(p,m.children,w),Ot(),Uo(p),It()},V=(p,m,w,A,S,k,N,L,$=!1)=>{const I=p&&p.children,Y=p?p.shapeFlag:0,F=m.children,{patchFlag:G,shapeFlag:X}=m;if(G>0){if(G&128){bt(I,F,w,A,S,k,N,L,$);return}else if(G&256){me(I,F,w,A,S,k,N,L,$);return}}X&8?(Y&16&&De(I,S,k),F!==I&&c(w,F)):Y&16?X&16?bt(I,F,w,A,S,k,N,L,$):De(I,S,k,!0):(Y&8&&c(w,""),X&16&&D(F,w,A,S,k,N,L,$))},me=(p,m,w,A,S,k,N,L,$)=>{p=p||rn,m=m||rn;const I=p.length,Y=m.length,F=Math.min(I,Y);let G;for(G=0;G<F;G++){const X=m[G]=$?Rt(m[G]):Fe(m[G]);y(p[G],X,w,null,S,k,N,L,$)}I>Y?De(p,S,k,!0,!1,F):D(m,w,A,S,k,N,L,$,F)},bt=(p,m,w,A,S,k,N,L,$)=>{let I=0;const Y=m.length;let F=p.length-1,G=Y-1;for(;I<=F&&I<=G;){const X=p[I],ee=m[I]=$?Rt(m[I]):Fe(m[I]);if(Je(X,ee))y(X,ee,w,null,S,k,N,L,$);else break;I++}for(;I<=F&&I<=G;){const X=p[F],ee=m[G]=$?Rt(m[G]):Fe(m[G]);if(Je(X,ee))y(X,ee,w,null,S,k,N,L,$);else break;F--,G--}if(I>F){if(I<=G){const X=G+1,ee=X<Y?m[X].el:A;for(;I<=G;)y(null,m[I]=$?Rt(m[I]):Fe(m[I]),w,ee,S,k,N,L,$),I++}}else if(I>G)for(;I<=F;)Ie(p[I],S,k,!0),I++;else{const X=I,ee=I,fe=new Map;for(I=ee;I<=G;I++){const je=m[I]=$?Rt(m[I]):Fe(m[I]);je.key!=null&&fe.set(je.key,I)}let ie,Le=0;const Ce=G-ee+1;let qe=!1,Ne=0;const wn=new Array(Ce);for(I=0;I<Ce;I++)wn[I]=0;for(I=X;I<=F;I++){const je=p[I];if(Le>=Ce){Ie(je,S,k,!0);continue}let nt;if(je.key!=null)nt=fe.get(je.key);else for(ie=ee;ie<=G;ie++)if(wn[ie-ee]===0&&Je(je,m[ie])){nt=ie;break}nt===void 0?Ie(je,S,k,!0):(wn[nt-ee]=I+1,nt>=Ne?Ne=nt:qe=!0,y(je,m[nt],w,null,S,k,N,L,$),Le++)}const No=qe?hu(wn):rn;for(ie=No.length-1,I=Ce-1;I>=0;I--){const je=ee+I,nt=m[je],jo=je+1<Y?m[je+1].el:A;wn[I]===0?y(null,nt,w,jo,S,k,N,L,$):qe&&(ie<0||I!==No[ie]?tt(nt,w,jo,2):ie--)}}},tt=(p,m,w,A,S=null)=>{const{el:k,type:N,transition:L,children:$,shapeFlag:I}=p;if(I&6){tt(p.component.subTree,m,w,A);return}if(I&128){p.suspense.move(m,w,A);return}if(I&64){N.move(p,m,w,W);return}if(N===Re){r(k,m,w);for(let F=0;F<$.length;F++)tt($[F],m,w,A);r(p.anchor,m,w);return}if(N===In){g(p,m,w);return}if(A!==2&&I&1&&L)if(A===0)L.beforeEnter(k),r(k,m,w),ye(()=>L.enter(k),S);else{const{leave:F,delayLeave:G,afterLeave:X}=L,ee=()=>r(k,m,w),fe=()=>{F(k,()=>{ee(),X&&X()})};G?G(k,ee,fe):fe()}else r(k,m,w)},Ie=(p,m,w,A=!1,S=!1)=>{const{type:k,props:N,ref:L,children:$,dynamicChildren:I,shapeFlag:Y,patchFlag:F,dirs:G,cacheIndex:X}=p;if(F===-2&&(S=!1),L!=null&&Bn(L,null,w,p,!0),X!=null&&(m.renderCache[X]=void 0),Y&256){m.ctx.deactivate(p);return}const ee=Y&1&&G,fe=!At(p);let ie;if(fe&&(ie=N&&N.onVnodeBeforeUnmount)&&Me(ie,m,p),Y&6)Xn(p.component,w,A);else{if(Y&128){p.suspense.unmount(w,A);return}ee&&st(p,null,m,"beforeUnmount"),Y&64?p.type.remove(p,m,w,W,A):I&&!I.hasOnce&&(k!==Re||F>0&&F&64)?De(I,m,w,!1,!0):(k===Re&&F&384||!S&&Y&16)&&De($,m,w),A&&Jt(p)}(fe&&(ie=N&&N.onVnodeUnmounted)||ee)&&ye(()=>{ie&&Me(ie,m,p),ee&&st(p,null,m,"unmounted")},w)},Jt=p=>{const{type:m,el:w,anchor:A,transition:S}=p;if(m===Re){Yt(w,A);return}if(m===In){_(p);return}const k=()=>{s(w),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(p.shapeFlag&1&&S&&!S.persisted){const{leave:N,delayLeave:L}=S,$=()=>N(w,k);L?L(p.el,k,$):$()}else k()},Yt=(p,m)=>{let w;for(;p!==m;)w=d(p),s(p),p=w;s(m)},Xn=(p,m,w)=>{const{bum:A,scope:S,job:k,subTree:N,um:L,m:$,a:I}=p;Er($),Er(I),A&&ln(A),S.stop(),k&&(k.flags|=8,Ie(N,p,m,w)),L&&ye(L,m),ye(()=>{p.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&p.asyncDep&&!p.asyncResolved&&p.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve())},De=(p,m,w,A=!1,S=!1,k=0)=>{for(let N=k;N<p.length;N++)Ie(p[N],m,w,A,S)},x=p=>{if(p.shapeFlag&6)return x(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const m=d(p.anchor||p.el),w=m&&m[ql];return w?d(w):m};let B=!1;const j=(p,m,w)=>{p==null?m._vnode&&Ie(m._vnode,null,null,!0):y(m._vnode||null,p,m,null,null,null,w),m._vnode=p,B||(B=!0,Uo(),br(),B=!1)},W={p:y,um:Ie,m:tt,r:Jt,mt:Z,mc:D,pc:V,pbc:O,n:x,o:e};let re,he;return t&&([re,he]=t(W)),{render:j,hydrate:re,createApp:su(j,re)}}function is({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ht({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ra(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Eo(e,t,n=!1){const r=e.children,s=t.children;if(J(r)&&J(s))for(let o=0;o<r.length;o++){const i=r[o];let l=s[o];l.shapeFlag&1&&!l.dynamicChildren&&((l.patchFlag<=0||l.patchFlag===32)&&(l=s[o]=Rt(s[o]),l.el=i.el),!n&&l.patchFlag!==-2&&Eo(i,l)),l.type===Vt&&(l.el=i.el)}}function hu(e){const t=e.slice(),n=[0];let r,s,o,i,l;const a=e.length;for(r=0;r<a;r++){const f=e[r];if(f!==0){if(s=n[n.length-1],e[s]<f){t[r]=s,n.push(r);continue}for(o=0,i=n.length-1;o<i;)l=o+i>>1,e[n[l]]<f?o=l+1:i=l;f<e[n[o]]&&(o>0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ca(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ca(t)}function Er(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}const pu=Symbol.for("v-scx"),gu=()=>we(pu);function mu(e,t){return To(e,null,t)}function cn(e,t,n){return To(e,t,n)}function To(e,t,n=ae){const{immediate:r,deep:s,flush:o,once:i}=n,l=Te({},n),a=t&&r||!t&&o!=="post";let f;if(gn){if(o==="sync"){const h=gu();f=h.__watcherHandles||(h.__watcherHandles=[])}else if(!a){const h=()=>{};return h.stop=Ye,h.resume=Ye,h.pause=Ye,h}}const c=be;l.call=(h,b,y)=>Xe(h,c,b,y);let u=!1;o==="post"?l.scheduler=h=>{ye(h,c&&c.suspense)}:o!=="sync"&&(u=!0,l.scheduler=(h,b)=>{b?h():_o(h)}),l.augmentJob=h=>{t&&(h.flags|=4),u&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const d=Af(e,t,l);return gn&&(f?f.push(d):a&&d()),d}function yu(e,t,n){const r=this.proxy,s=de(e)?e.includes(".")?Sa(r,e):()=>r[e]:e.bind(r,r);let o;Q(t)?o=t:(o=t.handler,n=t);const i=qt(this),l=To(s,o.bind(r),n);return i(),l}function Sa(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s<n.length&&r;s++)r=r[n[s]];return r}}const _u=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${We(t)}Modifiers`]||e[`${kt(t)}Modifiers`];function bu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ae;let s=n;const o=t.startsWith("update:"),i=o&&_u(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>de(c)?c.trim():c)),i.number&&(s=n.map(vs)));let l,a=r[l=Xr(t)]||r[l=Xr(We(t))];!a&&o&&(a=r[l=Xr(kt(t))]),a&&Xe(a,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Xe(f,e,6,s)}}function xa(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!Q(e)){const a=f=>{const c=xa(f,t,!0);c&&(l=!0,Te(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(ce(e)&&r.set(e,null),null):(J(o)?o.forEach(a=>i[a]=null):Te(i,o),ce(e)&&r.set(e,i),i)}function Ur(e,t){return!e||!qn(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,kt(t))||oe(e,t))}function ls(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:f,renderCache:c,props:u,data:d,setupState:h,ctx:b,inheritAttrs:y}=e,R=vr(e);let T,E;try{if(n.shapeFlag&4){const _=s||r,v=_;T=Fe(f.call(v,_,c,u,h,d,b)),E=l}else{const _=t;T=Fe(_.length>1?_(u,{attrs:l,slots:i,emit:a}):_(u,null)),E=t.props?l:wu(l)}}catch(_){Mn.length=0,bn(_,e,1),T=pe(_e)}let g=T;if(E&&y!==!1){const _=Object.keys(E),{shapeFlag:v}=g;_.length&&v&7&&(o&&_.some(oo)&&(E=Eu(E,o)),g=mt(g,E,!1,!0))}return n.dirs&&(g=mt(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&hn(g,n.transition),T=g,vr(R),T}function vu(e,t=!0){let n;for(let r=0;r<e.length;r++){const s=e[r];if(Wt(s)){if(s.type!==_e||s.children==="v-if"){if(n)return;n=s}}else return}return n}const wu=e=>{let t;for(const n in e)(n==="class"||n==="style"||qn(n))&&((t||(t={}))[n]=e[n]);return t},Eu=(e,t)=>{const n={};for(const r in e)(!oo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Tu(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?ni(r,i,f):!!i;if(a&8){const c=t.dynamicProps;for(let u=0;u<c.length;u++){const d=c[u];if(i[d]!==r[d]&&!Ur(f,d))return!0}}}else return(s||l)&&(!l||!l.$stable)?!0:r===i?!1:r?i?ni(r,i,f):!0:!!i;return!1}function ni(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let s=0;s<r.length;s++){const o=r[s];if(t[o]!==e[o]&&!Ur(n,o))return!0}return!1}function Kr({vnode:e,parent:t},n){for(;t;){const r=t.subTree;if(r.suspense&&r.suspense.activeBranch===e&&(r.el=e.el),r===e)(e=t.vnode).el=n,t=t.parent;else break}}const Tr=e=>e.__isSuspense;let Is=0;const Ru={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,l,a,f){if(e==null)Cu(t,n,r,s,o,i,l,a,f);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Su(e,t,n,r,s,i,l,a,f)}},hydrate:xu,normalize:Au},Aa=Ru;function Un(e,t){const n=e.props&&e.props[t];Q(n)&&n()}function Cu(e,t,n,r,s,o,i,l,a){const{p:f,o:{createElement:c}}=a,u=c("div"),d=e.suspense=Pa(e,s,r,t,u,n,o,i,l,a);f(null,d.pendingBranch=e.ssContent,u,null,r,d,o,i),d.deps>0?(Un(e,"onPending"),Un(e,"onFallback"),f(null,e.ssFallback,t,n,r,null,o,i),fn(d,e.ssFallback)):d.resolve(!1,!0)}function Su(e,t,n,r,s,o,i,l,{p:a,um:f,o:{createElement:c}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const d=t.ssContent,h=t.ssFallback,{activeBranch:b,pendingBranch:y,isInFallback:R,isHydrating:T}=u;if(y)u.pendingBranch=d,Je(d,y)?(a(y,d,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():R&&(T||(a(b,h,n,r,s,null,o,i,l),fn(u,h)))):(u.pendingId=Is++,T?(u.isHydrating=!1,u.activeBranch=y):f(y,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=c("div"),R?(a(null,d,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():(a(b,h,n,r,s,null,o,i,l),fn(u,h))):b&&Je(d,b)?(a(b,d,n,r,s,u,o,i,l),u.resolve(!0)):(a(null,d,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0&&u.resolve()));else if(b&&Je(d,b))a(b,d,n,r,s,u,o,i,l),fn(u,d);else if(Un(t,"onPending"),u.pendingBranch=d,d.shapeFlag&512?u.pendingId=d.component.suspenseId:u.pendingId=Is++,a(null,d,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0)u.resolve();else{const{timeout:E,pendingId:g}=u;E>0?setTimeout(()=>{u.pendingId===g&&u.fallback(h)},E):E===0&&u.fallback(h)}}function Pa(e,t,n,r,s,o,i,l,a,f,c=!1){const{p:u,m:d,um:h,n:b,o:{parentNode:y,remove:R}}=f;let T;const E=Pu(e);E&&t&&t.pendingBranch&&(T=t.pendingId,t.deps++);const g=e.props?bl(e.props.timeout):void 0,_=o,v={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:Is++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(C=!1,M=!1){const{vnode:D,activeBranch:P,pendingBranch:O,pendingId:K,effects:H,parentComponent:q,container:Z}=v;let ne=!1;v.isHydrating?v.isHydrating=!1:C||(ne=P&&O.transition&&O.transition.mode==="out-in",ne&&(P.transition.afterLeave=()=>{K===v.pendingId&&(d(O,Z,o===_?b(P):o,0),Cs(H))}),P&&(y(P.el)===Z&&(o=b(P)),h(P,q,v,!0)),ne||d(O,Z,o,0)),fn(v,O),v.pendingBranch=null,v.isInFallback=!1;let U=v.parent,z=!1;for(;U;){if(U.pendingBranch){U.effects.push(...H),z=!0;break}U=U.parent}!z&&!ne&&Cs(H),v.effects=[],E&&t&&t.pendingBranch&&T===t.pendingId&&(t.deps--,t.deps===0&&!M&&t.resolve()),Un(D,"onResolve")},fallback(C){if(!v.pendingBranch)return;const{vnode:M,activeBranch:D,parentComponent:P,container:O,namespace:K}=v;Un(M,"onFallback");const H=b(D),q=()=>{v.isInFallback&&(u(null,C,O,H,P,null,K,l,a),fn(v,C))},Z=C.transition&&C.transition.mode==="out-in";Z&&(D.transition.afterLeave=q),v.isInFallback=!0,h(D,P,null,!0),Z||q()},move(C,M,D){v.activeBranch&&d(v.activeBranch,C,M,D),v.container=C},next(){return v.activeBranch&&b(v.activeBranch)},registerDep(C,M,D){const P=!!v.pendingBranch;P&&v.deps++;const O=C.vnode.el;C.asyncDep.catch(K=>{bn(K,C,0)}).then(K=>{if(C.isUnmounted||v.isUnmounted||v.pendingId!==C.suspenseId)return;C.asyncResolved=!0;const{vnode:H}=C;$s(C,K),O&&(H.el=O);const q=!O&&C.subTree.el;M(C,H,y(O||C.subTree.el),O?null:b(C.subTree),v,i,D),q&&R(q),Kr(C,H.el),P&&--v.deps===0&&v.resolve()})},unmount(C,M){v.isUnmounted=!0,v.activeBranch&&h(v.activeBranch,n,C,M),v.pendingBranch&&h(v.pendingBranch,n,C,M)}};return v}function xu(e,t,n,r,s,o,i,l,a){const f=t.suspense=Pa(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,l,!0),c=a(e,f.pendingBranch=t.ssContent,n,f,o,i);return f.deps===0&&f.resolve(!1,!0),c}function Au(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=ri(r?n.default:n),e.ssFallback=r?ri(n.fallback):pe(_e)}function ri(e){let t;if(Q(e)){const n=pn&&e._c;n&&(e._d=!1,Ke()),e=e(),n&&(e._d=!0,t=$e,Oa())}return J(e)&&(e=vu(e)),e=Fe(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function ka(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Cs(e)}function fn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,Kr(r,s))}function Pu(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Re=Symbol.for("v-fgt"),Vt=Symbol.for("v-txt"),_e=Symbol.for("v-cmt"),In=Symbol.for("v-stc"),Mn=[];let $e=null;function Ke(e=!1){Mn.push($e=e?null:[])}function Oa(){Mn.pop(),$e=Mn[Mn.length-1]||null}let pn=1;function si(e,t=!1){pn+=e,e<0&&$e&&t&&($e.hasOnce=!0)}function Ia(e){return e.dynamicChildren=pn>0?$e||rn:null,Oa(),pn>0&&$e&&$e.push(e),e}function Ma(e,t,n,r,s,o){return Ia(Rr(e,t,n,r,s,o,!0))}function pt(e,t,n,r,s){return Ia(pe(e,t,n,r,s,!0))}function Wt(e){return e?e.__v_isVNode===!0:!1}function Je(e,t){return e.type===t.type&&e.key===t.key}const Ha=({key:e})=>e??null,ur=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?de(e)||Ee(e)||Q(e)?{i:ve,r:e,k:t,f:!!n}:e:null);function Rr(e,t=null,n=null,r=0,s=null,o=e===Re?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ha(t),ref:t&&ur(t),scopeId:Vl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ve};return l?(Ro(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=de(n)?8:16),pn>0&&!i&&$e&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&$e.push(a),a}const pe=ku;function ku(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ia)&&(e=_e),Wt(e)){const l=mt(e,t,!0);return n&&Ro(l,n),pn>0&&!o&&$e&&(l.shapeFlag&6?$e[$e.indexOf(e)]=l:$e.push(l)),l.patchFlag=-2,l}if(ju(e)&&(e=e.__vccOpts),t){t=$a(t);let{class:l,style:a}=t;l&&!de(l)&&(t.class=jr(l)),ce(a)&&(yo(a)&&!J(a)&&(a=Te({},a)),t.style=Nr(a))}const i=de(e)?1:Tr(e)?128:Gl(e)?64:ce(e)?4:Q(e)?2:0;return Rr(e,t,n,r,s,i,o,!0)}function $a(e){return e?yo(e)||ma(e)?Te({},e):e:null}function mt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,f=t?Ou(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Ha(f),ref:t&&t.ref?n&&o?J(o)?o.concat(ur(t)):[o,ur(t)]:ur(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Re?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&mt(e.ssContent),ssFallback:e.ssFallback&&mt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&hn(c,a.clone(c)),c}function La(e=" ",t=0){return pe(Vt,null,e,t)}function oy(e,t){const n=pe(In,null,e);return n.staticCount=t,n}function iy(e="",t=!1){return t?(Ke(),pt(_e,null,e)):pe(_e,null,e)}function Fe(e){return e==null||typeof e=="boolean"?pe(_e):J(e)?pe(Re,null,e.slice()):Wt(e)?Rt(e):pe(Vt,null,String(e))}function Rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:mt(e)}function Ro(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Ro(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!ma(t)?t._ctx=ve:s===3&&ve&&(ve.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Q(t)?(t={default:t,_ctx:ve},n=32):(t=String(t),r&64?(n=16,t=[La(t)]):n=8);e.children=t,e.shapeFlag|=n}function Ou(...e){const t={};for(let n=0;n<e.length;n++){const r=e[n];for(const s in r)if(s==="class")t.class!==r.class&&(t.class=jr([t.class,r.class]));else if(s==="style")t.style=Nr([t.style,r.style]);else if(qn(s)){const o=t[s],i=r[s];i&&o!==i&&!(J(o)&&o.includes(i))&&(t[s]=o?[].concat(o,i):i)}else s!==""&&(t[s]=r[s])}return t}function Me(e,t,n,r=null){Xe(e,t,7,[n,r])}const Iu=da();let Mu=0;function Hu(e,t,n){const r=e.type,s=(t?t.appContext:e.appContext)||Iu,o={uid:Mu++,vnode:e,type:r,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Tl(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:_a(r,s),emitsOptions:xa(r,s),emit:null,emitted:null,propsDefaults:ae,inheritAttrs:r.inheritAttrs,ctx:ae,data:ae,props:ae,attrs:ae,slots:ae,refs:ae,setupState:ae,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=bu.bind(null,o),e.ce&&e.ce(o),o}let be=null;const lt=()=>be||ve;let Cr,Ms;{const e=Lr(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Cr=t("__VUE_INSTANCE_SETTERS__",n=>be=n),Ms=t("__VUE_SSR_SETTERS__",n=>gn=n)}const qt=e=>{const t=be;return Cr(e),e.scope.on(),()=>{e.scope.off(),Cr(t)}},Hs=()=>{be&&be.scope.off(),Cr(null)};function Na(e){return e.vnode.shapeFlag&4}let gn=!1;function $u(e,t=!1,n=!1){t&&Ms(t);const{props:r,children:s}=e.vnode,o=Na(e);ou(e,r,o,t),cu(e,s,n);const i=o?Lu(e,t):void 0;return t&&Ms(!1),i}function Lu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xf);const{setup:r}=n;if(r){Ot();const s=e.setupContext=r.length>1?Fa(e):null,o=qt(e),i=Gn(r,e,0,[e.props,s]),l=lo(i);if(It(),o(),(l||e.sp)&&!At(e)&&bo(e),l){if(i.then(Hs,Hs),t)return i.then(a=>{$s(e,a)}).catch(a=>{bn(a,e,0)});e.asyncDep=i}else $s(e,i)}else ja(e)}function $s(e,t,n){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ce(t)&&(e.setupState=Fl(t)),ja(e)}function ja(e,t,n){const r=e.type;e.render||(e.render=r.render||Ye);{const s=qt(e);Ot();try{zf(e)}finally{It(),s()}}}const Nu={get(e,t){return Se(e,"get",""),e[t]}};function Fa(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Nu),slots:e.slots,emit:e.emit,expose:t}}function Vr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Fl(bf(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in On)return On[n](e)},has(t,n){return n in t||n in On}})):e.proxy}function Ls(e,t=!0){return Q(e)?e.displayName||e.name:e.name||t&&e.__name}function ju(e){return Q(e)&&"__vccOpts"in e}const He=(e,t)=>Sf(e,t,gn);function it(e,t,n){const r=arguments.length;return r===2?ce(t)&&!J(t)?Wt(t)?pe(e,null,[t]):pe(e,t):pe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Wt(n)&&(n=[n]),pe(e,t,n))}const Da="3.5.13",ly=Ye;/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ns;const oi=typeof window<"u"&&window.trustedTypes;if(oi)try{Ns=oi.createPolicy("vue",{createHTML:e=>e})}catch{}const Ba=Ns?e=>Ns.createHTML(e):e=>e,Fu="http://www.w3.org/2000/svg",Du="http://www.w3.org/1998/Math/MathML",ut=typeof document<"u"?document:null,ii=ut&&ut.createElement("template"),Bu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?ut.createElementNS(Fu,e):t==="mathml"?ut.createElementNS(Du,e):n?ut.createElement(e,{is:n}):ut.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>ut.createTextNode(e),createComment:e=>ut.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ut.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{ii.innerHTML=Ba(r==="svg"?`<svg>${e}</svg>`:r==="mathml"?`<math>${e}</math>`:e);const l=ii.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},wt="transition",Tn="animation",Kn=Symbol("_vtc"),Ua={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},Uu=Te({},Ql,Ua),Ku=e=>(e.displayName="Transition",e.props=Uu,e),Vu=Ku((e,{slots:t})=>it(Hf,Wu(e),t)),$t=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},li=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Wu(e){const t={};for(const H in e)H in Ua||(t[H]=e[H]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:f=i,appearToClass:c=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,b=qu(s),y=b&&b[0],R=b&&b[1],{onBeforeEnter:T,onEnter:E,onEnterCancelled:g,onLeave:_,onLeaveCancelled:v,onBeforeAppear:C=T,onAppear:M=E,onAppearCancelled:D=g}=t,P=(H,q,Z,ne)=>{H._enterCancelled=ne,Lt(H,q?c:l),Lt(H,q?f:i),Z&&Z()},O=(H,q)=>{H._isLeaving=!1,Lt(H,u),Lt(H,h),Lt(H,d),q&&q()},K=H=>(q,Z)=>{const ne=H?M:E,U=()=>P(q,H,Z);$t(ne,[q,U]),ai(()=>{Lt(q,H?a:o),ct(q,H?c:l),li(ne)||ci(q,r,y,U)})};return Te(t,{onBeforeEnter(H){$t(T,[H]),ct(H,o),ct(H,i)},onBeforeAppear(H){$t(C,[H]),ct(H,a),ct(H,f)},onEnter:K(!1),onAppear:K(!0),onLeave(H,q){H._isLeaving=!0;const Z=()=>O(H,q);ct(H,u),H._enterCancelled?(ct(H,d),di()):(di(),ct(H,d)),ai(()=>{H._isLeaving&&(Lt(H,u),ct(H,h),li(_)||ci(H,r,R,Z))}),$t(_,[H,Z])},onEnterCancelled(H){P(H,!1,void 0,!0),$t(g,[H])},onAppearCancelled(H){P(H,!0,void 0,!0),$t(D,[H])},onLeaveCancelled(H){O(H),$t(v,[H])}})}function qu(e){if(e==null)return null;if(ce(e))return[as(e.enter),as(e.leave)];{const t=as(e);return[t,t]}}function as(e){return bl(e)}function ct(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kn]||(e[Kn]=new Set)).add(t)}function Lt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Kn];n&&(n.delete(t),n.size||(e[Kn]=void 0))}function ai(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Gu=0;function ci(e,t,n,r){const s=e._endId=++Gu,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=Ju(e,t);if(!i)return r();const f=i+"end";let c=0;const u=()=>{e.removeEventListener(f,d),o()},d=h=>{h.target===e&&++c>=a&&u()};setTimeout(()=>{c<a&&u()},l+1),e.addEventListener(f,d)}function Ju(e,t){const n=window.getComputedStyle(e),r=b=>(n[b]||"").split(", "),s=r(`${wt}Delay`),o=r(`${wt}Duration`),i=fi(s,o),l=r(`${Tn}Delay`),a=r(`${Tn}Duration`),f=fi(l,a);let c=null,u=0,d=0;t===wt?i>0&&(c=wt,u=i,d=o.length):t===Tn?f>0&&(c=Tn,u=f,d=a.length):(u=Math.max(i,f),c=u>0?i>f?wt:Tn:null,d=c?c===wt?o.length:a.length:0);const h=c===wt&&/\b(transform|all)(,|$)/.test(r(`${wt}Property`).toString());return{type:c,timeout:u,propCount:d,hasTransform:h}}function fi(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((n,r)=>ui(n)+ui(e[r])))}function ui(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function di(){return document.body.offsetHeight}function Yu(e,t,n){const r=e[Kn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Sr=Symbol("_vod"),Ka=Symbol("_vsh"),ay={beforeMount(e,{value:t},{transition:n}){e[Sr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Rn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Rn(e,!0),r.enter(e)):r.leave(e,()=>{Rn(e,!1)}):Rn(e,t))},beforeUnmount(e,{value:t}){Rn(e,t)}};function Rn(e,t){e.style.display=t?e[Sr]:"none",e[Ka]=!t}const Qu=Symbol(""),Xu=/(^|;)\s*display\s*:/;function zu(e,t,n){const r=e.style,s=de(n);let o=!1;if(n&&!s){if(t)if(de(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&dr(r,l,"")}else for(const i in t)n[i]==null&&dr(r,i,"");for(const i in n)i==="display"&&(o=!0),dr(r,i,n[i])}else if(s){if(t!==n){const i=r[Qu];i&&(n+=";"+i),r.cssText=n,o=Xu.test(n)}}else t&&e.removeAttribute("style");Sr in e&&(e[Sr]=o?r.display:"",e[Ka]&&(r.display="none"))}const hi=/\s*!important$/;function dr(e,t,n){if(J(n))n.forEach(r=>dr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Zu(e,t);hi.test(n)?e.setProperty(kt(r),n.replace(hi,""),"important"):e[r]=n}}const pi=["Webkit","Moz","ms"],cs={};function Zu(e,t){const n=cs[t];if(n)return n;let r=We(t);if(r!=="filter"&&r in e)return cs[t]=r;r=$r(r);for(let s=0;s<pi.length;s++){const o=pi[s]+r;if(o in e)return cs[t]=o}return t}const gi="http://www.w3.org/1999/xlink";function mi(e,t,n,r,s,o=Yc(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(gi,t.slice(6,t.length)):e.setAttributeNS(gi,t,n):n==null||o&&!vl(n)?e.removeAttribute(t):e.setAttribute(t,o?"":yt(n)?String(n):n)}function yi(e,t,n,r,s){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?Ba(n):n);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const l=o==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(l!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=vl(n):n==null&&l==="string"?(n="",i=!0):l==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(s||t)}function Zt(e,t,n,r){e.addEventListener(t,n,r)}function ed(e,t,n,r){e.removeEventListener(t,n,r)}const _i=Symbol("_vei");function td(e,t,n,r,s=null){const o=e[_i]||(e[_i]={}),i=o[t];if(r&&i)i.value=r;else{const[l,a]=nd(t);if(r){const f=o[t]=od(r,s);Zt(e,l,f,a)}else i&&(ed(e,l,i,a),o[t]=void 0)}}const bi=/(?:Once|Passive|Capture)$/;function nd(e){let t;if(bi.test(e)){t={};let r;for(;r=e.match(bi);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):kt(e.slice(2)),t]}let fs=0;const rd=Promise.resolve(),sd=()=>fs||(rd.then(()=>fs=0),fs=Date.now());function od(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Xe(id(r,n.value),t,5,[r])};return n.value=e,n.attached=sd(),n}function id(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const vi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ld=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Yu(e,r,i):t==="style"?zu(e,n,r):qn(t)?oo(t)||td(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ad(e,t,r,i))?(yi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&mi(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!de(r))?yi(e,We(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),mi(e,t,r,i))};function ad(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&vi(t)&&Q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return vi(t)&&de(n)?!1:t in e}const wi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return J(t)?n=>ln(t,n):t};function cd(e){e.target.composing=!0}function Ei(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const us=Symbol("_assign"),cy={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[us]=wi(s);const o=r||s.props&&s.props.type==="number";Zt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=vs(l)),e[us](l)}),n&&Zt(e,"change",()=>{e.value=e.value.trim()}),t||(Zt(e,"compositionstart",cd),Zt(e,"compositionend",Ei),Zt(e,"change",Ei))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[us]=wi(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?vs(e.value):e.value,a=t??"";l!==a&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===a)||(e.value=a))}},fd=["ctrl","shift","alt","meta"],ud={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)=>fd.some(n=>e[`${n}Key`]&&!t.includes(n))},fy=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i<t.length;i++){const l=ud[t[i]];if(l&&l(s,t))return}return e(s,...o)})},dd={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},uy=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=kt(s.key);if(t.some(i=>i===o||dd[i]===o))return e(s)})},Va=Te({patchProp:ld},Bu);let Hn,Ti=!1;function Wa(){return Hn||(Hn=uu(Va))}function hd(){return Hn=Ti?Hn:du(Va),Ti=!0,Hn}const dy=(...e)=>{Wa().render(...e)},pd=(...e)=>{const t=Wa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(!s)return;const o=t._component;!Q(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,qa(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},gd=(...e)=>{const t=hd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(s)return n(s,!0,qa(s))},t};function qa(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ga(e){return de(e)?document.querySelector(e):e}const md=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,yd=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,_d=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function bd(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){vd(e);return}return t}function vd(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function xr(e,t={}){if(typeof e!="string")return e;const n=e.trim();if(e[0]==='"'&&e.endsWith('"')&&!e.includes("\\"))return n.slice(1,-1);if(n.length<=9){const r=n.toLowerCase();if(r==="true")return!0;if(r==="false")return!1;if(r==="undefined")return;if(r==="null")return null;if(r==="nan")return Number.NaN;if(r==="infinity")return Number.POSITIVE_INFINITY;if(r==="-infinity")return Number.NEGATIVE_INFINITY}if(!_d.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(md.test(e)||yd.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,bd)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const wd=/#/g,Ed=/&/g,Td=/\//g,Rd=/=/g,Co=/\+/g,Cd=/%5e/gi,Sd=/%60/gi,xd=/%7c/gi,Ad=/%20/gi;function Pd(e){return encodeURI(""+e).replace(xd,"|")}function js(e){return Pd(typeof e=="string"?e:JSON.stringify(e)).replace(Co,"%2B").replace(Ad,"+").replace(wd,"%23").replace(Ed,"%26").replace(Sd,"`").replace(Cd,"^").replace(Td,"%2F")}function ds(e){return js(e).replace(Rd,"%3D")}function Ar(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function kd(e){return Ar(e.replace(Co," "))}function Od(e){return Ar(e.replace(Co," "))}function Id(e=""){const t={};e[0]==="?"&&(e=e.slice(1));for(const n of e.split("&")){const r=n.match(/([^=]+)=?(.*)/)||[];if(r.length<2)continue;const s=kd(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=Od(r[2]||"");t[s]===void 0?t[s]=o:Array.isArray(t[s])?t[s].push(o):t[s]=[t[s],o]}return t}function Md(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${ds(e)}=${js(n)}`).join("&"):`${ds(e)}=${js(t)}`:ds(e)}function Hd(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Md(t,e[t])).filter(Boolean).join("&")}const $d=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Ld=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,Nd=/^([/\\]\s*){2,}[^/\\]/,jd=/^[\s\0]*(blob|data|javascript|vbscript):$/i,Fd=/\/$|\/\?|\/#/,Dd=/^\.?\//;function Gt(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?$d.test(e):Ld.test(e)||(t.acceptRelative?Nd.test(e):!1)}function Bd(e){return!!e&&jd.test(e)}function Fs(e="",t){return t?Fd.test(e):e.endsWith("/")}function So(e="",t){if(!t)return(Fs(e)?e.slice(0,-1):e)||"/";if(!Fs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");s>=0&&(n=e.slice(0,s),r=e.slice(s));const[o,...i]=n.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(i.length>0?`?${i.join("?")}`:"")+r}function Ds(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Fs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");if(s>=0&&(n=e.slice(0,s),r=e.slice(s),!n))return r;const[o,...i]=n.split("?");return o+"/"+(i.length>0?`?${i.join("?")}`:"")+r}function Ud(e=""){return e.startsWith("/")}function Ri(e=""){return Ud(e)?e:"/"+e}function Kd(e,t){if(Ya(t)||Gt(e))return e;const n=So(t);return e.startsWith(n)?e:xo(n,e)}function Ci(e,t){if(Ya(t))return e;const n=So(t);if(!e.startsWith(n))return e;const r=e.slice(n.length);return r[0]==="/"?r:"/"+r}function Ja(e,t){const n=qd(e),r={...Id(n.search),...t};return n.search=Hd(r),Gd(n)}function Ya(e){return!e||e==="/"}function Vd(e){return e&&e!=="/"}function xo(e,...t){let n=e||"";for(const r of t.filter(s=>Vd(s)))if(n){const s=r.replace(Dd,"");n=Ds(n)+s}else n=r;return n}function Qa(...e){var i,l,a,f;const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const c of n)if(!(!c||c==="/")){for(const[u,d]of c.split(t).entries())if(!(!d||d===".")){if(d===".."){if(r.length===1&&Gt(r[0]))continue;r.pop(),s--;continue}if(u===1&&((i=r[r.length-1])!=null&&i.endsWith(":/"))){r[r.length-1]+="/"+d;continue}r.push(d),s++}}let o=r.join("/");return s>=0?(l=n[0])!=null&&l.startsWith("/")&&!o.startsWith("/")?o="/"+o:(a=n[0])!=null&&a.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,(f=n[n.length-1])!=null&&f.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function Wd(e,t,n={}){return n.trailingSlash||(e=Ds(e),t=Ds(t)),n.leadingSlash||(e=Ri(e),t=Ri(t)),n.encoding||(e=Ar(e),t=Ar(t)),e===t}const Xa=Symbol.for("ufo:protocolRelative");function qd(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,u,d=""]=n;return{protocol:u.toLowerCase(),pathname:d,href:u+d,auth:"",host:"",search:"",hash:""}}if(!Gt(e,{acceptRelative:!0}))return Si(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",l=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(l=l.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:a,search:f,hash:c}=Si(l);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:a,search:f,hash:c,[Xa]:!r}}function Si(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function Gd(e){const t=e.pathname||"",n=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",r=e.hash||"",s=e.auth?e.auth+"@":"",o=e.host||"";return(e.protocol||e[Xa]?(e.protocol||"")+"//":"")+s+o+t+n+r}class Jd extends Error{constructor(t,n){super(t,n),this.name="FetchError",n!=null&&n.cause&&!this.cause&&(this.cause=n.cause)}}function Yd(e){var a,f,c,u,d;const t=((a=e.error)==null?void 0:a.message)||((f=e.error)==null?void 0:f.toString())||"",n=((c=e.request)==null?void 0:c.method)||((u=e.options)==null?void 0:u.method)||"GET",r=((d=e.request)==null?void 0:d.url)||String(e.request)||"/",s=`[${n}] ${JSON.stringify(r)}`,o=e.response?`${e.response.status} ${e.response.statusText}`:"<no response>",i=`${s}: ${o}${t?` ${t}`:""}`,l=new Jd(i,e.error?{cause:e.error}:void 0);for(const h of["request","options","response"])Object.defineProperty(l,h,{get(){return e[h]}});for(const[h,b]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(l,h,{get(){return e.response&&e.response[b]}});return l}const Qd=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function xi(e="GET"){return Qd.has(e.toUpperCase())}function Xd(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const zd=new Set(["image/svg","application/xml","application/xhtml","application/html"]),Zd=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function eh(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return Zd.test(t)?"json":zd.has(t)||t.startsWith("text/")?"text":"blob"}function th(e,t,n,r){const s=nh((t==null?void 0:t.headers)??(e==null?void 0:e.headers),n==null?void 0:n.headers,r);let o;return(n!=null&&n.query||n!=null&&n.params||t!=null&&t.params||t!=null&&t.query)&&(o={...n==null?void 0:n.params,...n==null?void 0:n.query,...t==null?void 0:t.params,...t==null?void 0:t.query}),{...n,...t,query:o,params:o,headers:s}}function nh(e,t,n){if(!t)return new n(e);const r=new n(t);if(e)for(const[s,o]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(s,o);return r}async function ir(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const rh=new Set([408,409,425,429,500,502,503,504]),sh=new Set([101,204,205,304]);function za(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(l){const a=l.error&&l.error.name==="AbortError"&&!l.options.timeout||!1;if(l.options.retry!==!1&&!a){let c;typeof l.options.retry=="number"?c=l.options.retry:c=xi(l.options.method)?0:1;const u=l.response&&l.response.status||500;if(c>0&&(Array.isArray(l.options.retryStatusCodes)?l.options.retryStatusCodes.includes(u):rh.has(u))){const d=typeof l.options.retryDelay=="function"?l.options.retryDelay(l):l.options.retryDelay||0;return d>0&&await new Promise(h=>setTimeout(h,d)),o(l.request,{...l.options,retry:c-1})}}const f=Yd(l);throw Error.captureStackTrace&&Error.captureStackTrace(f,o),f}const o=async function(a,f={}){const c={request:a,options:th(a,f,e.defaults,n),response:void 0,error:void 0};c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&await ir(c,c.options.onRequest),typeof c.request=="string"&&(c.options.baseURL&&(c.request=Kd(c.request,c.options.baseURL)),c.options.query&&(c.request=Ja(c.request,c.options.query),delete c.options.query),"query"in c.options&&delete c.options.query,"params"in c.options&&delete c.options.params),c.options.body&&xi(c.options.method)&&(Xd(c.options.body)?(c.options.body=typeof c.options.body=="string"?c.options.body:JSON.stringify(c.options.body),c.options.headers=new n(c.options.headers||{}),c.options.headers.has("content-type")||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")):("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half")));let u;if(!c.options.signal&&c.options.timeout){const h=new r;u=setTimeout(()=>{const b=new Error("[TimeoutError]: The operation was aborted due to timeout");b.name="TimeoutError",b.code=23,h.abort(b)},c.options.timeout),c.options.signal=h.signal}try{c.response=await t(c.request,c.options)}catch(h){return c.error=h,c.options.onRequestError&&await ir(c,c.options.onRequestError),await s(c)}finally{u&&clearTimeout(u)}if((c.response.body||c.response._bodyInit)&&!sh.has(c.response.status)&&c.options.method!=="HEAD"){const h=(c.options.parseResponse?"json":c.options.responseType)||eh(c.response.headers.get("content-type")||"");switch(h){case"json":{const b=await c.response.text(),y=c.options.parseResponse||xr;c.response._data=y(b);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[h]()}}return c.options.onResponse&&await ir(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await ir(c,c.options.onResponseError),await s(c)):c.response},i=async function(a,f){return(await o(a,f))._data};return i.raw=o,i.native=(...l)=>t(...l),i.create=(l={},a={})=>za({...e,...a,defaults:{...e.defaults,...a.defaults,...l}}),i}const Pr=function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}(),oh=Pr.fetch?(...e)=>Pr.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),ih=Pr.Headers,lh=Pr.AbortController,ah=za({fetch:oh,Headers:ih,AbortController:lh}),ch=ah,fh=()=>{var e;return((e=window==null?void 0:window.__NUXT__)==null?void 0:e.config)||{}},kr=fh().app,uh=()=>kr.baseURL,dh=()=>kr.buildAssetsDir,Ao=(...e)=>Qa(Za(),dh(),...e),Za=(...e)=>{const t=kr.cdnURL||kr.baseURL;return e.length?Qa(t,...e):t};globalThis.__buildAssetsURL=Ao,globalThis.__publicAssetsURL=Za;globalThis.$fetch||(globalThis.$fetch=ch.create({baseURL:uh()}));function Bs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Bs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const hh={run:e=>e()},ph=()=>hh,ec=typeof console.createTask<"u"?console.createTask:ph;function gh(e,t){const n=t.shift(),r=ec(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function mh(e,t){const n=t.shift(),r=ec(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function hs(e,t){for(const n of[...e])n(t)}class yh{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let o;for(;this._deprecatedHooks[t];)o=this._deprecatedHooks[t],t=o.to;if(o&&!r.allowDeprecated){let i=o.message;i||(i=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...o)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...o));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=Bs(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=Bs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(gh,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(mh,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&hs(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&hs(this._after,s)}):(this._after&&s&&hs(this._after,s),o)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function tc(){return new yh}function _h(e={}){let t,n=!1;const r=i=>{if(t&&t!==i)throw new Error("Context conflict")};let s;if(e.asyncContext){const i=e.AsyncLocalStorage||globalThis.AsyncLocalStorage;i?s=new i:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const i=s.getStore();if(i!==void 0)return i}return t};return{use:()=>{const i=o();if(i===void 0)throw new Error("Context is not available");return i},tryUse:()=>o(),set:(i,l)=>{l||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,l)=>{r(i),t=i;try{return s?s.run(i,l):l()}finally{n||(t=void 0)}},async callAsync(i,l){t=i;const a=()=>{t=i},f=()=>t===i?a:void 0;Us.add(f);try{const c=s?s.run(i,l):l();return n||(t=void 0),await c}finally{Us.delete(f)}}}}function bh(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=_h({...e,...r})),t[n]}}}const Or=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},Ai="__unctx__",vh=Or[Ai]||(Or[Ai]=bh()),wh=(e,t={})=>vh.get(e,t),Pi="__unctx_async_handlers__",Us=Or[Pi]||(Or[Pi]=new Set);function un(e){const t=[];for(const s of Us){const o=s();o&&t.push(o)}const n=()=>{for(const s of t)s()};let r=e();return r&&typeof r=="object"&&"catch"in r&&(r=r.catch(s=>{throw n(),s})),[r,n]}const Ks=!1,Eh=!1,hy={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},Th=null,Rh="#__nuxt",nc="nuxt-app",ki=36e5,Ch="vite:preloadError";function rc(e=nc){return wh(e,{asyncContext:!1})}const Sh="__nuxt_plugin";function xh(e){var s;let t=0;const n={_id:e.id||nc||"nuxt-app",_scope:Xc(),provide:void 0,globalName:"nuxt",versions:{get nuxt(){return"3.15.4"},get vue(){return n.vueApp.version}},payload:gt({...((s=e.ssrContext)==null?void 0:s.payload)||{},data:gt({}),state:Mt({}),once:new Set,_errors:gt({})}),static:{data:{}},runWithContext(o){return n._scope.active&&!co()?n._scope.run(()=>Oi(n,o)):Oi(n,o)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let o=!1;return()=>{if(!o&&(o=!0,t--,t===0))return n.isHydrating=!1,n.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:gt({}),_payloadRevivers:{},...e};{const o=window.__NUXT__;if(o)for(const i in o)switch(i){case"data":case"state":case"_errors":Object.assign(n.payload[i],o[i]);break;default:n.payload[i]=o[i]}}n.hooks=tc(),n.hook=n.hooks.hook,n.callHook=n.hooks.callHook,n.provide=(o,i)=>{const l="$"+o;lr(n,l,i),lr(n.vueApp.config.globalProperties,l,i)},lr(n.vueApp,"$nuxt",n),lr(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(Ch,i=>{n.callHook("app:chunkError",{error:i.payload}),(n.isHydrating||i.payload.message.includes("Unable to preload CSS"))&&i.preventDefault()}),window.useNuxtApp=window.useNuxtApp||ge;const o=n.hook("app:error",(...i)=>{console.error("[nuxt] error caught during app initialization",...i)});n.hook("app:mounted",o)}const r=n.payload.config;return n.provide("config",r),n}function Ah(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function Ph(e,t){if(typeof t=="function"){const{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n=="object")for(const r in n)e.provide(r,n[r])}}async function kh(e,t){const n=[],r=[],s=[],o=[];let i=0;async function l(a){var c;const f=((c=a.dependsOn)==null?void 0:c.filter(u=>t.some(d=>d._name===u)&&!n.includes(u)))??[];if(f.length>0)r.push([new Set(f),a]);else{const u=Ph(e,a).then(async()=>{a._name&&(n.push(a._name),await Promise.all(r.map(async([d,h])=>{d.has(a._name)&&(d.delete(a._name),d.size===0&&(i++,await l(h)))})))});a.parallel?s.push(u.catch(d=>o.push(d))):await u}}for(const a of t)Ah(e,a);for(const a of t)await l(a);if(await Promise.all(s),i)for(let a=0;a<i;a++)await Promise.all(s);if(o.length)throw o[0]}function et(e){if(typeof e=="function")return e;const t=e._name||e.name;return delete e.name,Object.assign(e.setup||(()=>{}),e,{[Sh]:!0,_name:t})}function Oi(e,t,n){const r=()=>t();return rc(e._id).set(e),e.vueApp.runWithContext(r)}function Oh(e){var n;let t;return ha()&&(t=(n=lt())==null?void 0:n.appContext.app.$nuxt),t=t||rc(e).tryUse(),t||null}function ge(e){const t=Oh(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function Wr(e){return ge().$config}function lr(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function Ih(e,t){return{ctx:{table:e},matchAll:n=>oc(n,e)}}function sc(e){const t={};for(const n in e)t[n]=n==="dynamic"?new Map(Object.entries(e[n]).map(([r,s])=>[r,sc(s)])):new Map(Object.entries(e[n]));return t}function Mh(e){return Ih(sc(e))}function oc(e,t,n){e.endsWith("/")&&(e=e.slice(0,-1)||"/");const r=[];for(const[o,i]of Ii(t.wildcard))(e===o||e.startsWith(o+"/"))&&r.push(i);for(const[o,i]of Ii(t.dynamic))if(e.startsWith(o+"/")){const l="/"+e.slice(o.length).split("/").splice(2).join("/");r.push(...oc(l,i))}const s=t.static.get(e);return s&&r.push(s),r.filter(Boolean)}function Ii(e){return[...e.entries()].sort((t,n)=>t[0].length-n[0].length)}function ps(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Vs(e,t,n=".",r){if(!ps(t))return Vs(e,{},n,r);const s=Object.assign({},t);for(const o in e){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:ps(i)&&ps(s[o])?s[o]=Vs(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function Hh(e){return(...t)=>t.reduce((n,r)=>Vs(n,r,"",e),{})}const ic=Hh();function $h(e,t){try{return t in e}catch{return!1}}class Ws extends Error{constructor(n,r={}){super(n,r);vt(this,"statusCode",500);vt(this,"fatal",!1);vt(this,"unhandled",!1);vt(this,"statusMessage");vt(this,"data");vt(this,"cause");r.cause&&!this.cause&&(this.cause=r.cause)}toJSON(){const n={message:this.message,statusCode:Gs(this.statusCode,500)};return this.statusMessage&&(n.statusMessage=lc(this.statusMessage)),this.data!==void 0&&(n.data=this.data),n}}vt(Ws,"__h3_error__",!0);function qs(e){if(typeof e=="string")return new Ws(e);if(Lh(e))return e;const t=new Ws(e.message??e.statusMessage??"",{cause:e.cause||e});if($h(e,"stack"))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=Gs(e.statusCode,t.statusCode):e.status&&(t.statusCode=Gs(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;lc(t.statusMessage)!==n&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function Lh(e){var t;return((t=e==null?void 0:e.constructor)==null?void 0:t.__h3_error__)===!0}const Nh=/[^\u0009\u0020-\u007E]/g;function lc(e=""){return e.replace(Nh,"")}function Gs(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const jh=Symbol("layout-meta"),qr=Symbol("route"),ze=()=>{var e;return(e=ge())==null?void 0:e.$router},Po=()=>ha()?we(qr,ge()._route):ge()._route;const Fh=()=>{try{if(ge()._processingMiddleware)return!0}catch{return!1}return!1},py=(e,t)=>{e||(e="/");const n=typeof e=="string"?e:"path"in e?Dh(e):ze().resolve(e).href;if(t!=null&&t.open){const{target:a="_blank",windowFeatures:f={}}=t.open,c=Object.entries(f).filter(([u,d])=>d!==void 0).map(([u,d])=>`${u.toLowerCase()}=${d}`).join(", ");return open(n,a,c),Promise.resolve()}const r=Gt(n,{acceptRelative:!0}),s=(t==null?void 0:t.external)||r;if(s){if(!(t!=null&&t.external))throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:a}=new URL(n,window.location.href);if(a&&Bd(a))throw new Error(`Cannot navigate to a URL with '${a}' protocol.`)}const o=Fh();if(!s&&o)return t!=null&&t.replace?typeof e=="string"?{path:e,replace:!0}:{...e,replace:!0}:e;const i=ze(),l=ge();return s?(l._scope.stop(),t!=null&&t.replace?location.replace(n):location.href=n,o?l.isHydrating?new Promise(()=>{}):!1:Promise.resolve()):t!=null&&t.replace?i.replace(e):i.push(e)};function Dh(e){return Ja(e.path||"",e.query||{})+(e.hash||"")}const ac="__nuxt_error",Gr=()=>Rf(ge().payload,"error"),nn=e=>{const t=Jr(e);try{const n=ge(),r=Gr();n.hooks.callHook("app:error",t),r.value=r.value||t}catch{throw t}return t},Bh=async(e={})=>{const t=ge(),n=Gr();t.callHook("app:error:cleared",e),e.redirect&&await ze().replace(e.redirect),n.value=Th},Uh=e=>!!e&&typeof e=="object"&&ac in e,Jr=e=>{const t=qs(e);return Object.defineProperty(t,ac,{value:!0,configurable:!1,writable:!1}),t};function Mi(e){const t=Vh(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let s=0;s<n.byteLength;s++)r.setUint8(s,t.charCodeAt(s));return n}const Kh="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Vh(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",n=0,r=0;for(let s=0;s<e.length;s++)n<<=6,n|=Kh.indexOf(e[s]),r+=6,r===24&&(t+=String.fromCharCode((n&16711680)>>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Wh=-1,qh=-2,Gh=-3,Jh=-4,Yh=-5,Qh=-6;function Xh(e,t){return zh(JSON.parse(e),t)}function zh(e,t){if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);function s(o,i=!1){if(o===Wh)return;if(o===Gh)return NaN;if(o===Jh)return 1/0;if(o===Yh)return-1/0;if(o===Qh)return-0;if(i)throw new Error("Invalid input");if(o in r)return r[o];const l=n[o];if(!l||typeof l!="object")r[o]=l;else if(Array.isArray(l))if(typeof l[0]=="string"){const a=l[0],f=t==null?void 0:t[a];if(f)return r[o]=f(s(l[1]));switch(a){case"Date":r[o]=new Date(l[1]);break;case"Set":const c=new Set;r[o]=c;for(let h=1;h<l.length;h+=1)c.add(s(l[h]));break;case"Map":const u=new Map;r[o]=u;for(let h=1;h<l.length;h+=2)u.set(s(l[h]),s(l[h+1]));break;case"RegExp":r[o]=new RegExp(l[1],l[2]);break;case"Object":r[o]=Object(l[1]);break;case"BigInt":r[o]=BigInt(l[1]);break;case"null":const d=Object.create(null);r[o]=d;for(let h=1;h<l.length;h+=2)d[l[h]]=s(l[h+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const h=globalThis[a],b=l[1],y=Mi(b),R=new h(y);r[o]=R;break}case"ArrayBuffer":{const h=l[1],b=Mi(h);r[o]=b;break}default:throw new Error(`Unknown type ${a}`)}}else{const a=new Array(l.length);r[o]=a;for(let f=0;f<l.length;f+=1){const c=l[f];c!==qh&&(a[f]=s(c))}}else{const a={};r[o]=a;for(const f in l){const c=l[f];a[f]=s(c)}}return r[o]}return s(0)}const Zh=new Set(["title","titleTemplate","script","style","noscript"]),hr=new Set(["base","meta","link","style","script","noscript"]),ep=new Set(["title","titleTemplate","templateParams","base","htmlAttrs","bodyAttrs","meta","link","style","script","noscript"]),tp=new Set(["base","title","titleTemplate","bodyAttrs","htmlAttrs","templateParams"]),cc=new Set(["tagPosition","tagPriority","tagDuplicateStrategy","children","innerHTML","textContent","processTemplateParams"]),np=typeof window<"u";function Ir(e){let t=9;for(let n=0;n<e.length;)t=Math.imul(t^e.charCodeAt(n++),9**9);return((t^t>>>9)+65536).toString(16).substring(1,8).toLowerCase()}function Js(e){if(e._h)return e._h;if(e._d)return Ir(e._d);let t=`${e.tag}:${e.textContent||e.innerHTML||""}:`;for(const n in e.props)t+=`${n}:${String(e.props[n])},`;return Ir(t)}function rp(e,t){return e instanceof Promise?e.then(t):t(e)}function Ys(e,t,n,r){const s=r||uc(typeof t=="object"&&typeof t!="function"&&!(t instanceof Promise)?{...t}:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},e==="templateParams"||e==="titleTemplate");if(s instanceof Promise)return s.then(i=>Ys(e,t,n,i));const o={tag:e,props:s};for(const i of cc){const l=o.props[i]!==void 0?o.props[i]:n[i];l!==void 0&&((!(i==="innerHTML"||i==="textContent"||i==="children")||Zh.has(o.tag))&&(o[i==="children"?"innerHTML":i]=l),delete o.props[i])}return o.props.body&&(o.tagPosition="bodyClose",delete o.props.body),o.tag==="script"&&typeof o.innerHTML=="object"&&(o.innerHTML=JSON.stringify(o.innerHTML),o.props.type=o.props.type||"application/json"),Array.isArray(o.props.content)?o.props.content.map(i=>({...o,props:{...o.props,content:i}})):o}function sp(e,t){var r;const n=e==="class"?" ":";";return t&&typeof t=="object"&&!Array.isArray(t)&&(t=Object.entries(t).filter(([,s])=>s).map(([s,o])=>e==="style"?`${s}:${o}`:s)),(r=String(Array.isArray(t)?t.join(n):t))==null?void 0:r.split(n).filter(s=>!!s.trim()).join(n)}function fc(e,t,n,r){for(let s=r;s<n.length;s+=1){const o=n[s];if(o==="class"||o==="style"){e[o]=sp(o,e[o]);continue}if(e[o]instanceof Promise)return e[o].then(i=>(e[o]=i,fc(e,t,n,s)));if(!t&&!cc.has(o)){const i=String(e[o]),l=o.startsWith("data-");i==="true"||i===""?e[o]=l?"true":!0:e[o]||(l&&i==="false"?e[o]="false":delete e[o])}}}function uc(e,t=!1){const n=fc(e,t,Object.keys(e),0);return n instanceof Promise?n.then(()=>e):e}const op=10;function dc(e,t,n){for(let r=n;r<t.length;r+=1){const s=t[r];if(s instanceof Promise)return s.then(o=>(t[r]=o,dc(e,t,r)));Array.isArray(s)?e.push(...s):e.push(s)}}function ip(e){const t=[],n=e.resolvedInput;for(const s in n){if(!Object.prototype.hasOwnProperty.call(n,s))continue;const o=n[s];if(!(o===void 0||!ep.has(s))){if(Array.isArray(o)){for(const i of o)t.push(Ys(s,i,e));continue}t.push(Ys(s,o,e))}}if(t.length===0)return[];const r=[];return rp(dc(r,t,0),()=>r.map((s,o)=>(s._e=e._i,e.mode&&(s._m=e.mode),s._p=(e._i<<op)+o,s)))}const Hi=new Set(["onload","onerror","onabort","onprogress","onloadstart"]),$i={base:-10,title:10},Li={critical:-80,high:-10,low:20};function Mr(e){const t=e.tagPriority;if(typeof t=="number")return t;let n=100;return e.tag==="meta"?e.props["http-equiv"]==="content-security-policy"?n=-30:e.props.charset?n=-20:e.props.name==="viewport"&&(n=-15):e.tag==="link"&&e.props.rel==="preconnect"?n=20:e.tag in $i&&(n=$i[e.tag]),t&&t in Li?n+Li[t]:n}const lp=[{prefix:"before:",offset:-1},{prefix:"after:",offset:1}],ap=["name","property","http-equiv"];function hc(e){const{props:t,tag:n}=e;if(tp.has(n))return n;if(n==="link"&&t.rel==="canonical")return"canonical";if(t.charset)return"charset";if(t.id)return`${n}:id:${t.id}`;for(const r of ap)if(t[r]!==void 0)return`${n}:${r}:${t[r]}`;return!1}const Ct="%separator";function cp(e,t,n=!1){var s;let r;if(t==="s"||t==="pageTitle")r=e.pageTitle;else if(t.includes(".")){const o=t.indexOf(".");r=(s=e[t.substring(0,o)])==null?void 0:s[t.substring(o+1)]}else r=e[t];if(r!==void 0)return n?(r||"").replace(/"/g,'\\"'):r||""}const fp=new RegExp(`${Ct}(?:\\s*${Ct})*`,"g");function ar(e,t,n,r=!1){if(typeof e!="string"||!e.includes("%"))return e;let s=e;try{s=decodeURI(e)}catch{}const o=s.match(/%\w+(?:\.\w+)?/g);if(!o)return e;const i=e.includes(Ct);return e=e.replace(/%\w+(?:\.\w+)?/g,l=>{if(l===Ct||!o.includes(l))return l;const a=cp(t,l.slice(1),r);return a!==void 0?a:l}).trim(),i&&(e.endsWith(Ct)&&(e=e.slice(0,-Ct.length)),e.startsWith(Ct)&&(e=e.slice(Ct.length)),e=e.replace(fp,n).trim()),e}function Ni(e,t){return e==null?t||null:typeof e=="function"?e(t):e}async function pc(e,t={}){const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!!r.shouldRender)return e._domUpdatePromise||(e._domUpdatePromise=new Promise(async s=>{var u;const o=(await e.resolveTags()).map(d=>({tag:d,id:hr.has(d.tag)?Js(d):d.tag,shouldRender:!0}));let i=e._dom;if(!i){i={elMap:{htmlAttrs:n.documentElement,bodyAttrs:n.body}};const d=new Set;for(const h of["body","head"]){const b=(u=n[h])==null?void 0:u.children;for(const y of b){const R=y.tagName.toLowerCase();if(!hr.has(R))continue;const T={tag:R,props:await uc(y.getAttributeNames().reduce((v,C)=>({...v,[C]:y.getAttribute(C)}),{})),innerHTML:y.innerHTML},E=hc(T);let g=E,_=1;for(;g&&d.has(g);)g=`${E}:${_++}`;g&&(T._d=g,d.add(g)),i.elMap[y.getAttribute("data-hid")||Js(T)]=y}}}i.pendingSideEffects={...i.sideEffects},i.sideEffects={};function l(d,h,b){const y=`${d}:${h}`;i.sideEffects[y]=b,delete i.pendingSideEffects[y]}function a({id:d,$el:h,tag:b}){const y=b.tag.endsWith("Attrs");if(i.elMap[d]=h,y||(b.textContent&&b.textContent!==h.textContent&&(h.textContent=b.textContent),b.innerHTML&&b.innerHTML!==h.innerHTML&&(h.innerHTML=b.innerHTML),l(d,"el",()=>{var R;(R=i.elMap[d])==null||R.remove(),delete i.elMap[d]})),b._eventHandlers)for(const R in b._eventHandlers)Object.prototype.hasOwnProperty.call(b._eventHandlers,R)&&h.getAttribute(`data-${R}`)!==""&&((b.tag==="bodyAttrs"?n.defaultView:h).addEventListener(R.substring(2),b._eventHandlers[R].bind(h)),h.setAttribute(`data-${R}`,""));for(const R in b.props){if(!Object.prototype.hasOwnProperty.call(b.props,R))continue;const T=b.props[R],E=`attr:${R}`;if(R==="class"){if(!T)continue;for(const g of T.split(" "))y&&l(d,`${E}:${g}`,()=>h.classList.remove(g)),!h.classList.contains(g)&&h.classList.add(g)}else if(R==="style"){if(!T)continue;for(const g of T.split(";")){const _=g.indexOf(":"),v=g.substring(0,_).trim(),C=g.substring(_+1).trim();l(d,`${E}:${v}`,()=>{h.style.removeProperty(v)}),h.style.setProperty(v,C)}}else h.getAttribute(R)!==T&&h.setAttribute(R,T===!0?"":String(T)),y&&l(d,E,()=>h.removeAttribute(R))}}const f=[],c={bodyClose:void 0,bodyOpen:void 0,head:void 0};for(const d of o){const{tag:h,shouldRender:b,id:y}=d;if(b){if(h.tag==="title"){n.title=h.textContent;continue}d.$el=d.$el||i.elMap[y],d.$el?a(d):hr.has(h.tag)&&f.push(d)}}for(const d of f){const h=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),a(d),c[h]=c[h]||n.createDocumentFragment(),c[h].appendChild(d.$el)}for(const d of o)await e.hooks.callHook("dom:renderTag",d,n,l);c.head&&n.head.appendChild(c.head),c.bodyOpen&&n.body.insertBefore(c.bodyOpen,n.body.firstChild),c.bodyClose&&n.body.appendChild(c.bodyClose);for(const d in i.pendingSideEffects)i.pendingSideEffects[d]();e._dom=i,await e.hooks.callHook("dom:rendered",{renders:o}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function up(e,t={}){const n=t.delayFn||(r=>setTimeout(r,10));return e._domDebouncedUpdatePromise=e._domDebouncedUpdatePromise||new Promise(r=>n(()=>pc(e,t).then(()=>{delete e._domDebouncedUpdatePromise,r()})))}function dp(e){return t=>{var r,s;const n=((s=(r=t.resolvedOptions.document)==null?void 0:r.head.querySelector('script[id="unhead:payload"]'))==null?void 0:s.innerHTML)||!1;return n&&t.push(JSON.parse(n)),{mode:"client",hooks:{"entries:updated":o=>{up(o,e)}}}}}const hp=new Set(["templateParams","htmlAttrs","bodyAttrs"]),pp={hooks:{"tag:normalise":({tag:e})=>{e.props.hid&&(e.key=e.props.hid,delete e.props.hid),e.props.vmid&&(e.key=e.props.vmid,delete e.props.vmid),e.props.key&&(e.key=e.props.key,delete e.props.key);const t=hc(e);t&&!t.startsWith("meta:og:")&&!t.startsWith("meta:twitter:")&&delete e.key;const n=t||(e.key?`${e.tag}:${e.key}`:!1);n&&(e._d=n)},"tags:resolve":e=>{const t=Object.create(null);for(const r of e.tags){const s=(r.key?`${r.tag}:${r.key}`:r._d)||Js(r),o=t[s];if(o){let l=r==null?void 0:r.tagDuplicateStrategy;if(!l&&hp.has(r.tag)&&(l="merge"),l==="merge"){const a=o.props;a.style&&r.props.style&&(a.style[a.style.length-1]!==";"&&(a.style+=";"),r.props.style=`${a.style} ${r.props.style}`),a.class&&r.props.class?r.props.class=`${a.class} ${r.props.class}`:a.class&&(r.props.class=a.class),t[s].props={...a,...r.props};continue}else if(r._e===o._e){o._duped=o._duped||[],r._d=`${o._d}:${o._duped.length+1}`,o._duped.push(r);continue}else if(Mr(r)>Mr(o))continue}if(!(r.innerHTML||r.textContent||Object.keys(r.props).length!==0)&&hr.has(r.tag)){delete t[s];continue}t[s]=r}const n=[];for(const r in t){const s=t[r],o=s._duped;n.push(s),o&&(delete s._duped,n.push(...o))}e.tags=n,e.tags=e.tags.filter(r=>!(r.tag==="meta"&&(r.props.name||r.props.property)&&!r.props.content))}}},gp=new Set(["script","link","bodyAttrs"]),mp=e=>({hooks:{"tags:resolve":t=>{for(const n of t.tags){if(!gp.has(n.tag))continue;const r=n.props;for(const s in r){if(s[0]!=="o"||s[1]!=="n"||!Object.prototype.hasOwnProperty.call(r,s))continue;const o=r[s];typeof o=="function"&&(e.ssr&&Hi.has(s)?r[s]=`this.dataset.${s}fired = true`:delete r[s],n._eventHandlers=n._eventHandlers||{},n._eventHandlers[s]=o)}e.ssr&&n._eventHandlers&&(n.props.src||n.props.href)&&(n.key=n.key||Ir(n.props.src||n.props.href))}},"dom:renderTag":({$el:t,tag:n})=>{var s,o;const r=t==null?void 0:t.dataset;if(r)for(const i in r){if(!i.endsWith("fired"))continue;const l=i.slice(0,-5);Hi.has(l)&&((o=(s=n._eventHandlers)==null?void 0:s[l])==null||o.call(t,new Event(l.substring(2))))}}}}),yp=new Set(["link","style","script","noscript"]),_p={hooks:{"tag:normalise":({tag:e})=>{e.key&&yp.has(e.tag)&&(e.props["data-hid"]=e._h=Ir(e.key))}}},bp={mode:"server",hooks:{"tags:beforeResolve":e=>{const t={};let n=!1;for(const r of e.tags)r._m!=="server"||r.tag!=="titleTemplate"&&r.tag!=="templateParams"&&r.tag!=="title"||(t[r.tag]=r.tag==="title"||r.tag==="titleTemplate"?r.textContent:r.props,n=!0);n&&e.tags.push({tag:"script",innerHTML:JSON.stringify(t),props:{id:"unhead:payload",type:"application/json"}})}}},vp={hooks:{"tags:resolve":e=>{var t;for(const n of e.tags)if(typeof n.tagPriority=="string")for(const{prefix:r,offset:s}of lp){if(!n.tagPriority.startsWith(r))continue;const o=n.tagPriority.substring(r.length),i=(t=e.tags.find(l=>l._d===o))==null?void 0:t._p;if(i!==void 0){n._p=i+s;break}}e.tags.sort((n,r)=>{const s=Mr(n),o=Mr(r);return s<o?-1:s>o?1:n._p-r._p})}}},wp={meta:"content",link:"href",htmlAttrs:"lang"},Ep=["innerHTML","textContent"],Tp=e=>({hooks:{"tags:resolve":t=>{var i;const{tags:n}=t;let r;for(let l=0;l<n.length;l+=1)n[l].tag==="templateParams"&&(r=t.tags.splice(l,1)[0].props,l-=1);const s=r||{},o=s.separator||"|";delete s.separator,s.pageTitle=ar(s.pageTitle||((i=n.find(l=>l.tag==="title"))==null?void 0:i.textContent)||"",s,o);for(const l of n){if(l.processTemplateParams===!1)continue;const a=wp[l.tag];if(a&&typeof l.props[a]=="string")l.props[a]=ar(l.props[a],s,o);else if(l.processTemplateParams||l.tag==="titleTemplate"||l.tag==="title")for(const f of Ep)typeof l[f]=="string"&&(l[f]=ar(l[f],s,o,l.tag==="script"&&l.props.type.endsWith("json")))}e._templateParams=s,e._separator=o},"tags:afterResolve":({tags:t})=>{let n;for(let r=0;r<t.length;r+=1){const s=t[r];s.tag==="title"&&s.processTemplateParams!==!1&&(n=s)}n!=null&&n.textContent&&(n.textContent=ar(n.textContent,e._templateParams,e._separator))}}}),Rp={hooks:{"tags:resolve":e=>{const{tags:t}=e;let n,r;for(let s=0;s<t.length;s+=1){const o=t[s];o.tag==="title"?n=o:o.tag==="titleTemplate"&&(r=o)}if(r&&n){const s=Ni(r.textContent,n.textContent);s!==null?n.textContent=s||n.textContent:e.tags.splice(e.tags.indexOf(n),1)}else if(r){const s=Ni(r.textContent);s!==null&&(r.textContent=s,r.tag="title",r=void 0)}r&&e.tags.splice(e.tags.indexOf(r),1)}}},Cp={hooks:{"tags:afterResolve":e=>{for(const t of e.tags)typeof t.innerHTML=="string"&&(t.innerHTML&&(t.props.type==="application/ld+json"||t.props.type==="application/json")?t.innerHTML=t.innerHTML.replace(/</g,"\\u003C"):t.innerHTML=t.innerHTML.replace(new RegExp(`</${t.tag}`,"g"),`<\\/${t.tag}`))}}};let gc;function Sp(e={}){const t=xp(e);return t.use(dp()),gc=t}function ji(e,t){return!e||e==="server"&&t||e==="client"&&!t}function xp(e={}){const t=tc();t.addHooks(e.hooks||{}),e.document=e.document||(np?document:void 0);const n=!e.document,r=()=>{l.dirty=!0,t.callHook("entries:updated",l)};let s=0,o=[];const i=[],l={plugins:i,dirty:!1,resolvedOptions:e,hooks:t,headEntries(){return o},use(a){const f=typeof a=="function"?a(l):a;(!f.key||!i.some(c=>c.key===f.key))&&(i.push(f),ji(f.mode,n)&&t.addHooks(f.hooks||{}))},push(a,f){f==null||delete f.head;const c={_i:s++,input:a,...f};return ji(c.mode,n)&&(o.push(c),r()),{dispose(){o=o.filter(u=>u._i!==c._i),r()},patch(u){for(const d of o)d._i===c._i&&(d.input=c.input=u);r()}}},async resolveTags(){const a={tags:[],entries:[...o]};await t.callHook("entries:resolve",a);for(const f of a.entries){const c=f.resolvedInput||f.input;if(f.resolvedInput=await(f.transform?f.transform(c):c),f.resolvedInput)for(const u of await ip(f)){const d={tag:u,entry:f,resolvedOptions:l.resolvedOptions};await t.callHook("tag:normalise",d),a.tags.push(d.tag)}}return await t.callHook("tags:beforeResolve",a),await t.callHook("tags:resolve",a),await t.callHook("tags:afterResolve",a),a.tags},ssr:n};return[pp,bp,mp,_p,vp,Tp,Rp,Cp,...(e==null?void 0:e.plugins)||[]].forEach(a=>l.use(a)),l.hooks.callHook("init",l),l}function Ap(){return gc}const Pp=Da[0]==="3";function kp(e){return typeof e=="function"?e():le(e)}function Qs(e){if(e instanceof Promise||e instanceof Date||e instanceof RegExp)return e;const t=kp(e);if(!e||!t)return t;if(Array.isArray(t))return t.map(n=>Qs(n));if(typeof t=="object"){const n={};for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)){if(r==="titleTemplate"||r[0]==="o"&&r[1]==="n"){n[r]=le(t[r]);continue}n[r]=Qs(t[r])}return n}return t}const Op={hooks:{"entries:resolve":e=>{for(const t of e.entries)t.resolvedInput=Qs(t.input)}}},mc="usehead";function Ip(e){return{install(n){Pp&&(n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(mc,e))}}.install}function Mp(e={}){e.domDelayFn=e.domDelayFn||(n=>vn(()=>setTimeout(()=>n(),0)));const t=Sp(e);return t.use(Op),t.install=Ip(t),t}const Xs=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zs="__unhead_injection_handler__";function Hp(e){Xs[zs]=e}function gy(){return zs in Xs?Xs[zs]():we(mc)||Ap()}const $p="modulepreload",Lp=function(e,t){return new URL(e,t).href},Fi={},Dt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),a=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));s=Promise.allSettled(n.map(f=>{if(f=Lp(f,r),f in Fi)return;Fi[f]=!0;const c=f.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(!!r)for(let b=i.length-1;b>=0;b--){const y=i[b];if(y.href===f&&(!c||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${u}`))return;const h=document.createElement("link");if(h.rel=c?"stylesheet":$p,c||(h.as="script"),h.crossOrigin="",h.href=f,a&&h.setAttribute("nonce",a),document.head.appendChild(h),c)return new Promise((b,y)=>{h.addEventListener("load",b),h.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${f}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})};let pr,gr;function Np(){return pr=$fetch(Ao(`builds/meta/${Wr().app.buildId}.json`),{responseType:"json"}),pr.then(e=>{gr=Mh(e.matcher)}).catch(e=>{console.error("[nuxt] Error fetching app manifest.",e)}),pr}function Yr(){return pr||Np()}async function ko(e){const t=typeof e=="string"?e:e.path;if(await Yr(),!gr)return console.error("[nuxt] Error creating app manifest matcher.",gr),{};try{return ic({},...gr.matchAll(t).reverse())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function Di(e,t={}){const n=await Fp(e,t),r=ge(),s=r._payloadCache=r._payloadCache||{};return n in s?s[n]||null:(s[n]=_c(e).then(o=>o?yc(n).then(i=>i||(delete s[n],null)):(s[n]=null,null)),s[n])}const jp="_payload.json";async function Fp(e,t={}){const n=new URL(e,"http://localhost");if(n.host!=="localhost"||Gt(n.pathname,{acceptRelative:!0}))throw new Error("Payload URL must not include hostname: "+e);const r=Wr(),s=t.hash||(t.fresh?Date.now():r.app.buildId),o=r.app.cdnURL,i=o&&await _c(e)?o:r.app.baseURL;return xo(i,n.pathname,jp+(s?`?${s}`:""))}async function yc(e){const t=fetch(e).then(n=>n.text().then(bc));try{return await t}catch(n){console.warn("[nuxt] Cannot load payload ",e,n)}return null}async function _c(e=Po().path){const t=ge();return e=So(e),(await Yr()).prerendered.includes(e)?!0:t.runWithContext(async()=>{const r=await ko({path:e});return!!r.prerender&&!r.redirect})}let Nt=null;async function Dp(){var r;if(Nt)return Nt;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await bc(e.textContent||""),n=e.dataset.src?await yc(e.dataset.src):void 0;return Nt={...t,...n,...window.__NUXT__},(r=Nt.config)!=null&&r.public&&(Nt.config.public=Mt(Nt.config.public)),Nt}async function bc(e){return await Xh(e,ge()._payloadRevivers)}function Bp(e,t){ge()._payloadRevivers[e]=t}const Up=[["NuxtError",e=>Jr(e)],["EmptyShallowRef",e=>dn(e==="_"?void 0:e==="0n"?BigInt(0):xr(e))],["EmptyRef",e=>Oe(e==="_"?void 0:e==="0n"?BigInt(0):xr(e))],["ShallowRef",e=>dn(e)],["ShallowReactive",e=>gt(e)],["Ref",e=>Oe(e)],["Reactive",e=>Mt(e)]],Kp=et({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of Up)Bp(r,s);Object.assign(e.payload,([t,n]=un(()=>e.runWithContext(Dp)),t=await t,n(),t)),window.__NUXT__=e.payload}}),Vp=[],Wp=et({name:"nuxt:head",enforce:"pre",setup(e){const t=Mp({plugins:Vp});Hp(()=>ge().vueApp._context.provides.usehead),e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await pc(t)};t.hooks.hook("dom:beforeRender",s=>{s.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r)}}});/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const en=typeof document<"u";function vc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function qp(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&vc(e.default)}const se=Object.assign;function gs(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ze(s)?s.map(e):e(s)}return n}const $n=()=>{},Ze=Array.isArray,wc=/#/g,Gp=/&/g,Jp=/\//g,Yp=/=/g,Qp=/\?/g,Ec=/\+/g,Xp=/%5B/g,zp=/%5D/g,Tc=/%5E/g,Zp=/%60/g,Rc=/%7B/g,eg=/%7C/g,Cc=/%7D/g,tg=/%20/g;function Oo(e){return encodeURI(""+e).replace(eg,"|").replace(Xp,"[").replace(zp,"]")}function ng(e){return Oo(e).replace(Rc,"{").replace(Cc,"}").replace(Tc,"^")}function Zs(e){return Oo(e).replace(Ec,"%2B").replace(tg,"+").replace(wc,"%23").replace(Gp,"%26").replace(Zp,"`").replace(Rc,"{").replace(Cc,"}").replace(Tc,"^")}function rg(e){return Zs(e).replace(Yp,"%3D")}function sg(e){return Oo(e).replace(wc,"%23").replace(Qp,"%3F")}function og(e){return e==null?"":sg(e).replace(Jp,"%2F")}function Vn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const ig=/\/$/,lg=e=>e.replace(ig,"");function ms(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l<a&&l>=0&&(a=-1),a>-1&&(r=t.slice(0,a),o=t.slice(a+1,l>-1?l:t.length),s=e(o)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=ug(r??t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:Vn(i)}}function ag(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Bi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function cg(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&mn(t.matched[r],n.matched[s])&&Sc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function mn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Sc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!fg(e[n],t[n]))return!1;return!0}function fg(e,t){return Ze(e)?Ui(e,t):Ze(t)?Ui(t,e):e===t}function Ui(e,t){return Ze(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function ug(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i<r.length;i++)if(l=r[i],l!==".")if(l==="..")o>1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Ge={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Wn;(function(e){e.pop="pop",e.push="push"})(Wn||(Wn={}));var Ln;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Ln||(Ln={}));function dg(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),lg(e)}const hg=/^[^#]+#/;function pg(e,t){return e.replace(hg,"#")+t}function gg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Qr=()=>({left:window.scrollX,top:window.scrollY});function mg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=gg(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Ki(e,t){return(history.state?history.state.position-t:-1)+e}const eo=new Map;function yg(e,t){eo.set(e,t)}function _g(e){const t=eo.get(e);return eo.delete(e),t}let bg=()=>location.protocol+"//"+location.host;function xc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let l=s.includes(e.slice(o))?e.slice(o).length:1,a=s.slice(l);return a[0]!=="/"&&(a="/"+a),Bi(a,"")}return Bi(n,e)+r+s}function vg(e,t,n,r){let s=[],o=[],i=null;const l=({state:d})=>{const h=xc(e,location),b=n.value,y=t.value;let R=0;if(d){if(n.value=h,t.value=d,i&&i===b){i=null;return}R=y?d.position-y.position:0}else r(h);s.forEach(T=>{T(n.value,b,{delta:R,type:Wn.pop,direction:R?R>0?Ln.forward:Ln.back:Ln.unknown})})};function a(){i=n.value}function f(d){s.push(d);const h=()=>{const b=s.indexOf(d);b>-1&&s.splice(b,1)};return o.push(h),h}function c(){const{history:d}=window;d.state&&d.replaceState(se({},d.state,{scroll:Qr()}),"")}function u(){for(const d of o)d();o=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:a,listen:f,destroy:u}}function Vi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Qr():null}}function wg(e){const{history:t,location:n}=window,r={value:xc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,f,c){const u=e.indexOf("#"),d=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:bg()+e+a;try{t[c?"replaceState":"pushState"](f,"",d),s.value=f}catch(h){console.error(h),n[c?"replace":"assign"](d)}}function i(a,f){const c=se({},t.state,Vi(s.value.back,a,s.value.forward,!0),f,{position:s.value.position});o(a,c,!0),r.value=a}function l(a,f){const c=se({},s.value,t.state,{forward:a,scroll:Qr()});o(c.current,c,!0);const u=se({},Vi(r.value,a,null),{position:c.position+1},f);o(a,u,!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function Eg(e){e=dg(e);const t=wg(e),n=vg(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:pg.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Tg(e){return typeof e=="string"||e&&typeof e=="object"}function Ac(e){return typeof e=="string"||typeof e=="symbol"}const Pc=Symbol("");var Wi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Wi||(Wi={}));function yn(e,t){return se(new Error,{type:e,[Pc]:!0},t)}function ft(e,t){return e instanceof Error&&Pc in e&&(t==null||!!(e.type&t))}const qi="[^/]+?",Rg={sensitive:!1,strict:!1,start:!0,end:!0},Cg=/[.+*?^${}()[\]/\\]/g;function Sg(e,t){const n=se({},Rg,t),r=[];let s=n.start?"^":"";const o=[];for(const f of e){const c=f.length?[]:[90];n.strict&&!f.length&&(s+="/");for(let u=0;u<f.length;u++){const d=f[u];let h=40+(n.sensitive?.25:0);if(d.type===0)u||(s+="/"),s+=d.value.replace(Cg,"\\$&"),h+=40;else if(d.type===1){const{value:b,repeatable:y,optional:R,regexp:T}=d;o.push({name:b,repeatable:y,optional:R});const E=T||qi;if(E!==qi){h+=10;try{new RegExp(`(${E})`)}catch(_){throw new Error(`Invalid custom RegExp for param "${b}" (${E}): `+_.message)}}let g=y?`((?:${E})(?:/(?:${E}))*)`:`(${E})`;u||(g=R&&f.length<2?`(?:/${g})`:"/"+g),R&&(g+="?"),s+=g,h+=20,R&&(h+=-8),y&&(h+=-20),E===".*"&&(h+=-50)}c.push(h)}r.push(c)}if(n.strict&&n.end){const f=r.length-1;r[f][r[f].length-1]+=.7000000000000001}n.strict||(s+="/?"),n.end?s+="$":n.strict&&!s.endsWith("/")&&(s+="(?:/|$)");const i=new RegExp(s,n.sensitive?"":"i");function l(f){const c=f.match(i),u={};if(!c)return null;for(let d=1;d<c.length;d++){const h=c[d]||"",b=o[d-1];u[b.name]=h&&b.repeatable?h.split("/"):h}return u}function a(f){let c="",u=!1;for(const d of e){(!u||!c.endsWith("/"))&&(c+="/"),u=!1;for(const h of d)if(h.type===0)c+=h.value;else if(h.type===1){const{value:b,repeatable:y,optional:R}=h,T=b in f?f[b]:"";if(Ze(T)&&!y)throw new Error(`Provided param "${b}" is an array but it is not repeatable (* or + modifiers)`);const E=Ze(T)?T.join("/"):T;if(!E)if(R)d.length<2&&(c.endsWith("/")?c=c.slice(0,-1):u=!0);else throw new Error(`Missing required param "${b}"`);c+=E}}return c||"/"}return{re:i,score:r,keys:o,parse:l,stringify:a}}function xg(e,t){let n=0;for(;n<e.length&&n<t.length;){const r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function kc(e,t){let n=0;const r=e.score,s=t.score;for(;n<r.length&&n<s.length;){const o=xg(r[n],s[n]);if(o)return o;n++}if(Math.abs(s.length-r.length)===1){if(Gi(r))return 1;if(Gi(s))return-1}return s.length-r.length}function Gi(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const Ag={type:0,value:""},Pg=/[a-zA-Z0-9_]/;function kg(e){if(!e)return[[]];if(e==="/")return[[Ag]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${f}": ${h}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,f="",c="";function u(){f&&(n===0?o.push({type:0,value:f}):n===1||n===2||n===3?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:f,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),f="")}function d(){f+=a}for(;l<e.length;){if(a=e[l++],a==="\\"&&n!==2){r=n,n=4;continue}switch(n){case 0:a==="/"?(f&&u(),i()):a===":"?(u(),n=1):d();break;case 4:d(),n=r;break;case 1:a==="("?n=2:Pg.test(a)?d():(u(),n=0,a!=="*"&&a!=="?"&&a!=="+"&&l--);break;case 2:a===")"?c[c.length-1]=="\\"?c=c.slice(0,-1)+a:n=3:c+=a;break;case 3:u(),n=0,a!=="*"&&a!=="?"&&a!=="+"&&l--,c="";break;default:t("Unknown state");break}}return n===2&&t(`Unfinished custom RegExp for param "${f}"`),u(),i(),s}function Og(e,t,n){const r=Sg(kg(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function Ig(e,t){const n=[],r=new Map;t=Xi({strict:!1,end:!0,sensitive:!1},t);function s(u){return r.get(u)}function o(u,d,h){const b=!h,y=Yi(u);y.aliasOf=h&&h.record;const R=Xi(t,u),T=[y];if("alias"in u){const _=typeof u.alias=="string"?[u.alias]:u.alias;for(const v of _)T.push(Yi(se({},y,{components:h?h.record.components:y.components,path:v,aliasOf:h?h.record:y})))}let E,g;for(const _ of T){const{path:v}=_;if(d&&v[0]!=="/"){const C=d.record.path,M=C[C.length-1]==="/"?"":"/";_.path=d.record.path+(v&&M+v)}if(E=Og(_,d,R),h?h.alias.push(E):(g=g||E,g!==E&&g.alias.push(E),b&&u.name&&!Qi(E)&&i(u.name)),Oc(E)&&a(E),y.children){const C=y.children;for(let M=0;M<C.length;M++)o(C[M],E,h&&h.children[M])}h=h||E}return g?()=>{i(g)}:$n}function i(u){if(Ac(u)){const d=r.get(u);d&&(r.delete(u),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(u);d>-1&&(n.splice(d,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const d=$g(u,n);n.splice(d,0,u),u.record.name&&!Qi(u)&&r.set(u.record.name,u)}function f(u,d){let h,b={},y,R;if("name"in u&&u.name){if(h=r.get(u.name),!h)throw yn(1,{location:u});R=h.record.name,b=se(Ji(d.params,h.keys.filter(g=>!g.optional).concat(h.parent?h.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),u.params&&Ji(u.params,h.keys.map(g=>g.name))),y=h.stringify(b)}else if(u.path!=null)y=u.path,h=n.find(g=>g.re.test(y)),h&&(b=h.parse(y),R=h.record.name);else{if(h=d.name?r.get(d.name):n.find(g=>g.re.test(d.path)),!h)throw yn(1,{location:u,currentLocation:d});R=h.record.name,b=se({},d.params,u.params),y=h.stringify(b)}const T=[];let E=h;for(;E;)T.unshift(E.record),E=E.parent;return{name:R,path:y,params:b,matched:T,meta:Hg(T)}}e.forEach(u=>o(u));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function Ji(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Yi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Mg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Mg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Qi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Hg(e){return e.reduce((t,n)=>se(t,n.meta),{})}function Xi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function $g(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;kc(e,t[o])<0?r=o:n=o+1}const s=Lg(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Lg(e){let t=e;for(;t=t.parent;)if(Oc(t)&&kc(e,t)===0)return t}function Oc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ng(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;s<r.length;++s){const o=r[s].replace(Ec," "),i=o.indexOf("="),l=Vn(i<0?o:o.slice(0,i)),a=i<0?null:Vn(o.slice(i+1));if(l in t){let f=t[l];Ze(f)||(f=t[l]=[f]),f.push(a)}else t[l]=a}return t}function zi(e){let t="";for(let n in e){const r=e[n];if(n=rg(n),r==null){r!==void 0&&(t+=(t.length?"&":"")+n);continue}(Ze(r)?r.map(o=>o&&Zs(o)):[r&&Zs(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function jg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ze(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Fg=Symbol(""),Zi=Symbol(""),Io=Symbol(""),Mo=Symbol(""),to=Symbol("");function Cn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function St(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const f=d=>{d===!1?a(yn(4,{from:n,to:t})):d instanceof Error?a(d):Tg(d)?a(yn(2,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),l())},c=o(()=>e.call(r&&r.instances[s],t,n,f));let u=Promise.resolve(c);e.length<3&&(u=u.then(f)),u.catch(d=>a(d))})}function ys(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(vc(a)){const c=(a.__vccOpts||a)[t];c&&o.push(St(c,n,r,i,l,s))}else{let f=a();o.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const u=qp(c)?c.default:c;i.mods[l]=c,i.components[l]=u;const h=(u.__vccOpts||u)[t];return h&&St(h,n,r,i,l,s)()}))}}return o}function el(e){const t=we(Io),n=we(Mo),r=He(()=>{const a=le(e.to);return t.resolve(a)}),s=He(()=>{const{matched:a}=r.value,{length:f}=a,c=a[f-1],u=n.matched;if(!c||!u.length)return-1;const d=u.findIndex(mn.bind(null,c));if(d>-1)return d;const h=tl(a[f-2]);return f>1&&tl(c)===h&&u[u.length-1].path!==h?u.findIndex(mn.bind(null,a[f-2])):d}),o=He(()=>s.value>-1&&Vg(n.params,r.value.params)),i=He(()=>s.value>-1&&s.value===n.matched.length-1&&Sc(n.params,r.value.params));function l(a={}){if(Kg(a)){const f=t[le(e.replace)?"replace":"push"](le(e.to)).catch($n);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:He(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function Dg(e){return e.length===1?e[0]:e}const Bg=Jn({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:el,setup(e,{slots:t}){const n=Mt(el(e)),{options:r}=we(Io),s=He(()=>({[nl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[nl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&Dg(t.default(n));return e.custom?o:it("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),Ug=Bg;function Kg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Vg(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Ze(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function tl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const nl=(e,t,n)=>e??t??n,Wg=Jn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=we(to),s=He(()=>e.route||r.value),o=we(Zi,0),i=He(()=>{let f=le(o);const{matched:c}=s.value;let u;for(;(u=c[f])&&!u.components;)f++;return f}),l=He(()=>s.value.matched[i.value]);ot(Zi,He(()=>i.value+1)),ot(Fg,l),ot(to,s);const a=Oe();return cn(()=>[a.value,l.value,e.name],([f,c,u],[d,h,b])=>{c&&(c.instances[u]=f,h&&h!==c&&f&&f===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),f&&c&&(!h||!mn(c,h)||!d)&&(c.enterCallbacks[u]||[]).forEach(y=>y(f))},{flush:"post"}),()=>{const f=s.value,c=e.name,u=l.value,d=u&&u.components[c];if(!d)return rl(n.default,{Component:d,route:f});const h=u.props[c],b=h?h===!0?f.params:typeof h=="function"?h(f):h:null,R=it(d,se({},b,t,{onVnodeUnmounted:T=>{T.component.isUnmounted&&(u.instances[c]=null)},ref:a}));return rl(n.default,{Component:R,route:f})||R}}});function rl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ic=Wg;function qg(e){const t=Ig(e.routes,e),n=e.parseQuery||Ng,r=e.stringifyQuery||zi,s=e.history,o=Cn(),i=Cn(),l=Cn(),a=dn(Ge);let f=Ge;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=gs.bind(null,x=>""+x),u=gs.bind(null,og),d=gs.bind(null,Vn);function h(x,B){let j,W;return Ac(x)?(j=t.getRecordMatcher(x),W=B):W=x,t.addRoute(W,j)}function b(x){const B=t.getRecordMatcher(x);B&&t.removeRoute(B)}function y(){return t.getRoutes().map(x=>x.record)}function R(x){return!!t.getRecordMatcher(x)}function T(x,B){if(B=se({},B||a.value),typeof x=="string"){const m=ms(n,x,B.path),w=t.resolve({path:m.path},B),A=s.createHref(m.fullPath);return se(m,w,{params:d(w.params),hash:Vn(m.hash),redirectedFrom:void 0,href:A})}let j;if(x.path!=null)j=se({},x,{path:ms(n,x.path,B.path).path});else{const m=se({},x.params);for(const w in m)m[w]==null&&delete m[w];j=se({},x,{params:u(m)}),B.params=u(B.params)}const W=t.resolve(j,B),re=x.hash||"";W.params=c(d(W.params));const he=ag(r,se({},x,{hash:ng(re),path:W.path})),p=s.createHref(he);return se({fullPath:he,hash:re,query:r===zi?jg(x.query):x.query||{}},W,{redirectedFrom:void 0,href:p})}function E(x){return typeof x=="string"?ms(n,x,a.value.path):se({},x)}function g(x,B){if(f!==x)return yn(8,{from:B,to:x})}function _(x){return M(x)}function v(x){return _(se(E(x),{replace:!0}))}function C(x){const B=x.matched[x.matched.length-1];if(B&&B.redirect){const{redirect:j}=B;let W=typeof j=="function"?j(x):j;return typeof W=="string"&&(W=W.includes("?")||W.includes("#")?W=E(W):{path:W},W.params={}),se({query:x.query,hash:x.hash,params:W.path!=null?{}:x.params},W)}}function M(x,B){const j=f=T(x),W=a.value,re=x.state,he=x.force,p=x.replace===!0,m=C(j);if(m)return M(se(E(m),{state:typeof m=="object"?se({},re,m.state):re,force:he,replace:p}),B||j);const w=j;w.redirectedFrom=B;let A;return!he&&cg(r,W,j)&&(A=yn(16,{to:w,from:W}),tt(W,W,!0,!1)),(A?Promise.resolve(A):O(w,W)).catch(S=>ft(S)?ft(S,2)?S:bt(S):V(S,w,W)).then(S=>{if(S){if(ft(S,2))return M(se({replace:p},E(S.to),{state:typeof S.to=="object"?se({},re,S.to.state):re,force:he}),B||w)}else S=H(w,W,!0,p,re);return K(w,W,S),S})}function D(x,B){const j=g(x,B);return j?Promise.reject(j):Promise.resolve()}function P(x){const B=Yt.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(x):x()}function O(x,B){let j;const[W,re,he]=Gg(x,B);j=ys(W.reverse(),"beforeRouteLeave",x,B);for(const m of W)m.leaveGuards.forEach(w=>{j.push(St(w,x,B))});const p=D.bind(null,x,B);return j.push(p),De(j).then(()=>{j=[];for(const m of o.list())j.push(St(m,x,B));return j.push(p),De(j)}).then(()=>{j=ys(re,"beforeRouteUpdate",x,B);for(const m of re)m.updateGuards.forEach(w=>{j.push(St(w,x,B))});return j.push(p),De(j)}).then(()=>{j=[];for(const m of he)if(m.beforeEnter)if(Ze(m.beforeEnter))for(const w of m.beforeEnter)j.push(St(w,x,B));else j.push(St(m.beforeEnter,x,B));return j.push(p),De(j)}).then(()=>(x.matched.forEach(m=>m.enterCallbacks={}),j=ys(he,"beforeRouteEnter",x,B,P),j.push(p),De(j))).then(()=>{j=[];for(const m of i.list())j.push(St(m,x,B));return j.push(p),De(j)}).catch(m=>ft(m,8)?m:Promise.reject(m))}function K(x,B,j){l.list().forEach(W=>P(()=>W(x,B,j)))}function H(x,B,j,W,re){const he=g(x,B);if(he)return he;const p=B===Ge,m=en?history.state:{};j&&(W||p?s.replace(x.fullPath,se({scroll:p&&m&&m.scroll},re)):s.push(x.fullPath,re)),a.value=x,tt(x,B,j,p),bt()}let q;function Z(){q||(q=s.listen((x,B,j)=>{if(!Xn.listening)return;const W=T(x),re=C(W);if(re){M(se(re,{replace:!0,force:!0}),W).catch($n);return}f=W;const he=a.value;en&&yg(Ki(he.fullPath,j.delta),Qr()),O(W,he).catch(p=>ft(p,12)?p:ft(p,2)?(M(se(E(p.to),{force:!0}),W).then(m=>{ft(m,20)&&!j.delta&&j.type===Wn.pop&&s.go(-1,!1)}).catch($n),Promise.reject()):(j.delta&&s.go(-j.delta,!1),V(p,W,he))).then(p=>{p=p||H(W,he,!1),p&&(j.delta&&!ft(p,8)?s.go(-j.delta,!1):j.type===Wn.pop&&ft(p,20)&&s.go(-1,!1)),K(W,he,p)}).catch($n)}))}let ne=Cn(),U=Cn(),z;function V(x,B,j){bt(x);const W=U.list();return W.length?W.forEach(re=>re(x,B,j)):console.error(x),Promise.reject(x)}function me(){return z&&a.value!==Ge?Promise.resolve():new Promise((x,B)=>{ne.add([x,B])})}function bt(x){return z||(z=!x,Z(),ne.list().forEach(([B,j])=>x?j(x):B()),ne.reset()),x}function tt(x,B,j,W){const{scrollBehavior:re}=e;if(!en||!re)return Promise.resolve();const he=!j&&_g(Ki(x.fullPath,0))||(W||!j)&&history.state&&history.state.scroll||null;return vn().then(()=>re(x,B,he)).then(p=>p&&mg(p)).catch(p=>V(p,x,B))}const Ie=x=>s.go(x);let Jt;const Yt=new Set,Xn={currentRoute:a,listening:!0,addRoute:h,removeRoute:b,clearRoutes:t.clearRoutes,hasRoute:R,getRoutes:y,resolve:T,options:e,push:_,replace:v,go:Ie,back:()=>Ie(-1),forward:()=>Ie(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:U.add,isReady:me,install(x){const B=this;x.component("RouterLink",Ug),x.component("RouterView",Ic),x.config.globalProperties.$router=B,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>le(a)}),en&&!Jt&&a.value===Ge&&(Jt=!0,_(s.location).catch(re=>{}));const j={};for(const re in Ge)Object.defineProperty(j,re,{get:()=>a.value[re],enumerable:!0});x.provide(Io,B),x.provide(Mo,gt(j)),x.provide(to,a);const W=x.unmount;Yt.add(x),x.unmount=function(){Yt.delete(x),Yt.size<1&&(f=Ge,q&&q(),q=null,a.value=Ge,Jt=!1,z=!1),W()}}};function De(x){return x.reduce((B,j)=>B.then(()=>P(j)),Promise.resolve())}return Xn}function Gg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;i<o;i++){const l=t.matched[i];l&&(e.matched.find(f=>mn(f,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(f=>mn(f,a))||s.push(a))}return[n,r,s]}function my(e){return we(Mo)}const Jg=/(:\w+)\([^)]+\)/g,Yg=/(:\w+)[?+*]/g,Qg=/:\w+/g,Xg=(e,t)=>t.path.replace(Jg,"$1").replace(Yg,"$1").replace(Qg,n=>{var r;return((r=e.params[n.slice(1)])==null?void 0:r.toString())||""}),no=(e,t)=>{const n=e.route.matched.find(s=>{var o;return((o=s.components)==null?void 0:o.default)===e.Component.type}),r=t??(n==null?void 0:n.meta.key)??(n&&Xg(e.route,n));return typeof r=="function"?r(e.route):r},zg=(e,t)=>({default:()=>e?it(Bf,e===!0?{}:e,t):t});function Ho(e){return Array.isArray(e)?e:[e]}const _s=[{name:"details-id",path:"/details/:id()",component:()=>Dt(()=>import("./BP-Bk3NB.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url)},{name:"index.html",path:"/index.html",component:()=>Dt(()=>import("./CGGlHf3T.js"),__vite__mapDeps([10,1,2,3,4,5,6,11]),import.meta.url)},{name:"index",path:"/",component:()=>Dt(()=>import("./Bur7c29Y.js"),__vite__mapDeps([12,2]),import.meta.url)},{name:"publish",path:"/publish",component:()=>Dt(()=>import("./B4CZI61d.js"),__vite__mapDeps([13,1,2,3,7,8,5,14]),import.meta.url)}],Zg=(e,t)=>({default:()=>{var n;return e?it(Vu,e===!0?{}:e,t):(n=t.default)==null?void 0:n.call(t)}}),em=/(:\w+)\([^)]+\)/g,tm=/(:\w+)[?+*]/g,nm=/:\w+/g;function sl(e){const t=(e==null?void 0:e.meta.key)??e.path.replace(em,"$1").replace(tm,"$1").replace(nm,n=>{var r;return((r=e.params[n.slice(1)])==null?void 0:r.toString())||""});return typeof t=="function"?t(e):t}function rm(e,t){return e===t||t===Ge?!1:sl(e)!==sl(t)?!0:!e.matched.every((r,s)=>{var o,i;return r.components&&r.components.default===((i=(o=t.matched[s])==null?void 0:o.components)==null?void 0:i.default)})}const sm={scrollBehavior(e,t,n){var f;const r=ge(),s=((f=ze().options)==null?void 0:f.scrollBehaviorType)??"auto";let o=n||void 0;const i=typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop;if(!o&&t&&e&&i!==!1&&rm(e,t)&&(o={left:0,top:0}),e.path===t.path)return t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:ol(e.hash),behavior:s}:!1;const l=c=>!!(c.meta.pageTransition??Ks),a=l(t)&&l(e)?"page:transition:finish":"page:finish";return new Promise(c=>{r.hooks.hookOnce(a,async()=>{await new Promise(u=>setTimeout(u,0)),e.hash&&(o={el:e.hash,top:ol(e.hash),behavior:s}),c(o)})})}};function ol(e){try{const t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}const om={hashMode:!1,scrollBehaviorType:"auto"},Ue={...om,...sm},im=async e=>{var a;let t,n;if(!((a=e.meta)!=null&&a.validate))return;const r=ge(),s=ze(),o=([t,n]=un(()=>Promise.resolve(e.meta.validate(e))),t=await t,n(),t);if(o===!0)return;const i=Jr({statusCode:o&&o.statusCode||404,statusMessage:o&&o.statusMessage||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}}),l=s.beforeResolve(f=>{if(l(),f===e){const c=s.afterEach(async()=>{c(),await r.runWithContext(()=>nn(i)),window==null||window.history.pushState({},"",e.fullPath)});return!1}})},lm=async e=>{let t,n;const r=([t,n]=un(()=>ko({path:e.path})),t=await t,n(),t);if(r.redirect)return Gt(r.redirect,{acceptRelative:!0})?(window.location.href=r.redirect,!1):r.redirect},am=[im,lm],Nn={"error-handler":()=>Dt(()=>import("./DwPp8tHk.js"),[],import.meta.url)};function cm(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const f=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(f);return c[0]!=="/"&&(c="/"+c),Ci(c,"")}const l=Ci(r,e),a=!n||Wd(l,n,{trailingSlash:!0})?l:n;return a+(a.includes("?")?"":s)+o}const fm=et({name:"nuxt:router",enforce:"pre",async setup(e){var R;let t,n,r=Wr().app.baseURL;const s=((R=Ue.history)==null?void 0:R.call(Ue,r))??Eg(r),o=Ue.routes?([t,n]=un(()=>Ue.routes(_s)),t=await t,n(),t??_s):_s;let i;const l=qg({...Ue,scrollBehavior:(T,E,g)=>{if(E===Ge){i=g;return}if(Ue.scrollBehavior){if(l.options.scrollBehavior=Ue.scrollBehavior,"scrollRestoration"in window.history){const _=l.beforeEach(()=>{_(),window.history.scrollRestoration="manual"})}return Ue.scrollBehavior(T,Ge,i||g)}},history:s,routes:o});Ue.routes&&Ue.routes,"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(l);const a=dn(l.currentRoute.value);l.afterEach((T,E)=>{a.value=E}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>a.value});const f=cm(r,window.location,e.payload.path),c=dn(l.currentRoute.value),u=()=>{c.value=l.currentRoute.value};e.hook("page:finish",u),l.afterEach((T,E)=>{var g,_,v,C;((_=(g=T.matched[0])==null?void 0:g.components)==null?void 0:_.default)===((C=(v=E.matched[0])==null?void 0:v.components)==null?void 0:C.default)&&u()});const d={};for(const T in c.value)Object.defineProperty(d,T,{get:()=>c.value[T],enumerable:!0});e._route=gt(d),e._middleware=e._middleware||{global:[],named:{}};const h=Gr();l.afterEach(async(T,E,g)=>{delete e._processingMiddleware,!e.isHydrating&&h.value&&await e.runWithContext(Bh),g&&await e.callHook("page:loading:end")});try{[t,n]=un(()=>l.isReady()),await t,n()}catch(T){[t,n]=un(()=>e.runWithContext(()=>nn(T))),await t,n()}const b=f!==l.currentRoute.value.fullPath?l.resolve(f):l.currentRoute.value;u();const y=e.payload.state._layout;return l.beforeEach(async(T,E)=>{var g;await e.callHook("page:loading:start"),T.meta=Mt(T.meta),e.isHydrating&&y&&!Pt(T.meta.layout)&&(T.meta.layout=y),e._processingMiddleware=!0;{const _=new Set([...am,...e._middleware.global]);for(const v of T.matched){const C=v.meta.middleware;if(C)for(const M of Ho(C))_.add(M)}{const v=await e.runWithContext(()=>ko({path:T.path}));if(v.appMiddleware)for(const C in v.appMiddleware)v.appMiddleware[C]?_.add(C):_.delete(C)}for(const v of _){const C=typeof v=="string"?e._middleware.named[v]||await((g=Nn[v])==null?void 0:g.call(Nn).then(D=>D.default||D)):v;if(!C)throw new Error(`Unknown route middleware: '${v}'.`);const M=await e.runWithContext(()=>C(T,E));if(!e.payload.serverRendered&&e.isHydrating&&(M===!1||M instanceof Error)){const D=M||qs({statusCode:404,statusMessage:`Page Not Found: ${f}`});return await e.runWithContext(()=>nn(D)),!1}if(M!==!0&&(M||M===!1))return M}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),l.afterEach(async(T,E)=>{T.matched.length===0&&await e.runWithContext(()=>nn(qs({statusCode:404,fatal:!1,statusMessage:`Page not found: ${T.fullPath}`,data:{path:T.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{"name"in b&&(b.name=void 0),await l.replace({...b,force:!0}),l.options.scrollBehavior=Ue.scrollBehavior}catch(T){await e.runWithContext(()=>nn(T))}}),{provide:{router:l}}}}),il=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),yy=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),$o=e=>{const t=ge();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{il(()=>e())}):il(()=>e())},um=et({name:"nuxt:payload",setup(e){ze().beforeResolve(async(t,n)=>{if(t.path===n.path)return;const r=await Di(t.path);r&&Object.assign(e.static.data,r.data)}),$o(()=>{var t;e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await Di(n)}),((t=navigator.connection)==null?void 0:t.effectiveType)!=="slow-2g"&&setTimeout(Yr,1e3)})}}),dm=et(()=>{const e=ze();$o(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),hm=et(e=>{let t;async function n(){const r=await Yr();t&&clearTimeout(t),t=setTimeout(n,ki);try{const s=await $fetch(Ao("builds/latest.json")+`?${Date.now()}`);s.id!==r.id&&e.hooks.callHook("app:manifest:update",s)}catch{}}$o(()=>{t=setTimeout(n,ki)})});function pm(e={}){const t=e.path||window.location.pathname;let n={};try{n=xr(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||(n==null?void 0:n.path)!==t||(n==null?void 0:n.expires)<Date.now()){try{sessionStorage.setItem("nuxt:reload",JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem("nuxt:reload:state",JSON.stringify({state:ge().payload.state}))}catch{}window.location.pathname!==t?window.location.href=t:window.location.reload()}}const gm=et({name:"nuxt:chunk-reload",setup(e){const t=ze(),n=Wr(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const l="href"in o&&o.href[0]==="#"?n.app.baseURL+o.href:xo(n.app.baseURL,o.fullPath);pm({path:l,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}}),mm=et({name:"nuxt:global-components"}),cr={},ym=et({name:"nuxt:prefetch",setup(e){const t=ze();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{var s;const r=(s=n==null?void 0:n.meta)==null?void 0:s.layout;r&&typeof cr[r]=="function"&&await cr[r]()})}),e.hooks.hook("link:prefetch",n=>{if(Gt(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=Ho(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof Nn[i]=="function"&&Nn[i]();s&&typeof cr[s]=="function"&&cr[s]()})}}),_m=et(e=>{e.hook("app:rendered",t=>{var n;(n=t.ssrContext)!=null&&n.teleports&&(t.ssrContext.teleports=bm(t.ssrContext.teleports))})});function bm(e){const t=Object.entries(e).reduce((n,[r,s])=>r.startsWith("#el-popper-container-")||[].includes(r)?`${n}<div id="${r.slice(1)}">${s}</div>`:n,e.body||"");return{...e,body:t}}var vm=Object.defineProperty,wm=Object.defineProperties,Em=Object.getOwnPropertyDescriptors,ll=Object.getOwnPropertySymbols,Tm=Object.prototype.hasOwnProperty,Rm=Object.prototype.propertyIsEnumerable,al=(e,t,n)=>t in e?vm(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Cm=(e,t)=>{for(var n in t||(t={}))Tm.call(t,n)&&al(e,n,t[n]);if(ll)for(var n of ll(t))Rm.call(t,n)&&al(e,n,t[n]);return e},Sm=(e,t)=>wm(e,Em(t));function xm(e,t){var n;const r=dn();return mu(()=>{r.value=e()},Sm(Cm({},t),{flush:(n=void 0)!=null?n:"sync"})),Dr(r)}var cl;const Lo=typeof window<"u",_y=e=>typeof e=="string",by=()=>{},vy=Lo&&((cl=window==null?void 0:window.navigator)==null?void 0:cl.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Am(e){return typeof e=="function"?e():le(e)}function wy(e){return e}function Pm(e){return co()?(zc(e),!0):!1}function Ey(e,t=!0){lt()?Qn(e):t?e():vn(e)}function Ty(e,t,n={}){const{immediate:r=!0}=n,s=Oe(!1);let o=null;function i(){o&&(clearTimeout(o),o=null)}function l(){s.value=!1,i()}function a(...f){i(),s.value=!0,o=setTimeout(()=>{s.value=!1,o=null,e(...f)},Am(t))}return r&&(s.value=!0,Lo&&a()),Pm(l),{isPending:Dr(s),start:a,stop:l}}const bs="el",km="is-",jt=(e,t,n,r,s)=>{let o=`${e}-${t}`;return n&&(o+=`-${n}`),r&&(o+=`__${r}`),s&&(o+=`--${s}`),o},Om=Symbol("namespaceContextKey"),Mc=e=>{const t=e||(lt()?we(Om,Oe(bs)):Oe(bs));return He(()=>le(t)||bs)},Ry=(e,t)=>{const n=Mc(t);return{namespace:n,b:(y="")=>jt(n.value,e,y,"",""),e:y=>y?jt(n.value,e,"",y,""):"",m:y=>y?jt(n.value,e,"","",y):"",be:(y,R)=>y&&R?jt(n.value,e,y,R,""):"",em:(y,R)=>y&&R?jt(n.value,e,"",y,R):"",bm:(y,R)=>y&&R?jt(n.value,e,y,"",R):"",bem:(y,R,T)=>y&&R&&T?jt(n.value,e,y,R,T):"",is:(y,...R)=>{const T=R.length>=1?R[0]:!0;return y&&T?`${km}${y}`:""},cssVar:y=>{const R={};for(const T in y)y[T]&&(R[`--${n.value}-${T}`]=y[T]);return R},cssVarName:y=>`--${n.value}-${y}`,cssVarBlock:y=>{const R={};for(const T in y)y[T]&&(R[`--${n.value}-${e}-${T}`]=y[T]);return R},cssVarBlockName:y=>`--${n.value}-${e}-${y}`}},fl={prefix:Math.floor(Math.random()*1e4),current:0},Hc=Symbol("elIdInjection"),Im=()=>lt()?we(Hc,fl):fl,Cy=e=>{const t=Im(),n=Mc();return xm(()=>le(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Sy=e=>e===void 0,xy=e=>typeof e=="boolean",Mm=e=>typeof e=="number",Ay=e=>!e&&e!==0||J(e)&&e.length===0||ce(e)&&!Object.keys(e).length,Py=e=>typeof Element>"u"?!1:e instanceof Element,ky=e=>de(e)?!Number.isNaN(Number(e)):!1,ul={current:0},dl=Oe(0),Hm=2e3,ro=Symbol("elZIndexContextKey"),$m=Symbol("zIndexContextKey"),Oy=e=>{const t=lt()?we(ro,ul):ul,n=e||(lt()?we($m,void 0):void 0),r=He(()=>{const i=le(n);return Mm(i)?i:Hm}),s=He(()=>r.value+dl.value),o=()=>(t.current++,dl.value=t.current,s.value);return!Lo&&we(ro),{initialZIndex:r,currentZIndex:s,nextZIndex:o}},Lm=et(e=>{e.vueApp.provide(Hc,{prefix:1024,current:0}).provide(ro,{current:0})}),Nm=[Kp,Wp,fm,um,dm,hm,gm,mm,ym,_m,Lm],jm=Jn({props:{vnode:{type:Object,required:!0},route:{type:Object,required:!0},vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(e){const t=e.renderKey,n=e.route,r={};for(const s in e.route)Object.defineProperty(r,s,{get:()=>t===e.renderKey?e.route[s]:n[s],enumerable:!0});return ot(qr,gt(r)),()=>it(e.vnode,{ref:e.vnodeRef})}}),Fm=Jn({name:"NuxtPage",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){const s=ge(),o=Oe(),i=we(qr,null);let l;r({pageRef:o});const a=we(jh,null);let f;const c=s.deferHydration();if(s.isHydrating){const d=s.hooks.hookOnce("app:error",c);ze().beforeEach(d)}e.pageKey&&cn(()=>e.pageKey,(d,h)=>{d!==h&&s.callHook("page:loading:start")});let u=!1;return()=>it(Ic,{name:e.name,route:e.route,...t},{default:d=>{const h=Bm(i,d.route,d.Component),b=i&&i.matched.length===d.route.matched.length;if(!d.Component){if(f&&!b)return f;c();return}if(f&&a&&!a.isCurrent(d.route))return f;if(h&&i&&(!a||a!=null&&a.isCurrent(i)))return b?f:null;const y=no(d,e.pageKey);!s.isHydrating&&!Um(i,d.route,d.Component)&&l===y&&(s.callHook("page:loading:end"),u=!0),l=y;const R=!!(e.transition??d.route.meta.pageTransition??Ks),T=R&&Dm([e.transition,d.route.meta.pageTransition,Ks,{onAfterLeave:()=>{s.callHook("page:transition:finish",d.Component)}}].filter(Boolean)),E=e.keepalive??d.route.meta.keepalive??Eh;return f=Zg(R&&T,zg(E,it(Aa,{suspensible:!0,onPending:()=>s.callHook("page:start",d.Component),onResolve:()=>{vn(()=>s.callHook("page:finish",d.Component).then(()=>{if(!u)return s.callHook("page:loading:end");u=!1}).finally(c))}},{default:()=>{const g=it(jm,{key:y||void 0,vnode:n.default?it(Re,void 0,n.default(d)):d.Component,route:d.route,renderKey:y||void 0,trackRootNodes:R,vnodeRef:o});return E&&(g.type.name=d.Component.type.name||d.Component.type.__name||"RouteProvider"),g}}))).default(),f}})}});function Dm(e){const t=e.map(n=>({...n,onAfterLeave:n.onAfterLeave?Ho(n.onAfterLeave):void 0}));return ic(...t)}function Bm(e,t,n){if(!e)return!1;const r=t.matched.findIndex(s=>{var o;return((o=s.components)==null?void 0:o.default)===(n==null?void 0:n.type)});return!r||r===-1?!1:t.matched.slice(0,r).some((s,o)=>{var i,l,a;return((i=s.components)==null?void 0:i.default)!==((a=(l=e.matched[o])==null?void 0:l.components)==null?void 0:a.default)})||n&&no({route:t,Component:n})!==no({route:e,Component:n})}function Um(e,t,n){return e?t.matched.findIndex(s=>{var o;return((o=s.components)==null?void 0:o.default)===(n==null?void 0:n.type)})<t.matched.length-1:!1}const Km=window.setInterval,Vm={__name:"app",setup(e){Po(),Qn(()=>{s()});let t=Oe(!0),n=Oe({}),r=Oe(!0);const s=()=>{let i=0,l=Km(()=>{Object.keys(window.userInfoWin).length!==0&&(clearInterval(l),r.value=!1,(window.userInfoWin.uid||window.userInfoWin.uin)&&(t.value=!1,n.value=window.userInfoWin)),i++,i>=30&&(clearInterval(l),r.value=!1)},100)},o=()=>{typeof window>"u"||(Object.keys(window.userInfoWin).length!==0&&window.userInfoWin.uid?t.value=!1:ajax_login())};return ot("isNeedLogin",t),ot("userInfo",n),ot("goLogin",o),ot("isGetLoginState",r),(i,l)=>{const a=Fm;return Ke(),Ma(Re,null,[l[0]||(l[0]=Rr("div",{id:"append_parent"},null,-1)),l[1]||(l[1]=Rr("div",{id:"ajaxwaitid"},null,-1)),pe(a)],64)}}},Wm={__name:"nuxt-error-page",props:{error:Object},setup(e){const n=e.error;n.stack&&n.stack.split(` +`).splice(1).map(u=>({text:u.replace("webpack:/","").replace(".vue",".js").trim(),internal:u.includes("node_modules")&&!u.includes(".cache")||u.includes("internal")||u.includes("new Promise")})).map(u=>`<span class="stack${u.internal?" internal":""}">${u.text}</span>`).join(` +`);const r=Number(n.statusCode||500),s=r===404,o=n.statusMessage??(s?"Page Not Found":"Internal Server Error"),i=n.message||n.toString(),l=void 0,c=s?Yo(()=>Dt(()=>import("./C5qEE_Gi.js"),__vite__mapDeps([15,5,2,16]),import.meta.url)):Yo(()=>Dt(()=>import("./DeU7cwoU.js"),__vite__mapDeps([17,5,2,18]),import.meta.url));return(u,d)=>(Ke(),pt(le(c),Gc($a({statusCode:le(r),statusMessage:le(o),description:le(i),stack:le(l)})),null,16))}},qm={key:0},hl={__name:"nuxt-root",setup(e){const t=()=>null,n=ge(),r=n.deferHydration();if(n.isHydrating){const a=n.hooks.hookOnce("app:error",r);ze().beforeEach(a)}const s=!1;ot(qr,Po()),n.hooks.callHookWith(a=>a.map(f=>f()),"vue:setup");const o=Gr(),i=!1;sa((a,f,c)=>{if(n.hooks.callHook("vue:error",a,f,c).catch(u=>console.error("[nuxt] Error in `vue:error` hook",u)),Uh(a)&&(a.fatal||a.unhandled))return n.runWithContext(()=>nn(a)),!1});const l=!1;return(a,f)=>(Ke(),pt(Aa,{onResolve:le(r)},{default:Wl(()=>[le(i)?(Ke(),Ma("div",qm)):le(o)?(Ke(),pt(le(Wm),{key:1,error:le(o)},null,8,["error"])):le(l)?(Ke(),pt(le(t),{key:2,context:le(l)},null,8,["context"])):le(s)?(Ke(),pt(Qf(le(s)),{key:3})):(Ke(),pt(le(Vm),{key:4}))]),_:1},8,["onResolve"]))}};let pl;{let e;pl=async function(){var i,l;if(e)return e;const r=!!(((i=window.__NUXT__)==null?void 0:i.serverRendered)??((l=document.getElementById("__NUXT_DATA__"))==null?void 0:l.dataset.ssr)==="true")?gd(hl):pd(hl),s=xh({vueApp:r});async function o(a){await s.callHook("app:error",a),s.payload.error=s.payload.error||Jr(a)}r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)});try{await kh(s,Nm)}catch(a){o(a)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Rh),await s.hooks.callHook("app:mounted",r),await vn()}catch(a){o(a)}return r},e=pl().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{Ye as $,Wl as A,La as B,ty as C,we as D,le as E,ot as F,xy as G,Ry as H,pt as I,iy as J,jr as K,Ou as L,Ee as M,Re as N,Zm as O,Qm as P,cy as Q,Po as R,vn as S,cn as T,ra as U,Nr as V,fy as W,mu as X,sy as Y,oy as Z,Dt as _,ge as a,Q as a0,Qf as a1,Lo as a2,zc as a3,lt as a4,Oy as a5,Cy as a6,bs as a7,Ty as a8,ny as a9,Pm as aA,Mc as aB,Im as aC,Dr as aD,Kf as aE,_y as aF,by as aG,Ey as aH,vy as aI,Am as aJ,wy as aK,oe as aL,ly as aM,Xm as aN,We as aO,ky as aP,Hm as aQ,Om as aR,$m as aS,gt as aT,Wt as aU,dy as aV,gy as aW,Qs as aX,Vu as aa,ey as ab,ay as ac,Mt as ad,pd as ae,Ym as af,de as ag,ce as ah,kt as ai,my as aj,uy as ak,Rf as al,Mm as am,Uf as an,na as ao,ry as ap,J as aq,Ay as ar,Jm as as,Py as at,Sy as au,Wf as av,mt as aw,Vt as ax,_e as ay,dn as az,$o as b,il as c,Jn as d,vo as e,yy as f,zm as g,it as h,Dh as i,He as j,Gt as k,xo as l,Wr as m,py as n,Qn as o,Id as p,So as q,Oe as r,hy as s,Ma as t,ze as u,Ke as v,Ds as w,Rr as x,Qc as y,pe as z}; diff --git a/.output/public/_nuxt/C5qEE_Gi.js b/.output/public/_nuxt/C5qEE_Gi.js new file mode 100644 index 0000000..c4377f3 --- /dev/null +++ b/.output/public/_nuxt/C5qEE_Gi.js @@ -0,0 +1 @@ +import{u as P,d as B,r as q,a as N,o as I,b as U,c as T,e as H,f as V,h as A,g as L,p as F,i as z,j as x,k as O,l as M,m as D,n as $,w as W,q as G,s as K,t as Q,v as J,x as S,y as C,z as X,A as Y,B as Z}from"./C0eoOjsX.js";import{_ as ee}from"./DlAUqK2U.js";import{u as te}from"./y8qSb7BL.js";async function E(t,n=P()){const{path:f,matched:h}=n.resolve(t);if(!h.length||(n._routePreloaded||(n._routePreloaded=new Set),n._routePreloaded.has(f)))return;const v=n._preloadPromises=n._preloadPromises||[];if(v.length>4)return Promise.all(v).then(()=>E(t,n));n._routePreloaded.add(f);const e=h.map(r=>{var u;return(u=r.components)==null?void 0:u.default}).filter(r=>typeof r=="function");for(const r of e){const u=Promise.resolve(r()).catch(()=>{}).finally(()=>v.splice(v.indexOf(u)));v.push(u)}await Promise.all(v)}const ne=(...t)=>t.find(n=>n!==void 0);function re(t){const n=t.componentName||"NuxtLink";function f(e){return typeof e=="string"&&e.startsWith("#")}function h(e,r){if(!e||t.trailingSlash!=="append"&&t.trailingSlash!=="remove")return e;if(typeof e=="string")return j(e,t.trailingSlash);const u="path"in e&&e.path!==void 0?e.path:r(e).path;return{...e,name:void 0,path:j(u,t.trailingSlash)}}function v(e){const r=P(),u=D(),s=x(()=>!!e.target&&e.target!=="_self"),p=x(()=>{const d=e.to||e.href||"";return typeof d=="string"&&O(d,{acceptRelative:!0})}),_=L("RouterLink"),b=typeof _!="string"?_.useLink:void 0,m=x(()=>{if(e.external)return!0;const d=e.to||e.href||"";return typeof d=="object"?!1:d===""||p.value}),a=x(()=>{const d=e.to||e.href||"";return m.value?d:h(d,r.resolve)}),c=m.value||b==null?void 0:b({...e,to:a}),y=x(()=>{var d;if(!a.value||p.value||f(a.value))return a.value;if(m.value){const k=typeof a.value=="object"&&"path"in a.value?z(a.value):a.value,w=typeof k=="object"?r.resolve(k).href:k;return h(w,r.resolve)}return typeof a.value=="object"?((d=r.resolve(a.value))==null?void 0:d.href)??null:h(M(u.app.baseURL,a.value),r.resolve)});return{to:a,hasTarget:s,isAbsoluteUrl:p,isExternal:m,href:y,isActive:(c==null?void 0:c.isActive)??x(()=>a.value===r.currentRoute.value.path),isExactActive:(c==null?void 0:c.isExactActive)??x(()=>a.value===r.currentRoute.value.path),route:(c==null?void 0:c.route)??x(()=>r.resolve(a.value)),async navigate(){await $(y.value,{replace:e.replace,external:m.value||s.value})}}}return B({name:n,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1}},useLink:v,setup(e,{slots:r}){const u=P(),{to:s,href:p,navigate:_,isExternal:b,hasTarget:m,isAbsoluteUrl:a}=v(e),c=q(!1),y=q(null),d=o=>{var l;y.value=e.custom?(l=o==null?void 0:o.$el)==null?void 0:l.nextElementSibling:o==null?void 0:o.$el};function k(o){var l,i;return!c.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===o:((l=e.prefetchOn)==null?void 0:l[o])??((i=t.prefetchOn)==null?void 0:i[o]))&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!se()}async function w(o=N()){if(c.value)return;c.value=!0;const l=typeof s.value=="string"?s.value:b.value?z(s.value):u.resolve(s.value).fullPath,i=b.value?new URL(l,window.location.href).href:l;await Promise.all([o.hooks.callHook("link:prefetch",i).catch(()=>{}),!b.value&&!m.value&&E(s.value,u).catch(()=>{})])}if(k("visibility")){const o=N();let l,i=null;I(()=>{const g=oe();U(()=>{l=T(()=>{var R;(R=y==null?void 0:y.value)!=null&&R.tagName&&(i=g.observe(y.value,async()=>{i==null||i(),i=null,await w(o)}))})})}),H(()=>{l&&V(l),i==null||i(),i=null})}return()=>{var i;if(!b.value&&!m.value&&!f(s.value)){const g={ref:d,to:s.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(k("interaction")&&(g.onPointerenter=w.bind(null,void 0),g.onFocus=w.bind(null,void 0)),c.value&&(g.class=e.prefetchedClass||t.prefetchedClass),g.rel=e.rel||void 0),A(L("RouterLink"),g,r.default)}const o=e.target||null,l=ne(e.noRel?"":e.rel,t.externalRelAttribute,a.value||m.value?"noopener noreferrer":"")||null;return e.custom?r.default?r.default({href:p.value,navigate:_,prefetch:w,get route(){if(!p.value)return;const g=new URL(p.value,window.location.href);return{path:g.pathname,fullPath:g.pathname,get query(){return F(g.search)},hash:g.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:p.value}},rel:l,target:o,isExternal:b.value||m.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:y,href:p.value||null,rel:l,target:o},(i=r.default)==null?void 0:i.call(r))}}})}const ae=re(K);function j(t,n){const f=n==="append"?W:G;return O(t)&&!t.startsWith("http")?t:f(t,!0)}function oe(){const t=N();if(t._observer)return t._observer;let n=null;const f=new Map,h=(e,r)=>(n||(n=new IntersectionObserver(u=>{for(const s of u){const p=f.get(s.target);(s.isIntersecting||s.intersectionRatio>0)&&p&&p()}})),f.set(e,r),n.observe(e),()=>{f.delete(e),n==null||n.unobserve(e),f.size===0&&(n==null||n.disconnect(),n=null)});return t._observer={observe:h}}const ie=/2g/;function se(){const t=navigator.connection;return!!(t&&(t.saveData||ie.test(t.effectiveType)))}const le={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},ue={class:"max-w-520px text-center z-20"},ce=["textContent"],fe=["textContent"],de={class:"flex items-center justify-center w-full"},he={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return te({title:`${n.statusCode} - ${n.statusMessage} | ${n.appName}`,script:[{children:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(f,h)=>{const v=ae;return J(),Q("div",le,[h[0]||(h[0]=S("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),S("div",ue,[S("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:C(t.statusCode)},null,8,ce),S("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:C(t.description)},null,8,fe),S("div",de,[X(v,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:Y(()=>[Z(C(t.backHome),1)]),_:1})])])])}}},me=ee(he,[["__scopeId","data-v-3d4207d3"]]);export{me as default}; diff --git a/.output/public/_nuxt/CGGlHf3T.js b/.output/public/_nuxt/CGGlHf3T.js new file mode 100644 index 0000000..f538715 --- /dev/null +++ b/.output/public/_nuxt/CGGlHf3T.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BfpgDEj5.js","./BnReMd0k.js","./y8qSb7BL.js","./C0eoOjsX.js","./entry.BMFnGFc3.css","./index.C-c7eKmS.css"])))=>i.map(i=>d[i]); +import{t as o,v as l,x as A,y as n,J as u,B as v,E as a,W as J,r as w,R as I,X as K,o as N,_ as X,S as j,U as q,u as Z,z as x,A as D,N as T,O as W,D as L,I as _}from"./C0eoOjsX.js";import{u as $,e as k,D as AA,H as eA,T as tA,M as iA,j as sA,o as lA}from"./BnReMd0k.js";import{_ as oA,a as nA}from"./ijtA8km9.js";import{_ as b}from"./DlAUqK2U.js";import{u as aA}from"./y8qSb7BL.js";const rA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter1211'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.2%200%201%200%200%200.2%200%200%201%200%200.2%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-12%20-72%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='20'%20height='20'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYxQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO6AaXgAAAIN0Uk5TABQcASQMVPr+dqvsLL7lisnxJ5VLa3fi+IzHclwlE5T3Pyrf/XUW4F+bmVBE1bZHbO8S+/zG9SENw3RXs+EQhyO8RjPb6VLyGtHcgznC6G7SUbS7t6mQQc+G8/kF580JQjUiBtCSTC9d6qEL5GEZaG9aSNnaVS24pFt4DhFmD4kHQE/dY/XDAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAedJREFUWMPtlldTwlAQhVFRig1BsYu9gaJgwY4FxYqKiopi771g7/vHvcklYUKSYZVxRh3O0+6e7EdyKwpFXHHJKiExspKkTP5Cf4pKrYkoaSE1DQ9IB8gQVhIBIBMP0AFkCSt6AjAgOpOzc4xEuQB5RoHyCaCACQqLiuXbS0ylgJCuTKa/vALTTlRZJdlfXYPsJ6qVAtQx7HqzhaiBjIFFoCJiNjKBtYl5z2abuN9mB2ix0rgVoE3otpOuOho6OkjcKQZ0kbIpFHcD9Ajd3kqAvlDsbAHoFwOMBDAQigeHXMMRtmZE5+biUYAxMWCcACYQS4VoEmDqtwI8FpSmZQF4/VqAwYhSbqyzoIsDfh4wM+tlNeehTvk8zb0LDhTAreKXi491Fvl8CQXQh9dbCuv08Hk97hMyl+njfu0Km5tXaa4OOP/KLMQMWCujB886d3tshE6iTRxga5sbdBc9yHe43L6LAuyFp3GfdQ74/BAFODrmni9Vss48DzjBjcHpGT14zvXU2bqgeafvz0zjNwEaArjEAa4ArsXVYHi3RdGNGuBWXO71k384ZkR/SYC5RSUME7Nj7+6DUfTAbG7XowTgaQh9samHJd9NeYXsVz3LfN3L6wjm572D8gP09l77HEUfbkVc/06fZiPR4mu5xpIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTEtMDJUMTQ6NTU6NDArMDg6MDCc3/v8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTExLTAyVDE0OjU1OjQwKzA4OjAw7YJDQAAAAEd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faG51MTgycmltYzkvcmlxaS5zdmeP3YsrAAAAAElFTkSuQmCC'%20x='12px'%20y='72px'%20filter='url(%23filter1211)'%20/%3e%3c/g%3e%3c/svg%3e",cA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter1212'%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%201.5%200%200%200%200%201.5%200%200%200%200%201.5%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-12%20-72%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='20'%20height='20'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYxQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO6AaXgAAAIN0Uk5TABQcASQMVPr+dqvsLL7lisnxJ5VLa3fi+IzHclwlE5T3Pyrf/XUW4F+bmVBE1bZHbO8S+/zG9SENw3RXs+EQhyO8RjPb6VLyGtHcgznC6G7SUbS7t6mQQc+G8/kF580JQjUiBtCSTC9d6qEL5GEZaG9aSNnaVS24pFt4DhFmD4kHQE/dY/XDAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAedJREFUWMPtlldTwlAQhVFRig1BsYu9gaJgwY4FxYqKiopi771g7/vHvcklYUKSYZVxRh3O0+6e7EdyKwpFXHHJKiExspKkTP5Cf4pKrYkoaSE1DQ9IB8gQVhIBIBMP0AFkCSt6AjAgOpOzc4xEuQB5RoHyCaCACQqLiuXbS0ylgJCuTKa/vALTTlRZJdlfXYPsJ6qVAtQx7HqzhaiBjIFFoCJiNjKBtYl5z2abuN9mB2ix0rgVoE3otpOuOho6OkjcKQZ0kbIpFHcD9Ajd3kqAvlDsbAHoFwOMBDAQigeHXMMRtmZE5+biUYAxMWCcACYQS4VoEmDqtwI8FpSmZQF4/VqAwYhSbqyzoIsDfh4wM+tlNeehTvk8zb0LDhTAreKXi491Fvl8CQXQh9dbCuv08Hk97hMyl+njfu0Km5tXaa4OOP/KLMQMWCujB886d3tshE6iTRxga5sbdBc9yHe43L6LAuyFp3GfdQ74/BAFODrmni9Vss48DzjBjcHpGT14zvXU2bqgeafvz0zjNwEaArjEAa4ArsXVYHi3RdGNGuBWXO71k384ZkR/SYC5RSUME7Nj7+6DUfTAbG7XowTgaQh9samHJd9NeYXsVz3LfN3L6wjm572D8gP09l77HEUfbkVc/06fZiPR4mu5xpIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTEtMDJUMTQ6NTU6NDArMDg6MDCc3/v8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTExLTAyVDE0OjU1OjQwKzA4OjAw7YJDQAAAAEd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faG51MTgycmltYzkvcmlxaS5zdmeP3YsrAAAAAElFTkSuQmCC'%20x='12px'%20y='72px'%20filter='url(%23filter1212)'%20/%3e%3c/g%3e%3c/svg%3e",gA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1497%20-272%20)'%3e%3cpath%20d='M%209.65206473214286%206.26736111111111%20C%2010.6217447916667%205.70486111111111%2011.4281994047619%204.94907407407407%2012.0714285714286%204%20C%2011.3363095238095%202.90740740740741%2010.4149925595238%202.09027777777778%209.30747767857143%201.54861111111111%20C%209.60249255952381%202.03009259259259%209.75%202.55092592592593%209.75%203.11111111111111%20C%209.75%203.96759259259259%209.43201264880952%204.70023148148148%208.79603794642857%205.30902777777778%20C%208.16006324404762%205.91782407407407%207.39471726190476%206.22222222222222%206.5%206.22222222222222%20C%205.60528273809524%206.22222222222222%204.83993675595238%205.91782407407407%204.20396205357143%205.30902777777778%20C%203.56798735119048%204.70023148148148%203.25%203.96759259259259%203.25%203.11111111111111%20C%203.25%202.55092592592593%203.39750744047619%202.03009259259259%203.69252232142857%201.54861111111111%20C%202.58500744047619%202.09027777777778%201.66369047619048%202.90740740740741%200.928571428571428%204%20C%201.5718005952381%204.94907407407407%202.37825520833333%205.70486111111111%203.34793526785714%206.26736111111111%20C%204.31761532738095%206.82986111111111%205.36830357142857%207.11111111111111%206.5%207.11111111111111%20C%207.63169642857143%207.11111111111111%208.68238467261905%206.82986111111111%209.65206473214286%206.26736111111111%20Z%20M%206.74665178571429%201.56944444444444%20C%206.81436011904762%201.50462962962963%206.84821428571429%201.42592592592593%206.84821428571429%201.33333333333333%20C%206.84821428571429%201.24074074074074%206.81436011904762%201.16203703703704%206.74665178571429%201.09722222222222%20C%206.67894345238095%201.03240740740741%206.59672619047619%200.999999999999999%206.5%201%20C%205.89546130952381%200.999999999999999%205.37676711309524%201.20717592592593%204.94391741071429%201.62152777777778%20C%204.51106770833333%202.03587962962963%204.29464285714286%202.53240740740741%204.29464285714286%203.11111111111111%20C%204.29464285714286%203.2037037037037%204.32849702380952%203.28240740740741%204.39620535714286%203.34722222222222%20C%204.46391369047619%203.41203703703704%204.54613095238095%203.44444444444444%204.64285714285714%203.44444444444444%20C%204.73958333333333%203.44444444444444%204.8218005952381%203.41203703703704%204.88950892857143%203.34722222222222%20C%204.95721726190476%203.28240740740741%204.99107142857143%203.2037037037037%204.99107142857143%203.11111111111111%20C%204.99107142857143%202.71296296296296%205.13857886904762%202.37268518518519%205.43359375%202.09027777777778%20C%205.72860863095238%201.80787037037037%206.08407738095238%201.66666666666667%206.5%201.66666666666667%20C%206.59672619047619%201.66666666666667%206.67894345238095%201.63425925925926%206.74665178571429%201.56944444444444%20Z%20M%2012.8549107142857%203.52083333333333%20C%2012.9516369047619%203.68287037037037%2013%203.84259259259259%2013%204%20C%2013%204.15740740740741%2012.9516369047619%204.31712962962963%2012.8549107142857%204.47916666666667%20C%2012.1778273809524%205.54398148148148%2011.2673921130952%206.39699074074074%2010.1236049107143%207.03819444444444%20C%208.97981770833333%207.67939814814815%207.77194940476191%208%206.5%208%20C%205.2280505952381%208%204.02018229166667%207.67824074074074%202.87639508928571%207.03472222222222%20C%201.73260788690476%206.3912037037037%200.822172619047619%205.53935185185185%200.145089285714286%204.47916666666667%20C%200.0483630952380952%204.31712962962963%200%204.15740740740741%200%204%20C%200%203.84259259259259%200.0483630952380952%203.68287037037037%200.145089285714286%203.52083333333333%20C%200.822172619047619%202.46064814814815%201.73260788690476%201.6087962962963%202.87639508928571%200.965277777777778%20C%204.02018229166667%200.321759259259259%205.2280505952381%200%206.5%200%20C%207.77194940476191%200%208.97981770833333%200.321759259259259%2010.1236049107143%200.965277777777778%20C%2011.2673921130952%201.6087962962963%2012.1778273809524%202.46064814814815%2012.8549107142857%203.52083333333333%20Z%20'%20fill-rule='nonzero'%20fill='%23a4a3a3'%20stroke='none'%20transform='matrix(1%200%200%201%201497%20272%20)'%20/%3e%3c/g%3e%3c/svg%3e",dA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='13px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter851'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.25%200%201%200%200%200.25%200%200%201%200%200.25%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1059%20-1144%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='13'%20height='13'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg=='%20x='1059px'%20y='1144px'%20filter='url(%23filter851)'%20/%3e%3c/g%3e%3c/svg%3e",mA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg==",fA="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='12px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter852'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.25%200%201%200%200%200.25%200%200%201%200%200.25%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1099%20-1145%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='13'%20height='12'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg=='%20x='1099px'%20y='1145px'%20filter='url(%23filter852)'%20/%3e%3c/g%3e%3c/svg%3e",wA=["href"],vA=["src"],uA={class:"content flexflex"},EA={class:"name"},xA={class:"list flexflex"},BA={key:0,class:"item flexacenter"},hA={class:"item-value ellipsis"},CA={key:1,class:"item flexacenter"},QA={class:"item-value ellipsis"},pA={key:2,class:"item flexacenter"},kA={class:"item-value ellipsis"},yA={class:"text-box"},RA={class:"text"},GA={class:"time flexacenter"},SA={class:"data-list flexacenter"},UA={class:"data-item flexacenter"},DA={key:0,class:"data-item-icon",src:dA},TA={key:1,class:"data-item-icon",src:mA},LA={class:"data-item flexacenter"},bA={__name:"Item",props:{item:Object},emits:["childEvent"],setup(i,{emit:y}){const R=y,B=(r,e,d)=>{if(d==1){k.error("不可取消点赞");return}R("handleLike",e)},h=r=>r.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");return(r,e)=>(l(),o("a",{class:"box flexflex",target:"_blank",href:`./details/${i.item.uniqid}`},[A("img",{class:"img",src:i.item.schoolimage},null,8,vA),A("div",uA,[A("div",EA,n(i.item.school),1),A("div",xA,[i.item.profession?(l(),o("div",BA,[e[1]||(e[1]=A("div",{class:"item-name"},"专业",-1)),A("div",hA,n(i.item.profession),1)])):u("",!0),i.item.project?(l(),o("div",CA,[e[2]||(e[2]=A("div",{class:"item-name"},"项目",-1)),A("div",QA,n(i.item.project),1)])):u("",!0),i.item.interviewtime?(l(),o("div",pA,[e[3]||(e[3]=A("div",{class:"item-name"},"时间",-1)),A("div",kA,n(i.item.interviewtime),1)])):u("",!0)]),A("div",yA,[A("div",RA,n(i.item.message),1),A("div",GA,[e[4]||(e[4]=A("img",{class:"time-icon time-black-icon",src:rA},null,-1)),e[5]||(e[5]=A("img",{class:"time-icon time-white-icon",src:cA},null,-1)),v(" "+n(("handleDate"in r?r.handleDate:a($))(i.item.releasetime))+"发布 ",1)])]),A("div",SA,[A("div",UA,[e[6]||(e[6]=A("img",{class:"data-item-icon",src:gA},null,-1)),v(" "+n(h(i.item.views||0)),1)]),A("div",{class:"data-item flexacenter",onClick:e[0]||(e[0]=J(d=>B(i.item.uniqid,i.item.token,i.item.islike),["prevent"]))},[i.item.islike==0?(l(),o("img",DA)):(l(),o("img",TA)),v(" "+n(i.item.likenum||0),1)]),A("div",LA,[e[7]||(e[7]=A("img",{class:"data-item-icon",src:fA},null,-1)),v(" "+n(i.item.commentnum||0),1)])])])],8,wA))}},OA=b(bA,[["__scopeId","data-v-f1ba08be"]]),HA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAED0lEQVRYCe2Wu09UQRTGdwlYWWMAIzEhWhCJhRgVAbHzAWil1sT/gKcKLAqG159AYimVgIFSeVOglSYmRhPFEEiIlTQ2sP6+y5zr3OUuLFDqJLPnzHce883MmdmbSPzrLXmQDRgaGjqNfyO9Op1OFyFPuvjVZDK5Dja3tbU10dHR8d3h+4qcCDDxdZL3ku3yvhlxgMwS4nFLS8vMfv57Eujr6zuRn5//goQ3vESf0Sch9BW55vBifMrA6pFnPN9Jxk0Q2fCwiJqVwODg4Hk8J+inXMQYyVIk+xDJkDFgtyogkgK+60wrxDVki4sloMkJmifRcZJsoN/LZTvdhIEYGBioI26UQSF9E/1qHIldBLTtBQUFywRp5Z/y8vJuNjc3r6AfuA0PD5dub29PEVhOX4HERUhEjiMvM6vOHEyTbxxlcuUVcXLcUi56KTs6ItxvEQKqdlgGBYfz/cOu3J9AOcj5wGH1HG+tb48QYNI+Zxxra2ub9h2lc64XSFCVidtYNvnY2CTb/hZ9XGPIPDdcMiTgHplLAnFKSfqN86wEV20s4Nvp26Q7bEE+cSTAu+XHIq+oNqSrhQQw3NmBEl/iqpViOoY9KFp8n7LaLuefkC7MjZPo8o00l1NviEjoNQ1aSACGVx322smIaG1tXSSw1QN7WHU3q20D6zGcPF3t7e1LNvYl8boRatU7IroDwbtOgi9mzJTUxZBPAj2Ff7/5aXJW+szGMTLITVyJ2cIdAChy4JoZ42QmCfPJYfIEV3Ld+RdbnE8gLZCz3vU4mbMn/TiD4zCzBdLLHcwl0A+ylYfsItFuoDP3t918dByqCRvHSeKCXUbaXH8JGIgsiwsWpmrHHp45kK5jeCVFwr8divEbdsu9mwDGOTkzQXhF/GASq3LDakfv5Gb0qkv3fHv6+/vtRnlwoN7WL0cxa4bwCPQlI1As2coKczBJAf2WWWNIPnETB2bpwoIBPujyjTTlBD8DyBTp8KqHBPQZhcOSonBISfqNN/0dJCphX8VVsyc7dBEmm3y4Ke9Dg1PIGewecyzyTvwwe6TiYXkNx2kZkdfj/g8s8CCSvPqke+NiatixeYsPd0AAq5hBTEqH6aj/Zgs7TFMOJn/pYsf9yYVFCAhg4ibECr2QLZ06CgnFKody0b9xPA+RkbaLALugT7AGvDbp5SRY1tFEonIY8F7UKVY56L/QG6mjn5mhkRrwjapatk7VWiocUq+4KSkK6KPvl6lzBc+xUhWcfZR+0+TZ4rISUGJIFEJiBLVeY9f0l6rPbf2xBA8KE5Qw1iOje36Wbm1c2x63cnPYk4A58QjVouvqVRm2l4TMAsQfZRZcXExOBCzQVXQjyWuYpAhpf+Gr6Pqnm2U3Jvx7brH/ZbYd+APZxM/2zgvhdQAAAABJRU5ErkJggg==",VA="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAADXElEQVR4Ae2bS2vVQBTHm/qqIuJCUARBUbrQhVDwic+Kaz+CGzcuXfsNXPtY9AsIbly4EUSEKnWh7hSLVSqC0PpqSwXRwvV3IInJZO4kuTd37mScgT+ZOedk5vz/OclNbu4dGQktKBAU+J8ViHTkO53OGPZr4AxYr4tpke03uT4Et6MoWlPzLggA+e0EPQWH1OCWj2fIfxIRfmV5jGYHcf8GW9/IC7UT4Lp0sk1XAcsEbMsGedR/RwWMZ/nkKoDyF0E2ZwM8629V+eQEQJ0OAc/VII/Gz1QuulNgIhZhgxrc8vEq+R/mIH/I8shVgDgIeMXmFHgpYw+aVPU0OK6SF26FChBj0rgmyMVwRzJu6XYB4j9bmntI208FOLXGwT3wFSyB++Cgn2wVVhA9Ar4DtS1jOKmE+zWE4AT4pjLPjFfpn/WLdcwGYmXkEx38E6EGef9E6IG8PyL0Qb79IjRAvr0iNEi+fSIMgHx7RBggefdFsEDeXREskndPBDKSe/sfSWYl2/f4F0tiZkv8iXuFznCfHUig6u2tJD0P9oI5GRjaLnyvDf6sa3i3zWRRm7w8FrBfmQARMTuBuyL0Sr6qAHGcmyL0Q76OAE6K0C/5ugI4JUIT5HsRwAkRmiLfqwBDFQHy+4DpayzcaZPP+T2ScLeGv/RTwLDvbvZ/m65m7siXrQe6zVXZziS3zOuk3lLysijRPQsQ719HhKkyooVXY5odjmpsqknet53jDcwn1dH0mDU+M+ckmK0w97GymCoCrJRM8hH/BRvkkzxiEeTb4zeJrct2qYs9NVcR4FEaXezIkT9NQvNF12AtrLnACheBqRJMuVdLkHN2DEynZ/q/jlyMjBc83Qrs09c1QJ2T+eSaoLttnsG+RY1Xx8a3w0kwE22ifwWcBxuB/NDgDkeh7PQgLN+Yaw7L/rw1NxplXnmlXbkxp/zy4yqQ1/pr4AmYYp7cD6KwDb+JAMDUKh2UpphUuQY0tZaT8wQBnDwsFpMKFWBRbCeXChXg5GGxmFSoAItiO7lUqAAnD4vFpEIFWBQ7WepL0tFsF+s+CWrmqGUaRgXcNWRo8hl2a5GL5+B14IHmefgFtsI/OgZNzeqzd0IGorLuZXAJyN/yHoOblP8ftqEFBYICQQFrCvwFEG2wKFYx49sAAAAASUVORK5CYII=",FA={key:0,class:"search-result flexacenter"},YA={class:"total"},PA={key:0,class:"empty-box flexcenter"},zA={key:1,class:"in-end"},MA={__name:"index",async setup(i){let y,R,B=L("isNeedLogin");const h=L("goLogin");aA({script:[{src:"https://app.gter.net/bottom?tpl=header&menukey=mj"},{src:"https://app.gter.net/bottom?tpl=footer,popupnotification",body:!0}]});const r=w(null);let e=null;const d=I();let m=w("");m.value=d.query.keyword,K(()=>{m.value!=d.query.keyword&&(g.value=[],c.value=1,m.value=d.query.keyword,Q(d.query.keyword))}),N(async()=>{let s=await X(()=>import("./BfpgDEj5.js").then(t=>t.m),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url);e=new s.default(r.value,{itemSelector:".box",gutter:22.5}),window.addEventListener("scroll",G),Q()});const G=()=>{const s=document.documentElement.scrollTop||document.body.scrollTop;s>200?p.value=!0:p.value=!1;const t=document.documentElement.scrollHeight,f=document.documentElement.clientHeight;s+f>=t-40&&Q()};let c=w(1),S=w(0),g=w([]),C=!1;const Q=()=>{c.value==0||C||(C=!0,AA({page:c.value,keyword:m.value}).then(s=>{if(s.code!=200){c.value=0,k({message:s.message,type:"error"});return}let t=s.data;g.value=g.value.concat(t.data||[]),t.count>g.value.length?c.value++:c.value=0,S.value=t.count,j(()=>{e&&(e.reloadItems(),e.layout())})}).finally(()=>C=!1))},O=s=>{if(B.value){h();return}lA({token:s}).then(t=>{if(t.code!=200)return;let f=t.data;g.value.forEach(E=>{E.token==s&&(E.islike=f.status,E.likenum=f.count)}),k.success(t.message)})};q(()=>{window.removeEventListener("scroll",G)}),Z();const H=()=>sA("/index.html",!1);let p=w(!1);const V=()=>{window.scrollTo({top:0,behavior:"smooth"})};return(s,t)=>{const f=tA,E=iA,F=eA,Y=oA,P=nA,z=OA;return l(),o(T,null,[x(F,null,{default:D(()=>[x(f,null,{default:D(()=>t[1]||(t[1]=[v("寄托天下 - 面经分享")])),_:1}),x(E,{name:"keyword",content:"留学资讯,留学交流论坛,留学面经,面试经验,寄托天下"})]),_:1}),x(Y),a(m)?(l(),o("div",FA,[A("div",{class:"keyword flexacenter",onClick:H},[v(n(a(m))+" ",1),t[2]||(t[2]=A("img",{class:"keyword-icon",src:HA},null,-1))]),t[3]||(t[3]=A("div",{class:"halving-line"},null,-1)),A("div",YA,"共 "+n(a(S))+" 条搜索数据",1)])):u("",!0),A("div",{class:"content",ref_key:"gridContainer",ref:r},[a(g).length==0&&a(c)==0?(l(),o("div",PA,[x(P,{hint:"没有找到相关结果,请更换搜索关键词"})])):(l(!0),o(T,{key:1},W(a(g),(U,M)=>(l(),_(z,{key:M,item:U,onHandleLike:O},null,8,["item"]))),128))],512),a(c)==0&&a(g).length>0?(l(),o("div",zA,"- 到底了 -")):u("",!0),a(p)?(l(),o("div",{key:2,class:"right-returnTop",onClick:t[0]||(t[0]=U=>V())},t[4]||(t[4]=[A("img",{src:VA,style:{width:"24px",height:"24px"}},null,-1)]))):u("",!0)],64)}}},qA=b(MA,[["__scopeId","data-v-3292866c"]]);export{qA as default}; diff --git a/.output/public/_nuxt/DeU7cwoU.js b/.output/public/_nuxt/DeU7cwoU.js new file mode 100644 index 0000000..1974c71 --- /dev/null +++ b/.output/public/_nuxt/DeU7cwoU.js @@ -0,0 +1 @@ +import{_ as s}from"./DlAUqK2U.js";import{u as i}from"./y8qSb7BL.js";import{t as a,v as u,x as e,y as o}from"./C0eoOjsX.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return i({title:`${r.statusCode} - ${r.statusMessage} | ${r.appName}`,script:[{children:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{children:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(u(),a("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.statusCode)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},x=s(f,[["__scopeId","data-v-fd2e3e85"]]);export{x as default}; diff --git a/.output/public/_nuxt/DlAUqK2U.js b/.output/public/_nuxt/DlAUqK2U.js new file mode 100644 index 0000000..718edd3 --- /dev/null +++ b/.output/public/_nuxt/DlAUqK2U.js @@ -0,0 +1 @@ +const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _}; diff --git a/.output/public/_nuxt/DwPp8tHk.js b/.output/public/_nuxt/DwPp8tHk.js new file mode 100644 index 0000000..7385c26 --- /dev/null +++ b/.output/public/_nuxt/DwPp8tHk.js @@ -0,0 +1 @@ +function n({error:r,redirect:e}){if(r)return e("/index.html")}export{n as default}; diff --git a/.output/public/_nuxt/_id_.DdwZQJ0A.css b/.output/public/_nuxt/_id_.DdwZQJ0A.css new file mode 100644 index 0000000..90ab73b --- /dev/null +++ b/.output/public/_nuxt/_id_.DdwZQJ0A.css @@ -0,0 +1 @@ +.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.alert-form[data-v-10f3bede]{background-color:#000000b3;display:block;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:999}.alert-form .reports[data-v-10f3bede]{height:440px}.alert-form .reports .radio-area[data-v-10f3bede]{margin-bottom:40px}.alert-form .reports .radio-area .radio-area-item[data-v-10f3bede]{color:#606266;cursor:pointer;font-size:14px;margin-right:10px}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-10f3bede]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-10f3bede]:after{transform:rotate(45deg) scaleY(1)}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-10f3bede]{border:1px solid #dcdfe6;border-radius:2px;height:14px;margin-right:10px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-10f3bede]:after{border:1px solid #fff;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.alert-form .el-checkbox-group[data-v-10f3bede]{font-size:0}.alert-form .comments[data-v-10f3bede]{background-color:#fff;border:none;border-radius:8px 8px 6px 6px;display:block;height:440px;left:50%;max-height:90vh;max-width:90vw;position:fixed;top:50%;transform:translate(-50%,-50%);width:740px;z-index:11}.alert-form .comments .text-box[data-v-10f3bede]{position:relative}.alert-form .comments .text-num[data-v-10f3bede]{bottom:10px;color:#999;font-size:12px;position:absolute;right:10px}.alert-form .comments .form[data-v-10f3bede]{display:block;padding:34px 30px 40px;width:100%}.alert-form .comments .form textarea[data-v-10f3bede]{background:#f7f7f7;border:1px solid #f7f7f7;border-radius:5px;display:block;font-size:14px;height:172px;line-height:22px;margin-bottom:30px;outline:none;padding:18px;resize:none;width:100%}.alert-form .head[data-v-10f3bede]{align-items:center;background:#333;border-radius:6px 6px 0 0;color:#fff;display:flex;font-size:17px;height:56px;justify-content:space-between;padding:0 18px 0 30px}.alert-form .head .close[data-v-10f3bede]{color:#b3b3b3;cursor:pointer;font-size:14px}.alert-form .footer[data-v-10f3bede]{align-items:center;display:flex;justify-content:center}.alert-form .footer button[type=button][data-v-10f3bede]{margin-right:20px}.alert-form .footer button[data-v-10f3bede]{background-color:#fff;border:1px solid #999;border-radius:5px;color:#333;cursor:pointer;font-size:14px;height:38px;outline:none;width:128px}.alert-form .footer button[type=submit][data-v-10f3bede]{color:#fff}.alert-form .el-checkbox__input.is-checked .el-checkbox__inner[data-v-10f3bede],.alert-form .el-checkbox__input.is-indeterminate .el-checkbox__inner[data-v-10f3bede],.alert-form .footer button[type=submit][data-v-10f3bede]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .el-checkbox__inner[data-v-10f3bede]:hover,.alert-form .el-checkbox__input.is-focus .el-checkbox__inner[data-v-10f3bede]{border-color:#50e3c2}.alert-form .el-checkbox__input.is-checked+.el-checkbox__label[data-v-10f3bede]{color:#50e3c2}.pop-masking[data-v-e0d5b424]{background:#0009;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:10}.pop-masking .box[data-v-e0d5b424]{background-color:#fff;border-radius:14px;box-shadow:0 0 15px #00000035;height:540px;position:relative;width:552px}.pop-masking .box .cross-icon[data-v-e0d5b424]{cursor:pointer;height:16px;position:absolute;right:10px;top:10px;width:16px}.pop-masking .box .header[data-v-e0d5b424]{border-bottom:1px solid #ebebeb;color:#333;font-size:14px;height:76px;padding-left:30px}.pop-masking .box .header .total[data-v-e0d5b424]{color:#000;font-weight:650;margin:0 7px}.pop-masking .box .list[data-v-e0d5b424]{border-bottom:1px solid #ebebeb;height:376px;margin-right:5px;overflow:auto;padding:15px 30px}.pop-masking .box .list[data-v-e0d5b424]::-webkit-scrollbar{margin-right:-10px!important}.pop-masking .box .list .item[data-v-e0d5b424]{border-bottom:1px dotted #f2f2f2;color:#000;font-size:13px;height:64px}.pop-masking .box .list .item .number[data-v-e0d5b424]{color:#ffb600;font-family:Arial-BoldMT,Arial Bold,Arial,sans-serif;font-weight:700;margin-right:110px;padding-left:5.5px}.pop-masking .box .list .item .middle .avatar[data-v-e0d5b424]{border-radius:50%;height:28px;margin-right:12px;width:28px}.pop-masking .box .list .item .middle .nickname[data-v-e0d5b424]{color:#555}.pop-masking .box .list .item .value[data-v-e0d5b424]{flex:1;font-size:16px;justify-content:flex-end;line-height:24px}.pop-masking .box .list .item .value .bi[data-v-e0d5b424]{font-size:13px;margin-left:4px}.pop-masking .box .bottom[data-v-e0d5b424]{height:88px}.pop-masking .box .bottom .bottom-item[data-v-e0d5b424]{border:1px solid #797979;border-radius:45px;color:#000;cursor:pointer;font-size:14px;height:38px;width:128px}.pop-masking .box .bottom .bottom-item.green[data-v-e0d5b424]{background:#72db86;border-color:#72db86;color:#fff;margin-left:21px}@font-face{font-family:emojifont;src:url(https://oss.x-php.com/static/riposte/emojifont-sbix.ttf?t=mj)}.content[data-v-ec58218d]{background:#fff;border-radius:15px;font-family:PingFangSC-Regular,PingFang SC,sans-serif;margin:0 auto 60px;width:1200px}.content .left[data-v-ec58218d]{border-right:16px solid #f6f6f6;display:flex;flex-direction:column;height:calc(100vh - 70px);overflow:auto;padding-top:30px;width:376px}.content .left .school-box[data-v-ec58218d]{flex-direction:column;margin-bottom:40px;text-align:center}.content .left .school-box .school-box-icon[data-v-ec58218d]{height:52px}.content .left .school-box .school-box-icon .school-icon[data-v-ec58218d]{height:40px;margin-bottom:12px}.content .left .school-box .school-name[data-v-ec58218d]{color:#000;font-size:15px;font-weight:650;height:28px;margin-bottom:7px}.content .left .school-box .school-en-name[data-v-ec58218d]{color:#555;font-size:13px;height:18px}.content .left .mj-total[data-v-ec58218d]{color:#7f7f7f;font-size:13px;line-height:22px;margin-bottom:20px;padding:0 30px}.content .left .mj-total .value[data-v-ec58218d]{color:#000;font-weight:650;margin:0 5px}.content .left .mj-list[data-v-ec58218d]{scrollbar-width:none;-ms-overflow-style:none;flex:1;margin-right:9px;overflow:auto;padding:0 30px 15px}.content .left .mj-list[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .left .mj-list .mj-item[data-v-ec58218d]{cursor:pointer;flex-direction:column;margin-bottom:15px;padding:14px 12px;position:relative;z-index:1}.content .left .mj-list .mj-item.recommend .mj-header[data-v-ec58218d]{display:inline-block}.content .left .mj-list .mj-item.recommend .mj-header .label[data-v-ec58218d]{background-color:#fde06d1e;border:1px solid #e4c762;border-radius:5px;color:#e4c762;display:inline-flex;font-size:12px;height:20px;margin-right:10px;text-align:center}.content .left .mj-list .mj-item.recommend .mj-header .label .label-text[data-v-ec58218d]{background-color:#e4c762;border-radius:5px;color:#fff;font-size:12px;height:20px;width:20px}.content .left .mj-list .mj-item.recommend .mj-header .label .label-title[data-v-ec58218d]{align-items:center;display:flex;height:100%;padding:0 5px}.content .left .mj-list .mj-item.recommend .mj-header h1[data-v-ec58218d]{color:#000;display:inline;font-size:14px;font-weight:650;line-height:26px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.content .left .mj-list .mj-item.recommend .thread-text[data-v-ec58218d]{color:#555;font-size:13px}.content .left .mj-list .mj-item.recommend .thread-text .ask-label[data-v-ec58218d]{color:#7f7f7f}.content .left .mj-list .mj-item.recommend .vote-list[data-v-ec58218d]{color:#555;font-size:13px}.content .left .mj-list .mj-item.recommend .vote-list .vote-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:6px}.content .left .mj-list .mj-item[data-v-ec58218d]:hover:after{background:#f6f6f6;border-radius:10px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:after,.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:before{background:#72db86;content:"";position:absolute}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:after{border-radius:10px;height:100%;left:0;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:before{height:10px;left:100%;top:50%;transform:translate(-64%,-50%) rotate(45deg);width:10px}.content .left .mj-list .mj-item.pitch .info-list .info-item .info-name[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .info-list .info-item .info-value[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .mj-header .time[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .mj-header .user-name[data-v-ec58218d]{color:#fff}.content .left .mj-list .mj-item .item-bj[data-v-ec58218d]{display:none;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item .mj-header[data-v-ec58218d]{font-size:12px;margin-bottom:12px}.content .left .mj-list .mj-item .mj-header .mj-avatar[data-v-ec58218d]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .left .mj-list .mj-item .mj-header .user-name[data-v-ec58218d]{color:#555;margin-right:10px}.content .left .mj-list .mj-item .mj-header .time[data-v-ec58218d]{color:#aaa}.content .left .mj-list .mj-item .info-list[data-v-ec58218d]{flex-direction:column}.content .left .mj-list .mj-item .info-list .info-item[data-v-ec58218d]{line-height:20px}.content .left .mj-list .mj-item .info-list .info-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:8px}.content .left .mj-list .mj-item .info-list .info-item .info-name[data-v-ec58218d]{color:#7f7f7f;font-size:13px;margin-right:10px}.content .left .mj-list .mj-item .info-list .info-item .info-value[data-v-ec58218d]{color:#333;font-size:13px}.content .right[data-v-ec58218d]{overflow:auto;padding:5px 0;scrollbar-width:none;-ms-overflow-style:none;position:relative}.content .right[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .right .header[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding:30px 30px 25px 45px}.content .right .header .titletitle[data-v-ec58218d]{color:#000;font-size:24px;font-weight:650;margin-bottom:15px}.content .right .header .mj-header-left[data-v-ec58218d]{position:relative}.content .right .header .mj-header[data-v-ec58218d]{font-size:13px;justify-content:space-between;line-height:22px}.content .right .header .mj-header .mj-avatar[data-v-ec58218d]{border-radius:50%;height:24px;margin-right:10px;width:24px}.content .right .header .mj-header .user-name[data-v-ec58218d]{color:#333;margin-right:10px}.content .right .header .mj-header .hide[data-v-ec58218d]{color:#aaa;cursor:pointer;margin-left:12px}.content .right .header .mj-header .hide .icon[data-v-ec58218d]{height:16px;margin-right:5px}.content .right .header .mj-header .time[data-v-ec58218d]{color:#aaa}.content .right .header .mj-header .mj-header-right[data-v-ec58218d]{color:#333;cursor:pointer;font-size:14px}.content .right .header .mj-header .mj-header-right .original-icon[data-v-ec58218d]{height:16px;margin-right:7px;width:18px}.content .right .details-box[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding-top:41px}.content .right .details-box .details-item[data-v-ec58218d]{margin-bottom:40px}.content .right .details-box .details-item .details-top[data-v-ec58218d]{color:#000;font-size:14px;font-weight:650;margin-bottom:21px;padding-left:60px;position:relative}.content .right .details-box .details-item .details-top[data-v-ec58218d]:after{background-color:#62b1ff;border-radius:3px;content:"";height:10px;left:44px;position:absolute;top:5px;width:6px}.content .right .details-box .details-item .details-list[data-v-ec58218d]{background:inherit;background-color:#f6f6f6;border-radius:10px;font-size:14px;margin-left:60px;padding:20px;width:733px}.content .right .details-box .details-item .details-list .details-list-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:20px}.content .right .details-box .details-item .details-list .details-list-item .details-name[data-v-ec58218d]{color:#555;margin-right:30px}.content .right .details-box .details-item .details-list .details-list-item .details-value[data-v-ec58218d]{color:#000;white-space:break-spaces;word-wrap:break-word}.content .right .details-box .details-item .details-list .details-list-item .details-value.date[data-v-ec58218d]{color:#000;font-family:Arial-Black,Arial Black,sans-serif;font-size:16px;font-style:normal;font-weight:900}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe[data-v-ec58218d]{font-size:15px;line-height:30px;position:relative;width:693px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe .unlock-mask[data-v-ec58218d]{display:none}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock[data-v-ec58218d]{height:180px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .text[data-v-ec58218d]{height:180px;overflow:hidden}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask[data-v-ec58218d]{align-items:center;background:linear-gradient(0deg,#f6f6f6 70%,transparent);color:#000;display:flex;flex-direction:column;font-size:14px;height:100%;justify-content:flex-end;left:0;line-height:normal;padding-bottom:38px;position:absolute;top:0;width:100%}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .unlock-text-box[data-v-ec58218d]{flex-direction:column;position:relative}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .unlock-text[data-v-ec58218d]{cursor:pointer;padding-top:7px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .emphasis[data-v-ec58218d]{color:#fa6b11;font-weight:650}.content .right .respond-area[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding:40px 45px 30px}.content .right .respond-area .respond-title[data-v-ec58218d]{color:#000;font-family:PingFangSC-Semibold,PingFang SC Semibold,PingFang SC,sans-serif;font-size:16px;font-weight:650;line-height:20px;margin-bottom:20px}.content .right .respond-area .respond-title .value[data-v-ec58218d]{color:#555;flex:1;font-family:PingFangSC-Regular,PingFang SC,sans-serif;font-weight:400;margin-left:5px}.content .right .respond-area .respond-title .respond-list-btn[data-v-ec58218d]{align-items:center;color:#555;cursor:pointer;display:flex;font-size:13px;font-weight:400}.content .right .respond-area .respond-title .respond-list-btn .respond-list-btn-amount[data-v-ec58218d]{color:#333;font-weight:650;margin:0 5px}.content .right .respond-area .respond-title .respond-list-btn .respond-list-btn-icon[data-v-ec58218d]{margin-left:5px;width:6px}.content .right .respond-area .respond-no-box[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:40px 208px 208px 40px;height:40px;width:382px}.content .right .respond-area .respond-no-box[data-v-ec58218d] .respond-add{margin:5px}.content .right .respond-area .respond-no-box .respond-no[data-v-ec58218d]{display:flex;justify-content:space-around}.content .right .respond-area .respond-no-box .respond-no .code[data-v-ec58218d]{cursor:pointer;font-family:emojifont;font-size:16px;line-height:30px;margin-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box[data-v-ec58218d]{display:flex;flex-wrap:wrap}.content .right .respond-area .respond-box .respond-item[data-v-ec58218d]{background:#fff;border:1px solid #d7d7d7;border-radius:8px;color:#555;cursor:pointer;display:inline-flex;font-size:12px;height:30px;margin-bottom:10px;margin-right:10px;padding:0 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box .respond-item .code[data-v-ec58218d]{font-family:emojifont;font-size:16px;line-height:30px;margin-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box .respond-item.pitch[data-v-ec58218d]{background:#f6f6f6;border:none}.content .right .respond-area .respond-box .respond-select[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:208px;height:30px;width:250px}.content .right .respond-area .respond-box .respond-select .respond-select-box[data-v-ec58218d]{justify-content:space-around}.content .right .respond-area .respond-box .respond-select .respond-select-box .respond-select-item[data-v-ec58218d]{cursor:pointer;font-family:emojifont;font-size:16px;line-height:30px}.content .right .emoji-box-mask[data-v-ec58218d]{height:100%;left:0;position:fixed;top:0;width:100%;z-index:1}.content .right .comment-box[data-v-ec58218d]{padding-left:45px;padding-top:40px}.content .right .comment-box .edit-comment[data-v-ec58218d]{background-color:#00000080;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:12}.content .right .comment-box .edit-comment .box[data-v-ec58218d]{background:#fff;border-radius:10px;padding:20px 15px;width:650px}.content .right .comment-box .edit-comment .box .text[data-v-ec58218d]{color:#000;font-size:18px;font-weight:650;margin-bottom:15px}.content .right .comment-box .edit-comment .box .input-box[data-v-ec58218d]{margin-right:0}.content .right .comment-box .edit-comment .box .input-box .bottom[data-v-ec58218d]{border-top:1px solid #ebebeb}.content .right .comment-box .edit-comment .box .input-box .bottom .emoji-edit-box-mask[data-v-ec58218d]{height:100vh;left:0;position:fixed;top:0;width:100vw}.content .right .comment-box .edit-comment .box .btn-list[data-v-ec58218d]{justify-content:flex-end;padding:15px 0}.content .right .comment-box .edit-comment .box .btn-list .btn[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:43px;color:#333;cursor:pointer;font-size:14px;height:28px;line-height:28px;margin-left:20px;text-align:center;width:80px}.content .right .comment-box .edit-comment .box .btn-list .btn.send[data-v-ec58218d]{background-color:#fddf6d;border:1px solid #fddf6d}.content .right .comment-box .comment-title[data-v-ec58218d]{color:#000;font-size:16px;font-weight:650;line-height:20px;margin-bottom:16px}.content .right .comment-box .comment-title .value[data-v-ec58218d]{color:#555;font-weight:400;margin-left:5px}.content .right .comment-box .post-comment[data-v-ec58218d]{background-color:#fff;border:1px solid #d7d7d7;border-radius:6px;margin-bottom:30px;overflow:hidden;position:relative;transition:all 5s;width:749px}.content .right .comment-box .post-comment.post-comment-focus .post-input[data-v-ec58218d] .el-textarea__inner{max-height:80vh;min-height:200px!important;padding-bottom:52px}.content .right .comment-box .post-comment.post-comment-focus .post-input[data-v-ec58218d] .el-input__count{display:block;left:10px}.content .right .comment-box .post-comment.post-comment-focus .post-ok[data-v-ec58218d]{bottom:10px;height:32px;right:10px}.content .right .comment-box .post-comment.post-comment-focus .post-comment-input[data-v-ec58218d]{width:749px}.content .right .comment-box .post-comment .post-comment-input[data-v-ec58218d]{width:690px}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]{background-color:transparent;font-size:14px;height:100%;outline:none;outline-color:#62b1ff;resize:none;scrollbar-width:none;transition:all .5s;-ms-overflow-style:none;border:none}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::-moz-placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .right .comment-box .post-comment .post-input[data-v-ec58218d] .el-textarea__inner{border:none;box-shadow:none;min-height:60px!important;padding:10px;resize:none;transition:all .5s}.content .right .comment-box .post-comment .post-input[data-v-ec58218d] .el-input__count{display:none}.content .right .comment-box .post-comment .post-ok[data-v-ec58218d]{background-color:#62b1ff;border-radius:6px;bottom:0;color:#fff;cursor:pointer;font-size:14px;height:62px;position:absolute;right:0;transition:all .5s;width:60px}.content .right .comment-box .input-box[data-v-ec58218d]{background-color:#f6f6f6;border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;margin-right:30px;padding-top:11px;position:relative}.content .right .comment-box .input-box .top[data-v-ec58218d]{padding:0 14px;position:relative}.content .right .comment-box .input-box .top .input-placeholder[data-v-ec58218d]{color:#7f7f7f;font-size:14px;left:14px;pointer-events:none;position:absolute;top:0}.content .right .comment-box .input-box .top .avatar[data-v-ec58218d]{border-radius:50%;display:block;height:24px;margin-right:10px;width:24px}.content .right .comment-box .input-box .top .input-textarea[data-v-ec58218d]{background-color:transparent;border:none;font-size:14px;min-height:80px;outline:none;padding-bottom:11px}.content .right .comment-box .input-box .top .input-textarea[data-v-ec58218d] *{background:transparent!important;border:none!important;border-radius:0!important;color:#000!important;font-size:14px!important;height:auto!important;margin:0!important;outline:none!important;padding:0!important;width:auto!important}.content .right .comment-box .input-box .top .input-textarea img[data-v-ec58218d]{display:none!important}.content .right .comment-box .input-box .picture-box[data-v-ec58218d]{border-bottom:1px dotted hsla(0,0%,84%,.502);padding-bottom:10px;padding-left:14px}.content .right .comment-box .input-box .picture-box .picture[data-v-ec58218d]{position:relative;width:-moz-fit-content;width:fit-content}.content .right .comment-box .input-box .picture-box .picture .img[data-v-ec58218d]{border-radius:5px;display:block;height:60px}.content .right .comment-box .input-box .picture-box .picture .close[data-v-ec58218d]{cursor:pointer;height:17px;position:absolute;right:0;top:0;transform:translate(50%,-50%);width:17px}.content .right .comment-box .input-box .bottom[data-v-ec58218d]{height:52px;justify-content:space-between;padding:0 14px}.content .right .comment-box .input-box .bottom .operate .item[data-v-ec58218d]{display:inline-flex;margin-right:20px;position:relative;z-index:1}.content .right .comment-box .input-box .bottom .operate .item.pitch .emoji-box[data-v-ec58218d]{display:flex}.content .right .comment-box .input-box .bottom .operate .item.pitch[data-v-ec58218d]:after{background-color:#fff;border-radius:5px;content:"";height:28px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px;z-index:-1}.content .right .comment-box .input-box .bottom .operate .item .icon[data-v-ec58218d]{cursor:pointer;height:16px;width:16px}.content .right .comment-box .input-box .bottom .operate .item .emoji-box[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:8px;display:none;filter:drop-shadow(0 0 11px rgba(0,0,0,.1));flex-wrap:wrap;font-size:22px;left:-14px;padding:8px;position:absolute;top:45px;width:581px;z-index:1}.content .right .comment-box .input-box .bottom .operate .item .emoji-box[data-v-ec58218d]:after{border-bottom:8px solid #fff;border-left:8px solid transparent;border-right:8px solid transparent;content:"";height:0;left:15px;position:absolute;top:-8px;width:0}.content .right .comment-box .input-box .bottom .operate .item .emoji-box .emoji-icon[data-v-ec58218d]{cursor:pointer;margin:5px}.content .right .comment-box .input-box .bottom .operate .item .file[data-v-ec58218d]{background:transparent;border:none;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.content .right .comment-box .input-box .bottom .operate .item .file[data-v-ec58218d]:after{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.content .right .comment-box .input-box .bottom .operate .item:hover .file-hint[data-v-ec58218d]{display:inline-block}.content .right .comment-box .input-box .bottom .operate .item .file-hint[data-v-ec58218d]{background-color:#333;border-radius:137px;color:#fff;display:none;font-size:13px;font-weight:400;height:22px;line-height:22px;margin-left:9px;padding:0 8px;text-align:center}.content .right .comment-box .input-box .bottom .btn[data-v-ec58218d]{background-color:#fddf6d;border-radius:43px;color:#333;cursor:pointer;font-size:14px;height:28px;line-height:28px;text-align:center;width:80px}.content .right .comment-box .input-box .cross[data-v-ec58218d]{cursor:pointer;height:12px;position:absolute;right:8px;top:5px;width:12px;z-index:2}.content .right .comment-box .empty-box[data-v-ec58218d]{padding:80px 0 110px}.content .right .comment-box .comment-list[data-v-ec58218d]{margin-bottom:78px;padding-top:17px}.content .right .comment-box .comment-list .comment-item[data-v-ec58218d]{padding-right:30px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-avatar[data-v-ec58218d]{margin-top:10px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-header[data-v-ec58218d]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .comment-avatar[data-v-ec58218d]{border-radius:50%;cursor:pointer;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header[data-v-ec58218d]{display:flex;justify-content:space-between;margin-bottom:10px;padding-right:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left[data-v-ec58218d]{font-size:13px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-avatar[data-v-ec58218d]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-username[data-v-ec58218d]{color:#555;cursor:pointer;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-time[data-v-ec58218d]{color:#aaa;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-identity[data-v-ec58218d]{background-color:#f0f2f5;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;font-size:12px;height:20px;margin-right:10px;padding:0 3px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box[data-v-ec58218d]{position:relative}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box:hover .operate-box[data-v-ec58218d]{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .menu-icon[data-v-ec58218d]{cursor:pointer;height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box[data-v-ec58218d]{background-color:#f6f6f6;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;cursor:pointer;display:none;flex-direction:column;font-size:12px;position:absolute;right:0;top:24px;width:60px;z-index:2}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box .item[data-v-ec58218d]{height:24px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box .item[data-v-ec58218d]:not(:last-of-type){border-bottom:1px solid #d7d7d7}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box[data-v-ec58218d]:after{content:"";height:36px;position:absolute;right:0;top:-14px;width:58px;z-index:-1}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .comment-icon[data-v-ec58218d]{cursor:pointer;height:13px;margin-left:30px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box[data-v-ec58218d]{color:#aaa;cursor:pointer;font-size:12px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-icon[data-v-ec58218d]{height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-quantity[data-v-ec58218d]{margin-left:6px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text[data-v-ec58218d]{color:#333;cursor:pointer;font-size:14px;line-height:22px;margin-bottom:10px;min-height:22px;word-break:break-all}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text .comments-reply[data-v-ec58218d]{color:#92a1bf;display:inline}.content .right .comment-box .comment-list .comment-item .comment-content .comments-img[data-v-ec58218d]{border-radius:5px;margin-bottom:13px;width:75px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-masking[data-v-ec58218d]{height:100vh;left:0;min-width:1200px;position:fixed;top:0;width:100vw;z-index:10}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box[data-v-ec58218d]{margin-top:13px;position:relative;transition:all .3s;z-index:11}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show[data-v-ec58218d]{height:184px;margin-bottom:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show[data-v-ec58218d]:after{background-color:#d7d7d7;content:"";display:block;height:20px;left:21px;position:absolute;top:-2px;transform:rotate(45deg);width:20px;z-index:-1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d]{background-color:#fff;border:1px solid #d7d7d7}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d] textarea{height:140px;min-height:40px!important;overflow:auto;padding:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d] .el-input__count{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input .operate-bottom[data-v-ec58218d]{display:flex}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d]{border-color:#fff;border-radius:8px;flex:1;position:relative;transition:all .3s;z-index:1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] textarea{border:none;border-radius:8px;font-size:14px;height:0;min-height:0!important;outline:none;overflow:hidden;padding:0 10px;resize:none;transition:all .2s;width:100%}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-textarea__inner{box-shadow:none}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-input__count{bottom:-32px;display:none;left:10px;width:-moz-fit-content;width:fit-content}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-textarea{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom[data-v-ec58218d]{display:none;justify-content:flex-end;transition:all .3s}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom .comments-btn[data-v-ec58218d]{background-color:#62b1ff;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;height:32px;margin-bottom:10px;margin-right:10px;width:60px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom .comments-btn.comments-btn-cancel[data-v-ec58218d]{background-color:#fff;border:1px solid #ccc;color:#797979}.content .right .comment-box .comment-list .comment-item .child-comments .comment-avatar[data-v-ec58218d]{margin-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-header[data-v-ec58218d]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-item[data-v-ec58218d]{padding-right:0}.content .right .comment-box .comment-list .comment-item .comments-also[data-v-ec58218d]{border-top:1px dotted #d7d7d7;color:#62b1ff;cursor:pointer;font-size:13px;height:46px;line-height:22px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comments-also .also-icon[data-v-ec58218d]{height:10px;margin-left:8px;width:10px}.content .right .comment-box .comment-list .input-box[data-v-ec58218d]{margin-bottom:10px}.content .right .comment-box .comment-end[data-v-ec58218d]{color:#d7d7d7;font-size:12px;margin-bottom:118px;padding-right:30px;text-align:center}.content .floor-area[data-v-ec58218d]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px #00000031;height:70px;left:0;min-width:1200px;position:fixed;width:100vw;z-index:11}.content .floor-area .floor-content[data-v-ec58218d]{display:flex;height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.content .floor-area .floor-content .floor-left[data-v-ec58218d]{border-radius:150px;height:40px;padding:0 20px}.content .floor-area .floor-content .floor-left .item[data-v-ec58218d]{color:#aaa;cursor:pointer;font-size:13px}.content .floor-area .floor-content .floor-left .item[data-v-ec58218d]:not(:last-of-type){margin-right:40px}.content .floor-area .floor-content .floor-left .item .icon[data-v-ec58218d]{margin-right:5px}.content .floor-area .floor-content .floor-left .item .icon.h16[data-v-ec58218d]{height:16px}.content .floor-area .floor-content .floor-left .item .icon.h15[data-v-ec58218d]{height:15px}.content .floor-area .floor-content .floor-left .item .icon.h8[data-v-ec58218d]{height:8px}.content .floor-area .floor-content .floor-left .item.operate-item[data-v-ec58218d]{display:flex;justify-content:center;position:relative}.content .floor-area .floor-content .floor-middle[data-v-ec58218d]{background-color:#f6f6f6;border-radius:150px;height:40px;min-width:247px}.content .floor-area .floor-content .floor-middle .coin-content[data-v-ec58218d]{height:100%;padding:0 20px 0 16px}.content .floor-area .floor-content .floor-middle .coin-content .coin-icon[data-v-ec58218d]{height:24px;margin-right:5px;margin-top:-2px;width:20px}.content .floor-area .floor-content .floor-middle .coin-content .coin-text[data-v-ec58218d]{color:#333;font-size:13px}.content .floor-area .floor-content .floor-middle .coin-content .coin-text .coin-value[data-v-ec58218d]{font-family:Arial-Black,Arial Black,sans-serif;font-weight:900;margin:0 5px}.content .floor-area .floor-content .floor-middle .coin-btn[data-v-ec58218d]{background-color:#72db86;border-radius:150px;color:#fff;cursor:pointer;font-size:13px;height:40px;width:80px}.content .floor-area .floor-content .floor-centre[data-v-ec58218d]{color:#aaa;cursor:pointer}.content .floor-area .floor-content .floor-centre .icon[data-v-ec58218d]{height:16px;margin-right:5px}.content .floor-area .floor-content .floor-right[data-v-ec58218d]{color:#7f7f7f;cursor:pointer;font-size:13px}.content .floor-area .floor-content .floor-right .arrows-icon[data-v-ec58218d]{height:12px;margin:0 10px;width:12px}.content .floor-area .floor-content .floor-right .QR-code-ball[data-v-ec58218d]{background-color:#f6f6f6;border-radius:20px;cursor:pointer;height:40px;width:40px}.transmit-box[data-v-ec58218d]{border-radius:10px;cursor:auto;justify-content:space-between;padding:40px 35px 42px;width:628px}.transmit-box .cross-icon[data-v-ec58218d]{cursor:pointer;height:22px;padding:6px;position:absolute;right:6px;top:6px;width:22px}.transmit-box .transmit-title[data-v-ec58218d]{color:#000;font-size:16px;font-weight:650;line-height:24px;margin-bottom:24px}.transmit-box .transmit-content[data-v-ec58218d]{border:1px solid #f2f2f2;border-radius:16px}.transmit-box .transmit-web .transmit-content[data-v-ec58218d]{font-size:14px;line-height:24px;margin-bottom:32px;padding:14px 16px;width:300px}.transmit-box .transmit-web .transmit-content .transmit-headline[data-v-ec58218d]{color:#333}.transmit-box .transmit-web .transmit-content .transmit-url[data-v-ec58218d]{color:#aaa;word-wrap:break-word}.transmit-box .transmit-web .transmit-web-btn[data-v-ec58218d]{background-color:#72db86;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;height:38px;width:120px}.transmit-box .transmit-mini .transmit-content[data-v-ec58218d]{color:#555;flex-direction:column;font-size:13px;padding:22px 44px}.transmit-box .transmit-mini .transmit-content .transmit-mini-img[data-v-ec58218d]{height:90px;margin-bottom:21px;width:90px}.transmit-box .transmit-mini .transmit-content .give-sweep[data-v-ec58218d]{height:12px;margin-right:8px;width:12px}.examine-code[data-v-ec58218d]{height:113px;width:113px}.pop-masking[data-v-ec58218d]{background:#0009;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:10}.pop-masking[data-v-ec58218d] *{box-sizing:content-box}.pop-masking .slit-pop-box[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:20px;box-shadow:0 0 15px #00000036;display:flex;padding:60px 50px 48px 38px;width:433px}.pop-masking .slit-pop-box .slit-left-icon[data-v-ec58218d]{height:60px;width:50px}.pop-masking .slit-pop-box .slit-box[data-v-ec58218d]{flex:1;margin-left:15px}.pop-masking .slit-pop-box .slit-box .slit-head[data-v-ec58218d]{align-items:center;display:flex;height:54px;justify-content:space-between}.pop-masking .slit-pop-box .slit-box .slit-head .slit-head-title[data-v-ec58218d]{color:#333;font-size:20px;font-weight:650}.pop-masking .slit-pop-box .slit-box .slit-head .in-all[data-v-ec58218d]{color:#7f7f7f;font-size:13px;font-weight:400}.pop-masking .slit-pop-box .slit-box .slit-head .in-all>span[data-v-ec58218d]{color:#000;font-weight:650}.pop-masking .slit-pop-box .slit-box .coin-quantity[data-v-ec58218d]{align-items:center;display:flex;margin-bottom:27px;margin-top:20px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item[data-v-ec58218d]{background-color:#f0f2f5;border:1px solid #d7d7d7;border-radius:5px;color:#000;cursor:pointer;font-size:20px;font-weight:650;height:46px;line-height:46px;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:78px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item>span[data-v-ec58218d]{color:#555;font-size:14px;font-weight:400}.pop-masking .slit-pop-box .slit-box .coin-quantity-item[data-v-ec58218d]:not(:last-of-type){margin-right:16px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item.coin-pitch[data-v-ec58218d]{background-color:#333;border-color:#333;color:#fff}.pop-masking .slit-pop-box .slit-box .coin-quantity-item.coin-pitch>span[data-v-ec58218d]{color:#fff}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]{border:1px solid #d7d7d7;border-radius:8px;height:38px;outline:none;overflow:hidden;padding-left:8px;width:360px}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]::-webkit-inner-spin-button,.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]::-webkit-outer-spin-button{-webkit-appearance:none}.pop-masking .slit-pop-box .slit-box .slit-input[type=number][data-v-ec58218d]{-moz-appearance:textfield}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d] .el-input__wrapper{box-shadow:none}.pop-masking .slit-pop-box .slit-box .message-box[data-v-ec58218d]{display:flex;flex-direction:column}.pop-masking .slit-pop-box .slit-box .message-box .message-hint[data-v-ec58218d]{color:#000;font-size:14px;margin-bottom:12px;margin-top:29px}.pop-masking .slit-pop-box .slit-box .operation[data-v-ec58218d]{display:flex;justify-content:flex-end;margin-top:48px}.pop-masking .slit-pop-box .slit-box .operation .operation-item[data-v-ec58218d]{border:1px solid #797979;border-radius:45px;color:#000;cursor:pointer;font-size:16px;height:41px;margin-left:16px;width:120px}.pop-masking .slit-pop-box .slit-box .operation .operation-item.greenBj[data-v-ec58218d]{color:#fff}.no-jituobi-pop-box[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:11px;box-shadow:0 0 15px #00000036;display:flex;flex-direction:column;padding-bottom:55px;position:relative;width:520px}.no-jituobi-pop-box .no-jituobi-close[data-v-ec58218d]{cursor:pointer;height:16px;position:absolute;right:10px;top:10px;width:16px}.no-jituobi-pop-box .no-jituobi-head[data-v-ec58218d]{color:#333;font-size:15px;margin:38px auto 44px}.no-jituobi-pop-box .no-jituobi-head .bi-icon[data-v-ec58218d]{height:60px;width:50px}.no-jituobi-pop-box .strategy-btn[data-v-ec58218d]{border-radius:100px;color:#fff;cursor:pointer;font-size:16px;height:43px;margin:0 auto;width:198px}.no-jituobi-pop-box .strategy-btn .strategy-icon[data-v-ec58218d]{height:16px;margin-left:8px;width:16px}.greenBj[data-v-ec58218d]{background-color:#72db86;border-color:#72db86!important}.respond-pop-mask[data-v-ec58218d]{align-items:center;background:#0009;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:10}.respond-pop-mask .respond-pop[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:20px;box-shadow:0 0 15px #00000036;-webkit-box-shadow:0 0 15px rgba(0,0,0,.21);height:500px;width:600px}.respond-pop-mask .respond-pop .respond-pop-title[data-v-ec58218d]{align-items:center;border-bottom:1px dotted hsla(0,0%,84%,.5);color:#555;display:flex;height:50px;justify-content:center;position:relative}.respond-pop-mask .respond-pop .respond-pop-title .respond-pop-amount[data-v-ec58218d]{color:#000;font-weight:650;margin:0 8px}.respond-pop-mask .respond-pop .respond-pop-title .respond-title-icon[data-v-ec58218d]{cursor:pointer;position:absolute;right:20px;width:20px}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]{height:450px;overflow:auto}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar-track{border-radius:10px}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar-thumb{background-color:#0003;border-radius:10px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar{width:6px}.respond-pop-mask .respond-pop .respond-list .respond-item[data-v-ec58218d]{display:flex;padding:20px 0 0 20px}.respond-pop-mask .respond-pop .respond-list .respond-item:not(:last-of-type) .respond-content[data-v-ec58218d]{border-bottom:1px dotted hsla(0,0%,84%,.5)}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-code[data-v-ec58218d]{align-items:center;background-color:#f6f6f6;border-radius:10px;box-sizing:border-box;cursor:pointer;display:flex;font-family:emojifont;font-size:25px;height:60px;justify-content:center;margin-right:20px;width:60px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-code.pitch[data-v-ec58218d]{background-color:#f6f6bd;border:1px solid #ccd003}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content[data-v-ec58218d]{padding-bottom:10px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .respond-total[data-v-ec58218d]{color:#7f7f7f;font-size:14px;margin-bottom:10px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item[data-v-ec58218d]{align-items:center;color:#555;cursor:pointer;display:inline-flex;font-size:14px;margin-bottom:10px;margin-right:20px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item .user-avatar[data-v-ec58218d]{border-radius:50%;height:26px;margin-right:10px;width:26px}.respond-pop-mask .respond-pop .respond-pop-no[data-v-ec58218d]{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;width:100%}.respond-pop-mask .respond-pop .respond-pop-no .respond-title-icon[data-v-ec58218d]{cursor:pointer;position:absolute;right:20px;top:20px;width:20px}.respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-icon[data-v-ec58218d]{margin-bottom:15px;width:90px}.respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-text[data-v-ec58218d]{color:#7f7f7f;font-size:13px;line-height:22px}.respond-list-box[data-v-ec58218d]{background:#f6f6f6;border:1px solid #ebebeb;border-radius:10px;position:absolute;top:84px;z-index:1}.respond-list-box[data-v-ec58218d]:after{background:#f6f6f6;border:1px solid #e4e7ed;border-bottom-color:transparent!important;border-right-color:transparent!important;border-top-left-radius:2px;content:"";height:10px;left:50%;position:absolute;top:-6px;transform:translate(-50%) rotate(45deg);width:10px;z-index:3000}.respond-list-mask[data-v-ec58218d]{height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1}.detail-image-mask[data-v-ec58218d]{background-color:#fffc;border:none;height:100%;left:0;max-height:none;max-width:none;position:fixed;top:0;width:100%;z-index:100}.detail-image-mask .detail-image[data-v-ec58218d]{background-color:#111;border-radius:8px;height:80vh;width:80vw}.detail-image-mask .detail-image .detail-img[data-v-ec58218d]{max-height:100%;max-width:100%}.respond-list-box{width:470px}.respond-list-box .respond-list-title{color:#333;font-size:14px;line-height:22px;padding-bottom:25px;padding-left:20px;padding-top:16px}.respond-list-box .respond-list{display:flex;display:grid;flex-wrap:wrap;grid-template-columns:repeat(10,1fr)}.respond-list-box .respond-list .respond-item{font-family:emojifont;font-size:20px;margin-bottom:20px;text-align:center}.respond-list-box .respond-list .respond-item .respond-item-key{cursor:pointer;font-family:emojifont;position:relative;z-index:1}.respond-list-box .respond-list .respond-item .respond-item-key:hover:after{background-color:#eee;border-radius:4px;content:"";display:block;height:35px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:35px;z-index:-1} diff --git a/.output/public/_nuxt/builds/latest.json b/.output/public/_nuxt/builds/latest.json index 384dd8c..73952f8 100644 --- a/.output/public/_nuxt/builds/latest.json +++ b/.output/public/_nuxt/builds/latest.json @@ -1,5 +1 @@ -<<<<<<< HEAD -{"id":"ff7b2403-a8d9-4c28-8e21-d807818099c1","timestamp":1740049840619} -======= -{"id":"aca59267-3b72-44cb-bbe4-f8ae87492f41","timestamp":1740035775841} ->>>>>>> parent of 1d74a9f (no message) +{"id":"184b380d-df86-4330-8f72-2d0bd24b5e19","timestamp":1740050850903} \ No newline at end of file diff --git a/.output/public/_nuxt/builds/meta/184b380d-df86-4330-8f72-2d0bd24b5e19.json b/.output/public/_nuxt/builds/meta/184b380d-df86-4330-8f72-2d0bd24b5e19.json new file mode 100644 index 0000000..beec895 --- /dev/null +++ b/.output/public/_nuxt/builds/meta/184b380d-df86-4330-8f72-2d0bd24b5e19.json @@ -0,0 +1 @@ +{"id":"184b380d-df86-4330-8f72-2d0bd24b5e19","timestamp":1740050850903,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]} \ No newline at end of file diff --git a/.output/public/_nuxt/builds/meta/aca59267-3b72-44cb-bbe4-f8ae87492f41.json b/.output/public/_nuxt/builds/meta/aca59267-3b72-44cb-bbe4-f8ae87492f41.json deleted file mode 100644 index d9f35f4..0000000 --- a/.output/public/_nuxt/builds/meta/aca59267-3b72-44cb-bbe4-f8ae87492f41.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"aca59267-3b72-44cb-bbe4-f8ae87492f41","timestamp":1740035775841,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]} \ No newline at end of file diff --git a/.output/public/_nuxt/calendar-icon.BGBc-vDw.svg b/.output/public/_nuxt/calendar-icon.BGBc-vDw.svg new file mode 100644 index 0000000..00e63a3 --- /dev/null +++ b/.output/public/_nuxt/calendar-icon.BGBc-vDw.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="15px" height="16px" xmlns="http://www.w3.org/2000/svg"> + <g transform="matrix(1 0 0 1 -815 -411 )"> + <path d="M 1.15384615384615 6 L 1.15384615384615 14.8571428571429 L 13.8461538461538 14.8571428571429 L 13.8461538461538 6 L 1.15384615384615 6 Z M 4.53425480769231 4.20535714285714 C 4.58834134615385 4.15178571428571 4.61538461538462 4.08333333333333 4.61538461538462 4 L 4.61538461538462 1.42857142857143 C 4.61538461538462 1.34523809523809 4.58834134615385 1.27678571428571 4.53425480769231 1.22321428571429 C 4.48016826923077 1.16964285714286 4.41105769230769 1.14285714285714 4.32692307692308 1.14285714285714 L 3.75 1.14285714285714 C 3.66586538461539 1.14285714285714 3.59675480769231 1.16964285714286 3.54266826923077 1.22321428571429 C 3.48858173076923 1.27678571428571 3.46153846153846 1.34523809523809 3.46153846153846 1.42857142857143 L 3.46153846153846 4 C 3.46153846153846 4.08333333333333 3.48858173076923 4.15178571428571 3.54266826923077 4.20535714285714 C 3.59675480769231 4.25892857142857 3.66586538461539 4.28571428571429 3.75 4.28571428571429 L 4.32692307692308 4.28571428571429 C 4.41105769230769 4.28571428571429 4.48016826923077 4.25892857142857 4.53425480769231 4.20535714285714 Z M 11.4573317307692 4.20535714285714 C 11.5114182692308 4.15178571428571 11.5384615384615 4.08333333333333 11.5384615384615 4 L 11.5384615384615 1.42857142857143 C 11.5384615384615 1.34523809523809 11.5114182692308 1.27678571428571 11.4573317307692 1.22321428571429 C 11.4032451923077 1.16964285714286 11.3341346153846 1.14285714285714 11.25 1.14285714285714 L 10.6730769230769 1.14285714285714 C 10.5889423076923 1.14285714285714 10.5198317307692 1.16964285714286 10.4657451923077 1.22321428571429 C 10.4116586538462 1.27678571428571 10.3846153846154 1.34523809523809 10.3846153846154 1.42857142857143 L 10.3846153846154 4 C 10.3846153846154 4.08333333333333 10.4116586538462 4.15178571428571 10.4657451923077 4.20535714285714 C 10.5198317307692 4.25892857142857 10.5889423076923 4.28571428571429 10.6730769230769 4.28571428571429 L 11.25 4.28571428571429 C 11.3341346153846 4.28571428571429 11.4032451923077 4.25892857142857 11.4573317307692 4.20535714285714 Z M 14.6574519230769 2.625 C 14.8858173076923 2.85119047619048 15 3.11904761904762 15 3.42857142857143 L 15 14.8571428571429 C 15 15.1666666666667 14.8858173076923 15.4345238095238 14.6574519230769 15.6607142857143 C 14.4290865384615 15.8869047619048 14.1586538461538 16 13.8461538461538 16 L 1.15384615384615 16 C 0.841346153846154 16 0.570913461538462 15.8869047619048 0.342548076923077 15.6607142857143 C 0.114182692307692 15.4345238095238 0 15.1666666666667 0 14.8571428571429 L 0 3.42857142857143 C 0 3.11904761904762 0.114182692307692 2.85119047619048 0.342548076923077 2.625 C 0.570913461538462 2.39880952380952 0.841346153846154 2.28571428571429 1.15384615384615 2.28571428571429 L 2.30769230769231 2.28571428571429 L 2.30769230769231 1.42857142857143 C 2.30769230769231 1.03571428571429 2.44891826923077 0.699404761904761 2.73137019230769 0.419642857142858 C 3.01382211538462 0.139880952380953 3.35336538461538 0 3.75 0 L 4.32692307692308 0 C 4.72355769230769 0 5.06310096153846 0.139880952380953 5.34555288461538 0.419642857142858 C 5.62800480769231 0.699404761904761 5.76923076923077 1.03571428571429 5.76923076923077 1.42857142857143 L 5.76923076923077 2.28571428571429 L 9.23076923076923 2.28571428571429 L 9.23076923076923 1.42857142857143 C 9.23076923076923 1.03571428571429 9.37199519230769 0.699404761904761 9.65444711538461 0.419642857142858 C 9.93689903846154 0.139880952380953 10.2764423076923 0 10.6730769230769 0 L 11.25 0 C 11.6466346153846 0 11.9861778846154 0.139880952380953 12.2686298076923 0.419642857142858 C 12.5510817307692 0.699404761904761 12.6923076923077 1.03571428571429 12.6923076923077 1.42857142857143 L 12.6923076923077 2.28571428571429 L 13.8461538461538 2.28571428571429 C 14.1586538461538 2.28571428571429 14.4290865384615 2.39880952380952 14.6574519230769 2.625 Z " fill-rule="nonzero" fill="#333333" stroke="none" transform="matrix(1 0 0 1 815 411 )" /> + </g> +</svg> \ No newline at end of file diff --git a/.output/public/_nuxt/delete-icon.CnXBlQyp.svg b/.output/public/_nuxt/delete-icon.CnXBlQyp.svg new file mode 100644 index 0000000..ed428db --- /dev/null +++ b/.output/public/_nuxt/delete-icon.CnXBlQyp.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="12px" height="13px" xmlns="http://www.w3.org/2000/svg"> + <g transform="matrix(1 0 0 1 -811 -2539 )"> + <path d="M 4.28693181818182 4.951171875 C 4.33806818181818 5.001953125 4.36363636363636 5.06684027777778 4.36363636363636 5.14583333333333 L 4.36363636363636 10.0208333333333 C 4.36363636363636 10.0998263888889 4.33806818181818 10.1647135416667 4.28693181818182 10.2154947916667 C 4.23579545454545 10.2662760416667 4.17045454545455 10.2916666666667 4.09090909090909 10.2916666666667 L 3.54545454545455 10.2916666666667 C 3.46590909090909 10.2916666666667 3.40056818181818 10.2662760416667 3.34943181818182 10.2154947916667 C 3.29829545454545 10.1647135416667 3.27272727272727 10.0998263888889 3.27272727272727 10.0208333333333 L 3.27272727272727 5.14583333333333 C 3.27272727272727 5.06684027777778 3.29829545454545 5.001953125 3.34943181818182 4.951171875 C 3.40056818181818 4.900390625 3.46590909090909 4.875 3.54545454545455 4.875 L 4.09090909090909 4.875 C 4.17045454545455 4.875 4.23579545454545 4.900390625 4.28693181818182 4.951171875 Z M 6.46875 4.951171875 C 6.51988636363636 5.001953125 6.54545454545454 5.06684027777778 6.54545454545454 5.14583333333333 L 6.54545454545454 10.0208333333333 C 6.54545454545454 10.0998263888889 6.51988636363636 10.1647135416667 6.46875 10.2154947916667 C 6.41761363636364 10.2662760416667 6.35227272727273 10.2916666666667 6.27272727272727 10.2916666666667 L 5.72727272727273 10.2916666666667 C 5.64772727272727 10.2916666666667 5.58238636363636 10.2662760416667 5.53125 10.2154947916667 C 5.48011363636364 10.1647135416667 5.45454545454545 10.0998263888889 5.45454545454545 10.0208333333333 L 5.45454545454545 5.14583333333333 C 5.45454545454545 5.06684027777778 5.48011363636364 5.001953125 5.53125 4.951171875 C 5.58238636363636 4.900390625 5.64772727272727 4.875 5.72727272727273 4.875 L 6.27272727272727 4.875 C 6.35227272727273 4.875 6.41761363636364 4.900390625 6.46875 4.951171875 Z M 8.65056818181818 4.951171875 C 8.70170454545454 5.001953125 8.72727272727273 5.06684027777778 8.72727272727273 5.14583333333333 L 8.72727272727273 10.0208333333333 C 8.72727272727273 10.0998263888889 8.70170454545454 10.1647135416667 8.65056818181818 10.2154947916667 C 8.59943181818182 10.2662760416667 8.53409090909091 10.2916666666667 8.45454545454546 10.2916666666667 L 7.90909090909091 10.2916666666667 C 7.82954545454546 10.2916666666667 7.76420454545454 10.2662760416667 7.71306818181818 10.2154947916667 C 7.66193181818182 10.1647135416667 7.63636363636364 10.0998263888889 7.63636363636364 10.0208333333333 L 7.63636363636364 5.14583333333333 C 7.63636363636364 5.06684027777778 7.66193181818182 5.001953125 7.71306818181818 4.951171875 C 7.76420454545454 4.900390625 7.82954545454546 4.875 7.90909090909091 4.875 L 8.45454545454546 4.875 C 8.53409090909091 4.875 8.59943181818182 4.900390625 8.65056818181818 4.951171875 Z M 9.75852272727273 11.6162109375 C 9.79829545454546 11.5118272569444 9.81818181818182 11.3975694444444 9.81818181818182 11.2734375 L 9.81818181818182 3.25 L 2.18181818181818 3.25 L 2.18181818181818 11.2734375 C 2.18181818181818 11.3975694444444 2.20170454545455 11.5118272569444 2.24147727272727 11.6162109375 C 2.28125 11.7205946180556 2.32244318181818 11.7967664930556 2.36505681818182 11.8447265625 C 2.40767045454545 11.8926866319444 2.4375 11.9166666666667 2.45454545454545 11.9166666666667 L 9.54545454545454 11.9166666666667 C 9.5625 11.9166666666667 9.59232954545454 11.8926866319444 9.63494318181818 11.8447265625 C 9.67755681818182 11.7967664930556 9.71875 11.7205946180556 9.75852272727273 11.6162109375 Z M 4.50852272727273 1.17643229166667 L 4.09090909090909 2.16666666666667 L 7.90909090909091 2.16666666666667 L 7.5 1.17643229166667 C 7.46022727272727 1.12565104166667 7.41193181818182 1.09461805555555 7.35511363636364 1.08333333333333 L 4.65340909090909 1.08333333333333 C 4.59659090909091 1.09461805555555 4.54829545454546 1.12565104166667 4.50852272727273 1.17643229166667 Z M 11.9232954545455 2.24283854166667 C 11.9744318181818 2.29361979166667 12 2.35850694444444 12 2.4375 L 12 2.97916666666667 C 12 3.05815972222222 11.9744318181818 3.123046875 11.9232954545455 3.173828125 C 11.8721590909091 3.224609375 11.8068181818182 3.25 11.7272727272727 3.25 L 10.9090909090909 3.25 L 10.9090909090909 11.2734375 C 10.9090909090909 11.7417534722222 10.7755681818182 12.1465928819444 10.5085227272727 12.4879557291667 C 10.2414772727273 12.8293185763889 9.92045454545454 13 9.54545454545454 13 L 2.45454545454545 13 C 2.07954545454545 13 1.75852272727273 12.8349609375 1.49147727272727 12.5048828125 C 1.22443181818182 12.1748046875 1.09090909090909 11.7756076388889 1.09090909090909 11.3072916666667 L 1.09090909090909 3.25 L 0.272727272727273 3.25 C 0.193181818181818 3.25 0.127840909090909 3.224609375 0.0767045454545455 3.173828125 C 0.0255681818181818 3.123046875 0 3.05815972222222 0 2.97916666666667 L 0 2.4375 C 0 2.35850694444444 0.0255681818181818 2.29361979166667 0.0767045454545455 2.24283854166667 C 0.127840909090909 2.19205729166667 0.193181818181818 2.16666666666667 0.272727272727273 2.16666666666667 L 2.90625 2.16666666666667 L 3.50284090909091 0.753255208333334 C 3.58806818181818 0.544487847222221 3.74147727272727 0.366753472222221 3.96306818181818 0.220052083333334 C 4.18465909090909 0.0733506944444436 4.40909090909091 0 4.63636363636364 0 L 7.36363636363636 0 C 7.59090909090909 0 7.81534090909091 0.0733506944444436 8.03693181818182 0.220052083333334 C 8.25852272727273 0.366753472222221 8.41193181818182 0.544487847222221 8.49715909090909 0.753255208333334 L 9.09375 2.16666666666667 L 11.7272727272727 2.16666666666667 C 11.8068181818182 2.16666666666667 11.8721590909091 2.19205729166667 11.9232954545455 2.24283854166667 Z " fill-rule="nonzero" fill="#d7d7d7" stroke="none" transform="matrix(1 0 0 1 811 2539 )" /> + </g> +</svg> \ No newline at end of file diff --git a/.output/public/_nuxt/el-button.CsYDH6uT.css b/.output/public/_nuxt/el-button.CsYDH6uT.css new file mode 100644 index 0000000..3445e81 --- /dev/null +++ b/.output/public/_nuxt/el-button.CsYDH6uT.css @@ -0,0 +1 @@ +.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;z-index:2000}.el-popper.is-dark{color:var(--el-bg-color)}.el-popper.is-dark,.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{right:0}.el-popper.is-light,.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{right:0}.el-popper.is-pure{padding:0}.el-popper__arrow,.el-popper__arrow:before{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:#0000!important;border-top-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:#0000!important;border-top-color:#0000!important}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px #0000 inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px #0000 inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed;pointer-events:none}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:initial;border-color:#0000;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:initial;border:0 solid #0000;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:initial!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:#0000;border-color:#0000;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:initial!important;border-color:#0000!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):hover{background-color:initial;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:#0000;border-color:#0000;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:initial!important;border-color:#0000!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:initial;border-color:#0000;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:initial;border-color:#0000;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)} diff --git a/.output/public/_nuxt/empty-icon.uRjiKTvo.svg b/.output/public/_nuxt/empty-icon.uRjiKTvo.svg new file mode 100644 index 0000000..1e2de01 --- /dev/null +++ b/.output/public/_nuxt/empty-icon.uRjiKTvo.svg @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="100px" height="100px" xmlns="http://www.w3.org/2000/svg"> + <defs> + <filter x="-50.00%" y="-50.00%" width="200.00%" height="200.00%" filterUnits="objectBoundingBox" id="filter596"> + <feColorMatrix type="matrix" values="0.3086 0.6094 0.082 0 0.244444444444444 0.3086 0.6094 0.082 0 0.244444444444444 0.3086 0.6094 0.082 0 0.244444444444444 0 0 0 1 0 " in="SourceGraphic" /> + </filter> + </defs> + <g transform="matrix(1 0 0 1 -911 -6253 )"> + <image preserveAspectRatio="none" style="overflow:visible" width="100" height="100" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA8KADAAQAAAABAAAA8AAAAADV6CrLAABAAElEQVR4AeydB4DcVbX/z87sbja9QCAJAULvLXQEQelIB1EEFQGVIj4VQfHJX4o8URSf8gRFFASlo4CAVBEIvXcIhBpCKOlls2Vm/t/P/c2Zvflldmc2dTbsTWbv/d167rnn3HNuryvIWK/pxUAvBnokBjI9EupeoHsx0IuBgIFeBu4lhF4M9GAM9DJwD268XtB7MdDLwL000IuBHoyBXgbuwY3XC3ovBnoZuJcGejHQgzHQy8A9uPF6Qe/FQI9g4HJL1eX8lnRzeplud1VeNXG6Sp8OW9z5pfOv9L2sy68EX7nwxQlznJe73S5X9tLyqxMQPWIjB2DW1dWZg4u7K+PxiRO7u0pTTdjizKua8mo9zvKMj67q1lXY0myzHiGBQYgzLHbMyISBzK6Mp+0qThzWVX7dycvzcTsuY2HciyOfhc2jXDr8uoOPhanz4kiThj39HZfhYV43//Y4/l0r9e4xEtgRmLYd0Wn/5enb6+h2d+rWWZrO/LuTdzVxF6WcRUlbDWzpOF5eZ3Y6fi189ygGdsSCuM7ci4pUz9ft7uQXp4nd3ckjHffDDz+05ubmUn3J991337VMJmP5fL4qCUiaPn362Morrxzik27FFVe0AQMGpItbLr8rtUUc7m63QUjsrjUE1TwDp5HX2bf7u93a2mrvv/9+IP4pU6ZYLpcLRD9z5kybNWtWqR1QhUhDfOLxPWPGjBLTuN+8efNs9uzZIR12S0tLcE+fPt3q6+uN8Pb2dmtrawth5EMc/DBuwzy4KRND/GqMw+l2NWk8jqdx2/2x8cM43rLZbKiP2/3797fGxkYbNGiQ4YbpV1hhBRs2bJgNHTo0dAorrbSSjR49Ovxw9+3bN+S5rP54XbpTvqdxu6u01cTpKv3iDKt5Bi5X2ccff9zuv/9+e+KJJ2z8+PH20UcfBeZCUsFI5UxMvDHRetx0OI20JExczsLmvzjyiMuO84vdxEl/l0vXWRz3x6ZDwK7GgHs63EVpg3Jl0hHxoxPFpgNqamoKndHw4cNt5MiRtvbaa9s666xjW265peHXmakVJq55Br7tttvslltusYceeshef/11mzNnTmc4rcrfiaqqyGUipdOnv8skqSmvhYG3XBr3c5tKxu6aqnSVwJSDf8iQIcYPpt52221tn332se23377KHJd8tMXCwOV6o3J+6eqUi3Pvvffa73//exs3bpxNmjSplCSN3PR3KeIScKTL8m+3u1vkwqbzchY1veezKHYahvg7dldTRjp++ruaPLqKUym/SuHpvInPHMLmm29uBx98sB155JFheOH5YC8ts8gM7EzoNoDH7s4q4nFQlf74xz/aRRddZC+//PICY0JHCvnE7nL5Lkx4Z2nS/v7tdly++zU0NARv6sakEWNdxoNeV9zUlzEzY0nG3aRhfMlYGLWuX79+pfhkhprHhBWGcsiXOPiRbzWGeMDC+N8NY3dgwRDGvACwEIdv4HFth6EJaicGf69v8FiKfzorF39MGh+xf2dp0+B3Fi/tn/4eNWqU7b333vajH/3I1lxzzRI8xFuSZpEZGOCcQN1OAxz7u/uaa66x3/zmN2EcG0/keIWJ5yZGVuz2cCd8VB0mWgYOHBiYYvDgwcYPQxz8nfDJHzdMhb8b/GEwxj+Ek5/nwRiJMNIwWeN18bQLY6fzqPS9MGWUS5Mup1yccn6e7oMPPjB+U6dOtcmTJ4d5iLlz5xodA5OAMD+dAhN+dBQ+P0FHAF6xaXfvELAZJ4NvbDoRcI1Nx+LhpONHmxHuhnI9HjAygcgPP+AiPfMjXi6dZzlTjr7KxXO/cvFXX311+6//+q/wo65p4zhM+y/M92JlYAegMwCnTZtmp556ql155ZUBqR4fG0RgSFvOEI7kWWWVVWzTTTe1nXfeOYxFNttss/ka0tN6Pp5v7O9+Dmdncculcb9ytudHWCV3Z+GebxzufrFdKdzjpuPF3+5O2562OzZ5YMCt59ed9F3FjfNzt9txutivnDv283QwMhOhb7zxhr322mv2zjvvhG9WMJgcZRWCjsDrRbrY7fmkbeLQ0X/729+2n/3sZwvgpBws6Tyq+V4sDOwFdQbUc889Z8cdd5w9/PDDHrUqGynIOOPzn/+8ffnLXw4zhlUlrBAphjN2p5PFYbE7Ha+734szr2rKLlde2s+/3e4q33QcvjEQbXdMd9Kly0yXUyk8HZ/vOI270zbx0CCYk2F+hh9DPZgb0xUzexia4XXXXWe77bbbfGWGDBb1jwBeZCO1pGwe6tkKmo6ndav6Sd0pSLoWpFoXpHKVzRPPzspL+6e/O82wTJ5x2thdLo9K4eXSlPPrLJ/O/MvlsST90nCkvzsrm3jVxk3nkU5XKa90fM8v7Z/+9nixHceJ3cTh+x//+EfhoIMOKmhCK9C3GHY+2+ne/b/61a+G7NN5Bc+F/EOPsFgNwEktCRXzCsS2V8b9YFpNyxekVlcFx+KsfFUFRpEWpWzSVps+jhe7I1AW2dlZvp35pwuM48XudDz/7ixOZ/6ezu1q43n8hbErleHhbsdlaImzIC2xIGnbpbAaO3ZsQRI9TrpI7sXGwF6pG2+8saCJiC4rAROPGTOmcO655xY0ubBIFag2scNXbfx0vEVNn86v3PfSKKNcue5Xrvy0X/rb09aCXS1s1cYrV6dKaQn/29/+VtDwr+DCym0XWgisxWW6zcBeAbdjQL7yla+UgHZg0/ZnPvOZwiuvvFK1NIrz73X3LAykaST9vUBtGInNNxpLJJV4QqZDauXz7cWkHX5Fj2VmlavbT37yk04F2Q9/+MPFwgNVTWIJK+LDjkkKvtWrhAE5/gLetttuu7AkxHc5wwBePVNYfikX3uvXczHg9EAN3O127NdZDRPqEn0V0z/zzDP24IMPi54eszfffFNLU1O1DNVmY8asZvvtd4Adc8zXwgyvDpYmiTrLuAb8X3jhhcAbLGWBk9iwDLfIy5HKtFvGexq30ee1f7RTyastaAVVoltl9Ebu2Rhw2nCb2nTmJizX1l64/z/3FU447qSgepr2qIjQC3WWkaSQuy4b7DrZYtnCOmutXXjvvfckk10Sk8uyNV3Vb+LEiQVtwAl1ol7+08aPEtBx+pJnFY6qVeh0Af7NoNwBStunn356WRA8bdnAXs8ehYFFacvnn3++cPJ3v1dYZdQI0ZCYFeKGWYtE7mNHmDZjdfMx9P7775tSt2sDbWl8+Dcz1ul6aXNRmAPyOG57TdLf7h/bFRm4XCbu98tf/rIEVAwck1iPPPJIXE6v+xOCAacNt9PV1maewoUXXljYYostEq0tSFuYN6NvGFiSt7gck9BUEub01eFnBe2+Sme/zL47q28M0IYbbhj4Ja7fr3/96zhKyV1NfkSuyMClHFMObXFbYLYZwLTtsKCtdanY839WC9z8qXq/egoGyrXvfffdVzjiiCMWoBkkbp01FAUBTIykRX1OmLlPY31h7XUHK13fiLETpn7rrTdqCiVe785s7fmfT+BR16233jrUwdN0t0JVTWKp11vAHHXUUfaXv/yl5C9gwn7jN7QljY3dvaYXA2xBvPrqq+1Xv/qVSV2eDyHQi4hVfuwV1kEJcWww8tp0y+G2/pZr2qqbrGArjehvd177it1zw/NWx3mKIKYLNli7m6Z+PCXsqy6mXGYW9aA+lQzxOH8c78Nme7AfGknwQRUr5+VldewGd58qbBqG/cwdjZAk0rpuiXmrrVQVxfVG6WEY4EST1GQ7//zzS1sO01VwYoV5m+qztt7mQ23bPTe1NbcYZiuM6Gd1uXqry+Ttgu/cbs8+ObmYvEFMn9xgcszXjq4J5gWwrhjO+cBtLgx46aWXQn1Ix+w0VyRxo0k6H09TrHxZa6EY+Lvf/W443UGOzsSc1PnOd75TKiQNTCmg17FcYKAccXEi6H//93ydMrvAZkyfKR0YkVmUsHJpVll/kbaJ9N1s7Aq21d4b2g57rWU5Kc1Zwgvtli/U29SPZtrvvnervfOu7gMrYqxgCfNqLGlnnnlm0be2LecDtz/96U+XGBgcYq666qpwyCddE0+T9o+/u6VCe6NxygIp7ACQIRL58MMPj/PudS+HGHAaiKs2e06zXXjB/9m5P/+pTRPjBiMtkJ3BDGZLHCj3cKnEn953fdt6zzV1ZHOA5cS2WWuxfKZBUleX9On43atPT7Y/nnGvTZvWnGRVZHg+uBnj7rvvttVWWy2E9ZQ/zisPPPBAOEkXw73HHnvYHXfcEXtV7e4WA5MrB+9POOGE+Qrg1BC3J7op18ge1mv3LAx01ZaaeLFLL73UzvjJ6TZx0vthGFvQgg9S1qWtS88ttlrZdv/KFrbWFiM1ZSUJXBTOCWFz13eClwfvfM3+9quHrb25XcytxSP1Ak78HCO98847w0V6XcFVyxgGZ5x3jg1zRlrXjr2qdndbhda09wKZn3LKKSU/R6zbpYBeR4/EQDk1jrbljrKTTjrJnn76aTGZCBJOxRbbYQqacarXYfqtdlrNDjpBF8St1CjPRmsvcFmdmJxD/WJOsWjYyZepy9g/r3zObrn8mcC8ieTOK27Izg444AC7/PLLw0UNPZm2OODP8UKGG25i4Ydfd+rXLQnM1q8RI0Z4ucHmxgNuOih388B8EXs/lgsMfPzxx/b973+/tAKRkQKcD0zrkjfh5d0+v5Ht8fkNbcio/hLIisUUcl6SVwzL5BQGQtX9HKKdrF3964c006zJHXUCCQF3MK82BNkZZ5xRorHuEHitIR3Yt9pqK3vqqafmA43VmzXWWKNbzEsG3ZLA55xzjnrbZALCS99ll12WC8R6fXrtzjHAsiHalh9mJ2a+LhfGuqjNmK12XdMOOW5rW3El3dslPbmQYzAsZhUToybXwcjsqwqxzaZ/NMP+ds5/7Nmnppn6Ao2DiyJXcfrpep1L/3yJHXbYYcXYCdOX0wpKEWrcAexcWRszMH46xWdMDne3blVJYO/xuM7Gb4qkIPy148q0GN3LxDVOOIsCHm1+7LHH2r/+9a8Fs6nTco+128Zau/3qKbvYoJEDwqbIOvZaFHTJn2aVc1IbGfRm5Ubdzks/rpPK/PEHM+z/Tr5dyyiarJJqHUyRs0eOGmG33vxP22LsVguW2YN94Jl//vOfYUgQV0MXA9jf//73bkvgqhiYgrigjNsTY8MFZP5aAf7O6G7HcXvdPRMDXD54/PHHa0ZYErKMWUlrtgcdvY1ts9eaksYcP5BaLCkrwhJBSD2Wn96hsKzUZ/0JkriQqdNM8/t28Wl32sw5ycsVGWuQDNcykaKN3WKs/fOmm23k6FVKkrpM0T3Wi40c3C4aGybonn322dirKnfVKvQll1yyQIY77LDDfH4u/t2eL7D3o6YxINYK41MEJ0Jwztw5duLxJ9jlV1yuL1RebVoOjCm+lE+fpqzttP8G9oWTtpVkFdPCsGJWTVGFuEGQaqzbLsmbCZNWSfWZuHri9jfs0l88aO1tCfMSEphX9kEHHmRXXHFFuJ0ySdEhGPzbbdaFtQ3TP4NdrfCoNt58mS+mD+aNYGCWYjHwC5fpLYypmoG5lAvjzAkCuGiu1/RwDCAoxW1ML3GuAPZ7/oXn7Itf/JK9/NIrgSmTDRmqJ3FlrbvuIPv6OXva4JUTdblN4+CGOknQvBZ+RIys/zKxVVdgjVduMXI2D7tl7IbfPGp33PAiBS5gmBz7xS9+sYA/S0lJAsbZUseVe0FAv/nme/bii88H4mdyjWtmmWRFsGywwQYL5BN7QMfLiokpm7eluI4XGPixI2thTNUqNPfwxuoyQKAKxHfzLgwAvWlqAQOJaqsmtSt16cKxx33DmueIoIpMVicJCgux5XHfozezPY7cRIwJI8m3NLusL4nvTJhp5h0kugI6hGRp6eMPZtlV595rzzz1sdLJD4kdjJabxHh/+MMf7Oijjy76zW9B4Dp2riWrJ+2++x6wBx64T29jjSsuxSQvNBInNowpL7vssgWGfcRblszrMH7qU58KS3H+DUwsJ/HiQ3dMVRKYS7mdeSkIQ0/Xy7zdQfWyjeuEm4YCsg/qsaTnD350mp133q8C82mYKjnnJm+rrzbATvjl52yYJqkS06bxrMgnTEgxKcW4V0tAShXcioSCXCfp/PpTk+zqX42zt9+Zq294V9K5mMsKItgbbrjBdtppp6IP4cnjZjxe95///Mf+/e9/B2Kf06x3sQA44lVnxlLiooNZ3UMOOSRs/HCaJcjdbqfTLa1vNATW0jFeB66s5QrlztqqHGxVMfD1119fKsQz32ijjcrl1+tXgxjwNotBcz9to7DpM2fZYYd+3u665y5FkWQVUzJWzUryYm+92xg77oxdwoYLlnnqsmy+kBSVXSeJSxw2Z6AmZ7Wmm9PWyIJmoDXRbI/c8apdft7D1tYixg5S2wm2zjbZZKMwI8tLBhg29TPTfeutt9o999wTTuk4cRNOeqQ643U31CNtPA1bLh999NHwKNmyZtg0jKzc/OlPfyp5Ax/3ph966KGlTqYU2IWjIgODIF4IjBGFm/2bvaZnYMCJl3ZzNzbf77032fbd53P27AvPhMrA0ImUFMP0rbOvn7yjbbv7WpqMyli9frmspGeYUVZ09i4rMtsDGxCpWT2FkmsPTAyTXfubR+yu619WgDiZH4wulwq2w7/wBfvjny+1Nya8Zj/+8Y8DI/MAgMPlcDrducQmh6AdhIzIt0NPIGuMp8HNMM/z4rtWjC53nA8UYObIZXdhrcjAZOjHn+ISGWP0mp6FgTRx0K577/05Sb63Q0XCriqpvAWdBlp55T72vQv2tRVW7ifeE9OE9dxE4rLGmxMT18O8krf1Ys42cVg9k1iSwB9pffdvPx9nzz0xWSHJTi0YMNknXafnRr4V3pvafLNNwpOxMRad+dxG19Yx/0TqMt4O+bD2rC6C75QApo6kxeYiRVRz/47LWZrudPl8r7vuuqXOim8Mz7mk41aCs6pJLF7I48EqL4hMY3elQnrDlz0G0oSBusZbt/Ge3IRZsrbJVivYEad+2oaOHKxJKR3vyyT9fEbqc5CijHdhFCastEmDtV8MS0hvPDNJhxEesIlv89A6TCaryGRNjX1s+Moj7N2Jb5ONDJNjC0pQQkpGGz/66MKO9Tdb2YaPGSIQG+zp+9+wKR/Mni9vZ1zScbhGV7raN7/5zW49LF4qcwk50m3A4X5fSqJIJrDiXW7VgFEVA4OcGEFsxu5sYb+aQnvjLBkMpAkklCJGYYwaNi9qjIr+yfjywP0PCGu9hGCKMs52PWwD+9K3diimQcKh+iZMlsMtltMcs+xkdjlo0zCyynj4rvF2hca7rfPYVZWsGzvzyiP4JSpvh+ob8bfKEZRaN25oyNpqa/S3MZutapvvtKptsOkom/LhHLv24kftiXveKjJ/kl/cAcAQvArIE5/pTUeh+Br4E7cRHQ3LX26Anwnj7piKKrQX4AVjc3i/19QeBryTxcYkbQaLJkyKKnznHbfZoYd80WZrowZMBnOGZSIlOfSbW9teh28sP6nCcCbbHmF+ZpfZCkm2CjOp2AWp1IXieDgnCX3xmQ/Y43e/RrEylFgc78rVcSSwY3ydxFNWCaja2JC1zXZczTbdfhVbZ9ORNmyEnoKVdP5Ikvaa3z1md133QsiXvqMo0APs/sEj22effbaNGTMm1Nvp1ctZlnYMi7cN8HAntPMX/hwKwsTxg0cXfyoyMK+yYZw4cIOkXlObGIgJJLSZKD6oq2LUO+/8t+2/38HW0qa3cYMQZH+yVF9ttDj2R7vYdruvIYZVkP7AgnnTBJCWitiIwVhWctbaJIzrFYdxMDPR0ybPtot/fKdNGD9DnsIJ3KWyEPYuvZ1JwVjCfGJk5di/f71tsP2qtsl2o23HPdYKu7nYI63iNMbO27+uetHuvPw5m9msHUuhD1Jqlq4EWTjRpHg7aozLEVcOCLiJceB+y9J2eNKMydkCn18iDMNM/Kqrrlo1uBUZmJlBjBcAMNyK4H4OXPDo/VNzGICn1Hh6HvMxO/hgZ175iklRm7NNfexrp2xt2+yuvcxiL2aTc3JpE6Q6bSSvlOWi6pwrtGqGuZ/CWuWvnVBPfWDnnXaXtc9jSyPliMvgPv3nG5KE7yS8iy6Vp00bY3cZbZtsP8Z22G1147AS+7U4vp9VeaR66J437e//N86mTNfeaOUZaIzMApGzs9ps7bXWs5///Od20EEH6KtnmDSvlBOErH0vVgZO3xQAIzsDpwHqGWhc/qBM9+zpGj7x1JO23/57al11VsJZiXi0bN+sffvnu9pGm42A52S0lzlssij262pr2jgXxtBI4UZJ83ZY2677rdRatkTCTSGlmE+Sl2ODGHZlkSn3W3GcYdOthtnaY9e0fY7cOEj5OsHALHKD/uXYZClGffnZSXbNL8fZu+/MTuD0XkBwhGL0PUQTqmee/pNwK0y2EYYvbyrhpHyqJe8bC8KNN9ZwpWjAM2E8xeIrPNXUoaIERqRjvADsNdZYo1hsr1ULGKBNMOUaXM9e2uc+t59NnzGz2IZIXrMGHUb4r5/tYetusbKYDOIR84npwoYMxrkwmCRjvg5JLHdOzCJ9+8NJc+zSH99ur41PmIy8UJHDoX5xGeyLJBdv2tAhGdt8z/Vtj0PW011Yg8X8ioiUVv6cXKoXc7dlWmzC01Ptzkuf0FZJPZqthOGAgm6fFD3LTW6CVwcATjrxW3b6T87QlbKcilO8kJecKVMOD6koy+wzbqvNNtusBAcwYyZMmFDy87gljzKOigzMMgMZeQHkwRpWr6kdDDjBxg2O39SpU8NS0YcfJteyJnJMf8VH3zl3T1tPZ3j1GqC+tQCkiSikIuNclFpmd+kXwnGEdo2HxbyvPDnRLv7RwzZrzkz5S9UWA4W1WFIoGUxJuWPHrmRb7L2B7bDn2kEd15SXYqCWow4zQYZkz9nkj1rspj88Zo/e9XYI158wXi/UtSVj82J38MXDDref/fx/bPXVV1W6ROqiwoeeiERFk8aDf3t4rdgO1+abb74ASGmNd4EIKY+KDMwsGQW6wY0K7UC4f6+97DCQZly+9e5yGPO+9loyM5zcWyXJqrCjf/RpW2fLlZm9KnKMJo4YqMKxkrbIPCaxGLzCoJzHv+a3j9rd10llDkzFOFmeMLlIA+qo79tkO+63hu1x2Ga2wkp9FJKYZOorYeww8SSm//jDWXbXtS/b/f98xdrCkpPiqmgyCpSmP4yNP7PLzjqd9EtdQTN2AXoLQiUo8x0kHPxEn7FdBKMmLOcZh0+vmAS4/JsPXwf2uJUAr7gOzFS3Z+qZkXm1BXiaXnvJYsDbg0Mn+++/v7ExPm0gFG5ExMbA5MeevqNtt9u6ksBiVDEXh/GxicEZ3ykfzrZLfnyXvf7q9CC5UYEJ9at0GpoabP+vjrWtd19F1+gMEV2ICZnIkkmWougkJOGZ3pa5/W/P27/+9qrWoDUeD9wavEt/gI2N/kxQ7bvvviV/r1/JYzlx6IGz0h3rVIkJrO6cDe7ovjpBSHxOEeRSIMaJoJNkvd5LGQO0BwzJ/VEPPvjgfKUzfoyNMwP+Uz/QxelF5kVsaiekpCucVWeP3TVBBxEesNaWhPlQkyXDg4SGkXc9dCP74klbhaydHlDB6QDIAZUdV7uSP3rnG/b3Cx/RBqBkSQjJjQklCXZgYlnljDPOsK997WulK5qSWAm9OdzutzzYtIHeGQv1pz7cfNOdelZkYDKlcciUH5e695rawwBtw4F4dlnFb+8483obArm7IZys7rRipMvSUVa7tD76YKb9+5rx9tR9b0rVZbMHBjbTQYaiYswVsUf9v5214WKUpDJ0wasKiiUYQt5ifibFcD9y5+t2x+VPaX1zdkgtL4WRI+UyQVYXaEov1tv3vve9+W7iUIRgPF/iLm+GXY0IyYA3ISZ2V1PfigwMMTgCsZ0gljdE9vT63H777eHSfaSwG9oKIuC0kBsnFGzCmT2GNWHi2//6tN146Yu66ia56oU0bLhgHJwVQxJr693WsOPFvOGD1BqsZhHNYuKMmFk7p8WcWXvz2cl23e8etAmvJrPf9AFh4kv5hZlmxa2vbzB2UO23337hMPt5550X9gYjJFCj99xzz7AlMk3IMT2mw4C5JxnGwfEhBu98q61XRQZOI8NV6LR/7/eyw8CUKVPCxv008wIRxM5bQjvuuKPpecsFgFxxRTZmmF19wSN273UvBfYT1yZGTIfCjGFS6aBvbmV7f2lT5SlZ3CjGhnk52yeb48F5qc5vPDvR7rjsKXvhyalSnZVWwajSiQQPn/LI2OpjVg0dy2WXXRZed6AMiBZ43XBp4u9+9zv76le/WhIicbxqidzzq0Wb/dAvv8yRy6StsDngAJ9VUz+mErs0qFkY7/V6Vegu0bVMAn/wgx+E+5W8cJe8tNkmm2wS3hLyWxBdGjtxDFx5kF31myfs/ptfFatqjVhMxPi0IdvXGiUhGcXyXV/fx9557B2FS+qyR1q8ybU6rNPm69tt6uRZ9uez77dffVd3PD/5sSSxjNKRNtjFjgBpzjz3W2+9ow0b75ToKkQvMq/DxrObPGPLhJz7OYP7N+l6suFZlYBz4d3NW2+9Vaqv+3VmV5TAzrjY/HolcGeoXDb+XBDOLY4ufX2IA6OygsBdw/Ty7PDBOOETzmsa9930gj1+79uIzxAOD4UOICwhmdpbe6FhY8V/8qkPbdr7c2yIDhrUsw6rNB9+PMfuvuYlu+/G1wWDVO9Ah5wQTkbMyXJth2RNRstMk5FrYtJM6d/FYL14+L+2yy67LEDoHt6Tba6m8vrSNrjffvttW2+99aqqVkUGJhcvADf3YPHthIBfr1l2GGDiysdNzrxAQ/twURzX1dBebJqP241w0j3+77fUwEhSbd7QrqsGpK5UZC5jR/7C10jZ1nbmP7L2+F1v2h5f2ViXss/ULPU7dtOlz1q+FWZkhOyGkXACgzJTWMhE5SgeZUmC16kMmJsgNzGduR928v5S6Bli7+XCHT9V5PVfqGUkb1y3y2GHRmfWrJd5y2Fnyful2+aWW27RIYVxZQs+8MADwzoqaXjTihsPvd1cWoeEgYFgQLFckZlgMCatClxqJU9szXdZW3ubvf3mNLvz8hfsVp0Umjs7Orta5K965REusyMlHX0oRPkov8QNEwdPGzao0dbaenXbbDsdH1ypSap5vd1/44s68/t2wtxEU9z0a35J6uXjLwxMu4ArN0xqYdLt7eGxHSRwNRE9Q7edGOLMet1LBgPePt7QbjP2dWaMpS/DHL9fmbiuPleCjjwoa8CAAYH5eZUBgx/X2rD3+LG737TH6iaIGTskImPhcNhfErzdpSsJFcXpEjga6jO2zmbDbL2tx9g2u46xFfU+cDJzndF+6Il2k04gTdAe62TcTQdCJqZrf/ZOHMW/jo/5PHvox+jRo0uMSr0wzsDgrJIJDOwRHTFux4mJ4wWk48fxet2LHwPl8M1NoX6WNIxZi+1DXB7JGjNmTACENvN4ePikZAiM/ngHQHpmfhkfBwbWDqp8vq3IoCjG8KVzpiQrk1qiO04cMa2F+u2MB9OvOKKvbbrTGjqsP9o2HDsy0FCB95SkmzOB/coz74d14mefmKr0SGnKYPsHUpvrcVYIl97Js2QcHyWPHuzwo4POW1TFD/lXU635JDCIiZmXwbSbuACPszwh0utZi3Ya34xd//u//3s+UL19GOKwIQLj6V588cWSmubx4sTOvIRxZvhLX/qSoZ6HPLTGK56U6VCxGdPCfGzWgMlgOmSH9uUS0dZde7Btuuu6trWk7FBdipfVpg1RVpi5hmamTJ5pT9z9lt1704ty6wJ5+oGQUn8UHjJTnkMGDQ23VTJTGxuvV+zXU92rrbbaAqCzLFitKUlgR0rMxOUYlOWIcv7VFtgbr/sYcHx7GzE5xVIDBnUZfzfcCcUlhB4X/1deeWW+b29jwlxtxo/XN/wBd9TokC8MVTQc8ytkJGm16JvXueDEIC3ztu46Q23Dz+qQ/u5r2xCeFlWgDgwGxoXh2Qby0F1v2EsPT7YndSldW5t6BdRt/dgnzekk4sG9qNUbavnrumuutvXX37BYTofl+Ojw6bku7sGKDXWb76LBOLCMOzAw/jFS3B0TBn589+una0Z7zVLHgDMkvfO5554b2sKZjzBUXm41/Pa3vx1g8zbkAxWab5aOvB3xd8lLWsK4ydGlHeWEPIp9QyJxdfMGB/ZhNvmvv84w22DXNW37XVfTQQZ1GoHXmbgqjl8V6SFtpXz20Xft2XFv6+RRMoHlsIWZaMGRlJMUxJLXj358mg7sfyusQwNnbBwPsV9Pd9MOPpdBXdgPXa0pMXA6QRpRfGOW5xnBNA5q8Zs9w5wOc0bEdgZkUgvJifH2421frgTGeBqWAj2N2xwuP/HEE0M8/sTjZi0eSuIm49PBwzL2+eO31+0aI9Vh9Jf6K7rQpXdITg4csaHj9ec+tEdve8Fefm5mmLkOgjXkzBISaneY9oLNBRRJ69RxrGwnnnCSfetb37KBg1UHTZhBcqpeMF6fwOwkUaC7kxg99y9t4G1DLfwZo2pqNN8YOE4QZ+j+5fw8rNdeshgA9zwM/Ze//KVEvPhhIGZmM4877rgSEN5W3PYfG3p7D4NwSIv929/+dr63rh544IGQrN33VquohmyDtkDqSmEdxCcd3PXx+3Nt/PPv29uvfGSvPvqedlfNDOkCX8oFiIpZNIm6zUITfsCy22d3taOPPcb2P3A/SVydI1YAYaTzCS0SO8yxjf/yYOhQ/X5o8JrLoeFU10GVxsDVICI0WjURe+N0GwOVGoyloGOOOSbkCxG7wY36+z//8z8L7JIjzPfZevy4Dd39ne98JzzJ6XG489sf3qoXk5WM8nv2qY/C7/qLH9P9VANs+rTZIThmLPJ1poXPMUm4xs365jHrr3zlK3bEEUeER/KSGMlfVPUOw0i6w5AHxu2OkJ7t8qGM181PJFVTq05V6GoS98apDgPOnGnbU/u2Rv/G9ri4kYZf/OIXS5MbhLn0xM3zIYS7idNyJ1Zs0sRP2jPPPDOOErZm+u6uOCDt58xLHC8TG5MwrLOx2VprrWWHH354mOFef/31S/FD5E/4H+aV/OUT8NfZUl85NPUycDmsLGY/Zxonav+mGBoMZkwb4nDRN0fszjnnnBDP48TpObFz8cUXzyeV4vB4csTTu82dTDztyUyoMx5h8at5Hpd8yDeO52Fue5jH23777cMmDI4Lpu9/imH09J9Um5Udxx046GXgGqMEGseJOk246W9vwOuuuy7MCvtykVfJ83KpzUZ/pJsbD/dv3pu9TEf2YgIhjK2Wf/7zn0uTXvgBy0033bSA2u1h/h50Z50Clx3usMMOtssuu4TL9JhRxqTLTsMYIn2C/6SXkmDgqnGkiJ0aEQ860Hw/3VnbafzegM4xIIbrPLAYorFPQWu8BV0aWNC4qOJPBxnK5pku6x//+EdB486CNnkU9IJB4aKLLip4HGx3i3BCPK0th7LFsPPBwDdh0ISYPdh657Zw7bXXFiZPnlzKpyxQvZ6dYmDs2LHz4RT8Vmt6Veil0POrMeZTcdNFsvf1wgsvDKeHmEBylRqJ6GmxY8PEExe/eThhsTuOi7TlhxGzlsbPfMcaAJLaJ71if+JhgIv08aQL6jFSvrumM1i7m8/yEJ8NNLEB98w3sEmnkull4EoYWgzhaWZw4pXUCmNcdlbRYPj75BTF8u22hzHhcf7554eD7p6v58e3u90OGUR/ynUOBLO2/P/+3/8rxSR92nielAMjYzOjHBuPE/vFbg932OOwT6qba3XSbUenzlHQSmbB2ZNKKXrDFwsGpMaGe58uuOCC0nleb0QvICZy3J/97GftmWeeCbc2psNI48yBOw7nu5yJ4zBZBhOTR1eGNM68TKBxb1WchvD4O51XXGY67JP6Xa7Trvb53gUkcEwEaYT2Ij+Nke5/wyTc8XT33XcvkDhmjpgRttpqKzvrrLPCi/MLJIo8FqV97rvvvvk6gCjb4HTY+PByuJAuPQGTpp/0dzrfct+V0lQKJ89q4pQre1n4sQU2bardjbWABPbGSWfId09CSjn4l7Xf/fffr2dHxs7HvODUDW5XcXHvvvvudtttt4VNFbvttptH69SO8+o0UhQQx0ddiyWBR/PL1dOwQSd77bWXRyvZ+Mf5xvQU+5cSlHHEadLB5FEuPJ13uTjpvGrl29s8htm3v1aCMTBwuvLpbzLxzNnm1Wu6xoDjz21is1Vxjz32CLdjxKkdr7F9yCGH2KOPPmq33nrrfFI3zi/OAzdh5NFVHE/jcbxMvpHwvGrvxERcmPeMM87wZKW8vRwk8I9//OP56uRwkAi3l8W3l4c7beJ4sTsdz8su55/26ynfw4YNC6DG9a72QENg4DRiHUmxv2fONq9e0zUGHG/Y3KyIyszdVYwdMY7LdC4wLnuXr7zySttiiy1KwR7f8/XvUgQ5CPOxaexfzh3nQ158c4kab9OyXfMzn/mM/fSnPw0H+lnL9ThxXvhRN27+YB365JNPDk+CeN7Exc2vHLxxXh7X8RPnQVic3mGJ/dJ5dRWWjlsL335jaAxLtSp0aQzsiCETd8cXbnnmbLr2cPfrtctjgFlmDsjDGBClM1iaQLm3mckstjWWMx7f8c63u4nvbvyZ/Jg5c2bJpszm5uYwURbnQzq+mYhiZptTTCxnwLh+7xnh0ADM/eqrr5ZUbM+HPDDMoAM/s+nsbz711FPn21wSx3dYSRe7+Xbpn/aP0+NOh5M2NnH82L9W3Y5v6uWm2wzsCWPkxOtQjjjiOYLiuJ7+k2Z3hgNuwUAFnThxYjiCydCj3Bjz+OOPD+d70/dte75uw4TckPLGG28Yu7PIl9sLuayOS+tYdih3EDxut7ht3B8bJgc272Bwr7DCCuF88corr2zcGkGZvgPL45Gf54MbRr700kvDialDDz3UOPoYP2Lt8b08TxvbHgc7No4H/IgPLGgAHG/1ddQ4Tpy21t2+ldLxALx0wtWYkgQmMcbtdGKQ48YR1Vlcj/dJsB0HjhNsDh9AwP62MsxLvBiH3JrBSwlshPA8wBdECfNzHve5554LDz6zueLNN9+cL14l3MbwlIvrsGDHzAssMBgdAzPmvrGDPDxuXBfPx9ORF/VlK6h2aIXH1jgpxd1PXk/ieH7u53n6d4hQ/MPWQk5HMXP/yCOPhBtG0G7cgEvtMAvLawxDyuXvcWvNBn8+C+24BEY67GpMiYGriezIdbuaNJ+UOE6A//rXv4IaCSPi59LKw8EHKvONN94YLlznJUFUbC5oh2H9+pu4MUnj6bErGdJ6vNjdWTqPU64MDyOth8d+7u/1JCzuEGBibeUM0hjVOh7vOYwOV/qbI5R0clzgR2fiZVFGbBg2wNw87HbVVVfZ1VdfHXYxpfOL09SKGxjTS3HAVu1cU7cYOI24WkHCMoejSE/c4vj1Y4611rZ5yfUyBaFXB1z5x51QPLs5dqstbaPNN7ZDDzvEXn7mZWux5JQP11mwvZgGDa/PS0jV5bknKpFW4f6ovM7Tin/ZhUxbFPQWaLgNUmkL2UTCI9zqcposy6jsXKvy6yM3F8rlrV5pCQrbmOt0sL/QVsyfK3C43B1bkbhZUrdw0FWE0lUgt03yFcoO9+uAdUK5Jqejw+DqWW7ACmUwZ6eym9va7eyzz7Rrr7/OrvjL5bb5ZpsICN2FpeCQn27poKyQTji774FxdtY5Z9m4f/9H+XDTpWJyuR539lBvlZsJlwIkuAFu1Y4M7NZ/3hK2mJ7+36dzqUfIV1nXtPFZ6KTtwcoSYuCaxsKyBE50dZUuYDvqqKN1QRvEqytmZHPlalbXx+R0ARwkB5k+/eQz9szjT1s7tEe4/AviqiBY1XbcSEHM5MJH+lc9wRmYQkySVVwRcXhfSIyxqu5D6zdoJduk3+xwEfuGQ1WWyl1/SB/ZPDxmNnoAhK+0Kgm2TBgiUem5k+rdOSqb/AXA+Fm5kM+LU/WyAkwl7nroozqbJaBm+eIDHVKRYYGV1wthwnC1jjzyXAavfHn0LBc6GC7kUR0U5ZWXx4dH1lia+s53T9b4Vb78L9bvzQnv2imnnKLls3+CgZAmp/u3uLWHa2jlGTotmDg8ZAwzkzHlq8wCHYsiXXLxn+z0H58e3GCz1k3ooASk292BFwqpysS9Q1UJlrNIgQkCl6UqJuK55rrr7Wtf/UpgOvAUGDYwsa5H0WXnMFJBTAyxt4naiZMV5XGHVGDeLHdOQbAwPQwHXSNt+9jovg3Wf8BgO3SVudaozmDNIVkb2b/ONpMdBJLSZAr9RMOwvRhHKQNRO5iBOZ1J4YCEiekpcroiZyOWIPW6YJ24ZE+l1RPu+okZ4IWiIe8ZzTmb1Fywt+bm7M2ZBXthWqs92zzAmmdMt4nNsJuMbqzMcHeWpHteDJXcFa2uK6dbLHmCVJ1CSxtX4p5ud911l/35skttlZEjrE2dzllnnG3/e/6vbG5unt5dEsJCB6KOMMCicbU6hkY97TK8b84+vWK9bTBEGoLweP74NpupjseyaAhJ3SdP1j1g06fbYF2xK6+aN9RjYU1VDEwB3jtUu0dzYQGq1XSO5DQj33nHHXb0MUchAAKtwIbZAu/uiuwD0UqGim9MfvVF6VSXUSjqsNgNAZGXGl0v3XetlQba5o3z7IB997S1+2dthTfvs8FNYszAdLoNFI5X/nVilLzcQeUWsSNZMwIgg6jinU91GokKDBRIsJw6jgbrI0bhzSN0yzrFERhiVPKDZYEmYZgEomx4G6kOhlTHMaRvnQ1qytr6Q1W/VZB8CenUFYbY9LaCTZqtR7kkzV+d1WLjpxbswQ8L9n5Lg+XadUhDujv5FNRpZFRGoa7N/vPv+2xbDSfOOvOn9vuLL7Jnn35OeChe0CfAkMp8Y/cXLr6/bqPtMqqvbSKepGsIdQetyvHMp2eJf1UH1SWD6p/ViammnvMQvV/uHvPZ1KlTA8853amqZU1VDOzMSw6VMixbynLg6YzrSMZmRvTgQw+x1pZm4SV5LLuuTuNOjeOyCkedzdYh0fTotvgmJ0aEx7iVcfSAettueINtLIb49Mgm22zNUVa/02HW98DThOTA/kqnsdBNv7DcfX+1wrTJVn/Q96zfAafKF1VaFlIKplZZIbL8kJxzzjvUci/fb332PdmaDj4lxIcpAxDYYgrit/zjl9Zy8y+tz34nWZ+DfxCYIWgBACuTf3e8tT5xg7Xef40VZk4q+qoz17+6fL0YRnYmZwP6SCI25m0D3Vi5V0FH4DS2NuHjuamtdtHLWbv6rRbhgTG24A5w8OJhm3340RQ77oTj1UFpIKG6hFIDfhRXWsmoPnk7Zt1+9uX1NI6XGUzWObEoHY46gec+Nrvk1WbVmSGAIoBzzSrstMOu1k+aS08xTlux7e5KdaiKgZ1pybQ7131UKrwnhcc4wD1+/HhjyaK1tT1M93DtapaJIzEUxMSQjQmsgiaiGOmuO0KvFWiseuCqfW17PeQ1hHPxYiTi1m+wg9nxl1vTQA1qnYDlD7EHht3taJv+rY0sqzuZg5TSX8aafCe86MyZ8HEQ1GKHDIwNW5Bnwh6KkDBvwtAEIY1hShhM3/QMoWxJ7tHrWtOqp1n9fifb7FO3ssyU9wWvLneHYYK6rPoKgHoVn5dkR32GsRhnMwG32dBGu3CnTOikfvKMZuWpMvlzObzyIW3W1OEpmxyPhIuJ0VIGiF+/L6Y9YeM+0hIoi/opifLPqwfkHaYLX5hnZz0r6R7mD8BjMkRp0BDghz/8kWLLjzQk7AEm4EVwYof2AE9VmIoMzOFtX8AnY3dXkfdyF8WRy9s1upkkOX4nwslrrFrIixD1j3vPMesPH2Kb9W+2/VZvFMM2BIbN1w1VDJRVMTWqblFV7Pft/9Nwlwvz8zZPEnfe/Vda3fRJYuwdJUW/Z/Nu/o0oMWtzx11hTa89FuIhr5qOPNuyo9az9onjbd6VpylvKcEw7aTXlZWeCBUJByIWY7Tc+AtrG/9oiKMMgmn/YIIIX0whCRgIXb3OnF99wdpfetSyQ4dZw6cPt6YDf6jJpgbr++kv2Zx//lYgC3ZJx/p2JDCTXupm6BOUlkkkJLN0+TA6AAZU4BM37G9rD2ywYx6ZHTo8VPV2hVF/dROWbwdykjTZQWPy9vOtB5mGuKFTyZMn3Zbqn1NvN7tVj53dn7NXJzcrJeo4M9AMXKQ6K89vfOt423O3z4T6hYkvpa91wzvOGGdc6Myvma0Ee0UG9p7BM6+U4fIa7sxLB8bbQa+99lrSW4pwkgGwiFIEdfhqBfvpNoNtqKSI3rFIGEOuMGYNhMZYUOSqmS1U68b9v2t1TSOIHNTl1pv/V8tAkogivPaXHrHcS4ci1BUuGTl1irVNeShIJKRZfvrHgYFtxseWf/lhZaFJMrEEbYWEC7Oy9OSSau3jn7D2Vx9U35FMfjEnjaqflwrMmJnykyUvmEUPdU//UJ3Jry273vbWsP7O1rDlwZYFNjoomFh2g5iWJ0EDbor+yavCdB2SmkQWA8OAu6/aYP/SZNxxT9bZKx98pFUu4Y3JAUnUbEawSu3+yRb19i0xOwzJ6w/UMdjqFKZpKepvE9rtjCdmhSUzVHImCDMKg0eZMDvksEPtvF+dH+otvg55E1LrxnfhOY1hs4+gGgPauzSBGKIY3JT4yTKBnEQsoggR1Cknf9/+859/B8kSVGTRB1Igo4mT9Vbqb7/bCeaFISTVRLxumOWViFBc+WlyK5HEkqLb7B94pzDxFWsWw0Bu4DzIJMVHVWbpKCHmdsGhtOoAYBHe8BWVKgGTSklJpfZSWoGkvJD4iUEdBQbeHkIVD2lYq47gJCYdQcJEKjd0BuLZ2XpfWFXIawxKvYApTIgV8wslaNmoQ90t1r1YB9JuMixnt+1csM+PaQp5JPVUeSJYJt1++myz3fZeC4JZBljbbZr6kgtemW2b3DjdznhKd1ALjwEOoFR9qAP5nPSd79pfL/+bNfDyIXVQJtSjM0OZtWAWFY6KEpj90EgdCgJRy+txQq+f23HjooplRZxX/PUvduHvL0qYUCTOmE9ICQzQKPu2T2syRoxb0C+XaRX5QEqdE1EoY9QGiiUV94lbRMIiKknIzIojrDBiNfkXc5CUafvodct9pIkkLZcURMGUk5NaWSF3FRFytb5fOsvyM3n1Dpiz1vbKA9Zyk1RiGAJAxCwwZV4/FGppqjZwv+9a/XqfhqOtXfGDqNNQgXEwbILyWql+AZ/MkIux2GwxqDFrf/hUX9tgaKud8xTdEDUAJlVd1tH3z7LLdhqkDqrd/vmO2U3vNOt5FtbRNWYGRkpGNQ9Lb+22kk5L/e7//tcO1JAmNuCuM1OujTuLu6T9QwcZFQJsGPyrgbMiA6cz9O+ozB7tdCQ5It3uqJQIQcT1ql744+EwenzYiqkpxl0ZzTST5geb9LMhfaTWsd4rBmGdt03+FREcuAeJhjrKDKuoeKV1bOApmvmlIQMgYpVfHGb5qZOCmh5YUp1KmN3uALS8q5hJ3egNEfwhw9AhqfNprbtA9WEsmkhAyhp46g2BnxDKSDpMuxiwZdxVGqvKT+PhMFmFhsHskyRsV4blHpacGJEjueuEn4Im+/5ro3pbVwPdb4ybbfPCJL20AuELCf/lB2ZJcy4WrsyzGlODbToX2JIZ/3bN9rOGvMYaa9uFup7ob1dfY8OGD7NRw0ca19uOHbt5OEXlHYy3M7BWyxzEXRom5imHLYa3Kxgq05eQivFCUKGrzbyrgmslbEGGTeoa+8+ZN9cO/+JhGpewwVwkJOJnxjkvimaS5dA1svatjVjqQJKIuUXULO8kylzXNS1NtGgsikosMtdElCQTGo/+0WEElRVbWUm+J4wdJmcg5wompM9pPPsrK4x/RB1AItfJN8wko1ZLjQ4dPwVQLup+UYK1vXKfzfnjSWFMXC8tJC/GKgTdnLLFecV4cpQ1TGqFzkAlM93M5Ju6BHUCDbbX6Hq7Y/chtt99s21meKFFtYfhc4qb4dnURP0Pk2wsyTHTJQwl6TP20fs6iaUfQxg0DWblc5rhpm70gyNXXcW+fMSRxokvf3WRHDBx+yY+PfNvRQpgFjqurG9a75nVrQ7quL4w5emnnW4v6IRQGOuKycIyiiZdILZ+9Rn7+ZaDxVRIF5hNiqKkCONMcXLFAtsnvRriNO51rJhHuNZX26v328xjhtuMo0cl6fFEjReBwsyM/ci+qzFektD/SmXWDHTrK/eHya7cy+O0Tjwu5MUYO69JqzARJIaZ+6tDbcZRI63w7iuhx6gbONIy0z5MxuIwD8wLE0qSVmJeSmfMnkySNSYSVN8wLx1Ufa7eNtTa8Y079w1bPjOMW6mrNBgmylDS0WYyKPRoCWF4kqj44KFd8enyEjjoTFmDpw0EnvKZNPHdsC96o402CueVgacWTUxvLiirhbMiA5NRLHG9sO4WVC1Ayzpeul6ccOHOZtQ2wpgaSXAgJpK0veRT/bTBAIKGkJh0YmZXsZBkTFhVMLknbgxxM31WtD7rfYpuIBBgThtAyBNiROTW1WsNvpgvkpMdVtUYkmNQu0t1KDII/gmxS9KHD5WtbJm9nnuVNpSoPvVaC27QTHmjpGJgFtKKeah7IvlI2LkJ9VFHRjkacIRyMnnNqWjxmFqQ1ybaoXH5zv1slHZ7CYEhMxgXmJidRkPIqe7kRZ+Yg5EldcMMtCQ1qjW5h85IuHHG9w6Gw/HciHL66ad3DmiNhXC2uhpTkcL8Em8nbM/YGbmaQnpCHK9fXC8uFjvmmK8HYkGdy0hthlYgKojpYK3x7rmKVL2MpLGkIpI5EI+IEulYYImmgmGXU671AzGHzPeuELOcbHWDRwV1um7jT4nD5K/JG1GwmEDNhagUQXMYgrIqGRiHWNl1trPMujtYw0ZaFtpgW8tu9BlrXH+HkDwLQ0rCQ/Bh3VXfea0Ft7+kiSuZhn2+bLkVVlF5bL5g4inpWMKab4jR+Z+EmbTIU6/JLzGhkKdi1DlRH3UCeeYMpBtvPDRjV35mkDX2SeAIhxjCOm/GVunXYOuvONQOHJOxDVYaYoeOqbP1Vx5qB49psLW03v7FNevskDUadbgjY/00Rgf3iWRO8BPKkQrO9T9ciODG29y/a8F2+uM8cDXwVRwDOwN75bwA/15e7HL14qLzSZMmS1KwQ4ixGTbjuJxp96Cdu82gQCywCONGZESg0fAHWnVp3TmWctPft7Zfn2h9f6hHxho1jj7oZOt70CnKN5GO5M1OLiaLChpz1mmrIhM4qJ9VGWAQ0zceeLKWWJSPDExNfm0vPWitL39BgBY7Bnkz0aV9FSFOyy0XaDPJzlbfOMr67HS4NpScT3IFSvpKxS1ocon+pSuDVAQdmbw6OvCktGwxDbvEBANaSoELD8TEGwzVw2rbDbCvPjBHMZnUS+B4b167Xb5NXmPmwUlRdRqykDY/sGRPV482uEEbaiSJ73q3zW56u9mue5sxOuAmUNIeDz/8sK2xxhrBz/2TTJftX2ABPmfaaoeqFSUwV5bExiVw7Lc8utnnzOXrbBAIu5vEnN6zI4l/sEmTDe4jIhY3IBnR/CBUJAeNEDbVq1FgFqR3QRHgG8ayhCZyUcQlV9srD9v0728W9i8ThYhILqR920sPWcsvDg7MFsaGSCxtF0SNRmKG6IERFBkpKlgoj7XioFmKeZO8kt1WHCEMhSoedcOQY4BHyWEar0dOZbeyfCTTdOD3Lbv+TgxFw4+zyBnGwTC/jLz1LVqJvsNcl+qRF04CHhQHuALjCOZwSAN4KRDmVuF7je5jP96CCSzGvtCewoS70x6bY9NaFYdvYKcc6o1bmsHQcHeDYAAAQABJREFUBkGgDoqTX3uM1hbOHQfbFTsPtL4NyclhZRTMlClaSoOhAZi8asA40zoo4KfazkVHO0VtXRim5Hlj1qOxLlztNq8usq3pIHq/7bbbLryC0C7ia5TUy2lyCham519nxFB7aFepk0UDI4hEE6kCIUKU8ISME2mY2YV5A0MpAE7RBFhQScOkFASo2dmhq1lm5FqktLbJr2sCabLyZh1aM6ySVOxAQjpBrBAzqjtik+WrbF4HKsQMyf7hhMHpLAIDi3HZNdUAg2omuQ11Hxhh9kDQMF9rOGIYRp/SNgqIYxgldEghF/ESO58k2eixBANMHCb1lBXxyAuCgl4Yx9KpiNfDjH3SAbEmnIzv6dQsy/BD+BWHh4k/lTeztc12vm22TZqb4DXpBOvsjC37aFsmW05VNGXQIoI/MHpxjZj65FVgFrgUcuGLc+3MZ4VX7fpin/bPz/+NffeEb7HPJuQRMluGfxI8JQzrTIsfT9Y8++yzFSFT63Rt2OblhRBzeZfA1JX3cXnCBHcDEkNEGI6viTib6rURYWyCsyAFYcowPQPZg84EpazpJibIYrF4kelgbuUbbtDQMlQgdihUGzQ4n5ub+a4k8jiptg9YVuq1m+RkE9sHwyyTYIKt+VZeYoQG/dol8kLnwSRXGKwLBhE08WCmevmxWSJMCAXppdxR/cMCL5JZGzS0UYNIQfXNseZLjZJ0EFhGTM7Yl84MwUndKZ9y2QId3GSruHRseW4KQVBr4wVMX8c8goYCeToGdRAFaRNIaNbNE/zp1JFWPv6yy4AwWcWaMx0WZ//PfaHVZrVoFlrqcugYNRmWVYdCfmxPDRtrVHa9OuBQZ7lP3HCAClcHB04CY8sTPMlSpGVunGkDONCFft0xFQdSXWVIWAxAdwqupbhxPZi44sYIDHc7wWJZSSzqKZ6xfbWndxOdsmG6NlnjRD0UwSBm3CAdi8wpspYEhdAgfjGC4gbJxEYFqFIGZkDSIfCS/cnJGFEvf8oDf5UtSTV1Hp1Cnb2nQ/UTZyfju9dnqmy1A2vOT81ITkbR4RQk5Qpafnm+eaDyFMMIvuYZU63v4CE2Z9ZsnbEdqOJ1GH7mrMCgTYP627xZM207nZR6rrnJNu43XXTOzC7ErkkmLfe0A7K+1htUsJUHyLfQYiP6N9oKmnhCNYcpQQNwkwb25KRS6DCCn2aT9Z2hc6Mqis+5ZCQ4DMm5ZToOJbaNtcnjC6s12HXvKielJY92bau8bMI8O2mDRiVXQdJmwGc9nYAmEjnsgH8YH0vDQTVHI2kSwzaL6dkcwqklOhLKUHSsmjLQGe3JrxpTkYH9vp5yGS5vzAvCfvnLX5YuUKPO2rogQhEhi1hXHdhoP9t6oFodtU89v4gDPGc0qxqYRMSHSpsXkcCkSIRAMCIwJFm7/mVEdBB2HRNAQTrW24y2Ont3Vqu9O7fNXp0Js5u9OA3xlrFnmvvavJkzbEpb3uaKCJMuRUSumWj2X6PYwhRssgj7k4FX+ba1zdXkE+PIdhFwQTddmPVVxi2TP9YEXNYmzZkWCLifDhVwJLJ97owA81WvzdHzoa32YltLeEaU8aVS23Vv0ok1BNhQ5aWtSxVn2CAZqgP7qw4drNNXs4ME3nwFs9UHNAhfGdtIB/AzQWtg3M4wROgTXgLnwERoOBq4Jgt0iTQNM/riz//ZrslufH+GjrCqbElVtk+e97wuyl+ryQYx5lV+zKAjwcMWUKSxGoQf2juXG7w0pc3mCne0R520HDpIGB9Ta8wLTM5n1fJWRQZGCnlmnjknJbgQfHkwcd24W5kX7zGBCNQbsr4oSlBjN9hR6/bXmi9+EI2kmoiCO68CXvAW40Dh0GdgWOEOqTpdY7p35hZs8hwx6HTdWiEmzYkDHvmgNbmORumCVFY5ECTDY0xbW05MxOERMkSiKZ7gUIh8JI7UiSQyt13X0qA0Mkst2ETYjY10OqH7sXkCC25tQSrpXzMahcpk0mmu9hkj5WEyZWH1jMsFfH29GC746Yob/Qudjr7RSJCg4RAT0kKgzRODvPbxTHv9A5UndP19Ih1bclaXSdA1tPSzedMMLRU12s4jtdwj0hkcBuPKS51QuIIoW1z3VgYMV9i0MkgdwwGr9lHnoQ4RFVgAtkp6Xv76bPv2RloBgFmlIdCZsa0U/KhkxVVFVN8732u2rz88V3hRN8d6snDHaCUY7CKeiz7L3IIWO+iuOnAqMjC3xgcCjfJjJo/b/J34o6Ae66QuP/3pT8MYn/p2XI2K1NRapK6T+c6GImrp0dBHXkfgOBuLGsa4ECVWrGMf6d6opz/O2+vT59kL03W1zOQW3SUlwhahBYmseG2696mhPkmbF2GyJIQEYUkF5oXpsRtF5IHOxJR4MPudDzqoyhIQreKehkDEQrukPvItKJHKC9WSg/NhTKxMAuviJ8OVP+TL/BeyL0g/MXm9YMwXy6jLKq3GwHQLTCVxYwYqKh1M6EyQiPIPOcgfnDDartfQARCTOQNhRO7XP/jYJijdDW+JyXSwv5+k5+hhQ+2IEW221uCMbT9cV/Ywow/e9S8vLkOz4BbPc7bsa9e/rUvOARZfMeKlr2bspI3UmUnCAgUrAajRzBO8out87p3cZn94rdkmzxbMCueCvYzyRjMaMEhLT0pFp6VMFYpdG8aZN81vXUFXkYHTy0hkxn093Na/PJl3333XLr/88lClDuZlcgYiKdj/bN0/MGvYmI8KzdqlJPAL09rtvkmt4ZK3hz9s1fgUoiBFQhiibcVTJyC/ECKmapQkYBjGn0S6iRGknkpsBAkhTZlAfXYQV7jpQgo92l+QNErbKCLkAEBYCEI1FKv179vPmgY02cABWlSVlB04cLDVS3UcNGSE7qeaa9kGEXqrrrjRmnP/Pn3DywbANZvzp4Jz7sy5Nk/h7brLap5U+nktM23K1Nm6jE5pxTBhSECHIE0jTESp+IxgYeYeaRrmw8TNjGuTDkv1IJ1ENp0JE0zNrfX22uTp9uOJ7dYgtbigy+rWGTbIvrBKi31mVFb3XlEXdVZa7x4meA9Zrd6uf3Oe0uPXoKGGbvu4YbrtuDL4AQf6qw7uZrXDHCa2crrZRHWp11ChIG0DOFl6o4P6bDjszzemA7/hswb+OBMjOKsxFRk4zshFfLXvtlQDwJKO471ZJW2B1wN8ht2RCGwQxzorDLS9Vk1QNatFrwR82GY3vt1qj3yYs/eLx6NJ47+kd09q5iobDA2vZdBTw/gXLkD6YZgaQu3ET5EUp0+fprABf+TIkcbzJsxFcIM/rxBg8/QJbl5352kRbN43queg/BIw7AzipQn/oYUx5OB5F364eT0CGzxS76TOsAofCbMks/NJXYE1dHQ5LsKbYud81GA/e0a3bvadZkdtMNh2XyljG67QZids0Neue4tjjGgUqMt5aTUZu/4dKtoeljV9w5Hm2gPzwpztTBTKME5nNYXVhdVXrX3BE9NfqEAXfyq2NqoyxpkXN1fK9BRTiXGpB8+IXHHFFfNVyeuLAvmTDXP2uxdy9vyMNrvlPY0+2VBQVEcTCZtIIDKIpbc3hOflsEBsPBjGm7zcSDh69Oig0fCQGD+YFqaM03le8wFZ4WNh0nSWJQzAD9jK5et+SOL33nsvvDDBKxO8rsCLi/x8/wBxHU+wNeP6Vq3TMo5t15rTpJa+dvYTc+2nYrx1RgyzL45qttF96gLTIllRmFHR2/M6hKHOj70J5Bkbxx1+vGN8/vnnhwfXHM44bi24HV630/XpDMaKDOyTVZ4hBXhDdJZprfp31ni8qufS1xHoW9lYpPjGg3OsVXt38aNnD9JS6liYeCpKXtJhKAPixEZCbr755rbBBhsYJ2LWX399W3vttYNkdVjcDomL6XE7HJ6v24Sl0+BXzsRpyoVX6+fluZ2GjXzwC2q06k6nxI8Hyt1wGSLM/NhjjxnPyfDWEZKb+7KRzgwHkiU25aPhCVhGP3n9/el2tp5BCpcYMEZXe9Cp0hINGt7Azul68k1nw8uQxx13nG2zzTYBDIffYaoVG7j4Ydx2d7puIVL0pyIDxyq0Z8preD3JeMOVQwaq4e9///tQHcKdcfHgmwmP2WLcsEbL2E4EhxqY1e6hsEMh4dsgBXhga4cddrCtttoq/JCwGC/fbfwcFrc9LP1N3FoxAR8iNGyHM4aNjgvjdYnDUJfpzPh94xvfCEEcLLj3nv/Y7XfeYffcdafNnlu8B4rJQQ32kbLgPywRib4ZVyOBmU3OaDKrPewKy4Vhw5gxY4JGA+4/9alP2S677FJ6h8nhKQdzDOOycjtc2MCKcZgrwVSRgVFPYkMh1b6cFqdblm5HUDkYeHzLhwSONI+fSBT1+Ehe8Jroy2EcW5dtsQ032swO2G//8K4vjEuvX854w3i+6ThebuzfWVzidBUW57Ek3JXq0hl85eq45ppr2pprrGlHff1oa9PE2b333mM333yL/f36G2zq9GkB36RjBjzs8NIMOe0AWyeakMbFTFCJJm+//fYg9cuV4/gqF7YkcLQweTpePa13hv7dmZ10mZ2Fyp8xT2xAgr9Di7vWTWcwuv/FF1+8QG/nYSBVwkAco/VeSQM2HHx2jz3twt9cFPaHP/3EU3bGGWfYrrvuOh/zenrHDd9ORLGfuyvZcX6xm3Tp70p5LUx4Gnb/7qrsOAy3p/HyS+FiTpZ4OIm115772EW/u9AmvvOe/eOGG+3AAw/U8UI6RQ1JwkYV1rnVHJp/wGbUjGH4wzAIky4HPy+rXBjhy9oAn8MILMAZf3cFX0UGZhyXrng40VEsqKvMayGsHDJADv486fn44493CWZGW/Q22mgDO+PcczXLOsFuu+Vm+/oJx9qqo9cQposzx6kc0vhKfxM99ovdqazCZ1fhXYWVy2tx+TkO0/k54QFX7Caef+N2uOkf9QE3IlqDbG3QWc3PfW5vu/aaa23CG6/amWf+xFYdNVLRWMYSMxNdlMsElpsrr7yyOEfhPh22l9XhU1sunk6NYQRP6aFrZxBXZGCWJ2LEk1G1b5d2VujS9o+RQ9n+7TPPfKfriApz2GGH2X/uu8+efOoZO/V7J9vIEauIaEQ9RUILahzEt4gmXXZX2TnsXcVZGmGdweH+1MndwJP+dhjZ7BkwqD/YJWyCV/0fsdLKdtpp/22vTXjD/nTpJbbmmDUkfZM1ZpaQMOQ9ceLE8DB68Ohhf9KH98Fbuf0X5apVkYHTKjSZpAssl3Gt+6F2Mf7FxAwE8ph8mjBhgv31r3+17bf/VERUxVoltFX8WHQrJvRFz602ckjXKf29AJRwLr+i6XAmJMr82JFf+rK99MqLNmq0lrLE+HSgbsifR77dxG3qfj3F7g7sHRjopHY8+xAjH3da5HeStCa8Y2TE7ttuu22BySsAJg43cayyyio1AX8vEAkGoDvaBs3o85///AJoIYwnS72NY5pdIHINe3QX7ooM3NTUVEIK9QZB/sCZI6uG8VHqfIA1Rs4NN9xQqhf+yRqvFii0yeKAAw6o5Sp9YmGjnWjHffbZJ+DA29NnbO+///7SHoWeQJvekGx8oS5eP/wX2xjYC4ltTiOlGSIOryW3N6Q3Nt8MAW655ZYAptfDiWD//fe3QYMGlcJqqS6fdFi8rViyY4ORd7puMyziziuP11PwBfzAHMO92MbAIAGp5AzAN5NY8Td+tWriXs1hRNXy/dwwriMP+4gjjgjRYmR6ul572WCAtsA4zbE3gSuPvNN1f+KNGzeuFG/ZQLvopXp9qsmpogrtmcQETU/nSPXwWrYdIV6Hf/zjH6XGp/cjnDCWzPbYY49QFU9Ty/X6JMDmbZau62c/+9lSx0sY8WBoJHBPM9OmadNK0VAPfukNVB6etqtiYM+MjDE9SQJ7hYEdpmT8fuedd5bUL2de7L333rvsxnjPo9de+hjw9kmXvO222wYvD3dNCgZ2lTqdpla/fVmWurjhMEs1pioG9qNanqFPYvl3T7AdOU8++WSns+gwMMbj9oR6fRJgLNce7Dt3FdqZF1wwP8OhiZ5kfGuyCxlgL1fncnWqmoHjDHlutKcapG9svF4QgavPcXive9liwLW+NBRMYnHCCxMTPt+PPvooVo8xvjUZgL2+LN9WY6pmYM+YTBkD9xQTww3M9957bwDdG91tZjb9Aj8ipNOFRL1/ljoGvIOl4HSbbL/99iV4vB3xePrpp0v+y7ujIgODGD8THCMjjcw4rJbcEIDDiqpC74yf+2MzZuLQt5uYGNyv1172GKCtYuPnfPHz9sTtd3rj7glm8mQdeJbx+mEvtjEwmbGZwzOnIFTo+Bu/WjbAClPSMwO7T3K4P/Yuu+xSYvSeVLdaxvuShm3rrbcORdC2/sPjueeeK7XlkoZhceTvY3kXHNiLjYEBkLuWyNRNTyRwYOYmCOrhCIOR+aZ+Y8eOna8X97r22rWLAZ79YYXE6dHblSEe1/n0FMMY2OvgfOZ1qVSHiio0GXhvEBfiYr9SAbUUzjUuIAYk8aM+fHOLg18G53UEbkdmLdXhkwhLZ+3AbiWuKfJwt8FRT5qJRisE9pj2yh0iKtf2VTEwWwud8MkENxfB9QQTNyr3MfGdRtZOO+1UtioxQstG6PVcKhjoqh2YiSY8joN7/PjxJcZeKkAuQiG+KzCmy5huu8q6KgZmh5KPG8kMt19D01XmtRDmDUuDcooKQwfkBkQxA91regYG0oQdLyV5DYiDCu1t7/61anNJpMMK7Li5qbQa00HJXcTmDuK0cWZI+9fqN9eaYmJE8Q3CfDKE715T2xjw9nMoN95445JGFTM3HXZPMdxwE8OO24etlepQFQMjgdOmp42BX3rppVAFkIMGwfgJNxerpZEVIzNd78X1vTTKWFywLkw+S6t+66yzTuiUKc+HeTD5a6+9tjBgL5M08aqOd1Bc3l+NqYqBPTPPnIx7igrtSIgnNagHL+zR4DykzHdMcHE9Pf3itpdGGYsb5u7kt7Tqx/3TXpYzMR00Wyp5JaInGD+eC6wxHVYDe1UM7Cp0nHm8/auagpZ1nBdffLHEqDQ4P+oDA2PHRACscV2XNew9rfyliTv2KMQztpTtcxxcHN8TjO+FXhhYq2Lg4cOHlwjcC+Eh7J5i5s2bV1KpXM1y2Llo3JkXP3e77fEW1o6JOXYvbH696RbEAA/txe2FBOabB+t6golVaOBNHx7qqg5VMTAzYmni6ykMDNyvvvpqwAENi8HPG9xnMUNA8U+6rnFYd91eTnfT9cT4jjevs38v6brwXI2XRdn8+O4JEhg40+vA1d7GAV6rYuBRo0aV2sAbJz6EXAqsQQfwvvXWW2HiyhvWbXbxxM+kgkx+Hr44q7Ok8l2cMC5KXuXqBx6Xhkm3oZfZEyQwOGIdOKa5xc7AvksJxHhDMfDuKYY3eGJicjfXx3rdqBfGEelxFlcdyQ9VngvMeor2Um3dZ82aZZMmTVpmFz3w/KrTZQwzuO4JxmnOYXUV2mnS/cvZVUngdEIyhhh7ipk48R31PMm7stzqL6UlPM2xzlpSvVSJgh7CBomBaeWRPKpVXe18hzg4cXeHI8nj5Rdfsm8c+SXbRi887LH9FrbDJuvZQXvvaXfceksSNSRM1HtSdJZPdRAtoVgloDryv0+X3n/hgP1s2w3XtH223dK2XH9NO/LQg+2ZJx7liWOZjjp1pOq+K2TFnxiGKP/hw1eQKonajMTX/vaiYjn5wwVnoWOmiN3dh2rxpAAGVGg30KAzcKBHD+jErpqBPVPPpydJYB6eLugZFJ6x5E0dmJnRw5g1NPkBkfFkB94wYdD6FC/QXnLzv9e5rK00JHZkB6KINMe777rDDtt/X7v//rssrwe85jXoqhRR9/gXn7bvf/MoO++ss5SYLGiKDoLPmx4difIpW/bS8oQbE4SEEqnjn/9woZ3w5S/YC08/avOyA/Rio65ayjbZM48+YkccuL/9/brrFLdq8uq8JjSMTL5ORB5eJuTL2yXB2fCVRll7Vm8s1eWEWh5Lpy3rbOpHH4c2JQUGuL2d+I7dfC8LAwzx+XpgdF4LtFQBqKox7PdieX49iYEnTpyUNL4eyAo9dJExVpMEDkxNpSAUuFvSOJgMzASjd22cCBzZ/k2qDyZPsu8e/w3Lt8ziQUyb2dDX+rXNFV3XidgHWrte27vsjxfYnbfdKv4oUqrSwSvFB0e6LnxphIISwQtEaCrg79FHH7ezz/254Ky35vpB1pSbHZhjYH6uQlsDY5x12qn26ivJ5plFBTMpvUHZ1Bcle0y2GVt5xHDL5MS4uQbT+3NCIDDkbNrUWSUmTTPvosK0JNP76b+YljorL8ZEZ3GCv/cKHqkn3Yv11ltvCGwIUKpzqIDULPXma6ysyTm4RUSqjjDE0as04dsZMkSv8g9ZxOkuveRPVtA+17kNg8LGkYHts2x2/UD1Ee3Wv32ONWf7C54G+78LflNkEgoK3Bv6kyqLXbLRVCnHGY+LaYHGLrnotzagpdly2VZrapshXDaojjpyKjHcrPohjWfmJKUvSl4MXCQAk8JDFuA2ECwvm0lD4e1gELXy8BFqPz04IG+GR4mGVW+Tp35YeoSgGmZYJDgXIXF6GYl5mWrhXe4ZON+unni6Zvn0JGVgYmQbUkXEsOJqq6KbBSbmO/hDEWLq8BJetY1CFkkPIPIuUpyyeejBB0KZfVtnWHPTgFBWv/bp2mggydXQZP3aZ1u9Hgx/8/mnbabW1SFP3rsNIAR3tQAsuXiBScg+ME2iGTw67kGT8JXUKwTGrZNkpkNi+IGdEWP1y81R/f+9WAELwxvQm5EKrc4kYFp/hg4dDIB6pjTxD8Ml+fAoe7zPOO5cFytgiyEzhw06Wuyz0MDXp0+f+cDkBEVPMB9N+bjIXPRVYhD96jQGZkPHiv01RoIKwiPRTEIlk1nEC0wkAqjGgPxyUWfPmCmyyllbw5BEdZZa19LQP2TZp4Wlg4LN0Lu4OT2ZOXf2nECQdeo8ktzoRKopfcnG0YnpUEA+k0DVMkdqcltz6OyQugPUCdHxzanvG+zZDaqPxqEMAVrndEzOLA4oMzRWELoJtnO5Zmue9YDNe/27NmTwSklb5tARNGDJo23ljRnyUudaCwjtBBEOI7RU7uxBJ8mqGOQVU/br12++POKZs/kCauxj6vQpkhS6iD5bL+mmQwyitnZ663wfGzb7hzb7xd9aru+mNmTUaWZ9dWgD2hAS1Z3LkRBvpSqB/NCDFgkkIa9COBL2wcS3rF5Sd64Yt397i1TOVpVfsNY+A6xva7M1tRasT2OTDVpxWCgahkn4tga4N1ScW0v0nCdQ6X8f0UHfgYNs7sypkrLNGhL0s/6t86RNtEhI19kAzajOy/a1bL7Z+o0YWQl1VYQns8qMvrOAkJ9tbTOes5aPrjebfq+6R6nSwNV3tmVmZdR5KKI27OSlhqJd+VnbuCDayhkm9l8W7vRaNXClhWVXcFVHocqhO5l2VeDSDvvw4+lq4OTkEQzZrgbOSuL1G9imOmkkNW+yZabeadNe+ozNnXCKtcyU2ivmpR8PHFUJ4IRbgzQN4qEYn4bYZdfPyktSt3GQ9WlPlt3mZhqtXlK2SVKMclobsjZ2xx2tXx/dO6ZSw+xzpTKXarhYV6gInRrQyb37HnsJ1kajLgNb5gUGmluP1BMzSZ1uzGmiTu499+64KHChQS6q7vXKs/2Da2za87vavPHHWfvMO6xNj68zIZhRp9y/b1bzDCwP0tmoUcKkYL7smnutMC84QUPABAFQtJnEqtZUzcDxlavVZl4L8aZ99GEYviWNJskb2ETnLQdIlRVl5jXbzE/y2Vpn3G5zXz/e5kw42WzeFLr7UIVk9rUDyc6oCGr4PDGgUj99u9eRXzvWRo5eS8w6R8tHTSJ/EVo+eZZmbkOjsslaf0mKU079YYCK9OHVeWVAgxb7hlLjekmLy3ai6TI/gNAvDDWAT3CdqMfOkcL9VJdZjQPkW7C+dFCa5Uet5nvoSqvYN489psusS4HFMorz/6E8woK32qZ9+gM288XPW/O7Z1tBkj3MiqtpwihYHUZeMPUd2BSYOcx1qN0Y/zI0KSeBS+XWgGPq1KkLQMHLhFW1jVJWzcD+Yl9cWlr8x2G14mYSgzEu+6BhXkfMgL7yVsNn1MOjLbdJva4LVJqxtmn32IwX9pCa9nfFYVycrBMzZk2YF7SVH6N6/tSfmfs/XX2lmHhMGAM3QOwamzWLyJva8tZ38ED77YUX2fobbajYHU1BHqHDkY3BjV+ct7vdDhGjP+X8034uidL+UTZiIsEQOqWkWyLN6NGr24WX/NGaBg7RGHiWcFdvrVmGWKpT2zwbqlnhP1xxlQ0dVsWZVmXfMemUrO8m3aa6O2lHzRM0zHnjOMu1vWs5NVS9JHteKwh1mggE7oLahFWuUYNbQlvy0S7GZZiSVZu6hIvrhLurOqfjLslv3y3mbYHNcNW/K5VdeaGzmEM5Bv7ggw+M85i1bFivVpPqx9wojJG1xnpJwgF6cVGAFzIaRYlxs8hgEUQG9VnLTRo427x3z7A2TZIMWP0cEYzUGhGG5kiStcbAcJBaB+OBhxjxuFcfM8Zu1WXyV/3livCC/ORJ79rakl7bfGoH++qxX7eRI0YoUbGDIAOZMJMtFbAOyiyaOF+8/Nttj+e2+1Mnd7tNnM78PQw7xFcdSob+RJ9Y2+ywk911/wN22Z8usccffMighWEj1rVdd/2cHfmVo2zgYJ5oXRA/pbzcIWkZ+sWQL3pQAm/LzIes5e0ztfnl/QQfisTmjHxG7ab2YUGrTd/16oBzaoLiPjsxcTJWFvCh/HJzNXHdHYxlZXO3XLpd/Px9NTBVZGCvLLdWUJB/Y/eEQ/3NzS2COSvCo6uXkqZ2bVFHP2oo7KxPqbEFZkfUW+cDMYmV69gw0KB0OWufeq9Nn3OIDV73r2aNw8TgjFTDXLZSz8+8McIdT4yl+zT1s69945t21De/LjCUBtU82HGKyC3cIkk8D0JidxQzOD0sbRPobeZu7HLx8HcTExR+IX7gXMEFY+g/Q8xhKwy37536gxI2iggN37gDlhS3a1PERzGS2FGaz43WMvE8Ncm8AL90IMtq8iKj4Ua71PYG5Z1TB5vJ6PF5ZK20K23E0jew8gNGFOzkYH+6/HT90uFL8zte5vJy4/PN7teZ3TkFFlN4ZZnapiExbvcEBm7RhgN25QT+DRItIwZlGwBkobpACGLeHESgDQmZfLtIAtkBs7O2qDiSAjPGHynO16V4Io4wTmX9uAvjeGPpI5RN51CMD2EnhSceCYN04NWZF2ZxXHt+/h0X7WFpmzghb+XjYf7tdpyPu+MygDmkxeGdSuIsRtfABLIAT8FioJIYeL0qwxBHqYme++DvYaxbl58T2gBY6tU2qD05rfNmlGlObniUjTmBucW5w0cKVxLFQR1Xo2kRK/zKSeCqYFpKkZyHwLG30QhpZXEbdAVKRQb2xBzqTxsvPO1fS9/JJIYkqtTfwIxiJPbLrjq8sUhw6qdhXhFBXsybpxuX8QMNOXQy/QrzJtnMCV/Rw1AfB/GTbC+soqYqL6iFxdlU5SbCwg9XYrzhsEsNV6R+D0vH9e/ObM9nvjwVOf1dLn1cpufj8Urpi0wbkKjAIPTgwCACk29P07UtPMCMsNtHV9us986xNvUIOUlQJqIEcBj75hj3yo9v+LmePc9i/DCvoc70/Q/k1tCIzoQmY60/L02Kq5Nik65PHLYs3GGORgUDl8MGA8dt0BVcFVVoT1yOgb1wj1OLdrK0IOkXVN8EUUGVDgcaaGiXGIkEgG/yEIqYOYxFVakCA996qdotH0gSf8WGbHCD8pt/XbyruieNASGJ6AKRI4HFxEWCd6bA9oYjqCtDYxOXywUnTJgQrszljDZHFZm4YSKESTR29TCmYhWBY3drrbVWp29dedmeN+W7H273d79AcOKYUI3wF5d+lYAns5Khw9RM84xxNu+dnwsn7dYghqTDReLTIdTJTZaUl9WQJ6udWDk242jbJOsHpoMOo1ZuCIytRAleNdkFe8eTWA4/RcduvpeVKXe01OeVqoGxKgYmI19GovH4xvSEQ/3TpnH1jxpVajLKb2AcMVKmULyLV7yZlxrNDDSqcYHJI6ncIhXFV6AIpU5EVRBRZViyaHnfZr9zmg1Y89chX/DQtYFAZegUsMJf/ogoixKGL2cK3JhyjccNE+PGjbNHHnnEnnjiCXv55ZfD5W1Jisp/ve1WWWUV4zZHHsnmSl1smNvN/LAIB+BNJvgHmMMnHgFvVArtJphQQeFaHaNPSBVDyloh2bwPreWds5WfOs2gGyfMKQ/9V5sI76jODHzyEsuB/GgTmFztUqflq7AGDRyhPWVHdOoFe73K4dbjLG07fbccMPoFGg5vVzBVxcBkVO5iu7h366qQZR3myxTAAWG1t7XoBMvQwEyEhS16CmMrpXNYYF78ICrSiZnp7UUvYZmpfcaDlh20Y4nxkq0fIqiIkH0JSslLxomHPL2sUmDJAdOEGLoO6GW79trr7Zab/2lPP/tMkC5hVl2bkYMELzIXUqy8ETPReTCBxwZmtSVLF++9977d959/B3BRNzfbYtPwPvK+++5r2223jbKCaTuYt5R3Alb4nK8OkX9Iq280mITfk3wYOMDWTOABuyeZ+955YbYZ3LDFVfI4MCATZeyzJh5hIYVsTxf8YGT5JBOQike+FOGRSoB3OKphjI7YS9YVVkmiziapZ/VlVsXAZMfMGBX3AnCne4/qi12aMecnRGYoG+r7BKKeNzevLXhdtLTADJMm7O2VVG6X6tZHHNwuIpo94fs2ZPN/i1q0IQQiEz4w7FRKZK2CilI3BBT/eDzw6O44HHdOmdx22y124YUX2j333CsftIdEqsEcBc2QK7H8NGZXeYEp5ChHtHWamKMjYZNFPqiVSleUarCEpojET+2hc3j22eftF7/4ha299pr2pS8daUcf83UbNbJDMgNbbLqqg8dLsMLcsvDi3CXPxF+d4UfXaj/z3RrTStORJsRkYp1WBZiQClI0pPTcytsOh+OT755iuJEyhtdviKkWfqi7KpOe2qbQnsDAYTIqYhZ6+Dbt24Wom/pW7r9QnetE4EjYegkSlGtWjRmezX7zjOAf1GNJFdZW2EIgz5IBT3EDuduJjYjuh/vWW/8VXko85JBDxLx3iSlRK5U1FA8TatyXlZ4I81JaUBk1QZbMkSWMTj6usjMxxwiSDSuJZEKTYP8wY3Cl19Ai/BQeGF2hr7/+hp111hm23rpr24knnmhvv/12yDKGE3dchxChsz+aLQ6EpjoAjZu89jU3f3iJNbYLZxrHep7svSZvlogqGYfBYcN2d7m0XYWVi7+k/Zhk9Tpg+0mkauHswGYFSJkQSWe6KPfZVihusQUjcROJk3AVRFqvEzMFa7J5zVUQCByiNBlJCFQ/1DuIrU3El581zqz5Y/kpbxgsSMUYdDGU/NyAv/jb/fHj4r199tnHDjxwX73r84KCUDvFs6jK6kBQc0nPxoVwqrmohsK4aAcwKdKULQ7kV+fSVksuwMc5WfYM1+nge9h9poRUDQU1r33NCEdwA1OzBZHvtuZ59sc//tG4ufP000+3+ARauXoEgMv8YTYYLAT4gQYm03f7lNssr9n9PDgiDoyr+tDRBKhJVMGUw2lXsBFGmloxLoEdLj801FUdYtgri6Aothfids+4lQMmkvwUsYbxlRztksB1mXlSn5OjfVEVyzq1cpwQnaQWm/ihvqzc8rS5k35m/db6Nc7AxNobFNiFD6bFnMDcLlfAn/98mZ188smakJohuIBVUjFsFRSxhTEezSTiZhthvRiPWfGgqGObDR7W11Yf2cdGrpCzVYb3kyKQ3IoB47Lc8s6UFnt/WtY++LjNPp4slU0qejIvUK96iJm01EK5rklk6aRgsrDBRStnem/33HPPtZtvvlnj8WttvfXWK9UrAFDhD5hAOwllqOOoCz3HPJs98ZfqVFDtVV/wiVagWWYtHCl/Ol7qjfJd2ThTOp7dLpeyWuYol3Zx+/nFGA5/d1Xo/9/emcDZXVR7vnrP3oGEhLCENASeCKi4skQ+Q0Bl8TEQBhw+iqOoMzK8z0MdVwQdPz4WYQSc9z4P+TzUx+A4zICij0VGVHABVJ6AEATCIoRAYkIgCwlJr/P7nrrndvW//3fr2337MnYlfWuvOnXqnDpVp5Z/TQxM4WyMe2Xbt+vWSdMbjeXGENiSZFoTdugGEAy3c2erbiRFJijVDFOkwLFILyVqQcmiWy9DIsJWPSWDMovpLIf5MJGPSUm5Ilaki4zbKWHBGB//+H8M3/3u9ZaGH9N265aPeNUImsMlvZrm6gwSxYXuXdrD4QfNCG97/Yzw18vnhO65g2Hu7OkmhdG0IzkxcfBgqq91soBiyt8yICWcpPnTa/rCj3++Laze0B/u+v228Kc/6Sogklt12CEV3acdlFSnBYXiDH6++MenWG+++WbTXFtFVfzAmypAuBFTCm9M/be/fEvoEB77VU+bgKPdQ4YrJdagg1LKcFWhfPDKZQZs/yNL6q5QxKRG++OQwEt7Z86sTqg40DUxMBLMDRWmj3F5eLPZM2bomp4pbehUppe6dSTGYXtId+mrM5ramXRQXgQCeGiRFBvUmpRzudtevCnMnH+qygQ/kYXtcQA4LmPAG4b9v1NOOcW2hbzz6EAkL8yLQodtFU34wy4zhsL73jMvHLtsZjj2sOmmKGOq26H0tiZXNQOSygaXwoAgch7MyyAiqU5x7UjWltCz1/Twn/+DtmqYlqucp1ZvC7fetT1877bNYdVqTcIlkbly2S9eosuHB8BB03ucdNJJ4fbbbw+HHnooNVUwsRB0CAwq8Vdl6qwzh2QEXUECixSFG421qpM2CE8akCoZcOYGOFNjA0CBMRzvaXwzuJHA3v/A41PoamEbTWFlcrp49wpfC1Pori4eQ4tEDNOKfe2Aw4Z1urBgMqZMgwtRpvCRGwKEqQbFBNyMIf8gD6i9fLfKJY7/IkJJFV6FMNHnZSSEBt6OP/54Y16iIxEy1Y+jcJzO9oWFi2aH8z++W3jqp38VLvrMvLD88Mi81h6xrm2gQPSSZJwko5w4fFihgBMlHtNRqcYh8FhXVGyZWwPQfou7wt+eOTf85vql4cavLwwnHDUndHaw9xqn8w6XD+BcgVuxYkWVSkzBBRzgx9hXUG1fHwZe+plgkZQXzNwssqOrSmFTadmR4eWowgAfxqejaRbusXt8Gt5M7tgnEaK8S0PlYK2aganEH7bzCvMQVq6yyYibPbvblCIDTC81fQzagkHTZ6N/oePLwWVMoARGIgUmFMuoTIXg13Svd+udEtBblAoNL+zFRhKiJBKWPEXmhInOPPNMO4hBOIzPpLJdcGEj5Ds7BsN5Z+8R/vV7e4dzP6hXQszEsvj1+nHTF85gMS6mLv4KDNIDq1bP1o6Yj4IIh8Hc7g1HHzE3/I/LFoWff2/fcNwybmAxAAoyZQK+DgYDzQ5eWLM2nHfeecVqyjmoD/0zEODu3fZzC+HH4sTI0Y6sbm2iwioME3+Ud2u0vm9v75RPbTETSbuZH6JIp8/e1PRTt85nHpdnV83AEElWvHPOtJpK8ipuVBjMCi0wJYQ5cPf3awotw+hfr4nMMyCifIQSE56NEifFD2mvvPLKcMsttxSrheDQFfVLs92mwaCnZ3r4xf9cEj4hidjZVXX3FMur2WFMrO0LIaeNLTOhhGn3/nt3iZH3CP/rioViOwYXjUf64ZwyDAMev/Wdbwe+elHZkLugIxDO+7beb1lgvXpNxG+vXXho0ZUkZkfRUGc0aR94WDPYvFeOSeHzA1OEQy+VTE0Ukl1gw8DZSlJgKlXeiPjuuVIKoCBRx5oMkiRua+sKa9cz6tdPQGwxtYkoB3Y+r54oqBSsWBRbTN2HO4Gtoi996UsjwmxQATYNMMe9szvcde0+Yeneem2gQQZQ0Q3EnW403MKSmJoDFUjn9xw2K3z3it3DLKbgwpfxhwYbXr7gedxrrrmmJkhZjw9se0CosZprypuX2HQAGhxaBetAv5R2RT0NpN0a+Pxo2gd5ZUxWWN7gBwPXwkM1MfD06SMJy6fQaYXNhqxOPWUTt0yYvsX1q9060hqSQ/J1GxH/gJh0cPO9hfkgUr4gcTLjw1e+8hVToKX44tA+6Y9bNiNcfeHCML0TmSyNk6BlO2XCjRRxQdf06DfOhA9Jig2x1SM/cHGy7F2HzQmf/siuGvgEkxi8bRCcRshuvPHGIohpu4qBcjgaLAuDXe+f1Ub5xHT1GhiW/uyXbV9mKCqy6IN+Y+B66xjv/I6nNWvWWNEpz8DAqb9S3TVhMLuecECyFXp4pcobEc8auDgoi3h8hO7XVs24wCkJzJE/1mJuXGHjRE74hg0bwg32uRHRreAoGuVfumR2uOqLe2pLS+tZ7fnYpQq2cVTuRJs4A5BkFUwtmsIDM4wLDMwsCB8QLB84Va9mMuBJcrrCCT+ntLLPwoxonxoQ8SGHmj3InWrYV+4s3YylrdRFn77wModFVC7aOtlmhjpHbMtk4RpLfeORx9vtDJzC5RcZqq2nJgbOTqGphO2QFADCHEDck214IEwLowiGOteuBsq3fiOdPQ4MggQWZfZvX8mv1RNrQ+JHZgU/t956a/EkE/U6ztD0fvVv54aZ3Zr+KQfKtQHjqnhiKgI+cb9Dkl5tGsyYbgJLpH1OY6k18Ktg5QjprrM7Qs/eOo1XWMuidGNpglKO64zeHiAdgVcVGeNUiPDQv/MZGyTssMY4zDAcl5xO69KVz9iASNYo29IThCPgAtBJNOCEq6BuHDa+xV2LqYmB8x6czr7pU0vljUgLA/PqJB0LfYoiTcK8sk2HF4TEug0aVIhU3OqSJg4LrBgjMdM5XAN06U/nEcbfgYfsqu2hmdJCQ9KwsCQK4MqgWJpowxbOgJ6pQXpRGzgBCs5HM6RwOMSOVgq6/RbHeQZg9bVslzZabKM2sK2EjUkZ2QLAi8UxGtA2TokRw8/4tI8nk17VoaLe3gLiChIYvQdPtDps1DoKPgIbZNK6gQneceNx++67b00w1sTAqYrbK+Yxs2Y2fHbDztgKYUiPyBOt+txKPJ9bL+x0BNO2gT49D8qazmlSbiPRwiDB93O9k2KeKIVPWQabsI4W+4pZOBOshWYhrF7oKudnL5bjn2wUA5+9TIJkBF861sg2GVPqP63uDfet1N65ToRIbadxUM+4FpR2fp6X2lJmibVHpgItNjQwDecAt/BjDyfERGP+jTALX1qbt3exzw9J80e9KCyRysNmNHzDcRPtytadMrDXDQNn03lcnl1Qm+ZFjQ7zB6epwIlx7dq1lhB/LRWPLn1iQrp3mSsClXSxQxySGJI4LUEfHNOIjSJUs8C6DO1u1RR9cLq+z+NliSk4q2yHESBYGVf4mafwE/HVKubYJqaAiXRkUgwzoP3qVtPwC6dKO6d7mqSxFHCarsY8kSkYOLwfKJIhAzlqA4qkz2Z92mVI68BI0LQ1rhHjlxApQxJWM5LVa7ZbOUb8SvPwql4pqlrDcxvRNveHF9a3hHvu3xi2bBOMUnq10T4GG8oWXD09PQZXPg3E9htqhG+egXXD3aphn4fWZtN/XM5g4Otje1BwaUhVPZD2YOju5rtJzWny7tNn9UyVIK+JgX0KnRKNP0ztTN1sTDx37q4FHEC8KGU4gdUZ9KnesH2n7iRNc66rhKr8eAhwiFcibNQnjYhSjEWpacm2Fie6YByHF161IVz8Tzq3pYGgT4V1SmDsRCrq0y9+lZC0kXk5VIGJDBwZ090xHPxHEhYMNjvo1VtRbLEIHmN4KceUpb/XNdwaNDp5qlXsL+Lv1cfgOjrEAloXWxsUZodguMTBAADj0lZwKeadNWNmeOMb32gDQNr3zszoBUzCo4fQiInGnoFmqE2aA96DVZn1GBsPVMaOHcMDnPUJOKQuKbgclnrqGa+8Dgv2li0c/okGWLOzBY8rZ8fhsVyKJI63ldJOIiq9E5yNS7JOmnPmdL0NpW8PAVskYAhb7KaOXbceZq7XiEAkBjpnHFLkq8i4kdDpKMwhhyhexjsQt8Gk6IG+/rBTxDygaeCrfZSndenQDmM0mI0/4I0DEIyXEj1dSByzovhnDCLllAI049WZZl3agFmohykHTAiTcqmjU59EwTCwtUHwMDNlWTW8ma0dYnmigiu2hSm1t+v9739/YHuRPKkZ9hdkBNMdwdnRuVR5lVYzjXqZt1if6n5lS1yPUzTG60cCuzvGTO6vw4KdSmDw6dLXcVsNpDUxcN4mc8rAVFhL5dUAWH+awcAbUEgwCEd8IJuXH14N/XrFsF4DYbN+DUh2TX2jJGZqSEXDhLR8+XLDDYwILBhwxeyPU0o2qEgycWUQrXmbtLxRmeXMyewhShUGIgx5IjNHhnLi8HTsj8I07IfyF9vOFBumJVz5RPADgoNLFJyy4msGvAY52LLTJC+SuU3TUZ++RwYhb3vYY8EedjBFnpImZWva29q5m8E9nnRCWVu3xb1sa5P8jgs/vw+A41lnyQaXicjWn33ylpOOpHHYyxRVjDLyKfpKOLxifzE+rSD7tKzHeZ4SRTYwuNUe5INx6NzIPLyL1RqeWQ1h12cor1Pr6/bZR4hCWF+LOV2BlVDv4YcfHk488cQiIxRrtUWcOEbMiba8RV9RBE4MfpgxGhg5Mq7j1uPAuYeR1iSc7Ci1AUIS2DgPOw4EMZ2IRbDqVrBqlJQtCPY+lcfxScplgGEKHQcLDRpKj+GSyG0//pewYMEC8/tPCoeF+RaeSjTaUBtaO/eMeKqK+rzkfJttrp0sfdEhqC7qtxtdGryoLz3+a/UXihkFZ37x4xZKfdn6s7f52KZN01RTeVUo9EL9lEja+Lx9YCr2PNUAMdFpFi3aUx0bGSFOo4dCZ2dneOzxeCa6rvrFcEjgtq49TJrBvFFKqVR1mhvwwamlr371q4ab4Q6NV+qQ2MYckuQckBgQ5+CHcYxxUcIVC3b8xu5ziet1xcFK9KzBxaUwYdQJcbux97K0jrX7zEytWaOKiTmTDbwGo5pgcAgWQaOscHl/OO2008JBB7/B0nh52N7vRRpROeQpYkLelhkHCTeCpzBgpPnH4tbDIcV6I/MKp2onMLjuoQhPoQKHcyz1jSWP1+dw4M9K4FpvIgHHcG9WAVXei/EA4cBVUUTjk4hydt9dH38W8UNLEDvE3KHTCRxUqNtoyjuoJ3ra5rwZMSBKklSH0ZCWRryxBnCEkuLzn/+8nchauVIHP2xU5kWKCBP+WTN0cUBz2DYkl8pB6dMnhZM+K2zlU44RgeWFMUZ2YWRymIb2os4a1HegTAbbWj1KUhG3DjnMmMnUXYczlBytMwdSps9oDbMUDlv3SIF72682ibHFbMIVb1XxGZNWaaKPPvqY2LASv0WaMJwzCJGfJYDa1v220Lfpjjhgga86DLjYvIUHCVS23IMsP4x5B+wUlsPhtlcVcQ+eGmscjrwnmX2GWwtsI3u/Qlv8lAhAGBEpPXdbvUK3KxTT8OgFC3Y3po3rOLZe9DScFDrr1/n0dOwgCROhY+ZyFcD0h+uEknK2hQELjTTeeeeff3543/veZ5FocjmIz/SPiev8ha3h9qv3CbvMEpPpXLKKFOUr3q4mMqWOEjniHwZlnBCbKnyUYY2MNLWBpSDuKMsKVRR59SuSNyVVLFPhyoC0PfPTa6S97tcbYhqMGFDEJG2mjNL56He9K+Yv0IK3LQsD+PBZDwdOKWXarKPCjpaL5apfiUh57Ff3S5B06TohrTIcKSLv3IISTLoBPr+J5MCAP95eN9jlrtaoN6s3PjXzjiYnD51557ldfYkNSClc7LHH7hqZ4QERk5g3kmdHWK07pBj8xiQFcPBDGODRCIQ0YiBoF7/9akobndLkznkbnCDDNFMKophIVv4ckRct3vSmN1l247FCf/VrEfqMnrdZ8WntuW5BklMh0k+yUW7rXJUalwOShDCPamTYYLvZp7qExhi6VzAYw6oMKuMkmvLQtkK1lqY4AMDgEsl/f+2m8OO7t4t5UXip/AJRcV3vhBP/2mY1nt/jrEGZH80DLMTT4GuZtiB0zP03cmhgoD4NDNioAzTcxDCCqzAMDn96Yae237TtBo6srepjFePbnnnFODx5ceMd5vziNnVzMy01xHEOOoXL06fpsu4q0ZTNNuzPzuOHY5rHxczBeAqCNwqKknL9S3H6Zu80iUmGkRcZAv6x5BCXtmFgYnsdEhqT5DT9U9t0fbTwvUVmMEFFJhmstBPczVSaN5/jgFjoAhFem7aRKHPlQ5vDsrOeDT+7N67R+YKiTT1NZV0onPKNqQqDBHyqEYY/bhM5o3LKS1DIyweR1X6msTC1fo2Rtb9rJQKG2glPXXHdi+GCv3/eDkg4Thx2pQqf+tSnsKoy1KWVtaW1PsAvOHgUv8M2pzWw8AYY0p1DLEClhFZfYdAoV9EQOwBCGv1BxtZBSWFwoHb6waNy+RsR5zhM6/KnetOw9OsYhOflS9PjromBQWq2UE40pZ2braAZ/IsX72VHBF0JZBJMlLpuo5oP0YqgaBdsjWFUH9Q9OqZ8bpicQfqscRFkEH1bi87Zdi/T1/JQ/6so5WemC8ma5DNJB9NAUCNx99a3vjXeDVZqJKeVLYWYpVPY+rWvagr7Qvjc5evC5q06PyyJD3M7/k366tAFJr6EqRqph4DClUC7ZmeP0HLeWR/AhiFE8KRhGRHdUprJ367nZp9a0xvO/C9rwteu2qjpqI5KykStvTnt5+STTw7Lli0zOIdDy7jAL1NnMZQhDZzo3/R5/zbsbJ8lxtMAgg4AhGoQY5YwoDU3fVINXe14VaUhyMX8sX/VLo2iDJJjUQqVaUndUd53FJTHwP5NpFoqqomBAQDEpIDEdSXYB4lGPrXU35C0JoEh7gimGE8SVQcU1q7bGnZoLWxwc7vGiIDpJwQldoZZYWxJZ77KwGkpCGwIpY4IcWhgR5i9x3kiT6aYNMUZSh4RrmODMlKckZI6v/CFL4QVesDd1sGqledgkUJIzT5JxoH+HeE7N74UXnfCs+Hzl64Jd/5Ob1EbjmP94jnl4k8Dh/IgU1Ww3DAAAwzfGCKt2iHFDqyrFbvBQisjQrQe0yuVn/n62vCes54OP/61LilosOgXw9uMQ7B7vyIhrrrqqqKfdlQ0qsZgBAdK7DjhquTMvT4jv96rViB3s2kbcA+byuQ5raslPPLYztDVScY4DWeg4usWs2fX9sLjcL0T53JcZrdfqfGAAw6oueKalFiUDiE6EPj9XR+Pw242w1bCzJnTA6/gQ95G3Bry2d98/s+DYb+9JPmQVBrKkWaDgyIqaVoZ0W19aaTH5ol0vuIa1qqtrbpBNOdwaWTmqbka9SFCDQIMEiizWJSSu9Qkx/F47bXXSo8wEG6+9YciZA0FotlWbSXBeCZaJHa5VP+tH24M37ppqx66aw0nHDknLJrfHk5ePjv0LI5Sm2lqi6QZUBoj2FFFdng1rFi7WF+qSI0xm17pC+teaQn/944t4YZ7d4ZVKzcJfg0YwgcwD6gRbR26L63H8oCfqT57lD/4wQ9M0ZIdjJSopIFWrK3Ap7IYQlgO0Nb2+ceF1nX/pAv+axUH89JmToXzjWbVq3Q2XpUsXTMHLQ3oj76+iGufrlNnd7e/J1amgAZEOQ6oynHH/XDDS9JA3tt2k+bxsDy7JgamUFdkeWGvhTUwRLh48WL7mp9QaJKHx8xbxcTPPd8b9t17mhHLgB0nhMwLI7+IifUnSiRsDFs8LeKyltY5YWbPRRZm6REvMK+FFPIXYlMr7Rg6sFPHPP/3DdeH88+7IFxxxRUiYsIhbn8AABk8SURBVBgwFgRBD7WL4/S+6xBfWNDAsGHNUPjO99cL3mnh8m+tE7u1hcV7tod9F08Ley4QU0hbt2DhdBtkW8XELYW1+wt/7tfDbzvDk88OhWef22nvgrXB8BJ/A0xzjXkhB1hHA5G0ukKQgc5hiO9///v2JUMC0jZYgnI/hQHfXulUs+xDcowiamNr66wwY+HHwvbnvsz4J9wJx0hiZjK0nWl+AaOlqugfelVpGYCBlSWMtvXsAsegptDaP2sC44zqzAtISGDwmBrfsyYsTZumybprYmAK9Sm0V549TZKtoBn8oGnJksXhsT8+asTBvmaLJFuviLRXBMy3jwalQDKpi3jWfy3LFA4jidHROGuUtzWm4pgMdvV8SdJSjG8NjKO/sogEWQGLcZiSixhT44Tvtsd1iDm/9rWLw2Fvf1s459yzw+b1W/XpFk1hVb1JQ+AVMQPOEPNNETfTbc5PcwvnqWf7w5PPbFbfiPGYSeizL206JtovHoQZ+vu4oABzaI+5cEKpFcUR61KBrmJlBLcN0EqDogu8qLT9lh5gzHvggQdaqizsFljmB4luL3lQEdhidsLeNahVUzp3+3f6RM09YcfmnykddQoStU8tVu0RsjLFk1r3ajXt1yzD1tliXjvXLVzMmaPHHJrUZPeB/eGBlNmrwfVICquisV4BSasdJaoodsKT9CxZojrUXHEBLAZRgbRVj/VpGSBy0eCknpcGV5bieCrKgsSSJhUl2Qjnul/7rseErtnLIpGRh3JRnECkJjlg3uEm0REYx5fbMUWBsOU55dQV4f4HV4YPf/RjYkC9OyVG4lxyq6b0JpT5ThJgigEo3j6CzRlsU31r4qk920F9faFfo09vn02GI8z2LSgxPWejGQVkIkxxysxSgWktcEH82LT/b/7m0/b87ViZN1YEK1IhpAbmkazy0g4xM3bnHp9Rnfq6BCkVaQo62dY+K6T0D2W/oCvpsRam6LilzdaAnEq00iVMfEweI6YXGYCAiwxOF7EfYn9Ugq5mBva3oSkYwF4LWmg6uWffpUYwjPr82Wit8Pse2h6mdSJuIWLiRAriYv45oaFwAantQ9qKmbYozNz30kiASkA45UfGEDrlKfAIoWa8Y9w/0h7ZBbvP3y38wz9+I6xc+VD42Mf+kx35jF+AEMySrpg4BEGykQFgApgjdrykJw2R38gaijY3TRSs5o/tN6kF6SvQNfTkOfnkk8KDD6wMX7/8kpJniSm1KmOwKaXZkc0ADy9rYrOng9P/JqB4XRLYaJfaw6xDMwhjegccFkXaUjmSWn3QpxkMt6ZoJ48igA+m0vPm7UaqSTfZ/odvsh8GZM86Dqq0vzrmpWEjqaeKpmaBIUteWBVFNTRJT09Psb4U3me2Me2UuBEq0KjzQa9W20KKqCmQimhFaTrnhBkH3ahZoDS5MIyRX7HYcXXst99+tlfMw2ff+MY3bOuG5QuGDs52svuzOoq0raTx/IS7nzBubPGBNb5/5B8ws8QT/RNBCu3dR4Su/a+UQgqmRjEHa6OA01VQliQKQzeAtprBFylte95Kv/7FwixIfUI2a5v6c5d5zTmFBr506YmfU2PYGLfNU+GnpjUwZXmnUwnu14ISCzhhCGyHG0LHv3a1NNND80UQMGynbgSKCLR+1JJXxBOne8as7buHmX/1zyILbU2AZzZlSVT7GKg8I43DRWjqxs808Oyzz9ZH0D4eWDf99Kc/DXfffbdNbf/whz8UCcHbQ57UUJ4b0vi2H+WyF83HyjgW+Za3vGUE4TieaiEmr6dW24SrcD2t+8jQsvi8sP3Zv7Mp/BB6Cd6gRoEoiYpOwvQQzBjoBLWN5cT6TTsKeFMfkkY3MoB73i671gpKQ9LTJ+kLLfizt7qqBaRmBkYjyR1gJ7QUEK/U49w/2Tad2dPTM4JAgRGz6aWduiigwahLCqg2fUxMPCkyl4Iq7qsiCdo69grTD7hO1+AW2BR0UAREmfyr16S4St3ZcqmPs7Knn366/ZGWh/VXr14dnnjiicDTRryOApPzx9KGUd3vw3JQnn1c8MC7S/vss0+2iqLf4aDOiTYmMVUJvUFtXfP/vfC9Z3jliXNspQ8TD/IsJgYFnGZLqLgcxiFNnbfvQMGnPkH/oFmU7fOrxPm7ssXXfIZ35IA/NeySjMXUzMBpJQCRPalDfCM6PoWjGjcDD7epeMoT+FwSDeodm+c3DOiLfeJgKYsiGWnEl4RlHdbRfbS+/3uZSIapNlJZjG7Sd7S0rAaObBpgcWKsBW+khTlhRv5S4+WlYbg9HLuccTg8fbm09cb5p1ltqCjgtX3OO8Os/b8Ztj37X3WY5XkBrqFSiG/lpJp6Qp1j1drqWHh4WW93tasADqww/AI3CsfuubPrBW9C8j/00EMjygXfS5cuHRFWrQds1GSyb0PnSeCaCmxQYjr1da97ndWWEmaLHqH6lzu3aJqGMgd06I9PdXbMCDMXnx9mLf3vChdzW1x8rYKpc1pGvU2gAykva8qF5cV5fmdA97vt4W57eJ7tA1xe3LiGsUUHQ6r5bJE5Ftq7DwuzDv5h6Ow+ziSrTY2FI6bb2um1QRj35s1iaW3ZGbySzqyPkergZ978kY8NjCvcdRTGVdLUAGt6iCONq+SumYG9890uR0iVKm9kPPDmjXKM3NyFbWnrLTJlx7zjw8wDfhQ6NZ2Dokw6YDNFM4/QpvLG0zg+vUzwmg0jjjCPqwb31aTxOlO71Jo6TTMubtCI5DWtc9RK42YgbdM++6x9vx5m7v+Poa1zoU2p7fEExbHUIetLmyR19YlXNNOmVhR+YOxddm2ut7BSXGUZmDgeBhyLqXkKzceiMGMljLEAOV558ka5Pu2h3reSO83doX3ue3Sw4OTQOfudYtQ4TTNmEakMyG/HC0QcZogXQ0furg9CqyMZELL+bOnO2G5n4/F7GXlpPC4vXxqWlzeNHy+3nbnWSGlbR8yA+BOemQaDlg5uLh18e+jd8H/0SY1rQ9+OtUpBRyiPpDYHVXibj+l1qxiZUXbB/IXKSxrYvLkMmv6syaPNbJo8f80MnLc5zqI8vQpVLYHkATSRYXmHxbk88NgLeonikJ+Hrg693AFhiDmRtmbb1JkTVhCWTIEe2MN0d4wY+2+WUbL+sZRcroxycWOpq948EaUF6euFKdBZj10AOLlrtzM0K1oRBl/517Bjww9C76afhWfX7LA7y8yM+PAaR135ysUcew+60Gde5iTZWX7gkX/6gHBMegqrVhBrbmEeA6MJTU0KXBo+2e4sA4NAOv65Z7ZpHRX3DOOoPX7MOdlt/v+ifgZTli9a/YbWrtA650gpFi8J3YfeE7bPOEPsLUbgNJrOrLcZJw+G3RY0x0UG8J8dMDdu3FhkXuLTU1j43TiDuz/PrpuBAc6/spZWkAU6jZsMN8hYsmSJ3arBDXwRRm0d6fjhqlVPF4Z8RwmKKpcBkwHxVJ0RA0hfmxWrvzjWKq/96dnd1hlh84695Gf1y/FVKbPkYrlT7jWOycCsMyNPUHErLjX+FpaHkdZp1MNK2U6tpeIt3CvHw4ZzypzEsQeJSdNZQBP9ADMnmV7/+tcb/CNglRLksVUPJ/BH5k3b2URN+csCBekr6VocSnH4n5wvbdDNLLb4WqWE1IfT7KUUnaabt8v8psETtOa0dNttt42Ci23AlB5J6+lHJc4EVGTgtHLy5r1MyZweU22llniSfmBgNxFRGrlFAo888mjC2KAFKtHoP2UmFwN0A4fLJXWjiVt45lYY1/LsPW2528TsHL/hdR0ETcoUnrvRtvOPw/KTn/xkFAgHHXTQmHmnIgM7UzoAVIbxcNzZNTBhzWhowxve8IYiaPhju1o1hX7S3N4uDYIyFdFTLGvKMVEYsBWu6SrgYTTN3keMsRte1lUkGdvi00GPQSklUYf5G+YW2QQ/DvM999wzChqeKcI4j41KUCagagp1AN7xjnckkiqWnPe+T5k6JyUK5NAGvlGUIip+7Kxfl/0fHiaMSYFwqtJcDEiqMpbanzjYNNKFmREM/fLGLdrH18MEWvcO6quTnJVGYu86v/BSSm6hjQt0vvEaV61aZc40fPny5cWwlDY9Tzm7agb2QtJrTx7ma2D3N6PtCIOBOaTghvUTkvbxx58oXgxgugYdTE2hHUuTaNtMqFC/uem72H94N216SY/g9drdYd7y4hohyseFukoYj11OIuyZqn/7298WLzE4o/KUrBsXMu6vxh6m5GpSF9KkxylhjLwPFddQXEOTMrUagTQOZMhwvevRRx+NsIgymEJPaaEjOprh1wk+C8uLL75U1EzHOEh60CSw8Xs2wyT6r7zySqvdhQmeo446qghRGl4MrOCoiYEdielHkwnj+0huPI37m9FmHZyHrAcffLAZwZ2CSRjI9pfTGY/DuSHM03Fzq9nM7bffbvA57MB37rnn1gVmVQxMhSly9t9//1GVuvQCgSmAoxI2QcCb3/zmETB6pz/88MMjoPPwEYFTnqbAAH3DrIk9Ve8nbL+EwUyrmcwDDzxggi7lDWayhx12WC6YabrcBIXAigzsjOtIIt+hhx46qsybb765GJamLQY2kYPL66mhjfxlGThNM+WeHAxkCTn1c+85faTAIWSGmD795OGTaX/uc58bITSA5ZhjjimC5O1yu1oeqsjAeQWdcMIJVnEa94tf/GIUMMWAJnKAoOzrE4BHW+6///4mgnQKFO+XFBMpzfmRRMJSws877puW0Wg3jyvcddddI6oF5osvvrgY5u1yuxhRwVGRgfPy8wQLxpGGO10/1goE+RtlgG3RokUjTpR5O7Zs2fKa2dNuFL6asR7vLyRwaginf7NHE9M0k+H+5Cc/WXx6ynmDFzg4VORtAa5S7nIwV2RgL9RtL2y33Ua++MdpLJ54wWTTep5mstN1sG8rsX7y1xJeC21oJnw2EhZnAiRwagin31wCN0Mf8uUSvr7hxmG64IILDFZvC/EOv6etxq7IwF6B217o0Ucf7c6ifc0115g7m7aYoEkcIBEGdoMfmGFklA2YZm+Dw/6XYjvhp+3N+74Q8a6BboY+/PCHP2yf4E3hZoD5yEc+kktjDrPbab48d0UG9kxZBAJA1qQjDXHZPNn0k+nn+7wpkoCVv7zXEiYTzqm6Ix1l+wq88Ihf1pCuWW4iPfnkk+H66683EFP4v/zlL2fBHrO/agYGgJQh3/3ud4/S9P3+978vPnJH2hToMUM4ARmBi71ghzFt15QiawIQXkeR3kdpEU5XWQZ2GnUJnOaZKHdKO9k6XFfkcBHP0vMTn/hENumY/VUzcIpIB/rww/V1voIBSPblvvnNb1qII9njm83u6ekZcTcY+GgX57ohDG9js8H9lwZPOTpK18Apk/gauBG4SuFLaeazn/1seOaZZ0yIEe7pvv3tbxtYadp64KyagVMEOTBf/OIXi3U7QJdccsm4AlisoA6Hw+a2F5W3n00cUtjb6Gmn7ObDQKqFTvt2sqbQTjNsqV522WWGMIcLG4H33ve+18JTfqoHs1UzMJU4gLgBiGl0drR77rnnwm9+85viyEPayTYOt9sOz8EHH+xOs4nnb2oaPQItTesppcSazG0kjnaeeOKJRkcpvXGwJHuZP40fK5JrYmCvBOb1ys866ywLdj82Cq40jeebbBuY3OBGkeXG49hK8j1tD/M0U3bjMZD2QeoGknQKnUKWFSpp3ES4HS6WkOzt+gf/PJw6r776an1wvNuqT8PrhaciA+dV5sxK5UyZeZTL02H/8Y9/DD/60Y+KYfUCOV75U7hxc7UQA8z4+WMr6b777rPwNL0FTP00HANpH6RuAOETP3mmkVNop52dO3cGHk3M+3D3SSedFNhOcvjdzoO91rCKDJxXmTMrlTE1+MAHPjCiXvIAsB/sGBHZRB5/Xgd4+UP60jZeGMlqOJsI7ClQChjg5Jwbp1P6r5FaaOrlsAbvOuc9bLFkyZJw0003TZgwq8jAjqDUdmR52FVXXRVmzZrlXgOW0dHPTBcjCo50AMjGpf5K6SrFp2XlubkNwmc1MZTl7cLNl/+mTPNgIO1r3ExXeeHRjcfTh3zUbazGy6k2Px+W42huHvMylYeOmNUBV61lVwPDmBg4WzBS2LXPzgTYd9xxR7jooouyyYuMMioiE1Cp0V5XJltNXr8amS3rkUceqamcqcQThwEIP+0f3Okd9LRmXh5NH5xI41IGSt1pGsouFZemw33dddcF3ohLp/IOJzDAvHPmzLFs2TYQWG09VkCJn3FhYMo+55xz7HiiA+rAsdXke8Me5rbDlPpTN/GOENzZOMLqNQceeKDV4fdIKY86ud88EfXVC+9fYv48GkinzylOmAmm6YnzfkzDU7fnz0vncakNwx5xxBHhgx/8oF1S8LKwKYMvYfL5FP9kKGGexuugPA9Ly67VPS4M7EDx8WkQ6H4Hkg9UcyPDAXbbgXW/NzTN72m8rNQ/Hm6+k5vWCyz4YWCHazzqmSpjfDDgfYKOwt1pyax/s/TjfZqmy3PnlUc6Lw/t8hlnnGE32e69995iER6PzUmrp556qrg0I5GXS3zqLhZQh2NcGNiBQvvHtNn9wOVA8x4QWjr2iUsZz4ftSCmVdrzCl0jJkBqH9/nnn28YDGn9U+7SGEhpwrdqsqmZujodpXF5YWl8OTc0jcRlTcvZ5rxP6lI+x3P5Sglvp2dpOIWduuqBJ4V1XBiYAh1Angi54YYb0jqKcRzuZlrBM5psNZUzlRro9ZUro5q4vC/VUzYMzLR6yjQPBlKa8B0OpwOPmz59epHeHHJP43Yang0jjiny5ZdfHt7+9rfbFulxxx0XkLh9fXwAfpjWzVP44Xoga97OTj1xWzAOE17c7vc63fb0Y7Fr/jphqUoADoCwTz311HDjjTfadINGe5wDfOedd9rinxGNvdgjjzwyHH/88cUX+rycvLo8zsvErsf4C5WUi7bQYUTLyWubaBinTHNgwPseaPz7Qt7/3m+pBPb0nsbtbDg30KDXX/7yl3YKr5SCLA8LKEFvueUWm116uXnpCPN4h8PtUumrCR83BqYyAHIgYeLf/e53gXvDWS0daTCE/+pXv7I/12Kj0WYdzakV1hNMy5mSLNFUd++99w58R4b9W8LGw/ixO4edMt3tRDIe9UyVUT8GUoJ3GsqW2t4eSdrpMI1n2v3rX//a/nijGcZlkGZK7H2e1kFeD0/Lwc3Af+GFF4YPfehDxShPmy3DYcmGFzPW4RhXBgaOFEiOKvLt4FNOOWXUOVCH2RvtfiQ2h9T54zZHajyt20xXYHi0fvzxPRxn+B7dNmKPlykyTI+b6VXWkJ+ZQDrIeBo6vNHGO3si621EHRMJP2Vv3bo1twqk56WXXmqHcZ5++mlbCvHhAfrXp8B5GcEJxm1P47jycNa5559/fjjttNM8yQg7pX+PyAvzuLptATbhRmvJIT1VM6TGg6XcPzUyN5z0eXHZMPe77fW4323CdfRzSFJ+SIw7pCnykJjY6sbWoGB+3BqlDTfAP16GskqVVyrc6/a8bnt4KXu80+XVk1cHYW5St4dhe7jbaVzqTuNTtx6PKPaT97XbaV97GHYanrrTNKmbNNCBZnxDuoQ/pEEjBa0p3Iw4DTGOfL2dNfTRj350SFOQUQxbDqnZuKw/i/i0w8qlTfOl7jRPKXeaPuv2PG6n8RAFf2lYKXde/lJpCc9LnxeWV0a5dB7ndl7+vLB606f5S7nTej2N28SVcqf5UjeD+umnnz6ktW1xoIFJnIYbwjBVVtJCOgE/oYYqhMTi+pjKPIyrh3yxjfUyW0ysSZgGMX1FkZROe7yMsQJbKX9efBrmbrdrhaNSPo93u1T52fisv9p8pCuXlzhMLSRSrjwrrM6fvPKzYe53myqzbsJoF7oWllkoUlesWBGOPfbYIm2SJs847ebFNTqsIQzsjSrV8FLhno9DFY8//ri+4fuIrW1YG7OuYR3kzM5tkFpMtkOBoZRJ03qavDCPy9pp2tSdTYc/G5/15+XxsLy0HuZ2qbQen7U9PbbHpWHVuLP5yvmzcdnys/GV/OTXbMcYFcUTClDeBV+2bJltE/nOA+VgKtGiJWqinwln4DyE5IU5TvLismHux8Y48nFzuJxPOPLM7bp16+wPhRjXvDj8jjLDFRou5dFC5pWZhjmhlLKpu5LxvKRL3dl8xGG8fXnxaVypsiBcCBRlHzbXPgkjL0o/2k3ctGnTrArimPUQ5tt/r776qu2HO47cJh1ur5v0Hkdhmm6aP4U92y7P62myfg93m3jXMgMj8HLWmHZxgYFTWEu0W9EjBSZnlDkmyzZPWq+7vcw82/s9L67ZwiacgdMG14KYetPm5c8LAz4PR4rD9Eh1ztoynYfJYX6kPW6O8EGsDAqk9xsxTnzEcb0MAoZpOHDAAXu2pJw5qA8DE0GQ5CEtxIhNPDZE6gfzcRPPN3/IB8GidcdGi4508TBvT9a2SvXj4e4vZ2fTZv15eUulScPBBxfywZvjyuOxMWwj0tZqjOclbequJm+lNKXKKxVeqbzxjG8oA48X4OUQVy6uXP1jyVcuT6m4WsOBuVSecu1J48iPqUb6pPnGy52FP+tP6ykXl6Yr5R5L/rHkKVV/o8P/H3Qjp4y7xjLRAAAAAElFTkSuQmCC" x="911px" y="6253px" filter="url(#filter596)" /> + </g> +</svg> \ No newline at end of file diff --git a/.output/public/_nuxt/entry.BMFnGFc3.css b/.output/public/_nuxt/entry.BMFnGFc3.css new file mode 100644 index 0000000..2260c3c --- /dev/null +++ b/.output/public/_nuxt/entry.BMFnGFc3.css @@ -0,0 +1 @@ +*{box-sizing:border-box;font-family:PingFangSC-Regular,PingFang SC,sans-serif;margin:0;padding:0}.flexflex{display:flex}.flex1{flex:1}.flexcenter{justify-content:center}.flexacenter,.flexcenter{align-items:center;display:flex}.flexjcenter{display:flex;justify-content:center}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body{background-color:#eef2f5}a{text-decoration:none!important}::-webkit-scrollbar{background-color:transparent;width:8px}::-webkit-scrollbar-thumb{background-color:#d7d7d7;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:#666}*{scrollbar-color:#d7d7d7 transparent;scrollbar-width:thin}::-moz-scrollbar-thumb{background-color:#d7d7d7}::-moz-scrollbar-thumb:hover{background-color:#666}header.page-header .box .tab-list .item.pitch{color:#72db86!important}header.page-header .box .tab-list .item.pitch:after{background-color:#72db86!important}.avatar-box{background-color:#f4f8ff;border:1px solid #dce0ea;border-radius:10px;flex-direction:column;height:101px;z-index:100}.avatar-box .avatar-mask{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%;z-index:-1}.avatar-box .avatar-item{color:#333;cursor:pointer;font-size:14px;height:50px}.avatar-box .avatar-item:not(:last-of-type){border-bottom:1px dotted #d7d7d7}.avatar-box .avatar-icon{height:16px;margin-right:5px;width:16px}.el-popover.el-popper.avatar-box-popper{border:none;border-radius:10px;min-width:140px;padding:0} diff --git a/.output/public/_nuxt/error-404.Dt7vALhq.css b/.output/public/_nuxt/error-404.Dt7vALhq.css new file mode 100644 index 0000000..29ab6a1 --- /dev/null +++ b/.output/public/_nuxt/error-404.Dt7vALhq.css @@ -0,0 +1 @@ +.spotlight[data-v-3d4207d3]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-3d4207d3]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-3d4207d3]{background-color:#ffffff4d}.gradient-border[data-v-3d4207d3]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-3d4207d3]{background-color:#1414144d}.gradient-border[data-v-3d4207d3]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-3d4207d3]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-3d4207d3]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-3d4207d3]{position:fixed}.left-0[data-v-3d4207d3]{left:0}.right-0[data-v-3d4207d3]{right:0}.z-10[data-v-3d4207d3]{z-index:10}.z-20[data-v-3d4207d3]{z-index:20}.grid[data-v-3d4207d3]{display:grid}.mb-16[data-v-3d4207d3]{margin-bottom:4rem}.mb-8[data-v-3d4207d3]{margin-bottom:2rem}.max-w-520px[data-v-3d4207d3]{max-width:520px}.min-h-screen[data-v-3d4207d3]{min-height:100vh}.w-full[data-v-3d4207d3]{width:100%}.flex[data-v-3d4207d3]{display:flex}.cursor-pointer[data-v-3d4207d3]{cursor:pointer}.place-content-center[data-v-3d4207d3]{place-content:center}.items-center[data-v-3d4207d3]{align-items:center}.justify-center[data-v-3d4207d3]{justify-content:center}.overflow-hidden[data-v-3d4207d3]{overflow:hidden}.bg-white[data-v-3d4207d3]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-3d4207d3]{padding-left:1rem;padding-right:1rem}.px-8[data-v-3d4207d3]{padding-left:2rem;padding-right:2rem}.py-2[data-v-3d4207d3]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-3d4207d3]{text-align:center}.text-8xl[data-v-3d4207d3]{font-size:6rem;line-height:1}.text-xl[data-v-3d4207d3]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-3d4207d3]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-3d4207d3]{font-weight:300}.font-medium[data-v-3d4207d3]{font-weight:500}.leading-tight[data-v-3d4207d3]{line-height:1.25}.font-sans[data-v-3d4207d3]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-3d4207d3]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-3d4207d3]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-3d4207d3]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-3d4207d3]{padding-left:0;padding-right:0}.sm\:px-6[data-v-3d4207d3]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-3d4207d3]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-3d4207d3]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-3d4207d3]{font-size:1.25rem;line-height:1.75rem}} diff --git a/.output/public/_nuxt/error-500.CCfoYDQF.css b/.output/public/_nuxt/error-500.CCfoYDQF.css new file mode 100644 index 0000000..88b6b37 --- /dev/null +++ b/.output/public/_nuxt/error-500.CCfoYDQF.css @@ -0,0 +1 @@ +.spotlight[data-v-fd2e3e85]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-fd2e3e85]{position:fixed}.-bottom-1\/2[data-v-fd2e3e85]{bottom:-50%}.left-0[data-v-fd2e3e85]{left:0}.right-0[data-v-fd2e3e85]{right:0}.grid[data-v-fd2e3e85]{display:grid}.mb-16[data-v-fd2e3e85]{margin-bottom:4rem}.mb-8[data-v-fd2e3e85]{margin-bottom:2rem}.h-1\/2[data-v-fd2e3e85]{height:50%}.max-w-520px[data-v-fd2e3e85]{max-width:520px}.min-h-screen[data-v-fd2e3e85]{min-height:100vh}.place-content-center[data-v-fd2e3e85]{place-content:center}.overflow-hidden[data-v-fd2e3e85]{overflow:hidden}.bg-white[data-v-fd2e3e85]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-fd2e3e85]{padding-left:2rem;padding-right:2rem}.text-center[data-v-fd2e3e85]{text-align:center}.text-8xl[data-v-fd2e3e85]{font-size:6rem;line-height:1}.text-xl[data-v-fd2e3e85]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-fd2e3e85]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-fd2e3e85]{font-weight:300}.font-medium[data-v-fd2e3e85]{font-weight:500}.leading-tight[data-v-fd2e3e85]{line-height:1.25}.font-sans[data-v-fd2e3e85]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-fd2e3e85]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-fd2e3e85]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-fd2e3e85]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\:px-0[data-v-fd2e3e85]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-fd2e3e85]{font-size:2.25rem;line-height:2.5rem}} diff --git a/.output/public/_nuxt/ijtA8km9.js b/.output/public/_nuxt/ijtA8km9.js new file mode 100644 index 0000000..406db7e --- /dev/null +++ b/.output/public/_nuxt/ijtA8km9.js @@ -0,0 +1 @@ +import{t as E,v as w,Z as Fe,x as d,y as R,$ as ue,d as X,H as he,z as K,h as G,C as P,o as ae,X as Ie,e as Xe,a0 as We,D as V,j as z,J as j,K as N,E as n,A as U,I as le,a1 as Ze,V as Ne,G as qe,a2 as Ae,M as ie,T as ve,a3 as Qe,a4 as Je,a5 as et,a6 as _e,r as _,a7 as tt,a8 as Ee,S as re,a9 as ot,aa as $e,P as ce,L as st,ab as lt,ac as Oe,F as Re,ad as nt,ae as at,af as At,ag as Ye,ah as Ue,ai as it,u as Pe,R as rt,B as me,N as pe,O as Ve,W as te,aj as ct,Q as ut,ak as dt}from"./C0eoOjsX.js";import{_ as be}from"./DlAUqK2U.js";import{b as xe,d as ne,i as ft,a as ge,_ as He,F as vt,G as mt,I as pt,J as gt,U as je,K as yt,L as Se,N as ye,O as F,P as q,Q as Ct,R as ht,S as bt,V as xt,W as wt,w as Lt,X as kt,g as _t,u as Et,j as Ce,Y as St,e as Te,Z as Tt,$ as Mt,a0 as Bt,a1 as Dt}from"./BnReMd0k.js";const de="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-924%20-6237%20)'%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23fddf6d'%20stroke='none'%20/%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e",fe="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-963%20-6237%20)'%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23d7d7d7'%20stroke='none'%20/%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e",It=""+new URL("empty-icon.uRjiKTvo.svg",import.meta.url).href,Nt={class:"empty-box-list flexcenter"},$t={class:"empty-hint"},Ot={__name:"Empty",props:{hint:String},setup(e){return(t,o)=>(w(),E("div",Nt,[o[0]||(o[0]=Fe('<div class="dot-list flexacenter" data-v-6c7355f5><img class="item" src="'+de+'" data-v-6c7355f5><img class="item" src="'+de+'" data-v-6c7355f5><img class="item" src="'+de+'" data-v-6c7355f5><img class="item" src="'+fe+'" data-v-6c7355f5><img class="item" src="'+fe+'" data-v-6c7355f5><img class="item" src="'+fe+'" data-v-6c7355f5></div><img class="empty-icon" src="'+It+'" data-v-6c7355f5>',2)),d("div",$t,R(e.hint||"暂无内容"),1)]))}},Rt=be(Ot,[["__scopeId","data-v-6c7355f5"]]),Ke=e=>{if(!e)return{onClick:ue,onMousedown:ue,onMouseup:ue};let t=!1,o=!1;return{onClick:A=>{t&&o&&e(A),t=o=!1},onMousedown:A=>{t=A.target===A.currentTarget},onMouseup:A=>{o=A.target===A.currentTarget}}};var oe=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(oe||{});const Yt=xe({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:ne([String,Array,Object])},zIndex:{type:ne([String,Number])}}),Ut={click:e=>e instanceof MouseEvent},Pt="overlay";var Vt=X({name:"ElOverlay",props:Yt,emits:Ut,setup(e,{slots:t,emit:o}){const s=he(Pt),u=f=>{o("click",f)},{onClick:a,onMousedown:A,onMouseup:v}=Ke(e.customMaskEvent?void 0:u);return()=>e.mask?K("div",{class:[s.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:a,onMousedown:A,onMouseup:v},[P(t,"default")],oe.STYLE|oe.CLASS|oe.PROPS,["onClick","onMouseup","onMousedown"]):G("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[P(t,"default")])}});const Ht=Vt,ze=Symbol("dialogInjectionKey"),Ge=xe({center:Boolean,alignCenter:Boolean,closeIcon:{type:ft},draggable:Boolean,overflow:Boolean,fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),jt={close:()=>!0},Kt=(e,t,o,s)=>{let u={offsetX:0,offsetY:0};const a=p=>{const h=p.clientX,b=p.clientY,{offsetX:i,offsetY:m}=u,g=e.value.getBoundingClientRect(),T=g.left,y=g.top,M=g.width,L=g.height,I=document.documentElement.clientWidth,$=document.documentElement.clientHeight,x=-T+i,C=-y+m,B=I-T-M+i,k=$-y-L+m,O=l=>{let r=i+l.clientX-h,D=m+l.clientY-b;s!=null&&s.value||(r=Math.min(Math.max(r,x),B),D=Math.min(Math.max(D,C),k)),u={offsetX:r,offsetY:D},e.value&&(e.value.style.transform=`translate(${ge(r)}, ${ge(D)})`)},Y=()=>{document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",Y)};document.addEventListener("mousemove",O),document.addEventListener("mouseup",Y)},A=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",a)},v=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",a)},f=()=>{u={offsetX:0,offsetY:0},e.value&&(e.value.style.transform="none")};return ae(()=>{Ie(()=>{o.value?A():v()})}),Xe(()=>{v()}),{resetPosition:f}},zt=(...e)=>t=>{e.forEach(o=>{We(o)?o(t):o.value=t})},Gt=X({name:"ElDialogContent"}),Ft=X({...Gt,props:Ge,emits:jt,setup(e,{expose:t}){const o=e,{t:s}=vt(),{Close:u}=pt,{dialogRef:a,headerRef:A,bodyId:v,ns:f,style:p}=V(ze),{focusTrapRef:h}=V(mt),b=z(()=>[f.b(),f.is("fullscreen",o.fullscreen),f.is("draggable",o.draggable),f.is("align-center",o.alignCenter),{[f.m("center")]:o.center}]),i=zt(h,a),m=z(()=>o.draggable),g=z(()=>o.overflow),{resetPosition:T}=Kt(a,A,m,g);return t({resetPosition:T}),(y,M)=>(w(),E("div",{ref:n(i),class:N(n(b)),style:Ne(n(p)),tabindex:"-1"},[d("header",{ref_key:"headerRef",ref:A,class:N([n(f).e("header"),y.headerClass,{"show-close":y.showClose}])},[P(y.$slots,"header",{},()=>[d("span",{role:"heading","aria-level":y.ariaLevel,class:N(n(f).e("title"))},R(y.title),11,["aria-level"])]),y.showClose?(w(),E("button",{key:0,"aria-label":n(s)("el.dialog.close"),class:N(n(f).e("headerbtn")),type:"button",onClick:L=>y.$emit("close")},[K(n(gt),{class:N(n(f).e("close"))},{default:U(()=>[(w(),le(Ze(y.closeIcon||n(u))))]),_:1},8,["class"])],10,["aria-label","onClick"])):j("v-if",!0)],2),d("div",{id:n(v),class:N([n(f).e("body"),y.bodyClass])},[P(y.$slots,"default")],10,["id"]),y.$slots.footer?(w(),E("footer",{key:0,class:N([n(f).e("footer"),y.footerClass])},[P(y.$slots,"footer")],2)):j("v-if",!0)],6))}});var Xt=He(Ft,[["__file","dialog-content.vue"]]);const Wt=xe({...Ge,appendToBody:Boolean,appendTo:{type:ne([String,Object]),default:"body"},beforeClose:{type:ne(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:"2"}}),Zt={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[je]:e=>qe(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0};let J;const qt=e=>{var t;if(!Ae)return 0;if(J!==void 0)return J;const o=document.createElement("div");o.className=`${e}-scrollbar__wrap`,o.style.visibility="hidden",o.style.width="100px",o.style.position="absolute",o.style.top="-9999px",document.body.appendChild(o);const s=o.offsetWidth;o.style.overflow="scroll";const u=document.createElement("div");u.style.width="100%",o.appendChild(u);const a=u.offsetWidth;return(t=o.parentNode)==null||t.removeChild(o),J=s-a,J},Qt=(e,t={})=>{ie(e)||yt("[useLockscreen]","You need to pass a ref param to this function");const o=t.ns||he("popup"),s=z(()=>o.bm("parent","hidden"));if(!Ae||Se(document.body,s.value))return;let u=0,a=!1,A="0";const v=()=>{setTimeout(()=>{typeof document>"u"||a&&document&&(document.body.style.width=A,q(document.body,s.value))},200)};ve(e,f=>{if(!f){v();return}a=!Se(document.body,s.value),a&&(A=document.body.style.width,ye(document.body,s.value)),u=qt(o.namespace.value);const p=document.documentElement.clientHeight<document.body.scrollHeight,h=F(document.body,"overflowY");u>0&&(p||h==="scroll")&&a&&(document.body.style.width=`calc(100% - ${u}px)`)}),Qe(()=>v())},Jt=(e,t)=>{var o;const u=Je().emit,{nextZIndex:a}=et();let A="";const v=_e(),f=_e(),p=_(!1),h=_(!1),b=_(!1),i=_((o=e.zIndex)!=null?o:a());let m,g;const T=Ct("namespace",tt),y=z(()=>{const S={},c=`--${T.value}-dialog`;return e.fullscreen||(e.top&&(S[`${c}-margin-top`]=e.top),e.width&&(S[`${c}-width`]=ge(e.width))),S}),M=z(()=>e.alignCenter?{display:"flex"}:{});function L(){u("opened")}function I(){u("closed"),u(je,!1),e.destroyOnClose&&(b.value=!1)}function $(){u("close")}function x(){g==null||g(),m==null||m(),e.openDelay&&e.openDelay>0?{stop:m}=Ee(()=>O(),e.openDelay):O()}function C(){m==null||m(),g==null||g(),e.closeDelay&&e.closeDelay>0?{stop:g}=Ee(()=>Y(),e.closeDelay):Y()}function B(){function S(c){c||(h.value=!0,p.value=!1)}e.beforeClose?e.beforeClose(S):C()}function k(){e.closeOnClickModal&&B()}function O(){Ae&&(p.value=!0)}function Y(){p.value=!1}function l(){u("openAutoFocus")}function r(){u("closeAutoFocus")}function D(S){var c;((c=S.detail)==null?void 0:c.focusReason)==="pointer"&&S.preventDefault()}e.lockScroll&&Qt(p);function H(){e.closeOnPressEscape&&B()}return ve(()=>e.modelValue,S=>{S?(h.value=!1,x(),b.value=!0,i.value=ht(e.zIndex)?a():i.value++,re(()=>{u("open"),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):p.value&&C()}),ve(()=>e.fullscreen,S=>{t.value&&(S?(A=t.value.style.transform,t.value.style.transform=""):t.value.style.transform=A)}),ae(()=>{e.modelValue&&(p.value=!0,b.value=!0,x())}),{afterEnter:L,afterLeave:I,beforeLeave:$,handleClose:B,onModalClick:k,close:C,doClose:Y,onOpenAutoFocus:l,onCloseAutoFocus:r,onCloseRequested:H,onFocusoutPrevented:D,titleId:v,bodyId:f,closed:h,style:y,overlayDialogStyle:M,rendered:b,visible:p,zIndex:i}},eo=X({name:"ElDialog",inheritAttrs:!1}),to=X({...eo,props:Wt,emits:Zt,setup(e,{expose:t}){const o=e,s=ot();bt({scope:"el-dialog",from:"the title slot",replacement:"the header slot",version:"3.0.0",ref:"https://element-plus.org/en-US/component/dialog.html#slots"},z(()=>!!s.title));const u=he("dialog"),a=_(),A=_(),v=_(),{visible:f,titleId:p,bodyId:h,style:b,overlayDialogStyle:i,rendered:m,zIndex:g,afterEnter:T,afterLeave:y,beforeLeave:M,handleClose:L,onModalClick:I,onOpenAutoFocus:$,onCloseAutoFocus:x,onCloseRequested:C,onFocusoutPrevented:B}=Jt(o,a);Re(ze,{dialogRef:a,headerRef:A,bodyId:h,ns:u,rendered:m,style:b});const k=Ke(I),O=z(()=>o.draggable&&!o.fullscreen);return t({visible:f,dialogContentRef:v,resetPosition:()=>{var l;(l=v.value)==null||l.resetPosition()}}),(l,r)=>(w(),le(n(wt),{to:l.appendTo,disabled:l.appendTo!=="body"?!1:!l.appendToBody},{default:U(()=>[K($e,{name:"dialog-fade",onAfterEnter:n(T),onAfterLeave:n(y),onBeforeLeave:n(M),persisted:""},{default:U(()=>[ce(K(n(Ht),{"custom-mask-event":"",mask:l.modal,"overlay-class":l.modalClass,"z-index":n(g)},{default:U(()=>[d("div",{role:"dialog","aria-modal":"true","aria-label":l.title||void 0,"aria-labelledby":l.title?void 0:n(p),"aria-describedby":n(h),class:N(`${n(u).namespace.value}-overlay-dialog`),style:Ne(n(i)),onClick:n(k).onClick,onMousedown:n(k).onMousedown,onMouseup:n(k).onMouseup},[K(n(xt),{loop:"",trapped:n(f),"focus-start-el":"container",onFocusAfterTrapped:n($),onFocusAfterReleased:n(x),onFocusoutPrevented:n(B),onReleaseRequested:n(C)},{default:U(()=>[n(m)?(w(),le(Xt,st({key:0,ref_key:"dialogContentRef",ref:v},l.$attrs,{center:l.center,"align-center":l.alignCenter,"close-icon":l.closeIcon,draggable:n(O),overflow:l.overflow,fullscreen:l.fullscreen,"header-class":l.headerClass,"body-class":l.bodyClass,"footer-class":l.footerClass,"show-close":l.showClose,title:l.title,"aria-level":l.headerAriaLevel,onClose:n(L)}),lt({header:U(()=>[l.$slots.title?P(l.$slots,"title",{key:1}):P(l.$slots,"header",{key:0,close:n(L),titleId:n(p),titleClass:n(u).e("title")})]),default:U(()=>[P(l.$slots,"default")]),_:2},[l.$slots.footer?{name:"footer",fn:U(()=>[P(l.$slots,"footer")])}:void 0]),1040,["center","align-center","close-icon","draggable","overflow","fullscreen","header-class","body-class","footer-class","show-close","title","aria-level","onClose"])):j("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,["aria-label","aria-labelledby","aria-describedby","onClick","onMousedown","onMouseup"])]),_:3},8,["mask","overlay-class","z-index"]),[[Oe,n(f)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])]),_:3},8,["to","disabled"]))}});var oo=He(to,[["__file","dialog.vue"]]);const so=Lt(oo);function lo(e){let t;const o=_(!1),s=nt({...e,originalPosition:"",originalOverflow:"",visible:!1});function u(i){s.text=i}function a(){const i=s.parent,m=b.ns;if(!i.vLoadingAddClassList){let g=i.getAttribute("loading-number");g=Number.parseInt(g)-1,g?i.setAttribute("loading-number",g.toString()):(q(i,m.bm("parent","relative")),i.removeAttribute("loading-number")),q(i,m.bm("parent","hidden"))}A(),h.unmount()}function A(){var i,m;(m=(i=b.$el)==null?void 0:i.parentNode)==null||m.removeChild(b.$el)}function v(){var i;e.beforeClose&&!e.beforeClose()||(o.value=!0,clearTimeout(t),t=setTimeout(f,400),s.visible=!1,(i=e.closed)==null||i.call(e))}function f(){if(!o.value)return;const i=s.parent;o.value=!1,i.vLoadingAddClassList=void 0,a()}const p=X({name:"ElLoading",setup(i,{expose:m}){const{ns:g,zIndex:T}=kt("loading");return m({ns:g,zIndex:T}),()=>{const y=s.spinner||s.svg,M=G("svg",{class:"circular",viewBox:s.svgViewBox?s.svgViewBox:"0 0 50 50",...y?{innerHTML:y}:{}},[G("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),L=s.text?G("p",{class:g.b("text")},[s.text]):void 0;return G($e,{name:g.b("fade"),onAfterLeave:f},{default:U(()=>[ce(K("div",{style:{backgroundColor:s.background||""},class:[g.b("mask"),s.customClass,s.fullscreen?"is-fullscreen":""]},[G("div",{class:g.b("spinner")},[M,L])]),[[Oe,s.visible]])])})}}}),h=at(p),b=h.mount(document.createElement("div"));return{...At(s),setText:u,removeElLoadingChild:A,close:v,handleAfterLeave:f,vm:b,get $el(){return b.$el}}}let ee;const no=function(e={}){if(!Ae)return;const t=ao(e);if(t.fullscreen&&ee)return ee;const o=lo({...t,closed:()=>{var u;(u=t.closed)==null||u.call(t),t.fullscreen&&(ee=void 0)}});Ao(t,t.parent,o),Me(t,t.parent,o),t.parent.vLoadingAddClassList=()=>Me(t,t.parent,o);let s=t.parent.getAttribute("loading-number");return s?s=`${Number.parseInt(s)+1}`:s="1",t.parent.setAttribute("loading-number",s),t.parent.appendChild(o.$el),re(()=>o.visible.value=t.visible),t.fullscreen&&(ee=o),o},ao=e=>{var t,o,s,u;let a;return Ye(e.target)?a=(t=document.querySelector(e.target))!=null?t:document.body:a=e.target||document.body,{parent:a===document.body||e.body?document.body:a,background:e.background||"",svg:e.svg||"",svgViewBox:e.svgViewBox||"",spinner:e.spinner||!1,text:e.text||"",fullscreen:a===document.body&&((o=e.fullscreen)!=null?o:!0),lock:(s=e.lock)!=null?s:!1,customClass:e.customClass||"",visible:(u=e.visible)!=null?u:!0,beforeClose:e.beforeClose,closed:e.closed,target:a}},Ao=async(e,t,o)=>{const{nextZIndex:s}=o.vm.zIndex||o.vm._.exposed.zIndex,u={};if(e.fullscreen)o.originalPosition.value=F(document.body,"position"),o.originalOverflow.value=F(document.body,"overflow"),u.zIndex=s();else if(e.parent===document.body){o.originalPosition.value=F(document.body,"position"),await re();for(const a of["top","left"]){const A=a==="top"?"scrollTop":"scrollLeft";u[a]=`${e.target.getBoundingClientRect()[a]+document.body[A]+document.documentElement[A]-Number.parseInt(F(document.body,`margin-${a}`),10)}px`}for(const a of["height","width"])u[a]=`${e.target.getBoundingClientRect()[a]}px`}else o.originalPosition.value=F(t,"position");for(const[a,A]of Object.entries(u))o.$el.style[a]=A},Me=(e,t,o)=>{const s=o.vm.ns||o.vm._.exposed.ns;["absolute","fixed","sticky"].includes(o.originalPosition.value)?q(t,s.bm("parent","relative")):ye(t,s.bm("parent","relative")),e.fullscreen&&e.lock?ye(t,s.bm("parent","hidden")):q(t,s.bm("parent","hidden"))},se=Symbol("ElLoading"),Be=(e,t)=>{var o,s,u,a;const A=t.instance,v=i=>Ue(t.value)?t.value[i]:void 0,f=i=>{const m=Ye(i)&&(A==null?void 0:A[i])||i;return m&&_(m)},p=i=>f(v(i)||e.getAttribute(`element-loading-${it(i)}`)),h=(o=v("fullscreen"))!=null?o:t.modifiers.fullscreen,b={text:p("text"),svg:p("svg"),svgViewBox:p("svgViewBox"),spinner:p("spinner"),background:p("background"),customClass:p("customClass"),fullscreen:h,target:(s=v("target"))!=null?s:h?void 0:e,body:(u=v("body"))!=null?u:t.modifiers.body,lock:(a=v("lock"))!=null?a:t.modifiers.lock};e[se]={options:b,instance:no(b)}},io=(e,t)=>{for(const o of Object.keys(t))ie(t[o])&&(t[o].value=e[o])},ro={mounted(e,t){t.value&&Be(e,t)},updated(e,t){const o=e[se];t.oldValue!==t.value&&(t.value&&!t.oldValue?Be(e,t):t.value&&t.oldValue?Ue(t.value)&&io(t.value,o.options):o==null||o.instance.close())},unmounted(e){var t;(t=e[se])==null||t.instance.close(),e[se]=null}},co=""+new URL("delete-icon.CnXBlQyp.svg",import.meta.url).href,uo="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='5px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-33%20-8%20)'%3e%3cpath%20d='M%207.91983967935872%200.515463917525773%20C%207.97327989311957%200.572737686139747%208%200.638602520045818%208%200.713058419243986%20C%208%200.787514318442153%207.97327989311957%200.853379152348224%207.91983967935872%200.910652920962199%20L%204.18436873747495%204.91408934707904%20C%204.1309285237141%204.97136311569301%204.06947227788911%205%204%205%20C%203.93052772211089%205%203.86907147628591%204.97136311569301%203.81563126252505%204.91408934707904%20L%200.0801603206412826%200.910652920962199%20C%200.0267201068804276%200.853379152348224%200%200.787514318442153%200%200.713058419243986%20C%200%200.638602520045818%200.0267201068804276%200.572737686139747%200.0801603206412826%200.515463917525773%20L%200.480961923847695%200.0859106529209624%20C%200.534402137608551%200.0286368843069867%200.595858383433534%200%200.665330661322645%200%20C%200.734802939211757%200%200.79625918503674%200.0286368843069867%200.849699398797595%200.0859106529209624%20L%204%203.46219931271478%20L%207.1503006012024%200.0859106529209624%20C%207.20374081496326%200.0286368843069867%207.26519706078824%200%207.33466933867735%200%20C%207.40414161656647%200%207.46559786239145%200.0286368843069867%207.51903807615231%200.0859106529209624%20L%207.91983967935872%200.515463917525773%20Z%20'%20fill-rule='nonzero'%20fill='%23aaaaaa'%20stroke='none'%20transform='matrix(1%200%200%201%2033%208%20)'%20/%3e%3c/g%3e%3c/svg%3e",De="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='11px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-703%20-4235%20)'%3e%3cpath%20d='M%2010.8012903225806%201.1043771043771%20C%2010.9337634408602%201.2300785634119%2011%201.38271604938272%2011%201.56228956228956%20C%2011%201.74186307519641%2010.9337634408602%201.89450056116723%2010.8012903225806%202.02020202020202%20L%205.66322580645161%206.8956228956229%20L%204.69806451612903%207.81144781144781%20C%204.56559139784946%207.9371492704826%204.4047311827957%208%204.21548387096774%208%20C%204.02623655913979%208%203.86537634408602%207.9371492704826%203.73290322580645%207.81144781144781%20L%202.76774193548387%206.8956228956229%20L%200.198709677419355%204.45791245791246%20C%200.066236559139785%204.33221099887766%200%204.17957351290685%200%204%20C%200%203.82042648709315%200.066236559139785%203.66778900112233%200.198709677419355%203.54208754208754%20L%201.16387096774194%202.62626262626263%20C%201.29634408602151%202.50056116722783%201.45720430107527%202.43771043771044%201.64645161290323%202.43771043771044%20C%201.83569892473118%202.43771043771044%201.99655913978495%202.50056116722783%202.12903225806452%202.62626262626263%20L%204.21548387096774%204.61279461279461%20L%208.87096774193548%200.188552188552189%20C%209.00344086021505%200.0628507295173959%209.16430107526882%200%209.35354838709677%200%20C%209.54279569892473%200%209.7036559139785%200.0628507295173959%209.83612903225806%200.188552188552189%20L%2010.8012903225806%201.1043771043771%20Z%20'%20fill-rule='nonzero'%20fill='%2372db86'%20stroke='none'%20transform='matrix(1%200%200%201%20703%204235%20)'%20/%3e%3c/g%3e%3c/svg%3e",fo={class:"box flexflex"},vo={class:"tba-list flexcenter"},mo={class:"value"},po={class:"value"},go={key:0,class:"empty-box flexcenter"},yo={key:1,class:"empty-box flexcenter"},Co=["onClick"],ho={class:"left flexflex"},bo={class:"name"},xo={class:"info-box flexflex"},wo={key:0,class:"info-item flexacenter"},Lo={class:"info-item-value"},ko={key:1,class:"info-item flexacenter"},_o={class:"info-item-value"},Eo={class:"text-box flexacenter"},So={key:0,class:"text-time"},To={class:"text-message flex1 ellipsis"},Mo={class:"operate-area flexacenter"},Bo=["onClick"],Do=["onClick"],Io={class:"text"},No=["onClick"],$o=["onClick"],Oo={__name:"MyPopup",setup(e,{expose:t}){let o=V("count"),s=_(!1);Pe();const u=rt();let a=_("");ae(()=>{});let A=_([]),v=[],f=1,p=_(!1),h=_(0);const b=()=>{f==0||p.value||(p.value=!0,Mt({page:f}).then(l=>{if(l.code!=200)return;let r=l.data;v=v.concat(r.data),A.value=v,v.length<r.count?f++:f=0,h.value=r.count}).finally(()=>p.value=!1))};let i=[],m=1,g=_(!1);const T=()=>{m==0&&!g.value||(g.value=!0,Bt({page:m}).then(l=>{if(l.code!=200)return;let r=l.data;i=i.concat(r.data),i.length<r.count?m++:m=0,A.value=i}).finally(()=>g.value=!1))},y=(l,r)=>{r&&(v=[],f=1,h.value=0),l=="collect"&&v.length==0?b():l=="mj"&&i.length==0&&T(),l=="collect"?A.value=v:l=="mj"&&(A.value=i),a.value=l,a.value&&(s.value=!0)},M=l=>{i.forEach(r=>{r.anonymousState=!1}),i[l].anonymousState=!0,A.value=[...i]},L=()=>{i.forEach(l=>{l.anonymousState=!1}),A.value=[...i]},I=(l,r,D)=>{Tt({token:l,anonymous:D}).then(H=>{H.code==200&&(i[r].anonymous=D,A.value=[...i],L(),Te.success(H.message))})},$=l=>{const r=l.target;r.scrollHeight-r.scrollTop===r.clientHeight&&(a.value=="collect"&&b(),a.value=="mj"&&T())};let x=V("clearAllData")||null,C=V("getDetails")||null;const B=l=>{(u.path||"").indexOf("/details/")!=-1&&(x(),re(()=>C())),Ce(`/details/${l}`,!1),s.value=!1,a.value=""};t({cutMy:y});const k=()=>{s.value=!1},O=V("unbookmarkSamePage"),Y=(l,r,D)=>{const H=u.params.id;St({token:l}).then(S=>{if(S.code!=200){Te.error(S.message);return}v.splice(r,1),A.value=[...v],o.value.collect--,h.value--,H==D&&O()})};return(l,r)=>{const D=Rt,H=so,S=ro;return w(),le(H,{modelValue:n(s),"onUpdate:modelValue":r[4]||(r[4]=c=>ie(s)?s.value=c:s=c),width:"750px","align-center":"",class:"dialog-box"},{default:U(()=>[d("div",fo,[d("img",{class:"cross",src:_t,alt:"",onClick:r[0]||(r[0]=c=>k())}),d("div",vo,[d("div",{class:N(["tab-item flexcenter",{pitch:n(a)=="collect"}]),onClick:r[1]||(r[1]=c=>y("collect"))},[r[5]||(r[5]=me(" 我的收藏 ")),d("div",mo,R(n(h)>0?n(h):n(o).collect),1)],2),d("div",{class:N(["tab-item flexcenter",{pitch:n(a)=="mj"}]),onClick:r[2]||(r[2]=c=>y("mj"))},[r[6]||(r[6]=me(" 我的面经 ")),d("div",po,R(n(o).publish),1)],2)]),n(a)=="collect"&&n(p)||n(a)=="mj"&&n(g)?ce((w(),E("div",go,null,512)),[[S,!0]]):n(A).length==0?(w(),E("div",yo,[K(D)])):(w(),E("div",{key:2,class:"content",onScroll:$},[(w(!0),E(pe,null,Ve(n(A),(c,W)=>{var we,Le,ke;return w(),E("div",{class:"item flexflex",key:W,onClick:Q=>{var Z;return B(c.uniqid||((Z=c==null?void 0:c.data)==null?void 0:Z.uniqid))}},[d("div",ho,[d("div",bo,R(c.school||c.data.school),1),d("div",xo,[c.profession||(we=c==null?void 0:c.data)!=null&&we.profession?(w(),E("div",wo,[r[7]||(r[7]=d("div",{class:"info-item-name"},"专业",-1)),d("div",Lo,R(c.profession||c.data.profession),1)])):j("",!0),c.project||(Le=c==null?void 0:c.data)!=null&&Le.project?(w(),E("div",ko,[r[8]||(r[8]=d("div",{class:"info-item-name"},"项目",-1)),d("div",_o,R(c.project||((ke=c==null?void 0:c.data)==null?void 0:ke.project)),1)])):j("",!0)]),d("div",Eo,[c!=null&&c.releasetime?(w(),E("div",So,R(("handleDate"in l?l.handleDate:n(Et))(c==null?void 0:c.releasetime))+"发布",1)):j("",!0),d("div",To,R(c.message||c.data.message),1)])]),d("div",Mo,[n(a)=="collect"?(w(),E("img",{key:0,class:"delete-icon",onClick:te(Q=>{var Z;return Y(c.token,W,(Z=c==null?void 0:c.data)==null?void 0:Z.uniqid)},["stop"]),src:co},null,8,Bo)):(w(),E("div",{key:1,class:"anonymous-box flexacenter",onClick:te(Q=>M(W),["stop"])},[d("div",Io,R(c.anonymous==1?"匿名":"公开"),1),r[11]||(r[11]=d("img",{class:"arrow-icon",src:uo},null,-1)),c.anonymousState?(w(),E("div",{key:0,class:"state-popup flexflex",onClick:r[3]||(r[3]=te(()=>{},["stop"]))},[d("div",{class:N(["state-popup-item flexacenter flex1",{pitch:c.anonymous==0}]),onClick:Q=>I(c.token,W,0)},r[9]||(r[9]=[d("div",{class:""},"公开发表",-1),d("img",{class:"state-popup-icon",src:De},null,-1)]),10,No),d("div",{class:N(["state-popup-item flexacenter flex1",{pitch:c.anonymous==1}]),onClick:Q=>I(c.token,W,1)},r[10]||(r[10]=[d("div",{class:""},"匿名发表",-1),d("img",{class:"state-popup-icon",src:De},null,-1)]),10,$o)])):j("",!0)],8,Do))])],8,Co)}),128))],32))])]),_:1},8,["modelValue"])}}},Ro=be(Oo,[["__scopeId","data-v-a050dcc5"]]),Yo=""+new URL("logo-icon.C2xYDAoO.png",import.meta.url).href,Uo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAkBQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03KISwAAAL90Uk5TAA9Ne6PBzN3Qxa2GWxwTbMb82oQnIJH3xA2O+9yfdlNENUFMa5PLtSNA49l5EGHA9m4BUgIzr64MA5nybUXbyhXOJaXWkLMJ/sgLYKoEoir1uwZ/4vEZ/TsR5aFYK130FKCNSyRmdLe2czHwMuw2G/oFXteFVLx4YqZlrKtanIcp2M1cGozz5GMiGPmS6+pDOfidX+nTL+Ys4H25HQp13yYImB/UgEJvsrrVeqhpx2ipLTQHEpfeg+cu7j9PVmTFnY/3AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAxFJREFUWMPtV/k7VVEUPc/QMxQqUppkKGWI50bPEBqfR+QpLw00oEGZSjRKESGlVCTNc5rncf1r7Xsf38cdj9dvfe2f7l37rHXO3Wefs/dl7L9pmsnD08t7itnH189/6rRJswMCg6ZjnM2YGTwZesisUChstgcvfU7YXIkxb/6CheGLIiKjohe7VrMkhou/dJk4ODYuZBwWn7BcBBOTLMZ8T3E2n2RBjq9IESVSVxrQrWk0Kj3DqubLXEW+rGxdvuBFY3JWawVnDXnXBugJrKMR6zfofJ8NyLVr+/OIn79Rb4YoGlGg6S3cBBQ59INUTAoJGj4LbdXmAH0+s6QCW0o0P8C5lRlZ6TZgu6rHSruUZshnbAfNs1PNUQaU7+IQYEHAbjXcF9jDw2d7gdB4JVxhg43vsLBYoFKJVgHefHxxK/cp0f3AAU6BgxQtRbpYqoFDnALCYaBGDtYCdfWcAqwIaJBjEcARXj6LBo7KsUbgGLdAk0rKNQMp3AKBwHE5dgI4yS1QCZySY6dV91bDKGfOyDHKzyxugRYgTI6dBaq5BfyADDnmoGLCXQFbgUwFeA44z8lvs8GZrUDb9W7LiUZXV44SDQcu2PkEKJNblKi1A+jk4l90Amp3mj9VVCuPAFW/XDW8K5FvCcHdQLKqpwe4ZFQWXBHwUa/ypb1UGA0bgCTAdlnD10Blq8qAf6UPuKrpLSD1a7r8in5quEya7jnX6WIr0+HfuEnZMqAzoHaQ1nBL0HJH0s3bl8n0rMJMcRi6reobbqf2AncMgtRFhwrlTcqkFhrvSr1e/z0DhfsPxGG9xQ8noKbOR2MN52CtgQLzkKZy+j5+4mokTDVPnyWKUPpzSeGFYbYNv+wdna28wzxYPfrc3ZMtjEhPucan1v7qtaxTbo0TV+4Ykl6GHIYKjMW8GYmtc5E7/KrGSqHdJfxW4FAgqw95936g5MN46KMrmJ/4BNSs7bOk8MV9hZivkgJvM6Fi376LArZm9xV+SP8zdYXuK/yUfml+uS/A8uhY5XAWAXX7bc6P/xv+P2Z/AEq6ab7rDxu3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTA4LTE4VDE1OjIwOjM1KzA4OjAwHpcN9AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wOC0xOFQxNToyMDozNSswODowMG/KtUgAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2kyYzV4MjJydTJsL3NvdXN1by5zdmfTYjJrAAAAAElFTkSuQmCC",Po="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='14px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1460%20-103%20)'%3e%3cpath%20d='M%2010.91015625%207.99348958333333%20C%2011.0256076388889%207.87803819444444%2011.0833333333333%207.74131944444444%2011.0833333333333%207.58333333333333%20L%2011.0833333333333%206.41666666666667%20C%2011.0833333333333%206.25868055555555%2011.0256076388889%206.12196180555555%2010.91015625%206.00651041666667%20C%2010.7947048611111%205.89105902777778%2010.6579861111111%205.83333333333333%2010.5%205.83333333333333%20L%208.16666666666667%205.83333333333333%20L%208.16666666666667%203.5%20C%208.16666666666667%203.34201388888889%208.10894097222222%203.20529513888889%207.99348958333333%203.08984375%20C%207.87803819444445%202.97439236111111%207.74131944444445%202.91666666666667%207.58333333333333%202.91666666666667%20L%206.41666666666667%202.91666666666667%20C%206.25868055555556%202.91666666666667%206.12196180555556%202.97439236111111%206.00651041666667%203.08984375%20C%205.89105902777778%203.20529513888889%205.83333333333333%203.34201388888889%205.83333333333333%203.5%20L%205.83333333333333%205.83333333333333%20L%203.5%205.83333333333333%20C%203.34201388888889%205.83333333333333%203.20529513888889%205.89105902777778%203.08984375%206.00651041666667%20C%202.97439236111111%206.12196180555555%202.91666666666667%206.25868055555555%202.91666666666667%206.41666666666667%20L%202.91666666666667%207.58333333333333%20C%202.91666666666667%207.74131944444444%202.97439236111111%207.87803819444444%203.08984375%207.99348958333333%20C%203.20529513888889%208.10894097222222%203.34201388888889%208.16666666666667%203.5%208.16666666666667%20L%205.83333333333333%208.16666666666667%20L%205.83333333333333%2010.5%20C%205.83333333333333%2010.6579861111111%205.89105902777778%2010.7947048611111%206.00651041666667%2010.91015625%20C%206.12196180555556%2011.0256076388889%206.25868055555556%2011.0833333333333%206.41666666666667%2011.0833333333333%20L%207.58333333333333%2011.0833333333333%20C%207.74131944444445%2011.0833333333333%207.87803819444445%2011.0256076388889%207.99348958333333%2010.91015625%20C%208.10894097222222%2010.7947048611111%208.16666666666667%2010.6579861111111%208.16666666666667%2010.5%20L%208.16666666666667%208.16666666666667%20L%2010.5%208.16666666666667%20C%2010.6579861111111%208.16666666666667%2010.7947048611111%208.10894097222222%2010.91015625%207.99348958333333%20Z%20M%2013.0611979166667%203.486328125%20C%2013.6870659722222%204.55881076388889%2014%205.73003472222222%2014%207%20C%2014%208.26996527777778%2013.6870659722222%209.44118923611111%2013.0611979166667%2010.513671875%20C%2012.4353298611111%2011.5861545138889%2011.5861545138889%2012.4353298611111%2010.513671875%2013.0611979166667%20C%209.44118923611111%2013.6870659722222%208.26996527777778%2014%207%2014%20C%205.73003472222222%2014%204.55881076388889%2013.6870659722222%203.486328125%2013.0611979166667%20C%202.41384548611111%2012.4353298611111%201.56467013888889%2011.5861545138889%200.938802083333333%2010.513671875%20C%200.312934027777778%209.44118923611111%200%208.26996527777778%200%207%20C%200%205.73003472222222%200.312934027777778%204.55881076388889%200.938802083333333%203.486328125%20C%201.56467013888889%202.41384548611111%202.41384548611111%201.56467013888889%203.486328125%200.938802083333333%20C%204.55881076388889%200.312934027777777%205.73003472222222%200%207%200%20C%208.26996527777778%200%209.44118923611111%200.312934027777777%2010.513671875%200.938802083333333%20C%2011.5861545138889%201.56467013888889%2012.4353298611111%202.41384548611111%2013.0611979166667%203.486328125%20Z%20'%20fill-rule='nonzero'%20fill='%23000000'%20stroke='none'%20transform='matrix(1%200%200%201%201460%20103%20)'%20/%3e%3c/g%3e%3c/svg%3e",Vo={class:"header flexacenter"},Ho={class:"header-box flexacenter"},jo={class:"header-right flexacenter"},Ko={class:"search-box flexacenter"},zo={key:0,class:"history-box"},Go={class:"history-list"},Fo=["onClick"],Xo={class:"my-btn-list flexacenter"},Wo={__name:"top-head",setup(e,{expose:t}){Pe();const o=ct();let s=V("isNeedLogin");const u=V("goLogin"),a=V("isGetLoginState");let A=_("");ae(()=>{b(),A.value=o.query.keyword;const x=o.query.iscollect,C=o.query.isissue;x==1&&v("collect"),C==1&&v("mj")});const v=x=>{a.value==!0?setTimeout(()=>v(x),300):$(x)};let f=_({});Re("count",f);const p=()=>new Promise((x,C)=>{Dt().then(B=>{if(B.code!=200)return;let k=B.data;f.value=k.count,x(k)})});Ie(()=>{A.value=o.query.keyword});const h=()=>{if(s.value){u();return}Ce("/publish")},b=()=>{const x=localStorage.getItem("historical-Search");x?L.value=JSON.parse(x)||[]:L.value=[]},i=()=>{A.value&&(L.value.unshift(A.value),L.value=[...new Set(L.value)],L.value=L.value.slice(0,10),localStorage.setItem("historical-Search",JSON.stringify(L.value)))},m=()=>{Ce(`/index.html?keyword=${A.value||""}`,!1),i(),T()},g=()=>{L.value.length!=0&&(M.value=!0)},T=()=>{setTimeout(()=>M.value=!1,300)},y=x=>{A.value=x,m()};let M=_(!1),L=_([]),I=_(null);const $=async x=>{if(s.value){u();return}Object.keys(f.value).length===0?(await p(),I.value.cutMy(x,!0)):I.value.cutMy(x)};return t({count:f}),(x,C)=>{const B=Ro;return w(),E(pe,null,[d("section",Vo,[d("div",Ho,[C[7]||(C[7]=d("a",{href:"/index.html"},[d("img",{class:"logo-icon",src:Yo})],-1)),d("div",jo,[d("div",Ko,[ce(d("input",{class:"flex1",placeholder:"输入搜索关键词","onUpdate:modelValue":C[0]||(C[0]=k=>ie(A)?A.value=k:A=k),onKeydown:C[1]||(C[1]=dt(k=>m(),["enter"])),onFocus:g,onBlur:T},null,544),[[ut,n(A)]]),d("img",{class:"search-icon",src:Uo,onClick:m}),n(M)?(w(),E("div",zo,[C[5]||(C[5]=d("div",{class:"history-title"},"历史搜索",-1)),d("div",Go,[(w(!0),E(pe,null,Ve(n(L),(k,O)=>(w(),E("div",{class:"history-item ellipsis",key:O,onClick:te(Y=>y(k),["stop"])},R(k),9,Fo))),128))])])):j("",!0)]),d("div",Xo,[d("div",{class:"my-btn-item flexcenter",onClick:C[2]||(C[2]=k=>$("collect"))},"我的收藏"),d("div",{class:"my-btn-item flexcenter",onClick:C[3]||(C[3]=k=>$("mj"))},"我的面经")]),d("div",{class:"sponsor-btn flexcenter",onClick:C[4]||(C[4]=k=>h())},C[6]||(C[6]=[d("img",{class:"add-icon",src:Po},null,-1),me(" 发布面经 ")]))])])]),K(B,{ref_key:"MyPopupRef",ref:I,count:n(f)},null,8,["count"])],64)}}},Jo=be(Wo,[["__scopeId","data-v-93788f3e"]]);export{so as E,Jo as _,Rt as a,ro as v}; diff --git a/.output/public/_nuxt/index.C-c7eKmS.css b/.output/public/_nuxt/index.C-c7eKmS.css new file mode 100644 index 0000000..e1ce428 --- /dev/null +++ b/.output/public/_nuxt/index.C-c7eKmS.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645,.045,.355,1);--el-transition-function-fast-bezier:cubic-bezier(.23,1,.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a,0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014,0px 12px 32px #0000001f,0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translate(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;left:50%;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;top:20px;transform:translate(-50%);transition:opacity var(--el-transition-duration),transform .4s,top .4s;width:fit-content}.el-message.is-center{justify-content:center}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)} diff --git a/.output/public/_nuxt/index.D8KBBzil.css b/.output/public/_nuxt/index.D8KBBzil.css new file mode 100644 index 0000000..79a801f --- /dev/null +++ b/.output/public/_nuxt/index.D8KBBzil.css @@ -0,0 +1 @@ +.box[data-v-f1ba08be]{background-color:#fff;border-radius:8px;cursor:pointer;margin-bottom:20px;padding:20px 19px 25px 20px;width:385px}.box:hover .content .text-box[data-v-f1ba08be]{background:#72db86}.box:hover .content .text-box .text[data-v-f1ba08be],.box:hover .content .text-box .time[data-v-f1ba08be]{color:#fff}.box:hover .content .text-box .time .time-icon.time-black-icon[data-v-f1ba08be]{display:none}.box:hover .content .text-box .time .time-icon.time-white-icon[data-v-f1ba08be]{display:block}.box .img[data-v-f1ba08be]{height:26px;margin-right:10px;width:26px}.box .content[data-v-f1ba08be]{flex-direction:column}.box .content .name[data-v-f1ba08be]{color:#000;font-size:16px;font-weight:650;margin-bottom:16px;margin-top:2px}.box .content .list[data-v-f1ba08be]{flex-direction:column;margin-bottom:14px}.box .content .list .item[data-v-f1ba08be]:not(:last-of-type){margin-bottom:8px}.box .content .list .item .item-name[data-v-f1ba08be]{color:#7f7f7f;font-size:13px;line-height:20px;margin-right:12.5px}.box .content .list .item .item-value[data-v-f1ba08be]{color:#333;font-size:14px;width:255px}.box .content .text-box[data-v-f1ba08be]{background:#f2f2f2;border:1px solid #f6f6f6;border-radius:10px;margin-bottom:11px;padding:12px;transition:all .3s}.box .content .text-box .text[data-v-f1ba08be]{color:#333;display:-webkit-box;font-size:13px;line-height:24px;margin-bottom:12px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.box .content .text-box .time[data-v-f1ba08be]{color:#aaa;font-size:13px}.box .content .text-box .time .time-icon[data-v-f1ba08be]{height:20px;margin-right:6px;width:20px}.box .content .text-box .time .time-icon.time-black-icon[data-v-f1ba08be]{display:block}.box .content .text-box .time .time-icon.time-white-icon[data-v-f1ba08be]{display:none}.box .content .data-list[data-v-f1ba08be]{color:#aaa;font-size:12px;justify-content:flex-end}.box .content .data-list .data-item[data-v-f1ba08be]{margin-left:26px}.box .content .data-list .data-item .data-item-icon[data-v-f1ba08be]{margin-right:5px;width:13px}.search-result[data-v-3292866c]{margin:0 auto 30px;width:1200px}.search-result .keyword[data-v-3292866c]{color:#fa6b11;cursor:pointer;font-size:14px}.search-result .keyword .keyword-icon[data-v-3292866c]{height:14px;margin-left:9px;width:14px}.search-result .halving-line[data-v-3292866c]{background:#d7d7d7;height:13px;margin:0 20px;width:1px}.search-result .total[data-v-3292866c]{color:#7f7f7f;font-size:13px}.content[data-v-3292866c]{align-items:flex-start;display:flex;flex-wrap:wrap;margin:0 auto 93px;min-height:calc(100vh - 250px);width:1200px}.content .empty-box[data-v-3292866c]{background-color:#fff;border-radius:16px;height:540px;width:1200px}.in-end[data-v-3292866c]{color:#7f7f7f;font-size:12px;margin-bottom:88px;text-align:center}.right-returnTop[data-v-3292866c]{align-items:center;background-color:#323232;border-radius:50%;bottom:85px;cursor:pointer;display:flex;height:50px;justify-content:center;position:fixed;right:calc(50vw - 675px);width:50px;z-index:10}@media screen and (max-width:1360px){.right-returnTop[data-v-3292866c]{right:0!important}} diff --git a/.output/public/_nuxt/index.DBngYpzy.css b/.output/public/_nuxt/index.DBngYpzy.css new file mode 100644 index 0000000..6b7784b --- /dev/null +++ b/.output/public/_nuxt/index.DBngYpzy.css @@ -0,0 +1 @@ +.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px #0000 inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;position:relative;width:var(--el-input-width)}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper,.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:#0000;border-top-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:#0000;border-top-color:#0000}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:var(--el-text-color-secondary);font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translate(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed;opacity:1}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);border-radius:15px;color:#fff}.el-date-table td.week{color:var(--el-datepicker-header-text-color);font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-datepicker-header-text-color);font-weight:400;padding:5px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .el-date-table-cell__text,.el-month-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translate(-50%);width:54px}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date .el-date-table-cell,.el-month-table td.start-date .el-date-table-cell{color:#fff}.el-month-table td.end-date .el-date-table-cell__text,.el-month-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.end-date .el-date-table-cell__text,.el-year-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translate(-50%);width:60px}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.end-date .el-date-table-cell,.el-year-table td.start-date .el-date-table-cell{color:#fff}.el-year-table td.end-date .el-date-table-cell__text,.el-year-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:192px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:var(--el-index-normal)}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:var(--el-text-color-regular);font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper,.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:#0000;border-top-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:#0000;border-top-color:#0000}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px #0000 inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{height:var(--el-input-height,var(--el-component-size));width:var(--el-date-editor-width)}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .clear-icon,.el-date-editor .close-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{color:var(--el-text-color-placeholder);float:left;font-size:14px;height:inherit}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:initial;border:none;color:var(--el-text-color-regular);display:inline-block;font-size:var(--el-font-size-base);height:30px;line-height:30px;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{align-items:center;color:var(--el-text-color-primary);display:inline-flex;flex:1;font-size:14px;height:100%;justify-content:center;margin:0;overflow-wrap:break-word;padding:0 5px}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);cursor:pointer;font-size:14px;height:inherit;width:unset}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{align-items:center;display:inline-flex;padding:0 10px;vertical-align:middle}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{font-size:14px;height:38px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{font-size:12px;height:22px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed;pointer-events:none}.el-range-editor.is-disabled,.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);color:var(--el-text-color-regular);line-height:30px}.el-picker-panel .el-time-panel{background-color:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:var(--el-bg-color-overlay);border-top:1px solid var(--el-datepicker-inner-border-color);font-size:0;padding:4px 12px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:initial;border:0;color:var(--el-datepicker-text-color);cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{background-color:initial;border:1px solid var(--el-fill-color-darker);border-radius:2px;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{background:#0000;border:0;color:var(--el-datepicker-icon-color);cursor:pointer;font-size:12px;margin-top:8px;outline:none}.el-picker-panel__icon-btn:focus-visible,.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{background-color:var(--el-bg-color-overlay);border-right:1px solid var(--el-datepicker-inner-border-color);bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{padding:12px 12px 0;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:var(--el-datepicker-icon-color);display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{border-radius:2px;box-sizing:initial;left:0;position:relative;-webkit-user-select:none;user-select:none;width:180px;z-index:var(--el-index-top)}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{box-sizing:border-box;content:"";height:32px;left:0;margin-top:-16px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{border-bottom:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:initial;border:none;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.content-box[data-v-0813115a]{display:flex;justify-content:center;padding:0 122px}@media (max-width:920px){.content-box[data-v-0813115a]{display:block;padding:0 10px}}.contentcontent[data-v-0813115a]{background:#fff;border-radius:16px;display:flex;flex-direction:column;margin:30px auto 90px;max-width:1200px;min-height:calc(100vh - 120px);min-width:900px;position:relative}.contentcontent .header[data-v-0813115a]{border-bottom:1px solid #ebebeb;color:#000;font-size:20px;font-weight:650;height:88px;padding-left:30px}.contentcontent .box .titletitle[data-v-0813115a]{color:#666;font-size:14px;margin-bottom:10px}.contentcontent .box .box-left[data-v-0813115a]{border-right:16px solid #f6f6f6;width:44.333%}.contentcontent .box .box-left .area-box[data-v-0813115a]{border-bottom:1px solid #ebebeb;padding:30px 50px 30px 30px}.contentcontent .box .box-left .area-box .item[data-v-0813115a]:not(:last-of-type){margin-bottom:30px}.contentcontent .box .box-left .area-box .info-box[data-v-0813115a]{background-color:#fff0;border:1px solid #d7d7d7;border-radius:5px;display:flex;flex-direction:column;height:158px;justify-content:center;overflow:hidden}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a]{height:50px}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a]:not(:last-of-type){border-bottom:1px solid #d7d7d7}.contentcontent .box .box-left .area-box .info-box .info-item .info-name[data-v-0813115a]{color:#666;font-size:14px;padding:0 14px}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-0813115a]{border:none;box-shadow:none;height:100%;outline:none}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-0813115a] .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a] .el-autocomplete{width:99%}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a] .el-autocomplete .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a]{border:1px solid #d7d7d7;border-radius:5px;cursor:pointer;height:46px}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a] .el-input{height:100%}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a] .el-input .el-input__wrapper{box-shadow:none;height:100%}.contentcontent .box .box-left .area-box .time-box .calendar-icon[data-v-0813115a]{height:16px;margin:0 12px;width:15px}.contentcontent .box .box-left .area-box .time-box[data-v-0813115a] .el-input .el-input__prefix{display:none}.contentcontent .box .box-left .visible-box[data-v-0813115a]{color:#555;cursor:pointer;font-size:14px;margin:30px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.contentcontent .box .box-left .visible-box .visible-icon[data-v-0813115a]{height:18px;margin-right:5px;width:18px}.contentcontent .box .box-right[data-v-0813115a]{width:54.333%}.contentcontent .box .box-right .area-box[data-v-0813115a]{padding:30px 30px 30px 50px}.contentcontent .box .box-right .area-box .course-box[data-v-0813115a]{background-color:#fff0;border:1px solid #d7d7d7;border-radius:5px;min-height:480px}.contentcontent .box .box-right .area-box .course-box[data-v-0813115a] .el-textarea__inner{box-shadow:none;min-height:480px!important;padding:13px}.contentcontent .hint-box[data-v-0813115a]{background-color:#f6f6f6;color:#555;font-size:13px;height:58px}.asterisk[data-v-0813115a]{color:#fa9183;margin-left:5px}.floor-box[data-v-0813115a]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px #00000031;height:90px;min-width:1200px;position:fixed;width:100vw}.floor-box .box[data-v-0813115a]{height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.floor-box .box .anonymous-box[data-v-0813115a]{color:#333;cursor:pointer;font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.floor-box .box .anonymous-box .text[data-v-0813115a]{color:#aaa;font-size:13px}.floor-box .box .anonymous-box .anonymous-icon[data-v-0813115a]{height:18px;width:18px}.floor-box .box .issue-btn[data-v-0813115a]{background-color:#fddf6d;border-radius:190px;color:#000;cursor:pointer;font-size:16px;height:46px;width:200px}.save-box[data-v-0813115a]{color:#666;cursor:pointer;font-size:14px;position:absolute;top:30px;transition:all .3s;z-index:1}.save-box.save-left[data-v-0813115a]{left:0}.save-box.save-right[data-v-0813115a]{right:0}.save-box.save-right .save-icon[data-v-0813115a]{height:16px;margin-left:10px;width:16px}.save-box .save-icon[data-v-0813115a]{height:22px;margin-right:10px;transform:rotate(180deg);width:22px} diff --git a/.output/public/_nuxt/logo-icon.C2xYDAoO.png b/.output/public/_nuxt/logo-icon.C2xYDAoO.png new file mode 100644 index 0000000..c38a7a1 Binary files /dev/null and b/.output/public/_nuxt/logo-icon.C2xYDAoO.png differ diff --git a/.output/public/_nuxt/no-discussion.CTT65aaO.png b/.output/public/_nuxt/no-discussion.CTT65aaO.png new file mode 100644 index 0000000..2cc034e Binary files /dev/null and b/.output/public/_nuxt/no-discussion.CTT65aaO.png differ diff --git a/.output/public/_nuxt/title.Bxzjc9QQ.png b/.output/public/_nuxt/title.Bxzjc9QQ.png new file mode 100644 index 0000000..b7977d4 Binary files /dev/null and b/.output/public/_nuxt/title.Bxzjc9QQ.png differ diff --git a/.output/public/_nuxt/top-head.Dl-EBmIP.css b/.output/public/_nuxt/top-head.Dl-EBmIP.css new file mode 100644 index 0000000..6447b62 --- /dev/null +++ b/.output/public/_nuxt/top-head.Dl-EBmIP.css @@ -0,0 +1 @@ +.empty-box-list[data-v-6c7355f5]{background-color:#fff;border-radius:6px;flex-direction:column;margin:0 auto}.empty-box-list .dot-list .item[data-v-6c7355f5]{height:8px;width:8px}.empty-box-list .dot-list .item[data-v-6c7355f5]:not(:last-of-type){margin-right:5px}.empty-box-list .empty-icon[data-v-6c7355f5]{height:100px;margin-bottom:15px;margin-top:10px;width:100px}.empty-box-list .empty-hint[data-v-6c7355f5]{color:#7f7f7f;font-size:13px;line-height:22px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:#0000;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-overlay{background-color:var(--el-overlay-color-lighter);bottom:0;height:100%;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2000}.el-overlay .el-overlay-root{height:0}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.popup-mask[data-v-a050dcc5]{background:#00000080;border:none;height:100vh;left:0;max-height:none;max-width:none;outline:none;position:fixed;top:0;width:100vw;z-index:1}.box[data-v-a050dcc5]{background-color:#fff;border-radius:10px;box-shadow:0 0 3px #0000001e;flex-direction:column;height:606px;padding:30px 30px 46px;position:relative;width:750px}.box .cross[data-v-a050dcc5]{cursor:pointer;height:12px;position:absolute;right:12px;top:12px;width:12px}.box .tba-list[data-v-a050dcc5]{font-size:16px;margin-bottom:29px}.box .tba-list .tab-item[data-v-a050dcc5]{color:#aaa;cursor:pointer;padding:0 22px;position:relative}.box .tba-list .tab-item[data-v-a050dcc5]:first-of-type:after{background:#d7d7d7;content:"";height:16px;position:absolute;right:0;width:1px}.box .tba-list .tab-item .value[data-v-a050dcc5]{margin-left:10px}.box .tba-list .tab-item.pitch[data-v-a050dcc5]{color:#000;font-weight:650}.box .tba-list .tab-item.pitch .value[data-v-a050dcc5]{color:#555;font-weight:400}.box .empty-box[data-v-a050dcc5]{background-color:#fff;border:1px solid #ebebeb;border-radius:6px;height:100%;margin:0 auto;width:100%}.box .content[data-v-a050dcc5]{height:100%;overflow:auto;padding-bottom:35px;padding-right:10px;width:100%}.box .content .item[data-v-a050dcc5]{cursor:pointer;margin-bottom:21px;margin-left:22px;padding-bottom:20px}.box .content .item[data-v-a050dcc5]:not(:last-of-type){border-bottom:1px dotted #ebebeb}.box .content .item .left[data-v-a050dcc5]{flex-direction:column;position:relative}.box .content .item .left[data-v-a050dcc5]:after{background-color:#31d72e;border-radius:25px;content:"";height:12px;left:-22px;position:absolute;top:4px;width:5px}.box .content .item .left .name[data-v-a050dcc5]{color:#000;font-size:14px;font-weight:650;margin-bottom:10px}.box .content .item .left .info-box[data-v-a050dcc5]{flex-direction:column;margin-bottom:7px}.box .content .item .left .info-box .info-item[data-v-a050dcc5]{line-height:24px}.box .content .item .left .info-box .info-item[data-v-a050dcc5]:not(:last-of-type){margin-bottom:3px}.box .content .item .left .info-box .info-item .info-item-name[data-v-a050dcc5]{color:#7f7f7f;font-size:13px;margin-right:12px}.box .content .item .left .info-box .info-item .info-item-value[data-v-a050dcc5]{color:#333;font-size:13px}.box .content .item .left .text-box[data-v-a050dcc5]{background-color:#f6f6f6;border-radius:5px;color:#000;font-size:13px;height:45px;line-height:45px;padding:0 16px;width:580px}.box .content .item .left .text-box .text-time[data-v-a050dcc5]{color:#7f7f7f;padding-right:16px;position:relative}.box .content .item .left .text-box .text-time[data-v-a050dcc5]:after{color:#d7d7d7;content:"|";position:absolute;right:8px}.box .content .item .operate-area[data-v-a050dcc5]{display:flex;flex:1;justify-content:flex-end}.box .content .item .operate-area .delete-icon[data-v-a050dcc5]{cursor:pointer;width:12px}.box .content .item .operate-area .anonymous-box[data-v-a050dcc5]{position:relative}.box .content .item .operate-area .anonymous-box .text[data-v-a050dcc5]{color:#333;font-size:13px}.box .content .item .operate-area .anonymous-box .arrow-icon[data-v-a050dcc5]{height:5px;margin-left:6px;width:8px}.box .content .item .operate-area .anonymous-box .state-popup[data-v-a050dcc5]{background-color:#fff;border-radius:10px;box-shadow:0 0 6px #00000034;flex-direction:column;height:101px;position:absolute;right:0;top:30px;width:140px}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]{color:#555;font-size:14px;justify-content:space-between;padding:0 10px}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]:hover{color:#000}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item.pitch[data-v-a050dcc5]{color:#72db86}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item.pitch .state-popup-icon[data-v-a050dcc5]{display:block}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]:not(:last-of-type){border-bottom:1px dotted #e3e3e3}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item .state-popup-icon[data-v-a050dcc5]{display:none;height:8px;width:11px}.dialog-box{background:transparent;border-radius:10px;box-shadow:none}.dialog-box header{display:none}.dialog-box .el-dialog__body{padding:0}.header[data-v-93788f3e]{margin-bottom:40px;min-width:1200px;padding-top:42px}.header .header-box[data-v-93788f3e]{justify-content:space-between;margin:0 auto;width:1200px}.header .header-box .logo-icon[data-v-93788f3e]{cursor:pointer;height:36px}.header .header-box .header-right .search-box[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:104px;height:32px;position:relative;width:320px}.header .header-box .header-right .search-box input[data-v-93788f3e]{border:none;border-radius:104px;font-size:13px;height:100%;outline:none;padding:0 16px}.header .header-box .header-right .search-box .search-icon[data-v-93788f3e]{cursor:pointer;height:20px;margin:0 16px;width:20px}.header .header-box .header-right .search-box .history-box[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:10px;left:0;padding-bottom:14px;padding-top:15px;position:absolute;top:36px;width:320px;z-index:2}.header .header-box .header-right .search-box .history-box .history-title[data-v-93788f3e]{color:#aaa;font-size:13px;margin-bottom:9px;padding-left:16px}.header .header-box .header-right .search-box .history-box .history-list .history-item[data-v-93788f3e]{color:#333;cursor:pointer;font-size:14px;height:30px;line-height:30px;padding:0 16px}.header .header-box .header-right .my-btn-list[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:5px;color:#555;font-size:13px;height:32px;margin-left:20px;padding:0 7px}.header .header-box .header-right .my-btn-list .my-btn-item[data-v-93788f3e]{cursor:pointer;height:100%;padding:0 10px;position:relative}.header .header-box .header-right .my-btn-list .my-btn-item[data-v-93788f3e]:not(:last-of-type):after{color:#d7d7d7;content:"|";position:absolute;right:0}.header .header-box .header-right .sponsor-btn[data-v-93788f3e]{background:#fddf6d;border-radius:5px;color:#000;cursor:pointer;font-size:13px;height:32px;margin-left:20px;width:130px}.header .header-box .header-right .sponsor-btn .add-icon[data-v-93788f3e]{height:14px;margin-right:10px;width:14px} diff --git a/.output/public/_nuxt/y8qSb7BL.js b/.output/public/_nuxt/y8qSb7BL.js new file mode 100644 index 0000000..954f840 --- /dev/null +++ b/.output/public/_nuxt/y8qSb7BL.js @@ -0,0 +1 @@ +import{aW as o,r as u,X as f,T as d,aX as v,e as l,aE as i,an as h,a4 as m}from"./C0eoOjsX.js";function U(t,a={}){const e=a.head||o();if(e)return e.ssr?e.push(t,a):p(e,t,a)}function p(t,a,e={}){const s=u(!1),n=u({});f(()=>{n.value=s.value?{}:v(a)});const r=t.push(n.value,e);return d(n,c=>{r.patch(c)}),m()&&(l(()=>{r.dispose()}),i(()=>{s.value=!0}),h(()=>{s.value=!1})),r}export{U as u}; diff --git a/.output/public/favicon.ico b/.output/public/favicon.ico new file mode 100644 index 0000000..4164824 Binary files /dev/null and b/.output/public/favicon.ico differ diff --git a/.output/server/chunks/_/error-500.mjs b/.output/server/chunks/_/error-500.mjs new file mode 100644 index 0000000..4220293 --- /dev/null +++ b/.output/server/chunks/_/error-500.mjs @@ -0,0 +1,8 @@ +const _messages = { "appName": "Nuxt", "version": "", "statusCode": 500, "statusMessage": "Server error", "description": "This page is temporarily unavailable." }; +const template = (messages) => { + messages = { ..._messages, ...messages }; + return '<!DOCTYPE html><html lang="en"><head><title>' + messages.statusCode + " - " + messages.statusMessage + " | " + messages.appName + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><style>.spotlight{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.fixed{position:fixed}.-bottom-1\\/2{bottom:-50%}.left-0{left:0}.right-0{right:0}.grid{display:grid}.mb-16{margin-bottom:4rem}.mb-8{margin-bottom:2rem}.h-1\\/2{height:50%}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.place-content-center{place-content:center}.overflow-hidden{overflow:hidden}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8{padding-left:2rem;padding-right:2rem}.text-center{text-align:center}.text-8xl{font-size:6rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-black{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light{font-weight:300}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0{padding-left:0;padding-right:0}.sm\\:text-4xl{font-size:2.25rem;line-height:2.5rem}}</style><script>!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();<\/script></head><body class="antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"><div class="-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"></div><div class="max-w-520px text-center"><h1 class="font-medium mb-8 sm:text-10xl text-8xl">` + messages.statusCode + '</h1><p class="font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl">' + messages.description + "</p></div></body></html>"; +}; + +export { template }; +//# sourceMappingURL=error-500.mjs.map diff --git a/.output/server/chunks/_/error-500.mjs.map b/.output/server/chunks/_/error-500.mjs.map new file mode 100644 index 0000000..ea8ef7a --- /dev/null +++ b/.output/server/chunks/_/error-500.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500.mjs","sources":["../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/core/runtime/nitro/error-500.js"],"sourcesContent":null,"names":[],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.output/server/chunks/_/nitro.mjs b/.output/server/chunks/_/nitro.mjs index c6b482e..db656ea 100644 --- a/.output/server/chunks/_/nitro.mjs +++ b/.output/server/chunks/_/nitro.mjs @@ -3906,396 +3906,220 @@ const assets$1 = { }, "/_nuxt/B4CZI61d.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"1ebfd-Xd3XpAZoVV6jgaVAgy1iVH97WN0\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 125949, "path": "../public/_nuxt/B4CZI61d.js" -======= - "etag": "\"6071-3BWH4lA0Ubc65MqUa1DvoExomWs\"", - "mtime": "2025-02-20T07:16:28.718Z", - "size": 24689, - "path": "../public/_nuxt/521Cm7zO.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/BE7hzMIt.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"121d6-wFdYRaPAmlH/LUq4HRV0nR7PRKk\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 74198, "path": "../public/_nuxt/BE7hzMIt.js" -======= - "etag": "\"24fc-1BPRjOH95C3GfZ/E7z5bUvAXfAQ\"", - "mtime": "2025-02-20T07:16:28.718Z", - "size": 9468, - "path": "../public/_nuxt/B21vRUAj.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/BfpgDEj5.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"5947-jlL92VzgYDZJreSwJHBpsaUd5Pk\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 22855, "path": "../public/_nuxt/BfpgDEj5.js" -======= - "etag": "\"185-dcGYonKwHKssU5LhMkAs9PrlbGc\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 389, - "path": "../public/_nuxt/B6BQ0g4q.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/BnReMd0k.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"1e2aa-LXplACC+BWGHYBlRrtWzMDdn7DA\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 123562, "path": "../public/_nuxt/BnReMd0k.js" }, "/_nuxt/BP-Bk3NB.js": { "type": "text/javascript; charset=utf-8", "etag": "\"19996-HutpUb+MjujmFfz0WehX8VCsVxQ\"", - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.313Z", "size": 104854, "path": "../public/_nuxt/BP-Bk3NB.js" }, "/_nuxt/Bur7c29Y.js": { "type": "text/javascript; charset=utf-8", "etag": "\"13c-Crl848HdudQ8PJrhjepMmI/xiPE\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 316, "path": "../public/_nuxt/Bur7c29Y.js" }, "/_nuxt/C0eoOjsX.js": { "type": "text/javascript; charset=utf-8", "etag": "\"2a6cc-00tP2q3tcoPyhYgPUHl24/tjGKg\"", - "mtime": "2025-02-20T11:10:51.218Z", -======= - "etag": "\"2a6cc-6+LeyjCL6CcFY6LRJeLU451B4IY\"", - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 173772, "path": "../public/_nuxt/C0eoOjsX.js" }, "/_nuxt/C5qEE_Gi.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"24fc-KpE3m4X4i9+uCz7yBocW1a1o/rQ\"", - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.313Z", "size": 9468, "path": "../public/_nuxt/C5qEE_Gi.js" -======= - "etag": "\"198f1-ls19hlEHTunynQ7g9vXXkCFzrTc\"", - "mtime": "2025-02-20T07:16:28.714Z", - "size": 104689, - "path": "../public/_nuxt/BnMHtDQ7.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/calendar-icon.BGBc-vDw.svg": { "type": "image/svg+xml", "etag": "\"10de-7GpYtlC2JwrcocvS/s1VFTYW1Oc\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.312Z", "size": 4318, "path": "../public/_nuxt/calendar-icon.BGBc-vDw.svg" }, "/_nuxt/CGGlHf3T.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"6071-VEb3hjkOUzXwaoDJ+F3Wf+nO7As\"", - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.309Z", "size": 24689, "path": "../public/_nuxt/CGGlHf3T.js" -======= - "etag": "\"d72-/TYmiLLnG/TtepfUqeUimQQ/+tU\"", - "mtime": "2025-02-20T07:16:28.718Z", - "size": 3442, - "path": "../public/_nuxt/D5R-q7IK.js" - }, - "/_nuxt/DASNcUfW.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"1ebfd-/EEBoqEquVijFfUGSpDXmGZ85No\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 125949, - "path": "../public/_nuxt/DASNcUfW.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/delete-icon.CnXBlQyp.svg": { "type": "image/svg+xml", "etag": "\"17fc-i1z5ruTbyKdk0KmaLxdHbFn0fDE\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 6140, "path": "../public/_nuxt/delete-icon.CnXBlQyp.svg" }, "/_nuxt/DeU7cwoU.js": { "type": "text/javascript; charset=utf-8", -<<<<<<< HEAD "etag": "\"d72-tRk/ZDoQ7Akgp7fgYsM1U86qPIA\"", - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.313Z", "size": 3442, "path": "../public/_nuxt/DeU7cwoU.js" -======= - "etag": "\"5947-KGc9+bzkaIbKpuhb/awXaTDzuNs\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 22855, - "path": "../public/_nuxt/Dk9LsjYz.js" ->>>>>>> parent of 1d74a9f (no message) }, "/_nuxt/DlAUqK2U.js": { "type": "text/javascript; charset=utf-8", "etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 91, "path": "../public/_nuxt/DlAUqK2U.js" }, "/_nuxt/DwPp8tHk.js": { "type": "text/javascript; charset=utf-8", "etag": "\"54-6T2FrfNUCwJVQE4BYBvlVs+sSr0\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 84, "path": "../public/_nuxt/DwPp8tHk.js" }, "/_nuxt/el-button.CsYDH6uT.css": { "type": "text/css; charset=utf-8", "etag": "\"6d13-s+wdRlhMnA3X2Wwba0y1vX53Cz0\"", - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.720Z", - "size": 91, - "path": "../public/_nuxt/DlAUqK2U.js" - }, - "/_nuxt/DQqWJrNW.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"13c-QWgpvS6SBDD1QqU7yDnUKkM1iq4\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 316, - "path": "../public/_nuxt/DQqWJrNW.js" - }, - "/_nuxt/DvapoWAx.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"121d6-7wBhCZisSqEp5zGT+a904yaZW18\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 74198, - "path": "../public/_nuxt/DvapoWAx.js" - }, - "/_nuxt/DwPp8tHk.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"54-6T2FrfNUCwJVQE4BYBvlVs+sSr0\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 84, - "path": "../public/_nuxt/DwPp8tHk.js" - }, - "/_nuxt/Efly1mp2.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"8a92-SdzQs4hbNZc05dTEuCDNzh3rWfs\"", - "mtime": "2025-02-20T07:16:28.719Z", - "size": 35474, - "path": "../public/_nuxt/Efly1mp2.js" - }, - "/_nuxt/el-button.CsYDH6uT.css": { - "type": "text/css; charset=utf-8", - "etag": "\"6d13-s+wdRlhMnA3X2Wwba0y1vX53Cz0\"", - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 27923, "path": "../public/_nuxt/el-button.CsYDH6uT.css" }, "/_nuxt/empty-icon.uRjiKTvo.svg": { "type": "image/svg+xml", "etag": "\"d028-Our2UxxUiciRSduORd8JZCt5Prw\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.312Z", "size": 53288, "path": "../public/_nuxt/empty-icon.uRjiKTvo.svg" }, "/_nuxt/entry.BMFnGFc3.css": { "type": "text/css; charset=utf-8", "etag": "\"5a8-Uxe2X56DGY9AjljhIV0OJBN3wpg\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 1448, "path": "../public/_nuxt/entry.BMFnGFc3.css" }, "/_nuxt/error-404.Dt7vALhq.css": { "type": "text/css; charset=utf-8", "etag": "\"de4-C8uILwFunJBw4W94IX+JSMAuvyg\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.312Z", "size": 3556, "path": "../public/_nuxt/error-404.Dt7vALhq.css" }, "/_nuxt/error-500.CCfoYDQF.css": { "type": "text/css; charset=utf-8", "etag": "\"75c-Ibwn6Af/IRBBrns93+fPITgKEEg\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 1884, "path": "../public/_nuxt/error-500.CCfoYDQF.css" }, "/_nuxt/ijtA8km9.js": { "type": "text/javascript; charset=utf-8", "etag": "\"8a92-n77j/RA2KEjuJPFkXNrejdXZo5M\"", - "mtime": "2025-02-20T11:10:51.219Z", + "mtime": "2025-02-20T11:27:41.314Z", "size": 35474, "path": "../public/_nuxt/ijtA8km9.js" }, "/_nuxt/index.C-c7eKmS.css": { "type": "text/css; charset=utf-8", "etag": "\"2ec3-0benz5K5k2wDx1+5lS8Z7rl3cto\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 11971, "path": "../public/_nuxt/index.C-c7eKmS.css" }, "/_nuxt/index.D8KBBzil.css": { "type": "text/css; charset=utf-8", "etag": "\"c41-26PzP8HV8u0xc28Udyi7UJkjlJQ\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 3137, "path": "../public/_nuxt/index.D8KBBzil.css" }, "/_nuxt/index.DBngYpzy.css": { "type": "text/css; charset=utf-8", "etag": "\"863c-3/rYTwj2RH9LUqudeRMSh5RLRIc\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.313Z", "size": 34364, "path": "../public/_nuxt/index.DBngYpzy.css" }, "/_nuxt/logo-icon.C2xYDAoO.png": { "type": "image/png", "etag": "\"873a-OTH/h653HLUhRYOH8opOgbwEiyY\"", - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", - "size": 34364, - "path": "../public/_nuxt/index.DBngYpzy.css" - }, - "/_nuxt/j0tir7Qb.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"1e2aa-5Ntc761Ab3ZDtcV3w9qSVAOYyFc\"", - "mtime": "2025-02-20T07:16:28.720Z", - "size": 123562, - "path": "../public/_nuxt/j0tir7Qb.js" - }, - "/_nuxt/logo-icon.C2xYDAoO.png": { - "type": "image/png", - "etag": "\"873a-OTH/h653HLUhRYOH8opOgbwEiyY\"", - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.312Z", "size": 34618, "path": "../public/_nuxt/logo-icon.C2xYDAoO.png" }, "/_nuxt/no-discussion.CTT65aaO.png": { "type": "image/png", "etag": "\"2dea5-I8P5QXciTaBjL/JKCmPKRaVuijY\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 188069, "path": "../public/_nuxt/no-discussion.CTT65aaO.png" }, "/_nuxt/title.Bxzjc9QQ.png": { "type": "image/png", "etag": "\"1723-0OwkVass/2nFB99dRT4w0sPUvI0\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.215Z", -======= - "mtime": "2025-02-20T07:16:28.717Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.312Z", "size": 5923, "path": "../public/_nuxt/title.Bxzjc9QQ.png" }, "/_nuxt/top-head.Dl-EBmIP.css": { "type": "text/css; charset=utf-8", "etag": "\"2f6e-koWZQ8mOAuGeMY34TsL4tyi+ybo\"", -<<<<<<< HEAD - "mtime": "2025-02-20T11:10:51.218Z", -======= - "mtime": "2025-02-20T07:16:28.718Z", ->>>>>>> parent of 1d74a9f (no message) + "mtime": "2025-02-20T11:27:41.313Z", "size": 12142, "path": "../public/_nuxt/top-head.Dl-EBmIP.css" }, "/_nuxt/y8qSb7BL.js": { "type": "text/javascript; charset=utf-8", "etag": "\"185-utJ6taCt5iwWo21M4RjdTWD9NVY\"", - "mtime": "2025-02-20T11:10:51.220Z", + "mtime": "2025-02-20T11:27:41.317Z", "size": 389, "path": "../public/_nuxt/y8qSb7BL.js" }, "/_nuxt/_id_.DdwZQJ0A.css": { "type": "text/css; charset=utf-8", -<<<<<<< HEAD "etag": "\"bdde-dXPObnG0lX3QzYM53BENMxgn5W8\"", - "mtime": "2025-02-20T11:10:51.218Z", + "mtime": "2025-02-20T11:27:41.313Z", "size": 48606, "path": "../public/_nuxt/_id_.DdwZQJ0A.css" }, "/_nuxt/builds/latest.json": { "type": "application/json", - "etag": "\"47-n5zPKa290nzS8pm4MklsfP0UxWs\"", - "mtime": "2025-02-20T11:10:57.354Z", + "etag": "\"47-R916d0ii9+2mLlxCw3N4bJFko+4\"", + "mtime": "2025-02-20T11:27:49.181Z", "size": 71, "path": "../public/_nuxt/builds/latest.json" }, - "/_nuxt/builds/meta/ff7b2403-a8d9-4c28-8e21-d807818099c1.json": { + "/_nuxt/builds/meta/184b380d-df86-4330-8f72-2d0bd24b5e19.json": { "type": "application/json", - "etag": "\"8b-6y/ExNePlwp1poUUve5nhGcDLt8\"", - "mtime": "2025-02-20T11:10:57.355Z", + "etag": "\"8b-akoHsuYdNGGLb4+CFSotautDfI0\"", + "mtime": "2025-02-20T11:27:49.182Z", "size": 139, - "path": "../public/_nuxt/builds/meta/ff7b2403-a8d9-4c28-8e21-d807818099c1.json" -======= - "etag": "\"bd40-QGEtEq2vBpeP05IVWqsNzKoHFMk\"", - "mtime": "2025-02-20T07:16:28.718Z", - "size": 48448, - "path": "../public/_nuxt/_id_.Ox_HOeRZ.css" - }, - "/_nuxt/builds/latest.json": { - "type": "application/json", - "etag": "\"47-LtoHD/SSrAvsK0h6wDsbqkSfF0I\"", - "mtime": "2025-02-20T07:16:35.313Z", - "size": 71, - "path": "../public/_nuxt/builds/latest.json" - }, - "/_nuxt/builds/meta/aca59267-3b72-44cb-bbe4-f8ae87492f41.json": { - "type": "application/json", - "etag": "\"8b-HCf4afKP7TP1M8Va0583T17ByJU\"", - "mtime": "2025-02-20T07:16:35.313Z", - "size": 139, - "path": "../public/_nuxt/builds/meta/aca59267-3b72-44cb-bbe4-f8ae87492f41.json" ->>>>>>> parent of 1d74a9f (no message) + "path": "../public/_nuxt/builds/meta/184b380d-df86-4330-8f72-2d0bd24b5e19.json" } }; @@ -5748,11 +5572,7 @@ function _expandFromEnv(value) { const _inlineRuntimeConfig = { "app": { "baseURL": "/", -<<<<<<< HEAD - "buildId": "ff7b2403-a8d9-4c28-8e21-d807818099c1", -======= - "buildId": "aca59267-3b72-44cb-bbe4-f8ae87492f41", ->>>>>>> parent of 1d74a9f (no message) + "buildId": "184b380d-df86-4330-8f72-2d0bd24b5e19", "buildAssetsDir": "/_nuxt/", "cdnURL": "" }, diff --git a/.output/server/chunks/_/nitro.mjs.map b/.output/server/chunks/_/nitro.mjs.map new file mode 100644 index 0000000..e8fbc09 --- /dev/null +++ b/.output/server/chunks/_/nitro.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/.store/destr@2.0.3/node_modules/destr/dist/index.mjs","../../../../node_modules/.store/ufo@1.5.4/node_modules/ufo/dist/index.mjs","../../../../node_modules/.store/ohash@1.1.4/node_modules/ohash/dist/index.mjs","../../../../node_modules/.store/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../node_modules/.store/defu@6.1.4/node_modules/defu/dist/defu.mjs","../../../../node_modules/.store/h3@1.15.0/node_modules/h3/dist/index.mjs","../../../../node_modules/.store/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../node_modules/.store/node-fetch-native@1.6.6/node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/.store/ofetch@1.4.1/node_modules/ofetch/dist/shared/ofetch.03887fc3.mjs","../../../../node_modules/.store/ofetch@1.4.1/node_modules/ofetch/dist/node.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/_internal/utils.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/events/_events.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/events/index.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/stream/readable.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/stream/writable.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/stream/duplex.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/net/socket.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/http/_request.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/node/http/_response.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/fetch/call.mjs","../../../../node_modules/.store/unenv@1.10.0/node_modules/unenv/runtime/fetch/index.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/core/runtime/nitro/error.js","../../../../node_modules/.store/pathe@1.1.2/node_modules/pathe/dist/shared/pathe.ff20891b.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../node_modules/.store/unstorage@1.14.4/node_modules/unstorage/dist/shared/unstorage.BqzpVTXx.mjs","../../../../node_modules/.store/unstorage@1.14.4/node_modules/unstorage/dist/index.mjs","../../../../node_modules/.store/unstorage@1.14.4/node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/.store/unstorage@1.14.4/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/.store/unstorage@1.14.4/node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/.store/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../node_modules/.store/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/.store/unctx@2.4.1/node_modules/unctx/dist/index.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/runtime/internal/shutdown.mjs"],"sourcesContent":null,"names":["getQuery","createRouter","createError","mergeHeaders","nullBodyResponses","createFetch","nodeFetch","http","https","Headers","Headers$1","AbortController$1","EventEmitter","_EventEmitter","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","_inlineAppConfig","createRadixRouter","createLocalFetch","gracefulShutdown"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]} \ No newline at end of file diff --git a/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs b/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs new file mode 100644 index 0000000..f160f21 --- /dev/null +++ b/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs @@ -0,0 +1,4 @@ +const Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang = ".empty-box-list[data-v-6c7355f5]{background-color:#fff;border-radius:6px;flex-direction:column;margin:0 auto}.empty-box-list .dot-list .item[data-v-6c7355f5]{height:8px;width:8px}.empty-box-list .dot-list .item[data-v-6c7355f5]:not(:last-of-type){margin-right:5px}.empty-box-list .empty-icon[data-v-6c7355f5]{height:100px;margin-bottom:15px;margin-top:10px;width:100px}.empty-box-list .empty-hint[data-v-6c7355f5]{color:#7f7f7f;font-size:13px;line-height:22px}"; + +export { Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang as E }; +//# sourceMappingURL=Empty-styles-1.mjs-DtGQwrzZ.mjs.map diff --git a/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs.map b/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs.map new file mode 100644 index 0000000..3cfeac9 --- /dev/null +++ b/.output/server/chunks/build/Empty-styles-1.mjs-DtGQwrzZ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Empty-styles-1.mjs-DtGQwrzZ.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs b/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs new file mode 100644 index 0000000..fbd39bc --- /dev/null +++ b/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs @@ -0,0 +1,6 @@ +import { E as Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang } from './Empty-styles-1.mjs-DtGQwrzZ.mjs'; + +const EmptyStyles_Bjs_7lfB = [Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang]; + +export { EmptyStyles_Bjs_7lfB as default }; +//# sourceMappingURL=Empty-styles.Bjs_7lfB.mjs.map diff --git a/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs.map b/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs.map new file mode 100644 index 0000000..cdd11a0 --- /dev/null +++ b/.output/server/chunks/build/Empty-styles.Bjs_7lfB.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Empty-styles.Bjs_7lfB.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Empty-styles.Bjs_7lfB.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,6BAAe,CAACA,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs b/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs new file mode 100644 index 0000000..1d42e69 --- /dev/null +++ b/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs @@ -0,0 +1,6 @@ +import { E as Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang } from './Empty-styles-1.mjs-DtGQwrzZ.mjs'; + +const EmptyStyles_CmCa51ZE = [Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang, Empty_vue_vue_type_style_index_0_scoped_6c7355f5_lang]; + +export { EmptyStyles_CmCa51ZE as default }; +//# sourceMappingURL=Empty-styles.CmCa51ZE.mjs.map diff --git a/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs.map b/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs.map new file mode 100644 index 0000000..57b76ca --- /dev/null +++ b/.output/server/chunks/build/Empty-styles.CmCa51ZE.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Empty-styles.CmCa51ZE.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Empty-styles.CmCa51ZE.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,6BAAe,CAACA,qDAAO,EAAEC,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs b/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs new file mode 100644 index 0000000..670b747 --- /dev/null +++ b/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs @@ -0,0 +1,4 @@ +const Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang = ".box[data-v-f1ba08be]{background-color:#fff;border-radius:8px;cursor:pointer;margin-bottom:20px;padding:20px 19px 25px 20px;width:385px}.box:hover .content .text-box[data-v-f1ba08be]{background:#72db86}.box:hover .content .text-box .text[data-v-f1ba08be],.box:hover .content .text-box .time[data-v-f1ba08be]{color:#fff}.box:hover .content .text-box .time .time-icon.time-black-icon[data-v-f1ba08be]{display:none}.box:hover .content .text-box .time .time-icon.time-white-icon[data-v-f1ba08be]{display:block}.box .img[data-v-f1ba08be]{height:26px;margin-right:10px;width:26px}.box .content[data-v-f1ba08be]{flex-direction:column}.box .content .name[data-v-f1ba08be]{color:#000;font-size:16px;font-weight:650;margin-bottom:16px;margin-top:2px}.box .content .list[data-v-f1ba08be]{flex-direction:column;margin-bottom:14px}.box .content .list .item[data-v-f1ba08be]:not(:last-of-type){margin-bottom:8px}.box .content .list .item .item-name[data-v-f1ba08be]{color:#7f7f7f;font-size:13px;line-height:20px;margin-right:12.5px}.box .content .list .item .item-value[data-v-f1ba08be]{color:#333;font-size:14px;width:255px}.box .content .text-box[data-v-f1ba08be]{background:#f2f2f2;border:1px solid #f6f6f6;border-radius:10px;margin-bottom:11px;padding:12px;transition:all .3s}.box .content .text-box .text[data-v-f1ba08be]{color:#333;display:-webkit-box;font-size:13px;line-height:24px;margin-bottom:12px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.box .content .text-box .time[data-v-f1ba08be]{color:#aaa;font-size:13px}.box .content .text-box .time .time-icon[data-v-f1ba08be]{height:20px;margin-right:6px;width:20px}.box .content .text-box .time .time-icon.time-black-icon[data-v-f1ba08be]{display:block}.box .content .text-box .time .time-icon.time-white-icon[data-v-f1ba08be]{display:none}.box .content .data-list[data-v-f1ba08be]{color:#aaa;font-size:12px;justify-content:flex-end}.box .content .data-list .data-item[data-v-f1ba08be]{margin-left:26px}.box .content .data-list .data-item .data-item-icon[data-v-f1ba08be]{margin-right:5px;width:13px}"; + +export { Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang as I }; +//# sourceMappingURL=Item-styles-1.mjs-Cv5auGOP.mjs.map diff --git a/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs.map b/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs.map new file mode 100644 index 0000000..02e21ad --- /dev/null +++ b/.output/server/chunks/build/Item-styles-1.mjs-Cv5auGOP.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Item-styles-1.mjs-Cv5auGOP.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs b/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs new file mode 100644 index 0000000..02112ae --- /dev/null +++ b/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs @@ -0,0 +1,6 @@ +import { I as Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang } from './Item-styles-1.mjs-Cv5auGOP.mjs'; + +const ItemStyles_D6yMrUyf = [Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang]; + +export { ItemStyles_D6yMrUyf as default }; +//# sourceMappingURL=Item-styles.D6yMrUyf.mjs.map diff --git a/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs.map b/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs.map new file mode 100644 index 0000000..5c959df --- /dev/null +++ b/.output/server/chunks/build/Item-styles.D6yMrUyf.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Item-styles.D6yMrUyf.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Item-styles.D6yMrUyf.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,4BAAe,CAACA,oDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs b/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs new file mode 100644 index 0000000..8e2b074 --- /dev/null +++ b/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs @@ -0,0 +1,6 @@ +import { I as Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang } from './Item-styles-1.mjs-Cv5auGOP.mjs'; + +const ItemStyles_DTWkhSk = [Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang, Item_vue_vue_type_style_index_0_scoped_f1ba08be_lang]; + +export { ItemStyles_DTWkhSk as default }; +//# sourceMappingURL=Item-styles.DT-wkhSk.mjs.map diff --git a/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs.map b/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs.map new file mode 100644 index 0000000..8742bcd --- /dev/null +++ b/.output/server/chunks/build/Item-styles.DT-wkhSk.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Item-styles.DT-wkhSk.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Item-styles.DT-wkhSk.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,2BAAe,CAACA,oDAAO,EAAEC,oDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs b/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs new file mode 100644 index 0000000..d738b09 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs @@ -0,0 +1,4 @@ +const MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang = '.popup-mask[data-v-a050dcc5]{background:#00000080;border:none;height:100vh;left:0;max-height:none;max-width:none;outline:none;position:fixed;top:0;width:100vw;z-index:1}.box[data-v-a050dcc5]{background-color:#fff;border-radius:10px;box-shadow:0 0 3px #0000001e;flex-direction:column;height:606px;padding:30px 30px 46px;position:relative;width:750px}.box .cross[data-v-a050dcc5]{cursor:pointer;height:12px;position:absolute;right:12px;top:12px;width:12px}.box .tba-list[data-v-a050dcc5]{font-size:16px;margin-bottom:29px}.box .tba-list .tab-item[data-v-a050dcc5]{color:#aaa;cursor:pointer;padding:0 22px;position:relative}.box .tba-list .tab-item[data-v-a050dcc5]:first-of-type:after{background:#d7d7d7;content:"";height:16px;position:absolute;right:0;width:1px}.box .tba-list .tab-item .value[data-v-a050dcc5]{margin-left:10px}.box .tba-list .tab-item.pitch[data-v-a050dcc5]{color:#000;font-weight:650}.box .tba-list .tab-item.pitch .value[data-v-a050dcc5]{color:#555;font-weight:400}.box .empty-box[data-v-a050dcc5]{background-color:#fff;border:1px solid #ebebeb;border-radius:6px;height:100%;margin:0 auto;width:100%}.box .content[data-v-a050dcc5]{height:100%;overflow:auto;padding-bottom:35px;padding-right:10px;width:100%}.box .content .item[data-v-a050dcc5]{cursor:pointer;margin-bottom:21px;margin-left:22px;padding-bottom:20px}.box .content .item[data-v-a050dcc5]:not(:last-of-type){border-bottom:1px dotted #ebebeb}.box .content .item .left[data-v-a050dcc5]{flex-direction:column;position:relative}.box .content .item .left[data-v-a050dcc5]:after{background-color:#31d72e;border-radius:25px;content:"";height:12px;left:-22px;position:absolute;top:4px;width:5px}.box .content .item .left .name[data-v-a050dcc5]{color:#000;font-size:14px;font-weight:650;margin-bottom:10px}.box .content .item .left .info-box[data-v-a050dcc5]{flex-direction:column;margin-bottom:7px}.box .content .item .left .info-box .info-item[data-v-a050dcc5]{line-height:24px}.box .content .item .left .info-box .info-item[data-v-a050dcc5]:not(:last-of-type){margin-bottom:3px}.box .content .item .left .info-box .info-item .info-item-name[data-v-a050dcc5]{color:#7f7f7f;font-size:13px;margin-right:12px}.box .content .item .left .info-box .info-item .info-item-value[data-v-a050dcc5]{color:#333;font-size:13px}.box .content .item .left .text-box[data-v-a050dcc5]{background-color:#f6f6f6;border-radius:5px;color:#000;font-size:13px;height:45px;line-height:45px;padding:0 16px;width:580px}.box .content .item .left .text-box .text-time[data-v-a050dcc5]{color:#7f7f7f;padding-right:16px;position:relative}.box .content .item .left .text-box .text-time[data-v-a050dcc5]:after{color:#d7d7d7;content:"|";position:absolute;right:8px}.box .content .item .operate-area[data-v-a050dcc5]{display:flex;flex:1;justify-content:flex-end}.box .content .item .operate-area .delete-icon[data-v-a050dcc5]{cursor:pointer;width:12px}.box .content .item .operate-area .anonymous-box[data-v-a050dcc5]{position:relative}.box .content .item .operate-area .anonymous-box .text[data-v-a050dcc5]{color:#333;font-size:13px}.box .content .item .operate-area .anonymous-box .arrow-icon[data-v-a050dcc5]{height:5px;margin-left:6px;width:8px}.box .content .item .operate-area .anonymous-box .state-popup[data-v-a050dcc5]{background-color:#fff;border-radius:10px;box-shadow:0 0 6px #00000034;flex-direction:column;height:101px;position:absolute;right:0;top:30px;width:140px}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]{color:#555;font-size:14px;justify-content:space-between;padding:0 10px}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]:hover{color:#000}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item.pitch[data-v-a050dcc5]{color:#72db86}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item.pitch .state-popup-icon[data-v-a050dcc5]{display:block}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item[data-v-a050dcc5]:not(:last-of-type){border-bottom:1px dotted #e3e3e3}.box .content .item .operate-area .anonymous-box .state-popup .state-popup-item .state-popup-icon[data-v-a050dcc5]{display:none;height:8px;width:11px}'; + +export { MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang as M }; +//# sourceMappingURL=MyPopup-styles-1.mjs-x0pEcbTy.mjs.map diff --git a/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs.map b/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs.map new file mode 100644 index 0000000..30977fd --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles-1.mjs-x0pEcbTy.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"MyPopup-styles-1.mjs-x0pEcbTy.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs b/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs new file mode 100644 index 0000000..8743869 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs @@ -0,0 +1,4 @@ +const MyPopup_vue_vue_type_style_index_1_lang = ".dialog-box{background:transparent;border-radius:10px;box-shadow:none}.dialog-box header{display:none}.dialog-box .el-dialog__body{padding:0}"; + +export { MyPopup_vue_vue_type_style_index_1_lang as M }; +//# sourceMappingURL=MyPopup-styles-2.mjs-DqwHGoX8.mjs.map diff --git a/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs.map b/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs.map new file mode 100644 index 0000000..a00523a --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles-2.mjs-DqwHGoX8.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"MyPopup-styles-2.mjs-DqwHGoX8.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs b/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs new file mode 100644 index 0000000..b561f98 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs @@ -0,0 +1,6 @@ +import { M as MyPopup_vue_vue_type_style_index_1_lang } from './MyPopup-styles-2.mjs-DqwHGoX8.mjs'; + +const MyPopupStyles_BTWIx0mQ = [MyPopup_vue_vue_type_style_index_1_lang]; + +export { MyPopupStyles_BTWIx0mQ as default }; +//# sourceMappingURL=MyPopup-styles.BTWIx0mQ.mjs.map diff --git a/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs.map b/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs.map new file mode 100644 index 0000000..e8bfd64 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.BTWIx0mQ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"MyPopup-styles.BTWIx0mQ.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/MyPopup-styles.BTWIx0mQ.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,+BAAe,CAACA,uCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs b/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs new file mode 100644 index 0000000..817b127 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs @@ -0,0 +1,7 @@ +import { M as MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang } from './MyPopup-styles-1.mjs-x0pEcbTy.mjs'; +import { M as MyPopup_vue_vue_type_style_index_1_lang } from './MyPopup-styles-2.mjs-DqwHGoX8.mjs'; + +const MyPopupStyles_BwgCNXXq = [MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang, MyPopup_vue_vue_type_style_index_1_lang, MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang, MyPopup_vue_vue_type_style_index_1_lang]; + +export { MyPopupStyles_BwgCNXXq as default }; +//# sourceMappingURL=MyPopup-styles.BwgCNXXq.mjs.map diff --git a/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs.map b/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs.map new file mode 100644 index 0000000..622b4f3 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.BwgCNXXq.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"MyPopup-styles.BwgCNXXq.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/MyPopup-styles.BwgCNXXq.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2","style_3"],"mappings":";;;AAIA,+BAAe,CAACA,uDAAO,EAAEC,uCAAO,EAAEC,uDAAO,EAAEC,uCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs b/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs new file mode 100644 index 0000000..ae7090e --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs @@ -0,0 +1,6 @@ +import { M as MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang } from './MyPopup-styles-1.mjs-x0pEcbTy.mjs'; + +const MyPopupStyles_C_n_5a5e = [MyPopup_vue_vue_type_style_index_0_scoped_a050dcc5_lang]; + +export { MyPopupStyles_C_n_5a5e as default }; +//# sourceMappingURL=MyPopup-styles.C_n_5a5e.mjs.map diff --git a/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs.map b/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs.map new file mode 100644 index 0000000..7998d67 --- /dev/null +++ b/.output/server/chunks/build/MyPopup-styles.C_n_5a5e.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"MyPopup-styles.C_n_5a5e.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/MyPopup-styles.C_n_5a5e.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,+BAAe,CAACA,uDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs b/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs new file mode 100644 index 0000000..d76fcbc --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs @@ -0,0 +1,4 @@ +const RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang = ".pop-masking[data-v-e0d5b424]{background:#0009;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:10}.pop-masking .box[data-v-e0d5b424]{background-color:#fff;border-radius:14px;box-shadow:0 0 15px #00000035;height:540px;position:relative;width:552px}.pop-masking .box .cross-icon[data-v-e0d5b424]{cursor:pointer;height:16px;position:absolute;right:10px;top:10px;width:16px}.pop-masking .box .header[data-v-e0d5b424]{border-bottom:1px solid #ebebeb;color:#333;font-size:14px;height:76px;padding-left:30px}.pop-masking .box .header .total[data-v-e0d5b424]{color:#000;font-weight:650;margin:0 7px}.pop-masking .box .list[data-v-e0d5b424]{border-bottom:1px solid #ebebeb;height:376px;margin-right:5px;overflow:auto;padding:15px 30px}.pop-masking .box .list[data-v-e0d5b424]::-webkit-scrollbar{margin-right:-10px!important}.pop-masking .box .list .item[data-v-e0d5b424]{border-bottom:1px dotted #f2f2f2;color:#000;font-size:13px;height:64px}.pop-masking .box .list .item .number[data-v-e0d5b424]{color:#ffb600;font-family:Arial-BoldMT,Arial Bold,Arial,sans-serif;font-weight:700;margin-right:110px;padding-left:5.5px}.pop-masking .box .list .item .middle .avatar[data-v-e0d5b424]{border-radius:50%;height:28px;margin-right:12px;width:28px}.pop-masking .box .list .item .middle .nickname[data-v-e0d5b424]{color:#555}.pop-masking .box .list .item .value[data-v-e0d5b424]{flex:1;font-size:16px;justify-content:flex-end;line-height:24px}.pop-masking .box .list .item .value .bi[data-v-e0d5b424]{font-size:13px;margin-left:4px}.pop-masking .box .bottom[data-v-e0d5b424]{height:88px}.pop-masking .box .bottom .bottom-item[data-v-e0d5b424]{border:1px solid #797979;border-radius:45px;color:#000;cursor:pointer;font-size:14px;height:38px;width:128px}.pop-masking .box .bottom .bottom-item.green[data-v-e0d5b424]{background:#72db86;border-color:#72db86;color:#fff;margin-left:21px}"; + +export { RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang as R }; +//# sourceMappingURL=RankingBox-styles-1.mjs-ChPHWUJy.mjs.map diff --git a/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs.map b/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs.map new file mode 100644 index 0000000..eb9835b --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles-1.mjs-ChPHWUJy.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"RankingBox-styles-1.mjs-ChPHWUJy.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs b/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs new file mode 100644 index 0000000..25bca84 --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs @@ -0,0 +1,6 @@ +import { R as RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang } from './RankingBox-styles-1.mjs-ChPHWUJy.mjs'; + +const RankingBoxStyles_D9VUsQq4 = [RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang]; + +export { RankingBoxStyles_D9VUsQq4 as default }; +//# sourceMappingURL=RankingBox-styles.D9VUsQq4.mjs.map diff --git a/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs.map b/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs.map new file mode 100644 index 0000000..470ee05 --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles.D9VUsQq4.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"RankingBox-styles.D9VUsQq4.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/RankingBox-styles.D9VUsQq4.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,kCAAe,CAACA,0DAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs b/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs new file mode 100644 index 0000000..20e03c6 --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs @@ -0,0 +1,6 @@ +import { R as RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang } from './RankingBox-styles-1.mjs-ChPHWUJy.mjs'; + +const RankingBoxStyles_DhhXPAYo = [RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang, RankingBox_vue_vue_type_style_index_0_scoped_e0d5b424_lang]; + +export { RankingBoxStyles_DhhXPAYo as default }; +//# sourceMappingURL=RankingBox-styles.DhhXPAYo.mjs.map diff --git a/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs.map b/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs.map new file mode 100644 index 0000000..3bd3137 --- /dev/null +++ b/.output/server/chunks/build/RankingBox-styles.DhhXPAYo.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"RankingBox-styles.DhhXPAYo.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/RankingBox-styles.DhhXPAYo.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,kCAAe,CAACA,0DAAO,EAAEC,0DAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs b/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs new file mode 100644 index 0000000..25b49fb --- /dev/null +++ b/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs @@ -0,0 +1,4 @@ +const Report_vue_vue_type_style_index_0_scoped_10f3bede_lang = '.alert-form[data-v-10f3bede]{background-color:#000000b3;display:block;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:999}.alert-form .reports[data-v-10f3bede]{height:440px}.alert-form .reports .radio-area[data-v-10f3bede]{margin-bottom:40px}.alert-form .reports .radio-area .radio-area-item[data-v-10f3bede]{color:#606266;cursor:pointer;font-size:14px;margin-right:10px}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-10f3bede]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-10f3bede]:after{transform:rotate(45deg) scaleY(1)}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-10f3bede]{border:1px solid #dcdfe6;border-radius:2px;height:14px;margin-right:10px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-10f3bede]:after{border:1px solid #fff;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.alert-form .el-checkbox-group[data-v-10f3bede]{font-size:0}.alert-form .comments[data-v-10f3bede]{background-color:#fff;border:none;border-radius:8px 8px 6px 6px;display:block;height:440px;left:50%;max-height:90vh;max-width:90vw;position:fixed;top:50%;transform:translate(-50%,-50%);width:740px;z-index:11}.alert-form .comments .text-box[data-v-10f3bede]{position:relative}.alert-form .comments .text-num[data-v-10f3bede]{bottom:10px;color:#999;font-size:12px;position:absolute;right:10px}.alert-form .comments .form[data-v-10f3bede]{display:block;padding:34px 30px 40px;width:100%}.alert-form .comments .form textarea[data-v-10f3bede]{background:#f7f7f7;border:1px solid #f7f7f7;border-radius:5px;display:block;font-size:14px;height:172px;line-height:22px;margin-bottom:30px;outline:none;padding:18px;resize:none;width:100%}.alert-form .head[data-v-10f3bede]{align-items:center;background:#333;border-radius:6px 6px 0 0;color:#fff;display:flex;font-size:17px;height:56px;justify-content:space-between;padding:0 18px 0 30px}.alert-form .head .close[data-v-10f3bede]{color:#b3b3b3;cursor:pointer;font-size:14px}.alert-form .footer[data-v-10f3bede]{align-items:center;display:flex;justify-content:center}.alert-form .footer button[type=button][data-v-10f3bede]{margin-right:20px}.alert-form .footer button[data-v-10f3bede]{background-color:#fff;border:1px solid #999;border-radius:5px;color:#333;cursor:pointer;font-size:14px;height:38px;outline:none;width:128px}.alert-form .footer button[type=submit][data-v-10f3bede]{color:#fff}.alert-form .el-checkbox__input.is-checked .el-checkbox__inner[data-v-10f3bede],.alert-form .el-checkbox__input.is-indeterminate .el-checkbox__inner[data-v-10f3bede],.alert-form .footer button[type=submit][data-v-10f3bede]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .el-checkbox__inner[data-v-10f3bede]:hover,.alert-form .el-checkbox__input.is-focus .el-checkbox__inner[data-v-10f3bede]{border-color:#50e3c2}.alert-form .el-checkbox__input.is-checked+.el-checkbox__label[data-v-10f3bede]{color:#50e3c2}'; + +export { Report_vue_vue_type_style_index_0_scoped_10f3bede_lang as R }; +//# sourceMappingURL=Report-styles-1.mjs-DkP0yE0-.mjs.map diff --git a/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs.map b/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs.map new file mode 100644 index 0000000..a949043 --- /dev/null +++ b/.output/server/chunks/build/Report-styles-1.mjs-DkP0yE0-.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Report-styles-1.mjs-DkP0yE0-.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs b/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs new file mode 100644 index 0000000..94c815f --- /dev/null +++ b/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs @@ -0,0 +1,6 @@ +import { R as Report_vue_vue_type_style_index_0_scoped_10f3bede_lang } from './Report-styles-1.mjs-DkP0yE0-.mjs'; + +const ReportStyles_C_3x2FH = [Report_vue_vue_type_style_index_0_scoped_10f3bede_lang, Report_vue_vue_type_style_index_0_scoped_10f3bede_lang]; + +export { ReportStyles_C_3x2FH as default }; +//# sourceMappingURL=Report-styles.C_3x-2FH.mjs.map diff --git a/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs.map b/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs.map new file mode 100644 index 0000000..8bfb841 --- /dev/null +++ b/.output/server/chunks/build/Report-styles.C_3x-2FH.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Report-styles.C_3x-2FH.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Report-styles.C_3x-2FH.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,6BAAe,CAACA,sDAAO,EAAEC,sDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs b/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs new file mode 100644 index 0000000..1ec2268 --- /dev/null +++ b/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs @@ -0,0 +1,6 @@ +import { R as Report_vue_vue_type_style_index_0_scoped_10f3bede_lang } from './Report-styles-1.mjs-DkP0yE0-.mjs'; + +const ReportStyles_DfmqYhvK = [Report_vue_vue_type_style_index_0_scoped_10f3bede_lang]; + +export { ReportStyles_DfmqYhvK as default }; +//# sourceMappingURL=Report-styles.DfmqYhvK.mjs.map diff --git a/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs.map b/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs.map new file mode 100644 index 0000000..d6545cf --- /dev/null +++ b/.output/server/chunks/build/Report-styles.DfmqYhvK.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"Report-styles.DfmqYhvK.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/Report-styles.DfmqYhvK.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,8BAAe,CAACA,sDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-3cYcmCI2.mjs b/.output/server/chunks/build/_id_-3cYcmCI2.mjs deleted file mode 100644 index c4724eb..0000000 --- a/.output/server/chunks/build/_id_-3cYcmCI2.mjs +++ /dev/null @@ -1,1643 +0,0 @@ -import { a as buildAssetsURL } from '../routes/renderer.mjs'; -import { b as buildProps, d as definePropType, E as EVENT_CODE, i as iconPropType, a as addUnit, w as withInstallDirective, c as withInstall, _ as _export_sfc$1, e as detailsHttp, r as relatedlistHttp, H as Head, T as Title, M as Meta, f as _imports_1$1, g as detailsCommentListHttp, h as riposteSubmitHttp, m as mjHideHttp, j as coinHttp, k as getRiposteHttp } from './config-provider-CA7emI64.mjs'; -import { E as ElMessage, _ as __nuxt_component_3, n as numberToEnclosed, h as handleDate, v as vLoading, a as __nuxt_component_4, b as ElDialog, g as goToURL } from './top-head-BW7zJBtJ.mjs'; -import { defineComponent, computed, ref, unref, createBlock, openBlock, mergeProps, withCtx, renderSlot, createCommentVNode, createElementBlock, normalizeClass, toDisplayString, createTextVNode, provide, useSSRContext, inject, watch, withAsyncContext, createVNode, withModifiers, isRef } from 'vue'; -import { u as useTooltipContentProps, a as useTooltipTriggerProps, E as ElTooltip, b as ElInput, c as ElButton } from './el-button-BScT5ZwZ.mjs'; -import { i as isBoolean, e as useNamespace, f as useRoute, u as useRouter } from './server.mjs'; -import { ssrRenderComponent, ssrInterpolate, ssrRenderStyle, ssrRenderAttr, ssrRenderList, ssrRenderClass, ssrRenderAttrs, ssrGetDirectiveProps } from 'vue/server-renderer'; -import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; -import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; -import 'vue-bundle-renderer/runtime'; -import '../_/nitro.mjs'; -import 'node:http'; -import 'node:https'; -import 'node:fs'; -import 'node:url'; -import 'node:path'; -import 'devalue'; -import '@unhead/ssr'; -import 'unhead'; -import '@unhead/shared'; -import 'axios'; -import 'qs'; -import 'vue-router'; -import '@popperjs/core'; -import 'node:zlib'; -import 'node:stream'; -import 'node:buffer'; -import 'node:util'; -import 'node:net'; - -const _sfc_main$5 = /* @__PURE__ */ defineComponent({ - inheritAttrs: false -}); -function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { - return renderSlot(_ctx.$slots, "default"); -} -var Collection = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["render", _sfc_render$1], ["__file", "collection.vue"]]); -const _sfc_main$4 = /* @__PURE__ */ defineComponent({ - name: "ElCollectionItem", - inheritAttrs: false -}); -function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { - return renderSlot(_ctx.$slots, "default"); -} -var CollectionItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["render", _sfc_render], ["__file", "collection-item.vue"]]); -const COLLECTION_ITEM_SIGN = `data-el-collection-item`; -const createCollectionWithScope = (name) => { - const COLLECTION_NAME = `El${name}Collection`; - const COLLECTION_ITEM_NAME = `${COLLECTION_NAME}Item`; - const COLLECTION_INJECTION_KEY = Symbol(COLLECTION_NAME); - const COLLECTION_ITEM_INJECTION_KEY = Symbol(COLLECTION_ITEM_NAME); - const ElCollection = { - ...Collection, - name: COLLECTION_NAME, - setup() { - const collectionRef = ref(null); - const itemMap = /* @__PURE__ */ new Map(); - const getItems = () => { - const collectionEl = unref(collectionRef); - if (!collectionEl) - return []; - const orderedNodes = Array.from(collectionEl.querySelectorAll(`[${COLLECTION_ITEM_SIGN}]`)); - const items = [...itemMap.values()]; - return items.sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref)); - }; - provide(COLLECTION_INJECTION_KEY, { - itemMap, - getItems, - collectionRef - }); - } - }; - const ElCollectionItem = { - ...CollectionItem, - name: COLLECTION_ITEM_NAME, - setup(_, { attrs }) { - const collectionItemRef = ref(null); - inject(COLLECTION_INJECTION_KEY, void 0); - provide(COLLECTION_ITEM_INJECTION_KEY, { - collectionItemRef - }); - } - }; - return { - COLLECTION_INJECTION_KEY, - COLLECTION_ITEM_INJECTION_KEY, - ElCollection, - ElCollectionItem - }; -}; -const dropdownProps = buildProps({ - trigger: useTooltipTriggerProps.trigger, - triggerKeys: { - type: definePropType(Array), - default: () => [ - EVENT_CODE.enter, - EVENT_CODE.numpadEnter, - EVENT_CODE.space, - EVENT_CODE.down - ] - }, - effect: { - ...useTooltipContentProps.effect, - default: "light" - }, - type: { - type: definePropType(String) - }, - placement: { - type: definePropType(String), - default: "bottom" - }, - popperOptions: { - type: definePropType(Object), - default: () => ({}) - }, - id: String, - size: { - type: String, - default: "" - }, - splitButton: Boolean, - hideOnClick: { - type: Boolean, - default: true - }, - loop: { - type: Boolean, - default: true - }, - showTimeout: { - type: Number, - default: 150 - }, - hideTimeout: { - type: Number, - default: 150 - }, - tabindex: { - type: definePropType([Number, String]), - default: 0 - }, - maxHeight: { - type: definePropType([Number, String]), - default: "" - }, - popperClass: { - type: String, - default: "" - }, - disabled: Boolean, - role: { - type: String, - default: "menu" - }, - buttonProps: { - type: definePropType(Object) - }, - teleported: useTooltipContentProps.teleported -}); -buildProps({ - command: { - type: [Object, String, Number], - default: () => ({}) - }, - disabled: Boolean, - divided: Boolean, - textValue: String, - icon: { - type: iconPropType - } -}); -buildProps({ - onKeydown: { type: definePropType(Function) } -}); -createCollectionWithScope("Dropdown"); -const popoverProps = buildProps({ - trigger: useTooltipTriggerProps.trigger, - placement: dropdownProps.placement, - disabled: useTooltipTriggerProps.disabled, - visible: useTooltipContentProps.visible, - transition: useTooltipContentProps.transition, - popperOptions: dropdownProps.popperOptions, - tabindex: dropdownProps.tabindex, - content: useTooltipContentProps.content, - popperStyle: useTooltipContentProps.popperStyle, - popperClass: useTooltipContentProps.popperClass, - enterable: { - ...useTooltipContentProps.enterable, - default: true - }, - effect: { - ...useTooltipContentProps.effect, - default: "light" - }, - teleported: useTooltipContentProps.teleported, - title: String, - width: { - type: [String, Number], - default: 150 - }, - offset: { - type: Number, - default: void 0 - }, - showAfter: { - type: Number, - default: 0 - }, - hideAfter: { - type: Number, - default: 200 - }, - autoClose: { - type: Number, - default: 0 - }, - showArrow: { - type: Boolean, - default: true - }, - persistent: { - type: Boolean, - default: true - }, - "onUpdate:visible": { - type: Function - } -}); -const popoverEmits = { - "update:visible": (value) => isBoolean(value), - "before-enter": () => true, - "before-leave": () => true, - "after-enter": () => true, - "after-leave": () => true -}; -const updateEventKeyRaw = `onUpdate:visible`; -const __default__ = defineComponent({ - name: "ElPopover" -}); -const _sfc_main$3 = /* @__PURE__ */ defineComponent({ - ...__default__, - props: popoverProps, - emits: popoverEmits, - setup(__props, { expose, emit }) { - const props = __props; - const onUpdateVisible = computed(() => { - return props[updateEventKeyRaw]; - }); - const ns = useNamespace("popover"); - const tooltipRef = ref(); - const popperRef = computed(() => { - var _a; - return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef; - }); - const style = computed(() => { - return [ - { - width: addUnit(props.width) - }, - props.popperStyle - ]; - }); - const kls = computed(() => { - return [ns.b(), props.popperClass, { [ns.m("plain")]: !!props.content }]; - }); - const gpuAcceleration = computed(() => { - return props.transition === `${ns.namespace.value}-fade-in-linear`; - }); - const hide = () => { - var _a; - (_a = tooltipRef.value) == null ? void 0 : _a.hide(); - }; - const beforeEnter = () => { - emit("before-enter"); - }; - const beforeLeave = () => { - emit("before-leave"); - }; - const afterEnter = () => { - emit("after-enter"); - }; - const afterLeave = () => { - emit("update:visible", false); - emit("after-leave"); - }; - expose({ - popperRef, - hide - }); - return (_ctx, _cache) => { - return openBlock(), createBlock(unref(ElTooltip), mergeProps({ - ref_key: "tooltipRef", - ref: tooltipRef - }, _ctx.$attrs, { - trigger: _ctx.trigger, - placement: _ctx.placement, - disabled: _ctx.disabled, - visible: _ctx.visible, - transition: _ctx.transition, - "popper-options": _ctx.popperOptions, - tabindex: _ctx.tabindex, - content: _ctx.content, - offset: _ctx.offset, - "show-after": _ctx.showAfter, - "hide-after": _ctx.hideAfter, - "auto-close": _ctx.autoClose, - "show-arrow": _ctx.showArrow, - "aria-label": _ctx.title, - effect: _ctx.effect, - enterable: _ctx.enterable, - "popper-class": unref(kls), - "popper-style": unref(style), - teleported: _ctx.teleported, - persistent: _ctx.persistent, - "gpu-acceleration": unref(gpuAcceleration), - "onUpdate:visible": unref(onUpdateVisible), - onBeforeShow: beforeEnter, - onBeforeHide: beforeLeave, - onShow: afterEnter, - onHide: afterLeave - }), { - content: withCtx(() => [ - _ctx.title ? (openBlock(), createElementBlock("div", { - key: 0, - class: normalizeClass(unref(ns).e("title")), - role: "title" - }, toDisplayString(_ctx.title), 3)) : createCommentVNode("v-if", true), - renderSlot(_ctx.$slots, "default", {}, () => [ - createTextVNode(toDisplayString(_ctx.content), 1) - ]) - ]), - default: withCtx(() => [ - _ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true) - ]), - _: 3 - }, 16, ["trigger", "placement", "disabled", "visible", "transition", "popper-options", "tabindex", "content", "offset", "show-after", "hide-after", "auto-close", "show-arrow", "aria-label", "effect", "enterable", "popper-class", "popper-style", "teleported", "persistent", "gpu-acceleration", "onUpdate:visible"]); - }; - } -}); -var Popover = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "popover.vue"]]); -const attachEvents = (el, binding) => { - const popperComponent = binding.arg || binding.value; - const popover = popperComponent == null ? void 0 : popperComponent.popperRef; - if (popover) { - popover.triggerRef = el; - } -}; -var PopoverDirective = { - mounted(el, binding) { - attachEvents(el, binding); - }, - updated(el, binding) { - attachEvents(el, binding); - } -}; -const VPopover = "popover"; -const ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover); -const ElPopover = withInstall(Popover, { - directive: ElPopoverDirective -}); -defineComponent({ - name: "ServerPlaceholder", - render() { - return createElementBlock("div"); - } -}); -const clientOnlySymbol = Symbol.for("nuxt:client-only"); -const __nuxt_component_7 = defineComponent({ - name: "ClientOnly", - inheritAttrs: false, - props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"], - setup(_, { slots, attrs }) { - const mounted = ref(false); - provide(clientOnlySymbol, true); - return (props) => { - var _a; - if (mounted.value) { - return (_a = slots.default) == null ? void 0 : _a.call(slots); - } - const slot = slots.fallback || slots.placeholder; - if (slot) { - return slot(); - } - const fallbackStr = props.fallback || props.placeholder || ""; - const fallbackTag = props.fallbackTag || props.placeholderTag || "span"; - return createElementBlock(fallbackTag, attrs, fallbackStr); - }; - } -}); -const _sfc_main$2 = { - __name: "Report", - __ssrInlineRender: true, - props: ["reportToken"], - setup(__props) { - const reasonList = ["\u5E7F\u544A", "\u8FB1\u9A82", "\u91CD\u590D\u53D1\u9001", "\u4E0D\u826F\u4FE1\u606F", "\u5176\u4ED6"]; - inject("reportAlertShow"); - let checkList = ref([]); - ref(false); - let alertText = ref(""); - return (_ctx, _push, _parent, _attrs) => { - _push(`<div${ssrRenderAttrs(mergeProps({ class: "alert-form" }, _attrs))} data-v-10f3bede><div class="comments reports" data-v-10f3bede><div class="head" data-v-10f3bede><span style="${ssrRenderStyle({ "display": "flex", "align-items": "center" })}" data-v-10f3bede><img style="${ssrRenderStyle({ "width": "25px", "margin-right": "7px" })}" src="//app.gter.net/image/gter/offer/img/exclamationpoint.png" data-v-10f3bede>\u4E3E\u62A5\u6295\u8BC9 </span><div class="close icon-close iconfont" data-v-10f3bede></div></div><div class="form" data-v-10f3bede><div class="radio-area flexacenter" data-v-10f3bede><!--[-->`); - ssrRenderList(reasonList, (s, i) => { - _push(`<div class="${ssrRenderClass([{ pitch: unref(checkList).includes(s) }, "radio-area-item flexacenter"])}" data-v-10f3bede><div class="radio-area-frame" data-v-10f3bede></div> ${ssrInterpolate(s)}</div>`); - }); - _push(`<!--]--></div><div class="text-box" data-v-10f3bede><textarea placeholder="\u8BF7\u8F93\u5165\u4E3E\u62A5\u539F\u56E0" maxlength="200" data-v-10f3bede>${ssrInterpolate(unref(alertText))}</textarea><div class="text-num" data-v-10f3bede>${ssrInterpolate(200 - unref(alertText).length)}</div></div><div class="footer" data-v-10f3bede><button type="button" data-v-10f3bede>\u53D6\u6D88</button><button type="submit" data-v-10f3bede>\u63D0\u4EA4</button></div></div></div></div>`); - }; - } -}; -const _sfc_setup$2 = _sfc_main$2.setup; -_sfc_main$2.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Report.vue"); - return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; -}; -const __nuxt_component_8 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-10f3bede"]]); -const _sfc_main$1 = { - __name: "RankingBox", - __ssrInlineRender: true, - props: ["coinrankingList"], - setup(__props) { - inject("coinrankingState"); - inject("openCoinOperation"); - return (_ctx, _push, _parent, _attrs) => { - _push(`<div${ssrRenderAttrs(mergeProps({ class: "pop-masking flexcenter" }, _attrs))} data-v-e0d5b424><div class="box" data-v-e0d5b424><img class="cross-icon"${ssrRenderAttr("src", _imports_1$1)} data-v-e0d5b424><div class="header flexacenter" data-v-e0d5b424> \u5171 <div class="total" data-v-e0d5b424>${ssrInterpolate(__props.coinrankingList.length)}</div> \u4E2A\u5BC4\u53CB\u7ED9\u4F5C\u8005\u6295\u5E01\u8868\u8FBE\u4E86\u611F\u8C22\uFF1A </div><div class="list" data-v-e0d5b424><!--[-->`); - ssrRenderList(__props.coinrankingList, (item, index) => { - _push(`<div class="item flexacenter" data-v-e0d5b424><div class="number" data-v-e0d5b424>${ssrInterpolate(index + 1)}</div><div class="middle flexacenter" data-v-e0d5b424><img class="avatar"${ssrRenderAttr("src", item.avatar)} data-v-e0d5b424><div class="nickname" data-v-e0d5b424>${ssrInterpolate(item.nickname)}</div></div><div class="value flexacenter" data-v-e0d5b424><div class="" data-v-e0d5b424>${ssrInterpolate(item.coinnum)}</div><div class="bi" data-v-e0d5b424>\u5E01</div></div></div>`); - }); - _push(`<!--]--></div><div class="bottom flexcenter" data-v-e0d5b424><div class="bottom-item flexcenter" data-v-e0d5b424>\u5173\u95ED</div><div class="bottom-item green flexcenter" data-v-e0d5b424>\u6211\u8981\u6295\u5E01</div></div></div></div>`); - }; - } -}; -const _sfc_setup$1 = _sfc_main$1.setup; -_sfc_main$1.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/RankingBox.vue"); - return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; -}; -const __nuxt_component_10 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-e0d5b424"]]); -const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEZ0lEQVR4nO2ZUU4bMRCGvUi8gcgNmp6giwCJN8wJmp6g9AQNJ0h6AsIJGk7Q9ARZ3pAAZTkBuUGD4A3B9rMW0kzWXhaSTRPiTxrNLHhizx/biZ1ALTleAGyp8QJgS00hAXZ3d6v39/d7QRBU1QKQJEl/dXX19OzsrK9eIMCc7OzshLzYEabVAsIbFmGH5+fnMY9WnAJQ/MHj4+NPwoVnZWXlGyK0lQWrAFtbWzXcL+w98eXy8rKDF2QE0FpXbm9vrwkr2HtisL6+/jGKogHxkIwA29vbddb8EeG7w+wHFxcXLcIhNgF6CBASjnPCWmqxlmLiuYW9K2TvqhN+xQQIECPAJuGQjACs/wQ3zhXrJ8QvDNQR4z5hAuoQNYsHA4k2AY5JrOMXBupo4b5jAuoQNYsHA4kZAZg6P5g6TbVAsJSbLOUGocAL4AXwAoiaxYPBC+AF8AIkOIEXwAvgBfACuASgfY3/f6czjY+xNifGY/7lRKd3DkeENWyARZzVD8fP6qPofzlapXcVEfd+h657v5kIQCeuuwPn4UmnhVwTVrBRrBcWBp3m9AirSjJAhE2bCIytfAFo+wdXwTJwd7DJTIgJBeS0leWs/sQJAzxQY1CMS2gztt+MrUYoIKdcAehA00GX0Ao5h+S0CAXk9cgLCTOQk7mwMJATkbNHaKNPUR/xAnKa5DQIBbQNcEPEg6GoAE83Lz1CK8wA600sA4sY2B5hBvo5pR+txiCnQ85nQhtXFJURlJwmOQ1CAW1FzeLBUFQAA237SqkP2Dg3rM3wNWvT4OoHsfOu6I8pqo4XuPqhrahZPBgoKsEJXAOjE00nHcINbIjr3X+GPmLcJ2yUKwYX4q3Ql20WXLFx6siycdK+SfsGoYA+RM3iwcDgEpzAJYDh6WezOm1COuzj27SN1AswwDpOq5SInBY+FzMT6KNGWME6eTm8fpO2DULB1AWYV7wAXgAvgBfAC+AF8AI0CAVeAC/AGwQA6zl9nkGADgKMnx0KCTDAbWCjDDjg7HPAiYnnHs4M5qjeJaxgo9wggPibTYC2st/YDLAOy6GvCkA70/50UtFMMbZ30gVtqyq9a6xg42RmckYApo7mRbqEUwEhWmtraz9sR9Y8NPeAd3d3vxiLVlOCseyzl0VqhIwABkTo0HFh1V+CjmNE2C8qgk6L7yaOq7O3wBh+U3yNUGAVQDMAbmEjlb20mIQ20+8bPhdN39MuHpwXJwFmRacDaTOQzzxOi1wRdNpnN5li8eadZ/YdRJbiDQGWC8tBM6ADlW4sG9ikWEXQ0y3+BjMbdptpH6kcAmzqmJ2bj6FIuQXLiIDQvZzib/gY1pN+otgIsFIoIgJFHeM3KLyJaWWntOINpQlgQIS86+wilFq8oVQBDBOIUHrxhtIFMLxBhJkUb5iJAIZXiDCz4g0zE8CACCGbXQvb49HGCT+pNW0/qZXFTAV4xvya9PDwoBGiqgAf802N7yr2Lytl8l8EmCe8ANhS4wXAlpq/sWppbrWv2fQAAAAASUVORK5CYII="; -const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE40lEQVR4nO3ZjVHbSBiH8f9WEKeCiAoiKshSQZwKTq4gpgJMBZgKMBXEVwFSBSgVRK7gTAV7j27ZwQLklWTMx8Ez8xvPxF/xK61XgNE772MAeNd9DADvuqEDSPEdibyXrJL3N0r0yqBPVtIFEr3O6gEcI1fHDLqWyX/4t9AEC3XIoEuZ3s6HD02wUCSDWCP8QX0bWmEmf8rVXrL01hyfEFrjAPVtawaxpjhD6DesIi/8Ao2QS/qK0DHmaK3LAHJJ3xA6RInXWIprhApYbckglkNohUSvu0rSF4QMWtt6520OoQJWr7slviNk0NrWO2977gEk8ksu0V2V/HtXijfGL9SdY4rWDGI5hApY7acUJxijrVzSKXJtL721xBqtGcRyCBWwevpOMFP3FvL7/M4ZxHIIFbB62i6QqX8lDrFTBrEcQgWsfCnqtZaoe3McIzSTP/qbrVA/rkQl//oppviCzc5R//vgDGI5hApY+RaS/kLfDlEikb/C3OwSU6zxWDM9HNgRcg3MIJZDqICVb46f6NsBKj0c4CUyxZupOYRcfgiDMojlECpg5UvkhzBC15aYo+4fjFB3g0TtR/5+lZrL4QCVBmQQyyFUwGr3UlwjdI4pulY/9gyhCRYakEGsfQxgjF8I/cASXbOSrhA6xUwDMojlECpgtXuZ/PYXOkKu7qW4RugUMw3IIJZDqIDV7lk1j+AEC3XPqvn8U8w0IINYDqECVruXqLkFXiJT96Y4Q+gIuQZkEMshVMDKZ+XX8QhtVfL7/hr3qzTsm3yEP6hvQ5+xRu8MYjmEClj5Fmru421NsNDDZmru5yUOEesCme66RKaBGcRyCBWw8s3xE7F+YIn7jVCp+Xu8EvXjKz1shDNkanaASgMziNU2gPo/NEei9nL5I92WVfPLLLSQf24l/z7jWyNsdow5BmcQyyFUwOppy+RP675dItOOGcRyCBWwerqs/DIao2+5/PaXa4cMYu1jACOcYIpdW2KCNXpnEMshVMBqt1JcoL59rBUqNY+slZSouW1utsYRSvTKIJZDqIDV8FJcYYTNbrCQ/0Kr1F4iv+4zPT6MCRbqkUEsh1ABq2GluMIIm51jJn8UuzbCFCe43xFydcwglkOogFX/RrhCitANxsg1vBS5mtcSaxyiUocMYjmEClj1b46fCN3AasCafaREfghfEMrlz4RoBrEcQgWs+mXlj/5mR8j1dKXI1TwTJlgokkEsh1ABq35dwequU8z09GXyu0uokr9M3ppBLIdQAavuJfI/uYVWqI/WGvuoxFeEfmCJ1gxiOYQKWHVvijOEjjHHvsrUPAsukWlLBrEcQgWsupfL/6Ez9Blr7LP69T+hrlJkGRjEcggVsOperrsBlDjEvst19551Bq1tvfM2h1ABq+4t8R2hCRbaXymuEVoh0ZYMYu0ygEzNNfncnWKmLRnEcggVsOpXia947m6QyH8ntGYQa9cBjLDENzxXK4xRYmsGsRxCBayGlck/N9H+WmN5a41oBrGeagCvMoNYmwOoFNlX31oGsXI11+8hSvwv6jKAKc4QKnGENd58BrFGqHR3eVlXye+vv1HizdZlAHWZXvaCpksTLNQzg65lev1D6PN5/qvvE6z8lL/gtbVCop4ZDCnFGIm8l66S/z1DiV4ZvOs+BoB33ccA8K77F/DNI1Ad1eJHAAAAAElFTkSuQmCC"; -const _imports_2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAIwUlEQVRoBe2Ye2zeVRnH+7Zdxy7ILphQkEDnJgSUyyBlbB3boHLJcISF4ryFYKSJjmjmrt0y02V2bbfphIKOLbjoXMSNS1CDxICt7aoVF5wolTBZp+AYBu0UXLeuFz/ft7/n1/P7vef3vn23hb/2JOd97s95zjnPufzegoKzcHYGTmsGUqfl7TivWLGiJpVKLUH0YUfsI/+J3bcbGhoafcp8ZWdkAMuXL7+zsLDwZ/l0jv38+vr65/Lx8dkW+oT5yoqKim7L12dwcPCOfH189sU+Yb6ygYGBqZRF2g18D+XxlC8GZXYP+j3SMYBpPpt8ZWdkBUhqqnXc19d3wOg4xs7VfSyuPxU+5wBqa2sLly5den5ScPRaxUsC/SD4jSTb/v7+v6KTjeASfM8ZIjN/gz5z7tGsBmzO6Wy2JwlfRnuHthP+cTbfa0GXqVWrVt1HOewI+MONjY0XBbQXrVy58i0UaRv8Fo8dO3YrAxmQMf1NI/4XIe+jldK0YlXE/CPYC4kDIGhJT0/PK3hd5vHci2w3CXyGsrjR0bfS2RyHzyAZcAt+rs0+jH5IW0iTPJ7TgWPHjn2iqanpBLoM0PJ74fjx4zrTfcnLvkKN5EUbvA+x25gkTPLaxNfRxgc214PVkmAaq7QU5QafQZFPyGnxEeRKpkR6Ov0aaCvLOw78UZq7d3rhH+rt7V24efPmVuis0N7e/vvy8vLHOHpHYaiBuDn0wf+UtoymsvkkTTBj7ty5O9va2v47xA7/RqbQxNTpj6EXBfz+gwcPXr9nz55+8atXry5lM6pG72cF3oZ+YNOmTe7pErjlRqp5BrKdCVK974D+wYYNG96WZ3V19aiJEyfuh7xCPLCb8vz0EDn8mzEAanQuAZsDk0HwTTiq5uNgvrI5HUiMQy43k8uLFpwJu4U75lfGC5tzWqYjkQ3zBww/nlamUrtw+HxaOcIfOq2k03sxn027OHB7E1krJfiTeAK5wlLOT5CPzfyr3d3d127btu2k+UU2Mck/aMlj8B437AozzIWdcpjjsb2cuJcziGrKs5m4Krs3PHY+kfbDfJo2/ZUTJkxYDP4OLQ3uZpTg60NiliaVWr9x48bDxmfDJFXB7HaQoC/5uOs8bH9XU1MzK67w8eTwFvL1piMvHSghRAaA8kOmIZmFa9assRIwcQbWzCN8ljYpUOq8biLJGWzw8WrEupHYjyDXiSWYzCo8i69OtKwQ5HC3YzTBoQsiJUQn36WzmsBgBu+al6npL1C3z7tOLh2cIpb8P9DN99ycHcg7iPV94v8c+kLaZAa5DXwLzQvY304OO1Gebwbk+D2jhYtcprKysvnkyZP9GN2EXKszlvbZ2bNnF5eWlrZ2dnZGThw2mDr/Bk2gmZ/nST6t1M/evXuPzJw5s4X498Oq77JZs2a1cjccgg6hqqqqaMGCBesY7FaEunsE/fC1Y8aMWdfS0hLmESkhvUmoufV0cCsOR9JuDATHtWVlZfUBHyLs7HTQnnksW/LmxOZ9GXq78W4Mk6kv9Qlv+R1RTsrN3k1mawbGp7GOOkpjOsxLjsJnq5VKAzW9y+hcmOR+5Nj4Nr7b10vKJen4dQ2dmDw8uBHpqM0Rdju0kRcZwXul0+hcGNs/OzZ6tsTB7avVbue4kfjEAUjJsoW1Jt4DufQel7TI7XcgyUhyJjFrH26gSBy9eRCEJQI9MWIwxIT3xIkTJ6706L2imK1OrjiEfTGJc4Jc4jZp3jsAjq+bOb+12codr4yZYnJ+bXroET85XFs3hsUCu32VKxfl5OhDMjIAdnghR+Nagv4SiwsCqwFmYX1XV5fdD8POvG2MwaeaTq41Pgljcx22D5ieuyCMYTL1pT7hbSAXKCflphzNTlhncQi80+txdI+vd+H1L8P2+B0gJ871roqKCp0iZTTF+hR3RrPOe+gMCJLX/0fnBcoXOHqVaATUFzGaiaVT8Haa7qNCcpnHxTaae+NFc4jfxF82BbijuLj43rq6ujcdWQaph5neNigm0y5kpjp4G21Htmv06NF/kgOfplfR+eeCmR8lGfAupVE9RPp/9QLgKTGdpHdjMSOw+go4rIbIctCJe3w9kyt5BdSrkmTvgvyXeKCEtpiB/YbE31ODbyd5dRwmj88CvuC6kGUF5UBeT5sRcf5jtHBkAHQaPlPRraXmfGe065+m+ZeiHd8bYMKlzTAaFrzAzJfj89thUTJFDlpVlXUaGMzDRgtHSujo0aOP8hn3JeQ6EvX+3kxbRMsJwfu+kg7n0YmeGDqCLw4c/w5uQ/4EZdESyEaEWKmNDODcwPg13kKRAUS+yGSk4wqHcCbpNOMzLghmvlkvmsA2G0qMo+8MHFtpaRtyuY0J0AkZgjmHAhE46mjTZ6Ggk8+4a+wz7oP6qNeLdMqUKfvo/5p0FgUFz3BiLQzoEHkHoI8Idv5fsLKn7EroV2kqrztpbun1wj/C3yp1W7Zs+Td0TliyZMmkkpKSNRg+SNOmN+hjlp9jPz2O4FLohwJFD/QVzP4hMzTsHYCUrMJqUJ0ZjgC/j80qZunRbLbEXYy+gTY+m52rI/l1JF/ryoyOnEImFOYD/1ugA64soFXzLbSv0vbRDMbTUZUxWbBK001eMRSrhebbT128nRrReSFxAMF/kUrIBqE/nBpY3suYZX15NXEi3MCG14ymAXqq0VlwaCNfxVAsxVRs/LQ6h+XPhPwNm0WUZo94HySWkGOc4h+ESZzbdlE5qoIC3ibncFn9D6EmY5Az/lwuKPEZsGzZsnF8nOhiU78DJD8O/+MZhgjoczI3eTd6ew/5zKJ/bHktRiCkrnWjXipTBnA1A3hFdBywuxrZ/kB+iFkvi9vkyyeWUJ6BXjd73k/TjI5jysHVhT5xu3x49zjMxy9iS62+TnK3Sgh+kpmO6BMY21sJ6pGJz8gKkPTzI+suYvWLCHeKTOR74BRjFPA+P8B3gU6Kq2juEekL+Q4r9k3qf4dPeVZ2dgY+4Bn4P0YkZXhTwmuHAAAAAElFTkSuQmCC"; -const _imports_3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAB1CAMAAACxvxlTAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAftQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlInywAAAKh0Uk5TAAxuvub97Mp/Gk/n9HQBaZtC/HED1PMYRXiOwq8iQ+TBWyb2901mJESNsLuofCwe6TXoHav+J711zKCR17e5B0t9gVwROIVqISNshjRI4PJyJcYKDaLAIFGK6wYJyRLvPsO4cK0zAgUprCgxZbr4N0Cd2l8ZVvrL1UeD3LZ3rgT54cdM3hUWH+7x+4+/CDwXMhuxKpejdlpKEHnltA5+01c2pPVzaEFe/1WREgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAANCSURBVGje7drpXxJBHAbwwTKvTA1CSzNT88hQoixTO+zQzC7KkqKwMjGlO8tO7bDM7tvui6z5MwN2mZkFZvkYc/Rifi+f3c8838UFd2EBoI8lbdbsdMhp5mRkZgHzyc7hVa7P3Nx5Zv153A4eT75Jf8F8/v0QWqn9tgUi+qG9kAYoEtIP4UIaYJEgQDENUKJtty7mNaVawRIaoEzbvhTwmnKtoEI2oFIBFEABaNuXVUWmWhqA+yiAAvxfAFtN7fI6XrPCUZ8MUMD7+q+kwRSQx//617nSBJAt4PofulZRARbe9z/arKYC0oT0w8Y1NMBaMQDYRAPofwHnOl5TqRU00wD6KdjC7ROnVStYTwNAQYANCqAACqAACqAACqAACqAAMwds3NS2ecvW+HxbU3vH9vi4c0dX7k6WgF27w/mevTGxe184Ts/fb4y7D0Su7w/2MAN4ovfMhwxx9WE9LvaS8ZGjepzTwAjg64XROUbmx1HsIOMuFJ9gBOhDK8KTRNyPY5cfxwOYC0+xAQziFZ1ETN5LD+E4QMSn2QDO4BXPEnEb0XQOx+eJOJcN4AJe8SIRXyKahnHcScSX2QA8eMVaIi68guIRcverKK7wsQH4M6Ir9g6TOfo9sfFaYu91wAYAGm5oG+w1hth7U++/Zdw9U19ndIwVAPhaQu+t26Ox3+3Y+u6E6u8Wxe5+byS0yniHP24dc4DL7J/RwFB9d4IY9ATuJ4ofBCYSxUZA3kN9JqNnkgmAzRgBVmicdsmAR+WSAY+BXMATr1xA81MgEWAffBZJBAOe92vz4qVN3y4YED8KoAAKoAAKoADSAdHfFeOf+CO+AJhI4cFB/f7iFQ0wDmnzGu3jgKnPGxrgbXLAOwb9cIoGeJ8UwOL44eQH6klSlgTApB9+pJ+lWZ9MAUxef1g3RgcAd6sJgE3/5y+m71TLVycNwOT1//bd9CH28Nh+TFWh+YkBuD/4q+ofx+NO1h470wiAX/9gwUxXSWEQQFI/AuCPqOBvkf0IIOn44wGi+2MBwVLB/TEA8f1GgIR+A0BGPwmQ0k8A5PRjgKR+BJDVHwVI69cB8vo1gMT+CEBmfxggtT8EkNsPpiX3gz9C+/8CpF88QkIGjaAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDMtMTdUMTc6Mjg6NTUrMDg6MDChPsRaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAzLTE3VDE3OjI4OjU1KzA4OjAw0GN85gAAAEt0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fYzdqdmdreDE5cWgvbGlhb3RpYW4uc3Zny9FFYQAAAABJRU5ErkJggg=="; -const _imports_5 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAALmklEQVR4nO2d7VnbSBeGZ6QF9l+cCkIqwFsBpIKQAgC5gpAKcCoIWwEKFBBvBXEqCFQQbwXr999CXkl7jywRA/6Q7fmS0H1d55ojIHA055lvyZGigWRRtPv/JHmVSNnlBjsiy3YzIXYFSCnVdRf3AZmUI74+EgVSiDE/fE05knz9tzC8kXE85luNgvurNyS7c5em+7jdLMsOuKEufgczwTgT4jrAEMxwOwi+1V0U1Ff9+Hl0tE8iDknCAa22y5fcoXqJLBtSkYOtq6tvfKVWSKwW3EVRN0uS97iHWAfzkTE2kGH453YcX+N7j9cCoHvfpXs/obVHtLJdUSPonUZUbsww8ZlhYiQ8hRj942cUHaRJcoIbiWYQB2H4eSuOh8IzJOYNKvFJkpwR1IFoIJkQwzAMP/okBIk5p+mJf4xPQpCYM9QYf5skFwRxIJ4ng+0w/OByjkDdu+H2+PiMJdwpbgd7zqgNp/Ody8uP+NaRmFXy7j5NL+o2qzeNWjWEQdCzPSxIzBp3R0efGP9OcVvmQELOt6+uPuBagb9nHjXWs57/Qpff5bJlGewusn/wzsbcwLgAaPURrf4Tbgdrqc5YhGFvJ44H+MYwKoBiotcXLWtDgowOCfx+/dDld+6SRLX6SLToIC6Wi2N8rWgXQJ78NP1Ky+9y2aKLybzgjW4RaBVAm3zDGBCBNgG0ybeD2i8IWCHoOm7WIoA2+XZRItgJgj909AQbC6BNviM0DQcbCaBNvmM0iGAjAdweHV1QRKLFJfHO1VWPci0kthZ3x8fnWZa9x21xjJTyz+3Ly1PclVlLALdRdCiS5Atuiy+E4bt1to1XFgDj/i67fN9xO1iLP4zZLVQrg5FYgZUEQPLbSZ/PMCncubz8A68yKwmgHff9Z9X5QGUBqCd50iT5itviOUEYvtmq+GSRxCrB0e73tuuvB2qn8PfLy9e4S5HYUkh+n+Sf4bbUBSk/Mh/oiyUsFQATPzXr/4HbUi8qrQqWCoDdvi8Uh1jLfG4Yd0/TNB3QU77g2hcG7BK+o5zLQgF4M/GT8n8yy04Z2849q2DFDS3tgJY2zt9gTtOhTzEizDeLJoQSm8u/R0df+YED4RKV/CA4UOffqoIR5ICYXvEdH7hPPn6ObzFmQgx/v7p6gzsTic3Ei9Y/lXyucpiTqOcNh0KIPcwdM2Ir8SbGgkW9gMRm4rz1+1zBC2IrcR7jFNmCXkBiT/Ch9RNYb/vqKhZzcFbBFZJf4izGGczrBST2BNb9MROZE1wnENTC5JdYr+AVkl9iPcZ5SPmZfYFIPEJiDyBgp+t+AqqU/BLiVRUcCyHeYkaRrKtXSf40rhuVggnrayasIzEF9f0QAu0T6BmudQimt0rypyHumLhPcI2wSWwlpmNcyozdQe7rIf8eH/9gzb0rLJMJ8YGJyjnu2piqYCpp4+SXmIqxCuyjPDkjkNg9ag2bTR72sMuc8WkddFew1Jj8Et0xroJ8NIxxf79wEpjG5Jfoug9pIPkKttcvKCLhgMfPC3CPvyCwfyg6mBUyIb7R7R8IA7CPcSonr6Wvx4zxUgfU8QVFJNwx5nzgJWUOdTTB4do/JqAepXaKzya4wF0NA72SwoPk50zvCUgsh26zT7d5huuC2BsRNDz5OVO9m8RyEIDrJ37ci8BQ8iv/fUtkU0OvxMrNlH9wXWNWBIuOk59J8kvYFHrJptBY4vv2oseA4HoqOHyt5MvcGef12VSL0Imvyc8pXiSRuP497i3lxi89zmOGCJ6c6evA6+RDuRzMBcCSaYizj+sPdkQwMpJ89fsnK6oO5iVZ0euRd4YAy+v/yhgWwZb6/4A0/271e31PfkG+HyCZADo9/VuKQRHopkbJz6H3eykdbgCtwliyeTG9h+0bdUu+Qm0ISdb/fcbCM659x1sR0IvW8qVZxv9enQSg8E4EdU1+DjuC0ssVwGK8EUGtkz/hrzoKQGHlg5QX0YDk50tB6eoJIB0g3J6J8/oqsHS+oIhEjcmUALgRyvriQgTU2QVFJGpO1gQBKGyKgPq6oIhEA+BwbNQIAShsiIC6uqCIRINojAAKYrY3e5TaKSZ9IyZ9L7hsDM0SgKEz/ZJ8t29yiNQYETRHAIaTX9I0ETRDAJaSX9IkETRBAEYe6FhGLoLJO4l7WC0h8WwEHR2NpCefZrEGTpJfkk8MfXjzd02yQgBDBLDPdd1wmvySOosgq7EAvEh+SW1FwNypbsfBKuiVP6TBBrUUgToOrpUAPE1+SSGCWFj4sAodZEJ8kJ69EzAfz5M/DY0qplGd4HpN/kgYqvX7oVBFjZJfUgcRMI96yfwvD3ZMsC9wvYQgtR/0KOHfpunXMAh6W8WbsrqhXmPq1U8R0KjYPOtIXOHzSoC4TCRfHezcP81j4m+U+CqCjCXg/Ysh3r0aVkBw2hPzOPklJv5WiZf1ywqAHqDPfROgh++xZcxQUeg5rjbmJb+EyjAnAt/qePrlUCrGr4kgGxSoMxKaoTte+hkI8pmIIJ8AspHG/U7gUOiaYg9zi6nkr/Y0T2zqwRJPRHDD/XUphcRyvBin/Eh+SXNFUIz/AiSW48E7gn9R4YeUWlkz+SVmRbDoE0sMojaAtoqlr8TuYYwcuwgIjBzuaOrVYmMiUM8U2H6wpFj/4+VI7B4EEBPMCa5NzCRftTB93az1j60xhSw+GQQ354EAHAwDdUj+BIOfU0DD6yOAM1zjyEUfFatgV3DEF1/hGiUT4u+dMOzqrlAjyS8xIAKj8T4io87ZW9kVU5DrhyCAU774Cdc0A8bWd5TasNKDaRSBzeTnTM3+S8j1QyxvCmmbYOVj6ST5HcwsExG8QwQjsSbWkw8Mt68fxyyxJ7B0GlC8xWywsQisJv8Xa39OQRHvd1x7zNljkdgTrHSlD1lbBEVlqlg7mG1WFoGreKfX/tNIbCbMBYZ8cx/XDpNu9Q1d1JirSjBcqUewfuB2MFdUFoGr5GfF0a+YgcRm4qAXIJrqIsiTv+BkzzJLReAq+Yp5rV8hsblY7wUUFUTgWfLvoa56s04SiVdNrNWY38Gski1o/QqJzcVJL6BYIAIq08vkl1ChD0TgOt5FrV8hsYVYXhH8AhHIIOg97lbpldz+l7YVIL5cBK6Tny1p/QqJLYSb2OUmrrmJF1za5sHYihgvKCJRAzjpUxtqEfXW5dI+HPrQi6qd1pFYADEux+Ze9QxyETCBeo8fiZZqzNj1m0UlAShofdcUe1iL52Qz9vznUVkAziaELSuzbOI3jcQqo+kBixaTVOz6S1YSgKIdCrzmhi31LmVlVhaA41VByzwqzvofs7IAFLV5o/gZQSJ7au9BrAj/bj3a+YBHrDjuT7O2ABTsD8QMBSe4La6Yc85fFYltRDspdMrGD9VuLAAmhepMfihaEdhm4+QrNhaAohWBdbQkX6FFAApEoM68B7itCMyiLfkKbQJQIIK2JzCL1uQrtApA0YrAGNqTr9AugJJ2iaiRDZd6i5CYMdrNos15/DKnbowKQJFvG6ep6g1ecNlSFfb2RRBE6nN8uDKGcQEomBe0K4TVUOP9IeP9SBjGigBK2iFhOaa7/MdYFYCieLLoHHcPa/nFjQzDqHwA1hbWBVDCKqEvhDht5wawwWnepjgTgKKYG5zjvsWeHyzvtoOgb2Osn4dTAZSoYSFJkj7B7HPZeDIhvoVh2K/64KZJqHN/aLoQMo8SX0Jd+4cSAhPFU9xmDA109TIIzm1P8KrgpQBK1BzhNkkOcdVrVq8oa0MmxN8U5zthOHA5xi9DYrUg7xXSNBJCHHq7cmD3jgqN2cGLfWztsyDe+pF/2EKaKiEccrmHueSGxA+CIBhueTS2V6WWApiGYaLzk2Eik3KXXcYDdtK6wlQPQQvnb1zzN4a08uttIYZ072O+U1sk1jgQxe6dEF2Rpl0u0UN2IICb7VDsYYu4Yfwe87NjEn7NNbkOhr8JcV33ZM/iP99/T4+xGHCrAAAAAElFTkSuQmCC"; -const _imports_6 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAIiklEQVR4nO2bj13iSBTH33gFkKtArMBQAbECsQKhgTPhCtAtYCFWYKxAtgJjBeYqMFuB2QLOue8EiCQESAK4uLffz2d23oTMm/d+8yeB3VWyZ8bjcftI664o1dYitmhtcdmmWJRFYjFFqUSJRNwXvSn15HlewvW9wVi7h6RtHF+SRI9mW7YjQpQQ8e4RI6K9UxRlJ5C0dSRypbXui0hb9kOsRHxWhhEjob01+NuOhcRdmhblI0iUUv6byK23pRBbCXA7Gl2xNG+kQuLc90Rl9nYiR0ehlPH25rDc2yLSViJd6k0k3OdeDYf32I1QlNow67bS+g7TppSiRb5TTUhowiyF0gDGcRCsh9lXIi3qVYRaqQHjxFIT/NZj06zz2RNJ+wQzobkzEKOHGC4Bd2mWkSACw3qB1AB/1fHH4zuC6EsJepq4SwARzb2BEDYx+ATepbmMUgFBDLAqoSgbYVCLJf+A6UgBbZb6NPEJzQ+DmHozIY5p5kEELUJImw9I+q+HgUzyj5g2JYcW+cZg/SoD7QMTGyIEJHFOs0jEljjbFBt91+OPRs9UNiUHzvHt+Zg/HYToM0l3mHk4gFmaF1grWSvAqj1P8gOSD+SAQASHWCck1KL5DtsBEQZYpShKKTh0UXWMmYPkO96eD7qmELONCCFJtWhmEPPKCePeZYwjkn/EtCgZ6xwdCsTuzGJfJCH2M2KPsHOUClC273FA/8PY85tAhD4i3GEuErnDYYc6x5IAdHbpPMbM0Jz23nDYw/w0jEejgOQuMTPKJpF73iF5i+RfMC1Kip4+5206JjQ/DSYXzoOIBI9pzjFb4WQxFz5/Z/z16w3fsq4xM+hw4X3wS86uQIQeE/qAmcG31i/e33/fyIxMAG62uPkF06KkaF5vWfqOfGLYCiFJdjEzmFSzCmIBPpuyYvY7XsnJ+ZlgYm0m9hkzY3EVZAJw8r9QtWWG/gVmf07JKoh5IpxQi6KUq7TF3sef9YfWp/8q9cPbwQra1h/9e+T3gJkxz28qwGjkY1xhpmhOfma/LTVhIAs/16wxl+aciMEGDBZh14bX8fEu/JFjTGzHmCna/Mg6HPa5xiCFFx8+vOVDF7MWDOLj8AqzSEzQHW/h8VOFsnNpRm1/JbElbIM/FQJbLI9XLmTg/AznodQEITVVKfgc4DOQGmzwh7v8S806yNMhz0fMDHx0jAA9PnignYEyiFUP/CwNsMjiyVsF/Nn4e8YsRTdYpUVBEcBTxWWmG57+BGwR8CtmKWYw8DErUwx4kbqCGtgGITPbxUzRnAOKixMuntNO4WJtZecUfc3B5w9Rqo0ACc3KbPBnXs9jqQH+AvxdYqZoJtsIEHKxSzulibJzzCrAgfF3SjNFT4PtEWwoNZn5MyJ0aaboqT8Xf4HUpLjaDYpl9kptUVJYqmc4D2ULCNxJ/5Lj6CgWkQn+EurGFPyF+IulAfjpsU0fMDOMAJo6YxcCHCoIsHRQ/xbgtwD/dwF4CiScsi3slF9cgD4C3GFmGAHMY6uLnbLNY/DQKT4GNY9UI8AEAc5pp3Cx8YvQoVOSKy9Cy6o0ehX+DHDePVPZlBRyvd/Zl6FDhzwt8nzFzOC8GxgByj745Q5C8uyR5wNmBnmepDPN3ogwTjFTWBqNzgEGsajaiBdR7wXGaAswRiw1IMeAHC8xU/TsVy+upR/6GFeYc2K2wQl1ZQjMRuFHTAtlO94eRCiMMWCMQCrC/n+lsigpejbJCnvu+BkzgwEuPH40xKwEA5j+NsWQ0P+M/hH2TiBG8wwfY1qUFMY4YYxYNjDre4eZQd+OR3ypAAZWQUzjGHNOyCo4o64EAmiqRYwIF96WZwnBW2r5h9YU/J9V8U9sj1SOzNCz5S+A7ynFx6Gh6gCGsv4pSvla5At+Elq1uB2NLul7IyJtKcD1J5JwZAMI6DD7j5gZ5EU401+nFCWFG82PDzEXWjTn1FoFrKJQLbxVLjD/l533DBzLGkwcR1qf6xWJG/jsCWF7+EporoXZf6ayKSn0NT+otOd9FSWjbBZR68KreBaY4BFxgtMuzVVEjDH1x9/e8idRKJs/aab/KNKmrESzMJh5F3MjxNNn9u8wMxgj96pPrO/QwSQQc7FFc06MCB1vplgVWAk+Pq4wd4Zm3yKUSxwTmhsxuZD8C6ZFSdGF2TcoSg46unQcY77DjDHyBVZl8OMgphHilGZj0qDxw89h/mLgm2DpP1I5sgATeeEVBCS+ZZjBiA9ygdOZvtODow4zIVxMB58t6kro6T4PGDOQmpRuZfyxdRwpQEzLELRN0CEf5gJGhEGTgObgd/rjpmG67y2KIWG8iFqY6ZAxQmkIYyzve7OKGA+/sRQgx3JwtLwVABE6Hi8QmAcHMS8lbyDmM2IOpYSVAhjYCgE3XGLmwOEAh4EcECuTL5z6RchvPYgQclMXMwfXzH9UuMX86dyOx9da6xspoM17B38FLmsgj/WgrIWMITee0szD04FBzGpIaH04JjZm/QHTkQLEtTF5A3ltxgyECBNu7tIsErMl0CD/eNk3s9dkH9Oi5OB6peQN5FQdtkNAh0vMMkKE+IIQoewRJsNh1q8xHSmBGAih+uOafOpBAC6r4YaOLZplhHzmcz58w94ZzLj5fuBiOlICn5lHXY/kQ6kBsdYHEWxECOh8SnMVMQFN+GIz+Ws4fKJdC8aw6NtlRnuM1eOSRSmF5M1Lk0k+oVkLRWkMQboEd4OTFs1NhAQZc2/MEg6lAElYfG5Tt/Fpc8mUtXDvd/q4JD6h2QhF2QpEsHi7c00gOKsixNaQeKPvB2UQ825YEKKP02Mu7Rwt8g/+fczJtonPIdbdgxg2M9QXDiwGOKVuTJr0dPsEJB1h7xTi2y+IYVGZL0E2SdjYFqXNwMfUGdrsZ84HMYXfJFjeEXZI0gn13vgPpzOTBSef2gIAAAAASUVORK5CYII="; -const _imports_7 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAEMklEQVRoBdVYXVLbMBCOM4FnjpCeAB8hPUHbE+CcoGSGn0fcR+AhuQHmBMAJQk9AeoK2N2hfgSH9PlXrWcuycUKsGM0oK63k1fdJ2pWiqKfSxcXFV1QT5Fipu1Rc9Pv92dHR0bWAiliYTqd7T09PcxS7Clzwilzs7Ox8nEwmf/rUvDPwhBxbzL3o8vLycLlcTqllQvnb7u5uBna/jKIjP9glw8fHxySKojMFaRxh3z9AYbYOwZ+enqaqQ+eK5+fnqSKx4BbK9z1nvnOIHUAOxpgrsJQ+JycnxqmlLtITnUrRQPqGkBrzoG7AmugUv7y8ZDB0KNGgzk6bbSYKVQ3QIDrl0aDKRtv6SgKMThg89w84zgSz/YGZzq6AxViJRNWDFiu3EEAeCBKCPz4+nkkdMkU06KlowBM8U+3BipUrAAT57A8GgxI4NxoEQ+wMVEfA6drNaiUBbI8fAhknIP2hkHgqikL3FV0oWekDAJAhmysG9zqceomtdE1gz8/PB/CR/EhHWfsHuwRLlStAp9UzC5ApwupPZpYFIfvgAMykHlpWEiAQzPhIk3DBsY19XH3Iet0W6vG+DTAmzgMsb637BEfgKM+wShnr20y1BASY3SKZ1NuSOBBj2sZ4i6ZjNCLQ1Ni6/SzwG3w/pA3U7yEmTYjU+gCNtZ0s+DnGGaqxRijPZUWUvlTcKgEFfq+ErNej7lUSWyPgAX+HF4cvzAB+ZwkJicTWS2IrPuABP3bOklv0IegrZJK4Qp3OnaFcSMFXoAF4A9CCHSu0JMFbbyEFJdAUvCD0kJjBBlclT8EIrApeEHpIJNJGuZYP8I0GFzpzKuMq8d2e2NpuobwueDFCErDBamH2qVh5BWAowYXuAVeJW2Ze7qijMV+ybYzzEipdh/V9VtJ5VsL0WYkAwHAGmAUMjZgogev2GSs6WfC6/1rgxaaPRGMCFnwixlyJ1UhtH9OkwEvXN4EXI5aEVF/3Ac/b0F/cRlNYWNAKgB9CfGIZKQHwIdrvoJ/+V5nfjYBX9vJirRPTWbHHb9A7tl/8hvyMa7QBb3X3zmyPAH5k2yhaA0/jlVsIoPho9YA+Bjz/A+BNKMYSavC0ISekPnSMHt/wRpmZSks/XgJwyBHGmyPvcVyC5z+vunDpczCsxAG3IG20lUoEuB0wsAZ/jS0T14EXcB4S5umxTRIFAjYUMuyZhJkn+MRWG4nQJAoEMPOpQjleFbx8G5JEgYAAgHxz5AhFwiXAGP/RDq74rFcMQcIlMMK2uV8Prv+rtkkUCGCwUoz3w1pN2yaJAoE2w92mSPB2oKevz0NKFL5XaGnbhNwECfdVnCuQCTiQ4Sv0mctS2jchK0jwvlWbiInYiFE6IuzPIlbQsEBlXxreg+TO4Q3B+MBrr9BdI0Tw8ipuVkAA8h6ExvwVWvRdkQTObWO3oYH1D6b3GS95f85qAAAAAElFTkSuQmCC"; -const _imports_8 = "" + buildAssetsURL("title.Bxzjc9QQ.png"); -const _imports_9 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='14px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter572'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.4%200%201%200%200%200.4%200%200%201%200%200.4%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1686%20-5323%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='14'%20height='14'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAIdQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92IrIQAAACx0Uk5TAB5tuNj0bB0bmfz9qiBQ8/JOb24cGp6ba7e12/HZ12n7nJgZSU1MFZGitmptU/ZgAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAQ1JREFUeNrt1utOwlAQReEC5WKrnGKrItaK4t3z/s+nicYIHacN2ZHErO8nk7UDDSEkCQAAAAAAAAAAAPBpMByl43E6mkwP0syOsvglPz7pN6Vs5iH+UCz6bCmb0zxuycvuLWUz33n949L5eZRNFWJLceZvSZvzaLjwx5TNILMOWeVtSZsympbemLS5tA8rb0zaXNmH1BuTNsE+BG9M2vxyqPcY26+5tg+NNyZtDv4lnNiHG29M2kzNH4i1+6OibW6tw13ikjazov16vfHHtM196+HkD0kHbVPu/lEYdm2pm8XW06kfu7fUzdPz+vttvWz6bMmbavnahNCs3qp+U3/ZAAAAAAAAAAAA4J97B6Y13hOEznw5AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTAzLTE4VDEyOjI5OjA2KzA4OjAwpDFvtAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wMy0xOFQxMjoyOTowNiswODowMNVs1wgAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2V3MGNucnU1MjUvZ2VuZ2R1by5zdmfa+p/PAAAAAElFTkSuQmCC'%20x='1686px'%20y='5323px'%20filter='url(%23filter572)'%20/%3e%3c/g%3e%3c/svg%3e"; -const _imports_10 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='13px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter571'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.4%200%201%200%200%200.4%200%200%201%200%200.4%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1740%20-5324%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='14'%20height='13'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg=='%20x='1740px'%20y='5324px'%20filter='url(%23filter571)'%20/%3e%3c/g%3e%3c/svg%3e"; -const _imports_11 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg=="; -const _imports_12 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFFklEQVRoBdWZW2icRRTHdze7MVsviblYRVEbr4iihnjpmnuCxEARtQYFxZc+ircHfUygUkXQPlnQKuibBEEkNRISkxDazUNDQLBREW0pPtikmsqa2N1ks/5OzLecmb0k+/ml+zkw7DlnZs78/zNn5puZDQZ2KI2MjFwVjUZfxf1+8q3ki+STmUzm/a6uri+RPUlBT7xYTsbHx+8Kh8NfA/ZGq8hRP0U40NnZueYY3P6G3DYs1G5ycrKmoqLiqyLgpekL5DcL+SjF7jkBOn+ZfLMF4i90e7RfGxsbKzRDVvPC6k4QeFp3FwwGjywuLtYRUtcgx1VZBJtRV5VtW/ScACBv070TSgf7+/tTra2tS+vr6+/qMuT7LL1k1VMCs7OzEQBHFIo0C/U3R2dtfO/I8gvZ27XuRvaUwPLy8g2CSwFZUnIAAr9qHbI3ad2N7CkBQuQWDYIRPqv1lpaWBLaUslUq2ZXoKQEQ9GoUjLARMlKGLUsAMhW6vhvZMwKDg4Pi60kLxJjWh4aGBPDljg0yq47s9tczAu3t7c8CYo8CcjGdTh9TeqChoeFqdL1GzupyN7InBEZHR2VUD1oAPu/p6fld21gjTVonhE5r3Y3sCYHKysqP6FyPfprweNsGFAqFHrVs31l6yWq45BaqASCDU1NThzA9o8wiHuXEecqyiWoQIMS+yVOnJJNrAsPDw7sA/wG9PWf1+FMkEnndsgUmJiYewnaPsieqq6tnlO5KLJmA7DZtbW1PEA7vMQP2YewCo7qfr2/CRkO8v2LZrkwkEilOr3LQ285uJPeJefJn5E+co7jeEbDnT3RyLSV3k9vJz5PzfUETEHqM0DlBuZHkiAHYPzFGjQL3yixN98kxRWK4lY6PYLi+gD9Z6NUFyjbMjO4v+Hgch3kXZTwej6ZSqfPU2VXMTyll9Dm3sLCwN4TTj2kooyt7dL5cDHwGRx+urq42FQIvoGKx2N/08xJ1/xDdi4S/pvr6+gNBwkPir9S1kKbNF+zrb3V3d89tF5CsH+oXG5CCrpLJ5HXcHw4DXO9kM24IvMhClY/UuYK97VABd+3dnGizx3O6SeR8yIjV3TCtdTKVZLSzidvV0XKAFwCAT2aB/CtEJHSMnaiurm6pubk5u60RYkabxsbGjGG4hApr6H5CSPd4OmcG2O6MGjQwCNrl2ttOy2B5xOrjRA4Bq4KvVGZgrwYEoRnZRo0RJsaNGdANyilv4nxYY2BNzPxvZmB6evpOSNQqAkuszx+3JMC0+WKG+ObEFHgR43xX1rckYDUqp2rEP0A2TrI5BObn5325BgBszACBEZfRzCEgxmKpHASJ9Rri/w6FS258J0UP2zGuKvlGBGwMnNnBRv62o6ND7hGlz0A5WAHYiH8IbYRPXgIDAwO+WwMQMOIfAtmraHZaioyssY1eaoLyGAbgBzU+CBWeAV3RDzKHy3vBcYXCco7L0xlH384MOHXL8svjgRH/gDiugQgBI0SYnqJrYKty7dwj2SaQjX/x7/sZAKOxgHX8+56AXCEBuUeAbqbkysqKcQf37QzwR/llXGsPOcg3f+f6+vqS2pbzGsE70c+6AluYVgN2uVHooUK/teQa7RL9mNZFziFApUa7kta3Ktd1PZZ/qKqqOmz7lBA6bxt9qJ/hKecpeSCzscmV8g2M8nDqu8SOs0B+B2AP8JQjD7s5aeMbIE/lpAbI/Oc/3XJ6cGlYW1u70Nvb69lTpEsYO9/sHwHIu0q4cL20AAAAAElFTkSuQmCC"; -const _imports_14 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAIA0lEQVRoBc2aaWxVVRDHea9FEtomZXFBqlEj4DdDCsgXE+GDxqqIdGWTBAUUUInBxBijQYx8QAOBogIqhKVQyiYqrrEuiYIC+pGCSiLiVqlgW6SUtv7+l3tv553e9+hroXWS4ZyZc2bOf86Zs9xXYn0uAW3btu0a3IyPxWK3tbW13UL9JngQnA2LGuCT8E/0Odza2rqPsrqkpOR3NXaHYl013rlz56Dm5uapAJmOj1Fd9PMt9hszMjIqJk2apADTprQD2LFjR15LS8tCRpoF9097xGiDRlZuLcG8zKqciO4Sre10AKtXr+47YMCAubh5EQ5SI9pr17VnCGRpTk7OkoKCgqbOuOlUAOT4CJxVwrcmcdqC/hvlNeVBypqmpqZfGyD1z4b69et3LeDkJ59yPOUYOA5H0ffsk9KysrIjUY1Wd9EAKisrCwG0HqOoWT8OmFW0b0p36f1UnIbfeXAe7FI9ihn43eU2WDllAIB/BHDlGGRYI+q18LPwegY457SlJbK6VzAJMxlnMYaDHWOt7FzGWOPoQzFpAD7418Ke7ZUKqo/htK5d1f2af6qVE0hZhLc5yYKIDMBPG+W8nflmnM8tLi5+I2KAS6aqqqqaw4qsxGFf47QFXVFpaeluo/OqHQLwN+wBWm3OnwF8EeDfdx1cDpkJLGC8KnzbY7o+Ho/nFxUVHbVjJpwCykcaNfMWvGa+x8ALHDO9l6IEbpbsUw4nU6WO80ChMiEA5CfhhKPST5semXkBCoicf4+0eTyQ/XIkd9ECqwtTiNkfSkMNnBV0wMFmZkNHXa8RuLYyeKkB0MDTY3hhYeFv0tkVeAo5BE/9JE+GhGhl0Auk2/8vM262/5TxVF4AOsKQ9Lax9MyUKVOsoW3rsbqOa9L4eWfAOT7mCyugVyUd7I7/BXm9Y9RrIqmso/tnAyALzN594a0AEepJHBIG5UTerRs2dHYJKj6WhEsVzA/KdZw3yRDKfDNOa2Zm5mYj/1+qGwGip0VAoysqKq7OPH/+/B1EE55GtO5nhyuFQuIkuAdhNdwGP86MpHxghYZpVhjnAUx0C5MEbXP8+8DzwpgnaD+IoFesKMZE38HlFh97Qb7wL7HoSeySwOuYzYOrcDTF7dBd2fep29cbBxwa06VPrYIgx8b5R9+wISEfCIX2yvn2qvc+2sCACfvGtKdd9X1twNC+veyYgU+tQEgEOUKb+OZQQ4UVOWJl1en4KIXd1BpoHW+WGWrvDvk+1uHDgj/HmDr/XapxFMMUQK5V8t7wbjir0yMOhxPRnTX6DHTrmD0F1yUCvL4D3sLYBV8S9XBkv7rYchWAfbgJiPcZqIol36E2mQ1Cm38VT+Co2bLmHeoE/hDg19IgDAFplRmq+O1AYcvc3Nx6K1PPscZOW0eRk+AD9oi7EjF05czmvI4W0RoCfpiWNbAd/xx+ihhjT7RVtFYO3Bl3VyTBkqPtQ2bufpT/mgZUsZXM6nyji6wS6CyA6oSx4JuwL8T3O5FGvvLUqVM5Tnu9nPxtlWziIVaOqrPEH6G/G2407UqnFQB0n8BhFwKcDVAXvCbiPny+G3ZMUuHcd7GdUgA/2v5s4uFWTlZnqT9nJgtotyuolVgO0CdcO30qonsdtpemfgeagK+P3f5J5BGO/micAQ9bJQ5HWzlVnSX/AvsOQWCjIJ4ObAG/AL96yySAx3YCPj4J+l2spP8o2wefNZnMuH5oDZed+jjb6WJ1lv5LwCqd9Bloc3QJ6aQJOstArzh+ziArbRJuVqdPBxE/4x3l1zHvQZSZqfM1mJ1WPhhumDx58nGnc0qRWb6dARREykOA9gaCKlDgKR06jUzS9aiOwcHmb+NeGBLno+UPlAdM/zifbFON3KmqAAHsLjr/k8KgkT6a+bTAyx92whSAl2q/sHsKGjdKY2geEesXirQIYF/hS+l0OsLwNG130ueziLaUqr179/ZjdRPumQCzF4B+n8eDPRLzMJiZ0muSRgXhv3C300WpKdYr8za1UaZN/Easz92hxrARzJWSg7zvw4ZbRlT2I76OHBvR29/F+vYFh07KwUEATO4rnF4LJYc5BfiXke0qDCRKfVz0KgFex28Innq9j9XDFQbAZXKChhcsWuQy/wKy6h6rkxXK+2I7IJgWgTX821oYgDrV1dUto/jOGrBcK3Gky6pHiYm7F7DLnUEPgXGF1YV7IFBu3bp1OJtQx6q9lHTlF5N3OucvOwk842mT9jeD6XjOZ/Z/MLr2PRAo/T/r6EvL/gLQn9nYzUo8EvS7XKXSBvC78G/BC8t0F7wwdFgBKUXcA7Mp9HJ0qZKNNf9Sn06MdyUDrYITch6ZeLxfKNa6QCQnDUCNfhCvUs2QbOgkK/JcVlbWm539a6KxTajqkvLP+UU0DExoJAsA/yipGwlefVMGoA4s6UTAbqBq94SaRCfgct5Om9N9O23ZsuU63vfTAKiTxl5S8itSzitt9nhSkn8uGoDstm/fPkx/XKA6MomfVvTa+HpdHoRrYAXXAIuyORjy9K3BZIwC9Hh0+XDCKaiOPh2iLI3K+aBDUHYqAHWurq7OrK2t1WwthqNWQ926S94fugnyJcDbn3GS+u10AIEH/ZbKTD7FLGqTZwX6bpaN2OvAWArw8JLqjM+0Awic+m+UycjT4DFwur7asNnPRGxixrcAvA45bUp30MgBCOYqjtZxgBkLGP1UeSOsYzHbN9BeqIWP0ecwffaxgav5Hyp/+u1dLv4D4SL5jJQdUmEAAAAASUVORK5CYII="; -const _imports_15 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADEElEQVRoBe2Zy4tSURzH59YtJRMqcEhdaUyil6DUoQJr2boHEk0DRctes2hTtAp6bIJeULSJiB6UmbPptWjwH3BrBKKudKe4zFL7/oZ7Z47He9W5i3tOcA/cub9zuMf7+fx+5z4cZ2bc5mbAzYCbAZEZUJw+uaZp271ebx7nPYztRTQavZbL5Xp2OTbZnWh3HuAXMfcYNj+2pVqt9jKbzW62+3mOCyiK0mRhB4PBYrVafWVXwrY5C7GRuNFo/AqFQrOYM8/M29dut+cymcxyuVweMOMTQ8cFiKjZbH6FxC6EBxlCkojHYrFCvV7vM+NjQyECRASJb5DYiZCV0Lrd7oYkhAnoEt8tJBIYX4bkxEoIFWAkdiA+RH29JbCPTyMhXICAkWmqxIgE7lBUicK4SkghoEvQNeFFnKE+NdxyE5MkpBEgYGT6h5kERLRgMGhaCakEGAkP4iPU11sc+6TP58u3Wq2h1w7pBAiYKhEOh7ciZCX24jXkAC8hpQBJ4Im9YiExVAlpBQwJrP0tuAaOUl9vc6jEmoTUAgSM5bRiJuHxeFJ47cgr82i9Xu8WLOkFS+a2H3BDCcct9rna7/ffAX6PzORWbOA+Td8Htlkd8B+MD1SU4QJM7gM2JDkwvbny7b3j34l5gmn6yWTyNpJ8kzv2S6fTOTl0UXAHSNFNp9N3AMLDfwb8qUql8lvqCqRSqbuAv8Flcg2exh3/Us/BWHbN4LGMPmHCCcq8MVE1Apn2gL8HnussE2429L+kM6VS6Q87LtsSUgD/AIBLLCTBI/sj8HSMTAKm8GD8iG2BzzzBU5NFgOAfgufqKtX6n7HwdJgMFzHBPwILD5/z+/2my2bdT3wFDPgrLBRigl8oFot/ufGRrsgKKHjCPgYRD/9hWniyEfUkVvCEfYLzXyYIphH82Wkyb8wRUgGs+ae4NV4yIPT9W/xWMNWyYec5fhcC/HEAFFgIxG8Af87ODx0insS7WXg8oF5HIpHzduDpcxy/BgKBwE9VVZM49yzgnwH+ol14NhFu7GbAzYCbATEZ+Ad9hheLGRG4rAAAAABJRU5ErkJggg=="; -const _imports_16 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1500%20-25%20)'%3e%3cpath%20d='M%203.63636363636364%2014.5454545454545%20L%205.45454545454545%2014.5454545454545%20L%205.45454545454545%2016.3636363636364%20L%203.63636363636364%2016.3636363636364%20L%203.63636363636364%2014.5454545454545%20Z%20M%203.63636363636364%203.63636363636364%20L%205.45454545454545%203.63636363636364%20L%205.45454545454545%205.45454545454545%20L%203.63636363636364%205.45454545454545%20L%203.63636363636364%203.63636363636364%20Z%20M%2014.5454545454545%203.63636363636364%20L%2016.3636363636364%203.63636363636364%20L%2016.3636363636364%205.45454545454545%20L%2014.5454545454545%205.45454545454545%20L%2014.5454545454545%203.63636363636364%20Z%20M%201.81818181818182%2012.7272727272727%20L%201.81818181818182%2018.1676136363636%20L%207.27272727272727%2018.1676136363636%20L%207.27272727272727%2012.7272727272727%20L%201.81818181818182%2012.7272727272727%20Z%20M%201.81818181818182%201.81818181818182%20L%201.81818181818182%207.27272727272727%20L%207.27272727272727%207.27272727272727%20L%207.27272727272727%201.81818181818182%20L%201.81818181818182%201.81818181818182%20Z%20M%2012.7272727272727%201.81818181818182%20L%2012.7272727272727%207.27272727272727%20L%2018.1818181818182%207.27272727272727%20L%2018.1818181818182%201.81818181818182%20L%2012.7272727272727%201.81818181818182%20Z%20M%200%2010.9090909090909%20L%209.09090909090909%2010.9090909090909%20L%209.09090909090909%2020%20L%200%2020%20L%200%2010.9090909090909%20Z%20M%2014.5454545454545%2018.1818181818182%20L%2016.3636363636364%2018.1818181818182%20L%2016.3636363636364%2020%20L%2014.5454545454545%2020%20L%2014.5454545454545%2018.1818181818182%20Z%20M%2018.1818181818182%2018.1818181818182%20L%2020%2018.1818181818182%20L%2020%2020%20L%2018.1818181818182%2020%20L%2018.1818181818182%2018.1818181818182%20Z%20M%2018.1818181818182%2010.9090909090909%20L%2020%2010.9090909090909%20L%2020%2016.3636363636364%20L%2014.5454545454545%2016.3636363636364%20L%2014.5454545454545%2014.5454545454545%20L%2012.7272727272727%2014.5454545454545%20L%2012.7272727272727%2020%20L%2010.9090909090909%2020%20L%2010.9090909090909%2010.9090909090909%20L%2016.3636363636364%2010.9090909090909%20L%2016.3636363636364%2012.7272727272727%20L%2018.1818181818182%2012.7272727272727%20L%2018.1818181818182%2010.9090909090909%20Z%20M%200%200%20L%209.09090909090909%200%20L%209.09090909090909%209.09090909090909%20L%200%209.09090909090909%20L%200%200%20Z%20M%2010.9090909090909%200%20L%2020%200%20L%2020%209.09090909090909%20L%2010.9090909090909%209.09090909090909%20L%2010.9090909090909%200%20Z%20'%20fill-rule='nonzero'%20fill='%23000000'%20stroke='none'%20transform='matrix(1%200%200%201%201500%2025%20)'%20/%3e%3c/g%3e%3c/svg%3e"; -const _imports_17 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-360%20-31%20)'%3e%3cpath%20d='M%209.65206473214286%206.26736111111111%20C%2010.6217447916667%205.70486111111111%2011.4281994047619%204.94907407407407%2012.0714285714286%204%20C%2011.3363095238095%202.90740740740741%2010.4149925595238%202.09027777777778%209.30747767857143%201.54861111111111%20C%209.60249255952381%202.03009259259259%209.75%202.55092592592593%209.75%203.11111111111111%20C%209.75%203.96759259259259%209.43201264880952%204.70023148148148%208.79603794642857%205.30902777777778%20C%208.16006324404762%205.91782407407407%207.39471726190476%206.22222222222222%206.5%206.22222222222222%20C%205.60528273809524%206.22222222222222%204.83993675595238%205.91782407407407%204.20396205357143%205.30902777777778%20C%203.56798735119048%204.70023148148148%203.25%203.96759259259259%203.25%203.11111111111111%20C%203.25%202.55092592592593%203.39750744047619%202.03009259259259%203.69252232142857%201.54861111111111%20C%202.58500744047619%202.09027777777778%201.66369047619048%202.90740740740741%200.928571428571428%204%20C%201.5718005952381%204.94907407407407%202.37825520833333%205.70486111111111%203.34793526785714%206.26736111111111%20C%204.31761532738095%206.82986111111111%205.36830357142857%207.11111111111111%206.5%207.11111111111111%20C%207.63169642857143%207.11111111111111%208.68238467261905%206.82986111111111%209.65206473214286%206.26736111111111%20Z%20M%206.74665178571429%201.56944444444444%20C%206.81436011904762%201.50462962962963%206.84821428571429%201.42592592592593%206.84821428571429%201.33333333333333%20C%206.84821428571429%201.24074074074074%206.81436011904762%201.16203703703704%206.74665178571429%201.09722222222222%20C%206.67894345238095%201.03240740740741%206.59672619047619%200.999999999999999%206.5%201%20C%205.89546130952381%200.999999999999999%205.37676711309524%201.20717592592593%204.94391741071429%201.62152777777778%20C%204.51106770833333%202.03587962962963%204.29464285714286%202.53240740740741%204.29464285714286%203.11111111111111%20C%204.29464285714286%203.2037037037037%204.32849702380952%203.28240740740741%204.39620535714286%203.34722222222222%20C%204.46391369047619%203.41203703703704%204.54613095238095%203.44444444444444%204.64285714285714%203.44444444444444%20C%204.73958333333333%203.44444444444444%204.8218005952381%203.41203703703704%204.88950892857143%203.34722222222222%20C%204.95721726190476%203.28240740740741%204.99107142857143%203.2037037037037%204.99107142857143%203.11111111111111%20C%204.99107142857143%202.71296296296296%205.13857886904762%202.37268518518519%205.43359375%202.09027777777778%20C%205.72860863095238%201.80787037037037%206.08407738095238%201.66666666666667%206.5%201.66666666666667%20C%206.59672619047619%201.66666666666667%206.67894345238095%201.63425925925926%206.74665178571429%201.56944444444444%20Z%20M%2012.8549107142857%203.52083333333333%20C%2012.9516369047619%203.68287037037037%2013%203.84259259259259%2013%204%20C%2013%204.15740740740741%2012.9516369047619%204.31712962962963%2012.8549107142857%204.47916666666667%20C%2012.1778273809524%205.54398148148148%2011.2673921130952%206.39699074074074%2010.1236049107143%207.03819444444444%20C%208.97981770833333%207.67939814814815%207.77194940476191%208%206.5%208%20C%205.2280505952381%208%204.02018229166667%207.67824074074074%202.87639508928571%207.03472222222222%20C%201.73260788690476%206.3912037037037%200.822172619047619%205.53935185185185%200.145089285714286%204.47916666666667%20C%200.0483630952380952%204.31712962962963%200%204.15740740740741%200%204%20C%200%203.84259259259259%200.0483630952380952%203.68287037037037%200.145089285714286%203.52083333333333%20C%200.822172619047619%202.46064814814815%201.73260788690476%201.6087962962963%202.87639508928571%200.965277777777778%20C%204.02018229166667%200.321759259259259%205.2280505952381%200%206.5%200%20C%207.77194940476191%200%208.97981770833333%200.321759259259259%2010.1236049107143%200.965277777777778%20C%2011.2673921130952%201.6087962962963%2012.1778273809524%202.46064814814815%2012.8549107142857%203.52083333333333%20Z%20'%20fill-rule='nonzero'%20fill='%23333333'%20stroke='none'%20transform='matrix(1%200%200%201%20360%2031%20)'%20/%3e%3c/g%3e%3c/svg%3e"; -const _imports_18 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg=="; -const _imports_20 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg=="; -const _imports_25 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='16px'%20height='16px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1367%20-4518%20)'%3e%3cpath%20d='M%2013.1979166666667%208.46875%20C%2013.3229166666667%208.34375%2013.3854166666667%208.1875%2013.3854166666667%208%20C%2013.3854166666667%207.8125%2013.3229166666667%207.65625%2013.1979166666667%207.53125%20L%2012.25%206.58333333333333%20L%208.47916666666667%202.8125%20C%208.35416666666667%202.6875%208.19791666666667%202.625%208.01041666666667%202.625%20C%207.82291666666667%202.625%207.66666666666667%202.6875%207.54166666666667%202.8125%20L%206.59375%203.76041666666667%20C%206.46875%203.88541666666667%206.40625%204.04166666666667%206.40625%204.22916666666667%20C%206.40625%204.41666666666667%206.46875%204.57291666666667%206.59375%204.69791666666667%20L%208.5625%206.66666666666667%20L%203.33333333333333%206.66666666666667%20C%203.15277777777778%206.66666666666667%202.99652777777778%206.73263888888889%202.86458333333333%206.86458333333333%20C%202.73263888888889%206.99652777777778%202.66666666666667%207.15277777777778%202.66666666666667%207.33333333333333%20L%202.66666666666667%208.66666666666667%20C%202.66666666666667%208.84722222222222%202.73263888888889%209.00347222222222%202.86458333333333%209.13541666666667%20C%202.99652777777778%209.26736111111111%203.15277777777778%209.33333333333333%203.33333333333333%209.33333333333333%20L%208.5625%209.33333333333333%20L%206.59375%2011.3020833333333%20C%206.46180555555556%2011.4340277777778%206.39583333333333%2011.5902777777778%206.39583333333333%2011.7708333333333%20C%206.39583333333333%2011.9513888888889%206.46180555555556%2012.1076388888889%206.59375%2012.2395833333333%20L%207.54166666666667%2013.1875%20C%207.66666666666667%2013.3125%207.82291666666667%2013.375%208.01041666666667%2013.375%20C%208.19791666666667%2013.375%208.35416666666667%2013.3125%208.47916666666667%2013.1875%20L%2012.25%209.41666666666667%20L%2013.1979166666667%208.46875%20Z%20M%2014.9270833333333%203.984375%20C%2015.6423611111111%205.21006944444444%2016%206.54861111111111%2016%208%20C%2016%209.45138888888889%2015.6423611111111%2010.7899305555556%2014.9270833333333%2012.015625%20C%2014.2118055555556%2013.2413194444444%2013.2413194444444%2014.2118055555556%2012.015625%2014.9270833333333%20C%2010.7899305555556%2015.6423611111111%209.45138888888889%2016%208%2016%20C%206.54861111111111%2016%205.21006944444444%2015.6423611111111%203.984375%2014.9270833333333%20C%202.75868055555556%2014.2118055555556%201.78819444444444%2013.2413194444444%201.07291666666667%2012.015625%20C%200.357638888888889%2010.7899305555556%200%209.45138888888889%200%208%20C%200%206.54861111111111%200.357638888888889%205.21006944444444%201.07291666666667%203.984375%20C%201.78819444444444%202.75868055555556%202.75868055555556%201.78819444444444%203.984375%201.07291666666667%20C%205.21006944444444%200.357638888888888%206.54861111111111%200%208%200%20C%209.45138888888889%200%2010.7899305555556%200.357638888888888%2012.015625%201.07291666666667%20C%2013.2413194444444%201.78819444444444%2014.2118055555556%202.75868055555556%2014.9270833333333%203.984375%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20transform='matrix(1%200%200%201%201367%204518%20)'%20/%3e%3c/g%3e%3c/svg%3e"; -const _imports_26 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAGo0lEQVR4Ae2dTW8bVRSGEydOihDEUSW2ICQ2wBJERSLRDaJlwc8obBI5ShQkVl4SN5aVOEIgfgb9QioqCxcWXSLY0ILKjkWkuBVK4yQO5ygzMHbjyXzcO3PPue9Iluf73vu8z1zPxJnxxAQGEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABPQQmbTVlZWXl9cFg8GalUnk2MzPzYGNjo2erLI37rdfrtZOTk3epbbPE8Ld2u/2HjXYaF2B5efkNqvC3VNkPIhXuT05Ofj03N/d5o9F4FpmP0RECxOdCr9e7TuFfo0Uz4WKavkevT7e3t38P55l4NypAEP7PVLGLYyrXpd7g42az+XTMcq9nr6+vv9Tv928RhMUxIHbpQLpEvcHDMctTz66k3iJmg+DIHxc+b7lIDbzNDY3ZjZeLgvBvM6MYABepF/gmZnnqRcZ6AP7Mp8o9SliD+9QTXEVPcEorEv5CEn5TU1OvtVqtx0nWPW8dYz0An/CdV1hk+QJ6glMaacPnrQ4PD9+KsMw1akwAPttPWRPvJcgSPjPOwHpsNMYE4Es9KqU/tqSzF3grQdbwCeNBwPpsoinnGhOAr/P5Ui9l+by6dxLkCH+CzrO+MnnuZEwATpKv8+mty+MpB28kyBM+Me3Oz89/kZJt7OrGrgLCUtbW1l48Ojq6QdOXw3lJ36kH+Ym2vdrpdJ4k3UbSegGbm1Tn6B/JEjWB2VSr1Ssmj34u2LgAvFNIwBSGBxfD5xpaEYB3DAmYwungavhcO2sC8M4hwX8MnOr2OZtwsCoAF+KzBC4f+YUJ4KsEEsLnbKz3AKFpPvUEUsIvVAAuzAcJJIVfuADaJZAWfikCaJVAYvilCaBNAqnhlyqAFgkkh1+6ANIlkB6+EwJIlUBD+M4IIE0CLeE7JYAUCTSF75wArkugLXwnBXBVAo3hOyuAaxJoDd9pAVyRQHP4zgtQtgTawxchQFkS+BC+GAGKlsCX8EUJUJQEPoUvTgDbEvgWvkgBbEngY/hiBTAtga/hixbAlASzs7PHdDuas/+3z+20ORT2X8G2GpHzZsv7Qb0SPZljpA0qnnIiXgAOJejCM92QOhJqoklbN2omKtzwSioEYCZFSaApfOamRoAiJNAWvjoBbEqgMXyVAtiQQGv4agUwKYHm8FULYEIC7eEzI6MPieIdOjjkOtHd39/Ptb2DPIaqpLZxef68GyXEvYDmB1epFMBU+KEImiVQJ4Dp8LVLoEoAW+FrlkCNALbD1yqBCgGKCl+jBOIvA/nrYDpL/57CSf34VdqGvw4OvxIO8z33nR7Y/D79aMMtLvvclR1fQbQAfOTTD098R4xTf5/PZ/b8qyXT09Mf0fY/ZshpgX644c7S0tLLGbZ1ZhOxHwF5uv3Rv/AF+8r0/wTSLxFFCmAy/PBQ9FUCcQLYCN9nCUQJYDN8XyUQI0AR4fsogQgBigzfNwmcF6CM8H2SwGkBygzfFwmcFcCF8H2QwEkBXApfuwTOCeBi+JolcEoAl8PXKoEzAkgIX6METgggKXxtEpQugMTwNUlQqgCSw9ciQWkCaAhfgwSlCKApfOkSFC6AxvAlS1CoAJrDlypBYQL4EL5ECQoRwKfwpUlgXQAfw5ckgVUBfA5figTWBED4oQL5HmFn+74DKwIg/P/DD8cCJs7dfGJcAIQfRv78u4sSGL03sNFoXKAbNe9Q0zPdqFmtVq80m82nz6PTMWdzc/Mfuh/xE2pN1htSbzJjkzSMCtDr9a5T5RYzVFDFg5eTtJsF55tSad3UEjDbvb29L5OUk3QdYx8B9Xq9RoX+Ta+ZpIUH63kTfpRLjqecHxwfH7/S6XSeRPeXddxYD0Bnq+9QJRB+wiRy9ASz9GwCZm1kMCbAYDBI+9nk5ZEfTS2rBBlYR4sdGjcmAHVLvw7tOX7C+/BDPFkkoJPlNKzDos58NybAzs7On/TolHtnljI8E+EP85hIKcHdVqv1eGQXmSeNCcA1qFQq1+htN6Y2XT4D5gbHrOPloogE3RgAu9TTfhazPPUiowK02+2HdDJ4iV4/jNTkgHqHdq1W+xDhj5CJTDIbZkSztuh1EFnEo3cp/Pfo7P/RyPxck8YuA0drsbq6+ipV+G2av09H/QMEP0oofpofPhWc7b9AB88vW1tbf8VvgaUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg8C9yNG0zv/zA5QAAAABJRU5ErkJggg=="; -const _imports_27 = "" + buildAssetsURL("no-discussion.CTT65aaO.png"); -const _sfc_main = { - __name: "[id]", - __ssrInlineRender: true, - async setup(__props) { - let __temp, __restore; - const route = useRoute(); - let uniqid = route.params.id; - let user = inject("userInfo"); - let isNeedLogin = inject("isNeedLogin"); - const goLogin = inject("goLogin"); - useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer,popupnotification", body: true }] }); - let contentRightRef = ref(null); - let contentRightHeight = ref(null); - ref(false); - watch( - () => route.path, - (newValue, oldValue) => { - } - ); - const clearAllData = () => { - uniqid = route.params.id; - info.value = {}; - qrcode.value = ""; - iscollection.value = 0; - isdisplay.value = true; - islike.value = 0; - ismyself.value = 0; - relatedlist.value = []; - relatedcount.value = 0; - pitchIndex.value = null; - seo.value = {}; - commentCount.value = 0; - commentPage.value = 1; - commentList.value = []; - commentLoading = false; - token = ""; - }; - let floorRightState = ref(false); - ref(false); - let info = ref({}); - let qrcode = ref(""); - let iscollection = ref(0); - let isdisplay = ref(true); - let islike = ref(0); - let ismyself = ref(0); - let detailsLoading = ref(false); - const getDetails = () => { - if (detailsLoading.value) return; - detailsLoading.value = true; - detailsHttp({ uniqid }).then((res) => { - if (res.code != 200) { - ElMessage.error(res.message); - setTimeout(() => goToURL("/index.html", false), 1e3); - return; - } - let data = res.data; - token = data["token"]; - info.value = data["info"]; - seo.value = data.seo; - iscollection.value = data.iscollection || 0; - isdisplay.value = data.isdisplay; - islike.value = data.islike; - ismyself.value = data.ismyself; - qrcode.value = data["share"]["qrcode"]; - if (relatedlist.value.length == 0) getRelatedlistHttp(); - else CalculateSelectedList(); - if (JSON.stringify(coinConfig.value) == "{}") getCoinInfo(); - detailsLoading.value = false; - getCommentListHttp(); - getRiposte(); - }); - }; - const CalculateSelectedList = () => { - let targetRelatedlist = [...relatedlist.value]; - targetRelatedlist.forEach((element, index) => { - if (element["uniqid"] == uniqid) pitchIndex.value = index; - }); - if (pitchIndex.value == null) { - targetRelatedlist.unshift({ - avatar: info.value["avatar"], - interviewtime: timestampToDate(info.value["interviewtime"]), - profession: info.value["profession"], - project: info.value["project"], - releasetime: info.value["releasetime"], - subject: info.value["subject"], - uniqid, - username: info.value["nickname"] - }); - relatedlist.value = targetRelatedlist; - pitchIndex.value = 0; - } - }; - let relatedlist = ref([]); - let relatedcount = ref(0); - let relatedpage = ref(1); - let relatedloading = false; - let pitchIndex = ref(null); - const getRelatedlistHttp = () => { - if (relatedloading || relatedpage.value == 0 || !token) return; - relatedloading = true; - relatedlistHttp({ token, page: relatedpage.value }).then((res) => { - if (res.code != 200) return; - let data = res.data; - relatedlist.value = relatedlist.value.concat(data.data); - relatedcount.value = data.count; - if (relatedlist.value.length >= data["count"]) relatedpage.value = 0; - else relatedpage.value++; - CalculateSelectedList(); - }).finally(() => { - relatedloading = false; - }); - }; - let seo = ref({}); - let commentCount = ref(0); - let commentComments = ref(0); - let commentPage = ref(1); - let commentList = ref([]); - let commentLoading = false; - let token = ""; - let isEmptyState = ref(false); - const getCommentListHttp = () => { - if (commentPage.value == 0 || commentLoading || detailsLoading.value) return; - commentLoading = true; - if (commentPage.value != 1) getRelatedlistHttp(); - detailsCommentListHttp({ - page: commentPage.value, - childlimit: 1, - limit: 10, - token - }).then((res) => { - if (res.code != 200) return; - let data = res.data; - commentCount.value = data["count"]; - if (data["count"] == 0) isEmptyState.value = true; - else isEmptyState.value = false; - commentList.value = commentList.value.concat(data["data"]); - commentComments.value = data["comments"]; - if (commentList.value.length == data["count"]) commentPage.value = 0; - else commentPage.value++; - }).finally(() => commentLoading = false); - }; - ref(0); - let commentInputTop = ref(""); - ref(""); - const timestampToDate = (timestamp) => { - const date = new Date(timestamp * 1e3); - const year = date.getFullYear(); - const month = (date.getMonth() + 1).toString().padStart(2, "0"); - const day = date.getDate().toString().padStart(2, "0"); - return `${year}-${month}-${day}`; - }; - let topHeadRef = ref(null); - const router = useRouter(); - let reportAlertShow = ref(false); - let reportToken = ref(""); - provide("reportAlertShow", reportAlertShow); - provide("clearAllData", clearAllData); - provide("getDetails", getDetails); - { - try { - [__temp, __restore] = withAsyncContext(() => detailsHttp({ uniqid }).then((res) => { - if (res.code != 200) { - ElMessage.error(res.message); - return; - } - let data = res.data; - token = data["token"]; - info.value = data["info"]; - seo.value = data.seo; - iscollection.value = data.iscollection; - isdisplay.value = data.isdisplay; - islike.value = data.islike; - ismyself.value = data.ismyself; - qrcode.value = data["share"]["qrcode"]; - if (relatedlist.value.length == 0) getRelatedlistHttp(); - else CalculateSelectedList(); - detailsLoading.value = false; - getCommentListHttp(); - })), await __temp, __restore(); - [__temp, __restore] = withAsyncContext(() => relatedlistHttp({ token, page: 1 }).then((res) => { - if (res.code != 200) return; - let data = res.data; - relatedlist.value = data.data; - relatedcount.value = data.count; - CalculateSelectedList(); - })), await __temp, __restore(); - } catch (error) { - } - } - const isBrowser = computed(() => { - return false; - }); - const sendMessage = (uin) => { - if (uin && typeof messagePrivateItem == "function") { - messagePrivateItem({ uin }); - return; - } else redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&showmsg=1&uid=${uin}`); - }; - const TAHomePage = (uin) => { - redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&uid=${uin}`); - }; - const redirectToExternalWebsite = (url) => { - const link = (void 0).createElement("a"); - link.href = url; - link.target = "_blank"; - link.click(); - }; - ref(null); - let isInsertCoinsOperationShow = ref(false); - let coinMybalance = ref({}); - let coinConfig = ref({}); - ref(0); - let coinRanklist = ref({}); - let coinAmount = ref(null); - ref(null); - let defaultcoinnum = ref(0); - let coinMessage = ref(""); - const getCoinInfo = () => { - coinHttp({ token }).then((res) => { - if (res.code != 200) return; - let data = res.data; - coinConfig.value = data.config; - coinMybalance.value = data.mybalance; - coinRanklist.value = data.ranklist; - defaultcoinnum.value = data.defaultcoinnum; - }); - }; - const openCoinOperation = () => { - if (isNeedLogin.value) { - goLogin(); - return; - } - isInsertCoinsOperationShow.value = true; - }; - let coinrankingList = ref([]); - let coinrankingState = ref(false); - provide("coinrankingState", coinrankingState); - provide("openCoinOperation", openCoinOperation); - const unbookmarkSamePage = () => { - iscollection.value = 0; - info.value.favnum--; - }; - provide("unbookmarkSamePage", unbookmarkSamePage); - let labelObj = { - offer: "Offer", - vote: "\u6295\u7968", - mj: "\u9762\u7ECF", - thread: "\u5E16\u5B50", - ask: "\u56DE\u7B54" - }; - ref(false); - ref(null); - let ripostelist = ref([]); - let ripostecount = ref({}); - let riposteoptions = ref({}); - provide("riposteoptions", riposteoptions); - const getRiposte = () => { - getRiposteHttp({ token }).then((res) => { - if (res.code != 200) return; - let data = res.data; - ripostecount.value = data.count || {}; - ripostelist.value = data.list || []; - riposteoptions.value = data.options || []; - if (ripostelist.value.length <= 3) randomEmoji(); - }); - }; - let randomEmojis = ref([]); - provide("randomEmojis", randomEmojis); - const randomEmoji = () => { - let emojiList = ripostelist.value; - let exclude = []; - emojiList.forEach((element) => { - exclude.push(element.item); - }); - let selectedList = []; - for (const key in riposteoptions.value[0].data) { - if (key != "c150") selectedList.push(key); - } - const random = []; - if (!exclude.includes("c150")) random.push("c150"); - selectedList = selectedList.filter((itemB) => !exclude.includes(itemB)); - let indexes = []; - while (indexes.length < 7) { - let randomIndex = Math.floor(Math.random() * selectedList.length); - if (indexes.indexOf(randomIndex) === -1) { - indexes.push(randomIndex); - random.push(selectedList[randomIndex]); - } - } - randomEmojis.value = random; - }; - const jointriposte = (item) => { - return `&#x${item};`; - }; - provide("jointriposte", jointriposte); - let riposteHttpState = false; - const selectEomji = (item) => { - if (isNeedLogin.value) { - goLogin(); - return; - } - if (riposteHttpState) return; - riposteHttpState = true; - riposteSubmitHttp({ token, item }).then((res) => { - if (res.code != 200) { - ElMessage.error(res.message); - return; - } - let data = res.data; - handleEmojiData(data); - }).finally(() => { - riposteHttpState = false; - }); - }; - provide("selectEomji", selectEomji); - const selectEomjiPop = (key, isroll) => { - if (isNeedLogin.value) { - goLogin(); - return; - } - let emojiList = ripostelist.value; - const index = emojiList.findIndex((item) => item.item == key); - if (index != -1 && emojiList[index].selected) return; - if (riposteHttpState) return; - riposteHttpState = true; - riposteSubmitHttp({ token, item: key }).then((res) => { - if (res.code != 200) { - ElMessage.error(res.message); - return; - } - if (isroll) { - rollRiposte(); - } - let data = res.data; - respondListState.value = false; - handleEmojiData(data); - }).finally(() => { - riposteHttpState = false; - }); - }; - provide("selectEomjiPop", selectEomjiPop); - const handleEmojiData = (data) => { - let emojiList = ripostelist.value; - let isnew = true; - emojiList.forEach((element, index) => { - if (element.item == data.item) { - isnew = false; - if (element.selected) element.num--; - else element.num++; - element.selected = !element.selected; - } - }); - if (isnew) { - emojiList.push({ - item: data.item, - num: 1, - selected: true - }); - } - let newArray = []; - emojiList.forEach((item) => { - if (item.num > 0) newArray.push(item); - }); - if (newArray.length < 3) randomEmoji(); - ripostecount.value = data.count; - ripostelist.value = newArray; - if (!isdisplay.value) isdisplay.value = true; - }; - let respondPopListState = ref(false); - let respondDetail = ref({}); - let respondListState = ref(false); - const respondtitle = ref(null); - const rollRiposte = () => { - const respondBox = respondtitle.value; - const rect = respondBox.getBoundingClientRect(); - const distanceToViewportTop = rect.top + (void 0).scrollY - 60; - (void 0).scrollTo({ - top: distanceToViewportTop, - behavior: "smooth" - }); - }; - let picture = ref({}); - let emojiState = ref(false); - let emojiMaskState = ref(false); - const emojiData = ["\u{1F600}", "\u{1F601}", "\u{1F606}", "\u{1F605}", "\u{1F602}", "\u{1F609}", "\u{1F60D}", "\u{1F970}", "\u{1F60B}", "\u{1F61C}", "\u{1F92A}", "\u{1F60E}", "\u{1F929}", "\u{1F973}", "\u{1F614}", "\u{1F641}", "\u{1F62D}", "\u{1F621}", "\u{1F633}", "\u{1F917}", "\u{1F914}", "\u{1F92D}", "\u{1F92B}", "\u{1F62F}", "\u{1F635}", "\u{1F644}", "\u{1F974}", "\u{1F922}", "\u{1F911}", "\u{1F920}", "\u{1F44C}", "\u270C\uFE0F", "\u{1F91F}", "\u{1F918}", "\u{1F919}", "\u{1F44D}", "\u{1F44E}", "\u270A", "\u{1F44F}", "\u{1F91D}", "\u{1F64F}", "\u{1F4AA}", "\u2764\uFE0F", "\u{1F494}", "\u{1F339}", "\u{1F940}", "\u{1F389}", "\u{1F381}", "\u{1F9E7}", "\u{1F319}", "\u2B50", "\u{1F30D}", "\u{1F48C}", "\u{1F4EC}", "\u{1F697}", "\u{1F695}", "\u{1F6B2}", "\u{1F6F5}", "\u{1F680}", "\u{1F681}", "\u26F5", "\u{1F6A2}", "\u{1F34E}", "\u{1F350}", "\u{1F34A}", "\u{1F349}", "\u{1F353}", "\u{1F351}", "\u{1F354}", "\u{1F35F}", "\u{1F355}", "\u{1F96A}", "\u{1F35C}", "\u{1F361}", "\u{1F368}", "\u{1F366}", "\u{1F382}", "\u{1F370}", "\u{1F36D}", "\u{1F37F}", "\u{1F369}", "\u{1F9C3}", "\u{1F379}"]; - let dialogSrc = ref(""); - let permissions = ref([]); - let dialogVisible = ref(false); - const handleHide = () => { - mjHideHttp({ token }).then((res) => { - dialogVisible.value = false; - ElMessage.success(res.message || "\u9690\u85CF\u6210\u529F"); - router.replace("/index.html"); - }); - }; - let editCommentState = ref(false); - let editPicture = ref({}); - let editInput = ref(""); - let editEmojiState = ref(false); - ref(null); - return (_ctx, _push, _parent, _attrs) => { - var _a2; - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p; - const _component_Head = Head; - const _component_Title = Title; - const _component_Meta = Meta; - const _component_TopHead = __nuxt_component_3; - const _component_el_popover = ElPopover; - const _component_Empty = __nuxt_component_4; - const _component_ClientOnly = __nuxt_component_7; - const _component_Report = __nuxt_component_8; - const _component_el_input = ElInput; - const _component_RankingBox = __nuxt_component_10; - const _component_el_dialog = ElDialog; - const _component_el_button = ElButton; - const _directive_loading = vLoading; - _push(`<!--[-->`); - _push(ssrRenderComponent(_component_Head, null, { - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(ssrRenderComponent(_component_Title, null, { - default: withCtx((_2, _push3, _parent3, _scopeId2) => { - if (_push3) { - _push3(`${ssrInterpolate(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`)}`); - } else { - return [ - createTextVNode(toDisplayString(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`), 1) - ]; - } - }), - _: 1 - }, _parent2, _scopeId)); - _push2(ssrRenderComponent(_component_Meta, { - name: "keyword", - content: unref(seo)["keyword"] - }, null, _parent2, _scopeId)); - _push2(ssrRenderComponent(_component_Meta, { - name: "description", - content: unref(seo)["description"] - }, null, _parent2, _scopeId)); - } else { - return [ - createVNode(_component_Title, null, { - default: withCtx(() => [ - createTextVNode(toDisplayString(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`), 1) - ]), - _: 1 - }), - createVNode(_component_Meta, { - name: "keyword", - content: unref(seo)["keyword"] - }, null, 8, ["content"]), - createVNode(_component_Meta, { - name: "description", - content: unref(seo)["description"] - }, null, 8, ["content"]) - ]; - } - }), - _: 1 - }, _parent)); - _push(`<div data-v-ec58218d>`); - _push(ssrRenderComponent(_component_TopHead, { - ref_key: "topHeadRef", - ref: topHeadRef - }, null, _parent)); - _push(`<div class="content flexflex" data-v-ec58218d><div class="left" style="${ssrRenderStyle({ height: unref(contentRightHeight) + "px" })}" data-v-ec58218d><div class="school-box flexcenter" style="${ssrRenderStyle({ "pointer-events": ((_a = unref(info)["school"]) == null ? void 0 : _a["url"]) ? "auto" : "none" })}" data-v-ec58218d><a class="school-box-icon"${ssrRenderAttr("href", (_b = unref(info)["school"]) == null ? void 0 : _b["url"])} target="_blank" data-v-ec58218d>`); - if ((_c = unref(info)["school"]) == null ? void 0 : _c["image"]) { - _push(`<img class="school-icon"${ssrRenderAttr("src", (_d = unref(info)["school"]) == null ? void 0 : _d["image"])} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - _push(`</a><a class="school-name"${ssrRenderAttr("href", (_e = unref(info)["school"]) == null ? void 0 : _e["url"])} target="_blank" data-v-ec58218d>${ssrInterpolate((_f = unref(info)["school"]) == null ? void 0 : _f["name"])}</a><a class="school-en-name"${ssrRenderAttr("href", (_g = unref(info)["school"]) == null ? void 0 : _g["url"])} target="_blank" data-v-ec58218d>${ssrInterpolate((_h = unref(info)["school"]) == null ? void 0 : _h["enname"])}</a></div><div class="mj-total flexacenter" data-v-ec58218d> \u8BE5\u6821\u5171\u6709 <div class="value" data-v-ec58218d>${ssrInterpolate(unref(relatedcount))}</div> \u4E2A\u9762\u7ECF </div><div class="mj-list" data-v-ec58218d><!--[-->`); - ssrRenderList(unref(relatedlist), (item, index) => { - _push(`<!--[-->`); - if (item["type"]) { - _push(`<a class="mj-item flexflex recommend"${ssrRenderAttr("href", item == null ? void 0 : item.url)} target="_blank" data-v-ec58218d><div class="mj-header flexacenter" data-v-ec58218d><div class="label flexacenter" data-v-ec58218d><div class="label-text flexcenter" data-v-ec58218d>\u8350</div><div class="label-title" data-v-ec58218d>${ssrInterpolate(unref(labelObj)[item["type"] || "offer"])}</div></div><h1 data-v-ec58218d>${ssrInterpolate(item["title"])}</h1></div>`); - if (item["type"] == "offer") { - _push(`<div class="info-list flexflex" data-v-ec58218d><div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u4E13\u4E1A</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["professional"])}</div></div><div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u5B66\u4F4D</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["degree"])}</div></div><div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u7ED3\u679C</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["apply_results"])}</div></div></div>`); - } else { - _push(`<!---->`); - } - if (item["type"] == "thread" || item["type"] == "ask") { - _push(`<div class="thread-text ellipsis flexflex" data-v-ec58218d>`); - if (item["type"] == "ask") { - _push(`<div class="ask-label" data-v-ec58218d>\u56DE\u7B54\uFF1A</div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["message"])}</div></div>`); - } else { - _push(`<!---->`); - } - if (item["type"] == "vote") { - _push(`<div class="vote-list" data-v-ec58218d><!--[-->`); - ssrRenderList(item["option"].slice(0, 2), (ite, i) => { - _push(`<div class="vote-item" data-v-ec58218d>${ssrInterpolate(("numberToEnclosed" in _ctx ? _ctx.numberToEnclosed : unref(numberToEnclosed))(i))} \xA0 ${ssrInterpolate(ite)}</div>`); - }); - _push(`<!--]--><div class="vote-item" data-v-ec58218d>${ssrInterpolate(("numberToEnclosed" in _ctx ? _ctx.numberToEnclosed : unref(numberToEnclosed))(3))} \xA0 \u2026</div></div>`); - } else { - _push(`<!---->`); - } - _push(`</a>`); - } else { - _push(`<a class="${ssrRenderClass([{ pitch: unref(pitchIndex) == index }, "mj-item flexflex"])}"${ssrRenderAttr("href", `./details/${item["uniqid"]}`)} data-v-ec58218d><div class="mj-header flexacenter" data-v-ec58218d><img class="mj-avatar"${ssrRenderAttr("src", item["avatar"])} data-v-ec58218d><div class="user-name" data-v-ec58218d>${ssrInterpolate(item["username"] || "\u533F\u540D\u7528\u6237")}</div><div class="time" data-v-ec58218d>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item["releasetime"]))}\u53D1\u5E03</div></div><div class="info-list flexflex" data-v-ec58218d>`); - if (item["profession"]) { - _push(`<div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u4E13\u4E1A</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["profession"])}</div></div>`); - } else { - _push(`<!---->`); - } - if (item["project"]) { - _push(`<div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u9879\u76EE</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["project"])}</div></div>`); - } else { - _push(`<!---->`); - } - if (item["interviewtime"]) { - _push(`<div class="info-item flexacenter" data-v-ec58218d><div class="info-name" data-v-ec58218d>\u9762\u8BD5</div><div class="info-value flex1 ellipsis" data-v-ec58218d>${ssrInterpolate(item["interviewtime"])}</div></div>`); - } else { - _push(`<!---->`); - } - _push(`</div></a>`); - } - _push(`<!--]-->`); - }); - _push(`<!--]--></div></div><div${ssrRenderAttrs(mergeProps({ - class: "right flex1", - ref_key: "contentRightRef", - ref: contentRightRef - }, ssrGetDirectiveProps(_ctx, _directive_loading, unref(detailsLoading))))} data-v-ec58218d><div class="header" data-v-ec58218d><div class="titletitle" data-v-ec58218d>${ssrInterpolate(unref(info)["subject"])}</div><div class="mj-header flexacenter" data-v-ec58218d><div class="mj-header-left flexacenter" data-v-ec58218d>`); - _push(ssrRenderComponent(_component_el_popover, { - placement: "bottom-start", - width: 140, - trigger: "click", - "popper-class": "avatar-box-popper", - "show-arrow": false - }, { - reference: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<img class="mj-avatar"${ssrRenderAttr("src", unref(info)["avatar"])} data-v-ec58218d${_scopeId}>`); - } else { - return [ - createVNode("img", { - class: "mj-avatar", - src: unref(info)["avatar"] - }, null, 8, ["src"]) - ]; - } - }), - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - if (unref(info)["uin"]) { - _push2(`<div class="avatar-box flexflex" data-v-ec58218d${_scopeId}><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_0)} data-v-ec58218d${_scopeId}> \u53D1\u9001\u4FE1\u606F </a><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_1)} data-v-ec58218d${_scopeId}> TA\u7684\u4E3B\u9875 </a></div>`); - } else { - _push2(`<!---->`); - } - } else { - return [ - unref(info)["uin"] ? (openBlock(), createBlock("div", { - key: 0, - class: "avatar-box flexflex" - }, [ - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => sendMessage(unref(info)["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_0 - }), - createTextVNode(" \u53D1\u9001\u4FE1\u606F ") - ], 8, ["onClick"]), - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => TAHomePage(unref(info)["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_1 - }), - createTextVNode(" TA\u7684\u4E3B\u9875 ") - ], 8, ["onClick"]) - ])) : createCommentVNode("", true) - ]; - } - }), - _: 1 - }, _parent)); - _push(`<div class="user-name" data-v-ec58218d>${ssrInterpolate(unref(info)["nickname"] || "\u533F\u540D\u7528\u6237")}</div><div class="time" data-v-ec58218d>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(unref(info)["releasetime"]))}\u53D1\u5E03</div>`); - if (unref(permissions).includes("mj.hide")) { - _push(`<div class="hide flexacenter" data-v-ec58218d><img class="icon"${ssrRenderAttr("src", _imports_2)} data-v-ec58218d> \u9690\u85CF </div>`); - } else { - _push(`<!---->`); - } - _push(`</div><a class="mj-header-right flexacenter" target="_blank"${ssrRenderAttr("href", unref(info)["threadurl"])} data-v-ec58218d><img class="original-icon"${ssrRenderAttr("src", _imports_3)} data-v-ec58218d> \u8BBA\u575B\u539F\u5E16 </a></div></div><div class="details-box" data-v-ec58218d><div class="details-item" data-v-ec58218d><div class="details-top" data-v-ec58218d>\u9762\u8BD5\u8FC7\u7A0B\u53CA\u5185\u5BB9</div><div class="details-list" data-v-ec58218d><div class="details-list-item flexacenter" data-v-ec58218d>`); - if (unref(info)["message"]) { - _push(`<div class="${ssrRenderClass([{ "unlock-unlock": !unref(isdisplay) }, "details-value describe"])}" data-v-ec58218d><div class="text" data-v-ec58218d>${(_a2 = unref(info)["message"]) != null ? _a2 : ""}</div><div class="unlock-mask flexflex" style="${ssrRenderStyle({ "width": "693px" })}" data-v-ec58218d><div class="unlock-text-box flexcenter" data-v-ec58218d><div class="unlock-text" data-v-ec58218d>\u4F5C\u8005\u8BBE\u7F6E\u4E86\u6D4F\u89C8\u9650\u5236</div><div class="unlock-text flexacenter" data-v-ec58218d><div class="emphasis" data-v-ec58218d>\u201C\u8BC4\u8BBA/\u70B9\u8D5E\u201D</div> \u540E\u5373\u53EF\u67E5\u770B\u5B8C\u6574\u5185\u5BB9 </div>`); - if (unref(respondListState)) { - _push(`<!--[--><div class="respond-list-mask" data-v-ec58218d></div><div class="respond-list-box" data-v-ec58218d><div class="respond-list-title" data-v-ec58218d>\u9009\u62E9\u4F60\u7684\u56DE\u5E94\uFF1A</div><div class="respond-list" data-v-ec58218d><!--[-->`); - ssrRenderList(unref(riposteoptions), (item) => { - _push(`<!--[--><!--[-->`); - ssrRenderList(item.data, (item2, key) => { - var _a3; - _push(`<div class="respond-item" data-v-ec58218d>${(_a3 = jointriposte(key)) != null ? _a3 : ""}</div>`); - }); - _push(`<!--]--><!--]-->`); - }); - _push(`<!--]--></div></div><!--]-->`); - } else { - _push(`<!---->`); - } - _push(`</div></div></div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div></div><div class="details-item" data-v-ec58218d><div class="details-top" data-v-ec58218d>\u7533\u8BF7\u4FE1\u606F</div><div class="details-list" data-v-ec58218d>`); - if (unref(info)["school"]) { - _push(`<div class="details-list-item flexacenter" data-v-ec58218d><div class="details-name" data-v-ec58218d>\u5B66\u6821</div><a class="details-value flex1" target="_blank"${ssrRenderAttr("href", (_i = unref(info)["school"]) == null ? void 0 : _i["url"])} data-v-ec58218d>${ssrInterpolate((_j = unref(info)["school"]) == null ? void 0 : _j.name)}</a></div>`); - } else { - _push(`<!---->`); - } - if (unref(info)["profession"]) { - _push(`<div class="details-list-item flexacenter" data-v-ec58218d><div class="details-name" data-v-ec58218d>\u4E13\u4E1A</div><div class="details-value flex1" data-v-ec58218d>${ssrInterpolate(unref(info)["profession"])}</div></div>`); - } else { - _push(`<!---->`); - } - if (unref(info)["project"]) { - _push(`<div class="details-list-item flexacenter" data-v-ec58218d><div class="details-name" data-v-ec58218d>\u9879\u76EE</div><div class="details-value flex1" data-v-ec58218d>${ssrInterpolate(unref(info)["project"])}</div></div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div><div class="details-item" data-v-ec58218d><div class="details-top" data-v-ec58218d>\u9762\u8BD5\u65F6\u95F4</div><div class="details-list" data-v-ec58218d><div class="details-list-item flexacenter" data-v-ec58218d><div class="details-name" data-v-ec58218d>\u65E5\u671F</div>`); - if (unref(info)["interviewtime"]) { - _push(`<div class="details-value date" data-v-ec58218d>${ssrInterpolate(timestampToDate(unref(info)["interviewtime"]))}</div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div></div></div>`); - { - _push(`<!---->`); - } - if (unref(emojiMaskState)) { - _push(`<div class="emoji-box-mask" data-v-ec58218d></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="comment-box" data-v-ec58218d>`); - if (unref(editCommentState)) { - _push(`<div class="edit-comment flexcenter" data-v-ec58218d><div class="box" data-v-ec58218d><div class="text" data-v-ec58218d>\u7F16\u8F91\u8BC4\u8BBA</div><div class="input-box" data-v-ec58218d><div class="top flexflex" data-v-ec58218d><textarea class="input-textarea flex1" maxlength="500" placeholder="\u8BF4\u8BF4\u4F60\u7684\u60F3\u6CD5\u6216\u7591\u95EE\u2026" data-v-ec58218d>${ssrInterpolate(unref(editInput))}</textarea></div>`); - if (unref(editPicture).url) { - _push(`<div class="picture-box" data-v-ec58218d><div class="picture" data-v-ec58218d><img class="close"${ssrRenderAttr("src", _imports_5)} data-v-ec58218d><img class="img"${ssrRenderAttr("src", unref(editPicture).base64 || unref(editPicture).url)} data-v-ec58218d></div></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="bottom flexacenter" data-v-ec58218d><div class="operate flexacenter" data-v-ec58218d><div class="${ssrRenderClass([{ "pitch": unref(editEmojiState) }, "item"])}" data-v-ec58218d><img class="icon"${ssrRenderAttr("src", _imports_6)} alt="" data-v-ec58218d>`); - if (unref(editEmojiState)) { - _push(`<div class="emoji-edit-box-mask" data-v-ec58218d></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="emoji-box" data-v-ec58218d><!--[-->`); - ssrRenderList(emojiData, (item) => { - _push(`<div class="emoji-icon" data-v-ec58218d>${ssrInterpolate(item)}</div>`); - }); - _push(`<!--]--></div></div><div class="item flexacenter" data-v-ec58218d><input class="file" type="file" accept=".png, .jpg, .jpeg" data-v-ec58218d><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_7)} alt="" data-v-ec58218d><span class="file-hint" data-v-ec58218d>\u6700\u591A\u53EF\u4E0A\u4F201\u5F20\u56FE\u7247\uFF0C\u652F\u6301\u5728\u8F93\u5165\u6846\u4E2D\u76F4\u63A5\u7C98\u8D34\u56FE\u7247\u3002</span></div></div></div></div><div class="btn-list flexacenter" data-v-ec58218d><div class="btn" data-v-ec58218d>\u53D6\u6D88</div><div class="btn send" data-v-ec58218d>\u53D1\u9001</div></div></div></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="comment-title flexacenter" data-v-ec58218d> \u8BA8\u8BBA <div class="value" data-v-ec58218d>${ssrInterpolate(unref(commentComments) || "")}</div></div><div class="input-box" data-v-ec58218d><div class="top flexflex" data-v-ec58218d>`); - if (unref(user).avatar) { - _push(`<img class="avatar"${ssrRenderAttr("src", unref(user).avatar)} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - _push(`<textarea class="input-textarea flex1" maxlength="500" placeholder="\u8BF4\u8BF4\u4F60\u7684\u60F3\u6CD5\u6216\u7591\u95EE\u2026" data-v-ec58218d>${ssrInterpolate(unref(commentInputTop))}</textarea></div>`); - if (unref(picture).url) { - _push(`<div class="picture-box" data-v-ec58218d><div class="picture" data-v-ec58218d><img class="close"${ssrRenderAttr("src", _imports_5)} data-v-ec58218d><img class="img"${ssrRenderAttr("src", unref(picture).base64 || unref(picture).url)} data-v-ec58218d></div></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="bottom flexacenter" data-v-ec58218d><div class="operate flexacenter" data-v-ec58218d><div class="${ssrRenderClass([{ "pitch": unref(emojiState) }, "item"])}" data-v-ec58218d><img class="icon"${ssrRenderAttr("src", _imports_6)} alt="" data-v-ec58218d><div class="emoji-box" data-v-ec58218d><!--[-->`); - ssrRenderList(emojiData, (item) => { - _push(`<div class="emoji-icon" data-v-ec58218d>${ssrInterpolate(item)}</div>`); - }); - _push(`<!--]--></div></div><div class="item flexacenter" data-v-ec58218d><input class="file" type="file" accept=".png, .jpg, .jpeg" data-v-ec58218d><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_7)} alt="" data-v-ec58218d><span class="file-hint" data-v-ec58218d>\u6700\u591A\u53EF\u4E0A\u4F201\u5F20\u56FE\u7247\uFF0C\u652F\u6301\u5728\u8F93\u5165\u6846\u4E2D\u76F4\u63A5\u7C98\u8D34\u56FE\u7247\u3002</span></div></div><div class="btn" data-v-ec58218d>\u53D1\u9001</div></div></div>`); - if (unref(isEmptyState)) { - _push(`<div class="empty-box" data-v-ec58218d>`); - _push(ssrRenderComponent(_component_Empty, { hint: "\u8BF4\u8BF4\u4F60\u7684\u89C2\u70B9\u5427" }, null, _parent)); - _push(`</div>`); - } else { - _push(`<!--[--><div class="comment-list" data-v-ec58218d><!--[-->`); - ssrRenderList(unref(commentList), (item, index) => { - var _a3; - var _a22, _b2, _c2, _d2, _e2; - _push(`<div class="comment-item flexflex" data-v-ec58218d>`); - _push(ssrRenderComponent(_component_el_popover, { - placement: "bottom-start", - width: 140, - trigger: "click", - "popper-class": "avatar-box-popper", - "show-arrow": false, - visible: item["popoverState"], - "onUpdate:visible": ($event) => item["popoverState"] = $event - }, { - reference: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<img class="comment-avatar"${ssrRenderAttr("src", item["avatar"])} data-v-ec58218d${_scopeId}>`); - } else { - return [ - createVNode("img", { - class: "comment-avatar", - src: item["avatar"] - }, null, 8, ["src"]) - ]; - } - }), - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - if (item["uin"]) { - _push2(`<div class="avatar-box flexflex" data-v-ec58218d${_scopeId}><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_0)} data-v-ec58218d${_scopeId}> \u53D1\u9001\u4FE1\u606F </a><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_1)} data-v-ec58218d${_scopeId}> TA\u7684\u4E3B\u9875 </a></div>`); - } else { - _push2(`<!---->`); - } - } else { - return [ - item["uin"] ? (openBlock(), createBlock("div", { - key: 0, - class: "avatar-box flexflex" - }, [ - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => sendMessage(item["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_0 - }), - createTextVNode(" \u53D1\u9001\u4FE1\u606F ") - ], 8, ["onClick"]), - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => TAHomePage(item["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_1 - }), - createTextVNode(" TA\u7684\u4E3B\u9875 ") - ], 8, ["onClick"]) - ])) : createCommentVNode("", true) - ]; - } - }), - _: 2 - }, _parent)); - _push(`<div class="comment-content flex1" data-v-ec58218d><div class="comment-header flexacenter" data-v-ec58218d><div class="comment-header-left flexacenter" data-v-ec58218d><div class="comments-username" data-v-ec58218d>${ssrInterpolate(item["nickname"])}</div><div class="comments-time" data-v-ec58218d>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item["timestamp"]))}</div>`); - if (item["isauthor"]) { - _push(`<div class="comments-identity" data-v-ec58218d>\u4F5C\u8005</div>`); - } else { - _push(`<!---->`); - } - if (item["groupid"] == 14) { - _push(`<img class="comments-title"${ssrRenderAttr("src", _imports_8)} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - _push(`</div><div class="comment-header-right flexacenter" data-v-ec58218d><div class="menu-box flexacenter" data-v-ec58218d><img class="menu-icon"${ssrRenderAttr("src", _imports_9)} data-v-ec58218d><div class="operate-box" data-v-ec58218d><div class="item flexcenter" data-v-ec58218d>\u4E3E\u62A5</div>`); - if (unref(permissions).includes("comment.edit")) { - _push(`<div class="item flexcenter" data-v-ec58218d>\u7F16\u8F91</div>`); - } else { - _push(`<!---->`); - } - if (unref(permissions).includes("comment.delete")) { - _push(`<div class="item flexcenter" data-v-ec58218d>\u5220\u9664</div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div><img class="comment-icon" title="\u56DE\u590D"${ssrRenderAttr("src", _imports_10)} data-v-ec58218d><div class="flexacenter like-box" data-v-ec58218d>`); - if (item["islike"] == 1) { - _push(`<img class="like-icon"${ssrRenderAttr("src", _imports_11)} data-v-ec58218d>`); - } else { - _push(`<img class="like-icon"${ssrRenderAttr("src", _imports_12)} data-v-ec58218d>`); - } - _push(`<div class="like-quantity" data-v-ec58218d>${ssrInterpolate(item["likenum"] || 0)}</div></div></div></div>`); - if (item["content"]) { - _push(`<div class="comment-text" data-v-ec58218d>${(_a3 = item["content"]) != null ? _a3 : ""}</div>`); - } else { - _push(`<!---->`); - } - if ((_a22 = item.image) == null ? void 0 : _a22.url) { - _push(`<img class="comments-img"${ssrRenderAttr("src", ((_b2 = item.image) == null ? void 0 : _b2.base64) || ((_c2 = item.image) == null ? void 0 : _c2.url))} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - if (item["childState"]) { - _push(`<div class="input-box" data-v-ec58218d><img class="cross"${ssrRenderAttr("src", _imports_1$1)} data-v-ec58218d><div class="top flexflex" data-v-ec58218d>`); - if (unref(user).avatar) { - _push(`<img class="avatar"${ssrRenderAttr("src", unref(user).avatar)} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - _push(`<textarea class="input-textarea flex1" maxlength="500" placeholder="\u8BF4\u8BF4\u4F60\u7684\u60F3\u6CD5\u6216\u7591\u95EE\u2026" data-v-ec58218d>${ssrInterpolate(item["commentInput"])}</textarea></div>`); - if ((_d2 = item.picture) == null ? void 0 : _d2.url) { - _push(`<div class="picture-box" data-v-ec58218d><div class="picture" data-v-ec58218d><img class="close"${ssrRenderAttr("src", _imports_5)} data-v-ec58218d><img class="img"${ssrRenderAttr("src", ((_e2 = item.picture) == null ? void 0 : _e2.base64) || item.picture.url)} data-v-ec58218d></div></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="bottom flexacenter" data-v-ec58218d><div class="operate flexacenter" data-v-ec58218d><div class="${ssrRenderClass([{ "pitch": item.emojiState }, "item"])}" data-v-ec58218d><img class="icon"${ssrRenderAttr("src", _imports_6)} alt="" data-v-ec58218d><div class="emoji-box" data-v-ec58218d><!--[-->`); - ssrRenderList(emojiData, (item2) => { - _push(`<div class="emoji-icon" data-v-ec58218d>${ssrInterpolate(item2)}</div>`); - }); - _push(`<!--]--></div></div><div class="item flexacenter" data-v-ec58218d><input class="file" type="file" accept=".png, .jpg, .jpeg" data-v-ec58218d><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_7)} alt="" data-v-ec58218d><span class="file-hint" data-v-ec58218d>\u6700\u591A\u53EF\u4E0A\u4F201\u5F20\u56FE\u7247\uFF0C\u652F\u6301\u5728\u8F93\u5165\u6846\u4E2D\u76F4\u63A5\u7C98\u8D34\u56FE\u7247\u3002</span></div></div><div class="btn" data-v-ec58218d>\u53D1\u9001</div></div></div>`); - } else { - _push(`<!---->`); - } - if (item["child"].length > 0) { - _push(`<div class="child-comments" data-v-ec58218d><!--[-->`); - ssrRenderList(item["child"], (ite, i) => { - var _a32, _b3, _c3, _d3, _e3, _f2; - _push(`<div class="comment-item flexflex" data-v-ec58218d>`); - _push(ssrRenderComponent(_component_el_popover, { - placement: "bottom-start", - width: 140, - trigger: "click", - "popper-class": "avatar-box-popper", - "show-arrow": false, - visible: ite["popoverState"], - "onUpdate:visible": ($event) => ite["popoverState"] = $event - }, { - reference: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<img class="comment-avatar"${ssrRenderAttr("src", ite["avatar"])} data-v-ec58218d${_scopeId}>`); - } else { - return [ - createVNode("img", { - class: "comment-avatar", - src: ite["avatar"] - }, null, 8, ["src"]) - ]; - } - }), - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - if (ite["uin"]) { - _push2(`<div class="avatar-box flexflex" data-v-ec58218d${_scopeId}><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_0)} data-v-ec58218d${_scopeId}> \u53D1\u9001\u4FE1\u606F </a><a class="avatar-item flexcenter" target="_blank" data-v-ec58218d${_scopeId}><img class="avatar-icon"${ssrRenderAttr("src", _imports_1)} data-v-ec58218d${_scopeId}> TA\u7684\u4E3B\u9875 </a></div>`); - } else { - _push2(`<!---->`); - } - } else { - return [ - ite["uin"] ? (openBlock(), createBlock("div", { - key: 0, - class: "avatar-box flexflex" - }, [ - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => sendMessage(ite["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_0 - }), - createTextVNode(" \u53D1\u9001\u4FE1\u606F ") - ], 8, ["onClick"]), - createVNode("a", { - class: "avatar-item flexcenter", - target: "_blank", - onClick: withModifiers(($event) => TAHomePage(ite["uin"]), ["prevent"]) - }, [ - createVNode("img", { - class: "avatar-icon", - src: _imports_1 - }), - createTextVNode(" TA\u7684\u4E3B\u9875 ") - ], 8, ["onClick"]) - ])) : createCommentVNode("", true) - ]; - } - }), - _: 2 - }, _parent)); - _push(`<div class="comment-content flex1" data-v-ec58218d><div class="comment-header flexacenter" data-v-ec58218d><div class="comment-header-left flexacenter" data-v-ec58218d><div class="comments-username" data-v-ec58218d>${ssrInterpolate(ite["nickname"])}</div><div class="comments-time" data-v-ec58218d>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(ite["timestamp"]))}</div>`); - if (ite["isauthor"]) { - _push(`<div class="comments-identity" data-v-ec58218d>\u4F5C\u8005</div>`); - } else { - _push(`<!---->`); - } - if (ite["groupid"] == 14) { - _push(`<img class="comments-title"${ssrRenderAttr("src", _imports_8)} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - _push(`</div><div class="comment-header-right flexacenter" data-v-ec58218d><div class="menu-box flexacenter" data-v-ec58218d><img class="menu-icon"${ssrRenderAttr("src", _imports_9)} data-v-ec58218d><div class="operate-box" data-v-ec58218d><div class="item flexcenter" data-v-ec58218d>\u4E3E\u62A5</div>`); - if (unref(permissions).includes("comment.edit")) { - _push(`<div class="item flexcenter" data-v-ec58218d>\u7F16\u8F91</div>`); - } else { - _push(`<!---->`); - } - if (unref(permissions).includes("comment.delete")) { - _push(`<div class="item flexcenter" data-v-ec58218d>\u5220\u9664</div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div><img class="comment-icon" title="\u56DE\u590D"${ssrRenderAttr("src", _imports_10)} data-v-ec58218d><div class="flexacenter like-box" data-v-ec58218d>`); - if (ite["islike"] == 1) { - _push(`<img class="like-icon"${ssrRenderAttr("src", _imports_11)} data-v-ec58218d>`); - } else { - _push(`<img class="like-icon"${ssrRenderAttr("src", _imports_12)} data-v-ec58218d>`); - } - _push(`<div class="like-quantity" data-v-ec58218d>${ssrInterpolate(ite["likenum"] || 0)}</div></div></div></div>`); - if (ite["content"]) { - _push(`<div class="comment-text" data-v-ec58218d>`); - if ((_a32 = ite == null ? void 0 : ite.reply) == null ? void 0 : _a32.nickname) { - _push(`<div class="comments-reply" data-v-ec58218d>@${ssrInterpolate((_b3 = ite == null ? void 0 : ite.reply) == null ? void 0 : _b3.nickname)}</div>`); - } else { - _push(`<!---->`); - } - _push(` ${ssrInterpolate(ite["content"])}</div>`); - } else { - _push(`<!---->`); - } - if ((_c3 = ite.image) == null ? void 0 : _c3.url) { - _push(`<img class="comments-img"${ssrRenderAttr("src", ((_d3 = ite.image) == null ? void 0 : _d3.base64) || ((_e3 = ite.image) == null ? void 0 : _e3.url))} data-v-ec58218d>`); - } else { - _push(`<!---->`); - } - if (ite["childState"]) { - _push(`<div class="input-box" data-v-ec58218d><img class="cross"${ssrRenderAttr("src", _imports_1$1)} data-v-ec58218d><div class="top flexflex" data-v-ec58218d><textarea class="input-textarea flex1" maxlength="500"${ssrRenderAttr("placeholder", "\u56DE\u590D\u201C" + (ite["nickname"] || "\u533F\u540D\u7528\u6237") + "\u201D\uFF1A")} data-v-ec58218d>${ssrInterpolate(ite["commentInput"])}</textarea></div>`); - if ((_f2 = ite.picture) == null ? void 0 : _f2.url) { - _push(`<div class="picture-box" data-v-ec58218d><div class="picture" data-v-ec58218d><img class="close"${ssrRenderAttr("src", _imports_5)} data-v-ec58218d><img class="img"${ssrRenderAttr("src", ite.picture.base64 || ite.picture.url)} data-v-ec58218d></div></div>`); - } else { - _push(`<!---->`); - } - _push(`<div class="bottom flexacenter" data-v-ec58218d><div class="operate flexacenter" data-v-ec58218d><div class="${ssrRenderClass([{ "pitch": ite.emojiState }, "item"])}" data-v-ec58218d><img class="icon"${ssrRenderAttr("src", _imports_6)} alt="" data-v-ec58218d><div class="emoji-box" data-v-ec58218d><!--[-->`); - ssrRenderList(emojiData, (item2) => { - _push(`<div class="emoji-icon" data-v-ec58218d>${ssrInterpolate(item2)}</div>`); - }); - _push(`<!--]--></div></div><div class="item flexacenter" data-v-ec58218d><input class="file" type="file" accept=".png, .jpg, .jpeg" data-v-ec58218d><img class="icon" style="${ssrRenderStyle({ "border-radius": "0" })}"${ssrRenderAttr("src", _imports_7)} alt="" data-v-ec58218d><span class="file-hint" data-v-ec58218d>\u6700\u591A\u53EF\u4E0A\u4F201\u5F20\u56FE\u7247\uFF0C\u652F\u6301\u5728\u8F93\u5165\u6846\u4E2D\u76F4\u63A5\u7C98\u8D34\u56FE\u7247\u3002</span></div></div><div class="btn" data-v-ec58218d>\u53D1\u9001</div></div></div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div>`); - }); - _push(`<!--]--></div>`); - } else { - _push(`<!---->`); - } - if (item["childnum"] > item["child"].length) { - _push(`<div class="comments-also flexacenter" data-v-ec58218d><div class="" data-v-ec58218d>\u8FD8\u6709${ssrInterpolate(item["childnum"] - item["child"].length)}\u6761\u56DE\u590D</div><img class="also-icon"${ssrRenderAttr("src", _imports_14)} data-v-ec58218d></div>`); - } else { - _push(`<!---->`); - } - _push(`</div></div>`); - }); - _push(`<!--]--></div>`); - if (unref(commentPage) == 0 && unref(commentList).length != 0) { - _push(`<div class="comment-end" data-v-ec58218d>\xB7 End \xB7</div>`); - } else { - _push(`<!---->`); - } - _push(`<!--]-->`); - } - _push(`</div></div><div class="floor-area flexacenter" data-v-ec58218d><div class="floor-content flexacenter" data-v-ec58218d><div class="floor-right flexacenter" data-v-ec58218d> \u624B\u673A\u67E5\u770B\u8BE5\u9762\u7ECF <img class="arrows-icon"${ssrRenderAttr("src", _imports_15)} data-v-ec58218d>`); - _push(ssrRenderComponent(_component_el_popover, { - placement: "bottom", - width: "160px", - trigger: "hover", - visible: unref(floorRightState), - "onUpdate:visible": ($event) => isRef(floorRightState) ? floorRightState.value = $event : floorRightState = $event, - "popper-style": "padding: 24px;border-radius: 18px;" - }, { - reference: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<div class="QR-code-ball flexcenter" data-v-ec58218d${_scopeId}><img class=""${ssrRenderAttr("src", _imports_16)} data-v-ec58218d${_scopeId}></div>`); - } else { - return [ - createVNode("div", { class: "QR-code-ball flexcenter" }, [ - createVNode("img", { - class: "", - src: _imports_16 - }) - ]) - ]; - } - }), - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<img class="examine-code"${ssrRenderAttr("src", unref(qrcode))} data-v-ec58218d${_scopeId}>`); - } else { - return [ - createVNode("img", { - class: "examine-code", - src: unref(qrcode) - }, null, 8, ["src"]) - ]; - } - }), - _: 1 - }, _parent)); - _push(`</div><div class="floor-left flexacenter" data-v-ec58218d>`); - if (unref(isBrowser)) { - _push(`<div class="item flexacenter" style="${ssrRenderStyle({ "cursor": "auto" })}" data-v-ec58218d><img class="icon h8"${ssrRenderAttr("src", _imports_17)} data-v-ec58218d> ${ssrInterpolate(unref(info)["views"])}</div>`); - } else { - _push(`<!---->`); - } - { - _push(`<div class="item flexacenter" data-v-ec58218d>`); - if (unref(islike) == 1) { - _push(`<img class="icon h16"${ssrRenderAttr("src", _imports_11)} data-v-ec58218d>`); - } else { - _push(`<img class="icon h16"${ssrRenderAttr("src", _imports_18)} data-v-ec58218d>`); - } - _push(` ${ssrInterpolate(unref(info)["likenum"] || "")}</div>`); - } - _push(`<div class="item flexacenter" data-v-ec58218d><img class="icon h15"${ssrRenderAttr("src", _imports_20)} data-v-ec58218d>${ssrInterpolate(unref(commentComments))}</div>`); - _push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent)); - _push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent)); - _push(`</div></div></div></div>`); - if (unref(reportAlertShow)) { - _push(ssrRenderComponent(_component_Report, { reportToken: unref(reportToken) }, null, _parent)); - } else { - _push(`<!---->`); - } - _push(`</div>`); - if (unref(isInsertCoinsOperationShow)) { - _push(`<div class="pop-masking flexcenter" data-v-ec58218d>`); - if (unref(coinMybalance) > 0) { - _push(`<div class="slit-pop-box" style="${ssrRenderStyle({ "border-radius": "11px" })}" data-v-ec58218d><div class="slit-left" style="${ssrRenderStyle({ "width": "50px" })}" data-v-ec58218d><img class="slit-left-icon" src="//app.gter.net/image/gter/offer/imgdetails/u620.png" style="${ssrRenderStyle({ "margin-top": "-8px" })}" data-v-ec58218d></div><div class="slit-box" data-v-ec58218d><div class="slit-head" style="${ssrRenderStyle({ "flex": "1", "flex-direction": "column", "align-items": "flex-start" })}" data-v-ec58218d><div class="slit-head-title flexflex" style="${ssrRenderStyle({ "width": "100%", "justify-content": "space-between" })}" data-v-ec58218d><span data-v-ec58218d>\u6295\u5E01</span><div class="in-all" data-v-ec58218d> \u4F60\u5171\u6709 <span data-v-ec58218d>${ssrInterpolate(unref(coinMybalance))}</span> \u5BC4\u6258\u5E01 </div></div></div><div class="coin-quantity flexacenter" data-v-ec58218d><!--[-->`); - ssrRenderList(unref(coinConfig).list, (item, index) => { - _push(`<div class="${ssrRenderClass([{ "coin-pitch": unref(coinAmount) == item }, "coin-quantity-item"])}" data-v-ec58218d>${ssrInterpolate(item)} <span data-v-ec58218d>${ssrInterpolate(unref(coinConfig).unit)}</span></div>`); - }); - _push(`<!--]--></div>`); - _push(ssrRenderComponent(_component_el_input, { - class: "slit-input", - modelValue: unref(coinAmount), - "onUpdate:modelValue": ($event) => isRef(coinAmount) ? coinAmount.value = $event : coinAmount = $event, - placeholder: "\u81EA\u5B9A\u4E49\u6295\u5E01\u91D1\u989D", - "show-word-limit": "false" - }, null, _parent)); - _push(`<div class="message-box" data-v-ec58218d><div class="message-hint" data-v-ec58218d>\u987A\u4FBF\u8BF4\u70B9\u4EC0\u4E48</div>`); - _push(ssrRenderComponent(_component_el_input, { - class: "slit-input", - style: { "font-size": "15px" }, - modelValue: unref(coinMessage), - "onUpdate:modelValue": ($event) => isRef(coinMessage) ? coinMessage.value = $event : coinMessage = $event, - placeholder: "\u8BF7\u8F93\u5165", - maxlength: "500", - "show-word-limit": "" - }, null, _parent)); - _push(`</div><div class="operation" data-v-ec58218d><div class="operation-item flexcenter" data-v-ec58218d>\u53D6\u6D88</div><div class="operation-item flexcenter greenBj" data-v-ec58218d>\u786E\u5B9A</div></div></div></div>`); - } else { - _push(`<div class="no-jituobi-pop-box" data-v-ec58218d><img class="no-jituobi-close"${ssrRenderAttr("src", _imports_1$1)} data-v-ec58218d><div class="no-jituobi-head flexacenter" data-v-ec58218d><img class="bi-icon" src="//app.gter.net/image/gter/offer/imgdetails/u620.png" style="${ssrRenderStyle({ "margin-right": "12px" })}" data-v-ec58218d><span style="${ssrRenderStyle({ "margin-top": "10px" })}" data-v-ec58218d>${ssrInterpolate((_l = (_k = unref(coinConfig)) == null ? void 0 : _k.strategy) == null ? void 0 : _l.tips)}</span></div><a${ssrRenderAttr("href", (_n = (_m = unref(coinConfig)) == null ? void 0 : _m.strategy) == null ? void 0 : _n.url)} target="_blank" data-v-ec58218d><div class="strategy-btn greenBj flexcenter" data-v-ec58218d>${ssrInterpolate((_p = (_o = unref(coinConfig)) == null ? void 0 : _o.strategy) == null ? void 0 : _p.button)}<img class="strategy-icon"${ssrRenderAttr("src", _imports_25)} data-v-ec58218d></div></a></div>`); - } - _push(`</div>`); - } else { - _push(`<!---->`); - } - if (unref(coinrankingState)) { - _push(ssrRenderComponent(_component_RankingBox, { coinrankingList: unref(coinrankingList) }, null, _parent)); - } else { - _push(`<!---->`); - } - if (unref(respondPopListState)) { - _push(`<div class="respond-pop-mask" data-v-ec58218d><div class="respond-pop" data-v-ec58218d>`); - if (JSON.stringify(unref(respondDetail)) == "{}") { - _push(`<div class="respond-pop-no" data-v-ec58218d><img class="respond-title-icon"${ssrRenderAttr("src", _imports_26)} data-v-ec58218d><img${ssrRenderAttr("src", _imports_27)} class="respond-pop-no-icon" data-v-ec58218d><div class="respond-pop-no-text" data-v-ec58218d>- \u6682\u65E0\u6570\u636E -</div></div>`); - } else { - _push(`<!--[--><div class="respond-pop-title" data-v-ec58218d> \u5171<span class="respond-pop-amount" data-v-ec58218d>${ssrInterpolate(unref(ripostecount).user)}</span>\u4EBA\u56DE\u5E94 <img class="respond-title-icon"${ssrRenderAttr("src", _imports_26)} data-v-ec58218d></div><div class="respond-list" data-v-ec58218d><!--[-->`); - ssrRenderList(unref(respondDetail), (item, index) => { - var _a3; - _push(`<div class="respond-item" data-v-ec58218d><div class="${ssrRenderClass([{ "pitch": item.selected }, "respond-code"])}" data-v-ec58218d>${(_a3 = jointriposte(item.item)) != null ? _a3 : ""}</div><div class="respond-content flex1" data-v-ec58218d><div class="respond-total" data-v-ec58218d>${ssrInterpolate(item.user.length)} \u4EBA\u4F5C\u6B64\u56DE\u5E94</div><!--[-->`); - ssrRenderList(item.user, (item2, index2) => { - _push(`<div class="user-item" data-v-ec58218d><img class="user-avatar"${ssrRenderAttr("src", item2.avatar)} data-v-ec58218d> ${ssrInterpolate(item2.nickname || item2.username)}</div>`); - }); - _push(`<!--]--></div></div>`); - }); - _push(`<!--]--></div><!--]-->`); - } - _push(`</div></div>`); - } else { - _push(`<!---->`); - } - if (unref(dialogSrc)) { - _push(`<div class="detail-image-mask flexcenter" data-v-ec58218d><div class="detail-image flexcenter" data-v-ec58218d><img class="detail-img"${ssrRenderAttr("src", unref(dialogSrc))} data-v-ec58218d></div></div>`); - } else { - _push(`<!---->`); - } - _push(ssrRenderComponent(_component_el_dialog, { - modelValue: unref(dialogVisible), - "onUpdate:modelValue": ($event) => isRef(dialogVisible) ? dialogVisible.value = $event : dialogVisible = $event, - title: "\u63D0\u793A", - width: "500" - }, { - footer: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<div class="dialog-footer" data-v-ec58218d${_scopeId}>`); - _push2(ssrRenderComponent(_component_el_button, { - onClick: ($event) => isRef(dialogVisible) ? dialogVisible.value = false : dialogVisible = false - }, { - default: withCtx((_2, _push3, _parent3, _scopeId2) => { - if (_push3) { - _push3(`\u53D6 \u6D88`); - } else { - return [ - createTextVNode("\u53D6 \u6D88") - ]; - } - }), - _: 1 - }, _parent2, _scopeId)); - _push2(ssrRenderComponent(_component_el_button, { - type: "primary", - onClick: handleHide - }, { - default: withCtx((_2, _push3, _parent3, _scopeId2) => { - if (_push3) { - _push3(`\u786E \u5B9A`); - } else { - return [ - createTextVNode("\u786E \u5B9A") - ]; - } - }), - _: 1 - }, _parent2, _scopeId)); - _push2(`</div>`); - } else { - return [ - createVNode("div", { class: "dialog-footer" }, [ - createVNode(_component_el_button, { - onClick: ($event) => isRef(dialogVisible) ? dialogVisible.value = false : dialogVisible = false - }, { - default: withCtx(() => [ - createTextVNode("\u53D6 \u6D88") - ]), - _: 1 - }, 8, ["onClick"]), - createVNode(_component_el_button, { - type: "primary", - onClick: handleHide - }, { - default: withCtx(() => [ - createTextVNode("\u786E \u5B9A") - ]), - _: 1 - }) - ]) - ]; - } - }), - default: withCtx((_, _push2, _parent2, _scopeId) => { - if (_push2) { - _push2(`<span data-v-ec58218d${_scopeId}>\u786E\u5B9A\u9690\u85CF\u8BE5\u9762\u7ECF\u5417\uFF1F</span>`); - } else { - return [ - createVNode("span", null, "\u786E\u5B9A\u9690\u85CF\u8BE5\u9762\u7ECF\u5417\uFF1F") - ]; - } - }), - _: 1 - }, _parent)); - _push(`<!--]-->`); - }; - } -}; -const _sfc_setup = _sfc_main.setup; -_sfc_main.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/details/[id].vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -const _id_ = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ec58218d"]]); - -export { _id_ as default }; -<<<<<<<< HEAD:.output/server/chunks/build/_id_-xO0bwZ3v.mjs -//# sourceMappingURL=_id_-xO0bwZ3v.mjs.map -======== -//# sourceMappingURL=_id_-3cYcmCI2.mjs.map ->>>>>>>> parent of 1d74a9f (no message):.output/server/chunks/build/_id_-3cYcmCI2.mjs diff --git a/.output/server/chunks/build/_id_-3cYcmCI2.mjs.map b/.output/server/chunks/build/_id_-3cYcmCI2.mjs.map deleted file mode 100644 index d0c0217..0000000 --- a/.output/server/chunks/build/_id_-3cYcmCI2.mjs.map +++ /dev/null @@ -1,5 +0,0 @@ -<<<<<<<< HEAD:.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map -{"version":3,"file":"_id_-xO0bwZ3v.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dropdown/src/dropdown.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/client-only.js","../../../../components/Report.vue","../../../../components/RankingBox.vue","../../../../assets/img/send-messages-icon.png","../../../../assets/img/homepage-icon.png","../../../../assets/img/set-icon.png","../../../../assets/img/original-icon.png","../../../../assets/img/close-icon.png","../../../../assets/img/smiling-face.png","../../../../assets/img/picture-icon.png","../../../../assets/img/title.png","../../../../assets/img/menu-icon-gray.svg","../../../../assets/img/comment-icon-gray.svg","../../../../assets/img/like-icon-colours.png","../../../../assets/img/like-icon-gray.png","../../../../assets/img/arrow-circular-gray.png","../../../../assets/img/arrows-icon.png","../../../../assets/img/QR-code-icon.svg","../../../../assets/img/eye-icon-black.svg","../../../../assets/img/like-icon.png","../../../../assets/img/comment-icon.png","../../../../assets/img/strategy-icon.svg","../../../../assets/img/cross-grey.png","../../../../assets/img/no-discussion.png","../../../../pages/details/[id].vue"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} -======== -{"version":3,"file":"_id_-3cYcmCI2.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dropdown/src/dropdown.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/client-only.js","../../../../components/Report.vue","../../../../components/RankingBox.vue","../../../../assets/img/send-messages-icon.png","../../../../assets/img/homepage-icon.png","../../../../assets/img/set-icon.png","../../../../assets/img/original-icon.png","../../../../assets/img/close-icon.png","../../../../assets/img/smiling-face.png","../../../../assets/img/picture-icon.png","../../../../assets/img/title.png","../../../../assets/img/menu-icon-gray.svg","../../../../assets/img/comment-icon-gray.svg","../../../../assets/img/like-icon-colours.png","../../../../assets/img/like-icon-gray.png","../../../../assets/img/arrow-circular-gray.png","../../../../assets/img/arrows-icon.png","../../../../assets/img/QR-code-icon.svg","../../../../assets/img/eye-icon-black.svg","../../../../assets/img/like-icon.png","../../../../assets/img/comment-icon.png","../../../../assets/img/strategy-icon.svg","../../../../assets/img/cross-grey.png","../../../../assets/img/no-discussion.png","../../../../pages/details/[id].vue"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} ->>>>>>>> parent of 1d74a9f (no message):.output/server/chunks/build/_id_-3cYcmCI2.mjs.map diff --git a/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs b/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs new file mode 100644 index 0000000..d6b7fc3 --- /dev/null +++ b/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs @@ -0,0 +1,4 @@ +const _id__vue_vue_type_style_index_0_scoped_ec58218d_lang = '@font-face{font-family:emojifont;src:url(https://oss.x-php.com/static/riposte/emojifont-sbix.ttf?t=mj)}.content[data-v-ec58218d]{background:#fff;border-radius:15px;font-family:PingFangSC-Regular,PingFang SC,sans-serif;margin:0 auto 60px;width:1200px}.content .left[data-v-ec58218d]{border-right:16px solid #f6f6f6;display:flex;flex-direction:column;height:calc(100vh - 70px);overflow:auto;padding-top:30px;width:376px}.content .left .school-box[data-v-ec58218d]{flex-direction:column;margin-bottom:40px;text-align:center}.content .left .school-box .school-box-icon[data-v-ec58218d]{height:52px}.content .left .school-box .school-box-icon .school-icon[data-v-ec58218d]{height:40px;margin-bottom:12px}.content .left .school-box .school-name[data-v-ec58218d]{color:#000;font-size:15px;font-weight:650;height:28px;margin-bottom:7px}.content .left .school-box .school-en-name[data-v-ec58218d]{color:#555;font-size:13px;height:18px}.content .left .mj-total[data-v-ec58218d]{color:#7f7f7f;font-size:13px;line-height:22px;margin-bottom:20px;padding:0 30px}.content .left .mj-total .value[data-v-ec58218d]{color:#000;font-weight:650;margin:0 5px}.content .left .mj-list[data-v-ec58218d]{scrollbar-width:none;-ms-overflow-style:none;flex:1;margin-right:9px;overflow:auto;padding:0 30px 15px}.content .left .mj-list[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .left .mj-list .mj-item[data-v-ec58218d]{cursor:pointer;flex-direction:column;margin-bottom:15px;padding:14px 12px;position:relative;z-index:1}.content .left .mj-list .mj-item.recommend .mj-header[data-v-ec58218d]{display:inline-block}.content .left .mj-list .mj-item.recommend .mj-header .label[data-v-ec58218d]{background-color:#fde06d1e;border:1px solid #e4c762;border-radius:5px;color:#e4c762;display:inline-flex;font-size:12px;height:20px;margin-right:10px;text-align:center}.content .left .mj-list .mj-item.recommend .mj-header .label .label-text[data-v-ec58218d]{background-color:#e4c762;border-radius:5px;color:#fff;font-size:12px;height:20px;width:20px}.content .left .mj-list .mj-item.recommend .mj-header .label .label-title[data-v-ec58218d]{align-items:center;display:flex;height:100%;padding:0 5px}.content .left .mj-list .mj-item.recommend .mj-header h1[data-v-ec58218d]{color:#000;display:inline;font-size:14px;font-weight:650;line-height:26px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.content .left .mj-list .mj-item.recommend .thread-text[data-v-ec58218d]{color:#555;font-size:13px}.content .left .mj-list .mj-item.recommend .thread-text .ask-label[data-v-ec58218d]{color:#7f7f7f}.content .left .mj-list .mj-item.recommend .vote-list[data-v-ec58218d]{color:#555;font-size:13px}.content .left .mj-list .mj-item.recommend .vote-list .vote-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:6px}.content .left .mj-list .mj-item[data-v-ec58218d]:hover:after{background:#f6f6f6;border-radius:10px;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:after,.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:before{background:#72db86;content:"";position:absolute}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:after{border-radius:10px;height:100%;left:0;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item.pitch[data-v-ec58218d]:before{height:10px;left:100%;top:50%;transform:translate(-64%,-50%) rotate(45deg);width:10px}.content .left .mj-list .mj-item.pitch .info-list .info-item .info-name[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .info-list .info-item .info-value[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .mj-header .time[data-v-ec58218d],.content .left .mj-list .mj-item.pitch .mj-header .user-name[data-v-ec58218d]{color:#fff}.content .left .mj-list .mj-item .item-bj[data-v-ec58218d]{display:none;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item .mj-header[data-v-ec58218d]{font-size:12px;margin-bottom:12px}.content .left .mj-list .mj-item .mj-header .mj-avatar[data-v-ec58218d]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .left .mj-list .mj-item .mj-header .user-name[data-v-ec58218d]{color:#555;margin-right:10px}.content .left .mj-list .mj-item .mj-header .time[data-v-ec58218d]{color:#aaa}.content .left .mj-list .mj-item .info-list[data-v-ec58218d]{flex-direction:column}.content .left .mj-list .mj-item .info-list .info-item[data-v-ec58218d]{line-height:20px}.content .left .mj-list .mj-item .info-list .info-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:8px}.content .left .mj-list .mj-item .info-list .info-item .info-name[data-v-ec58218d]{color:#7f7f7f;font-size:13px;margin-right:10px}.content .left .mj-list .mj-item .info-list .info-item .info-value[data-v-ec58218d]{color:#333;font-size:13px}.content .right[data-v-ec58218d]{overflow:auto;padding:5px 0;scrollbar-width:none;-ms-overflow-style:none;position:relative}.content .right[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .right .header[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding:30px 30px 25px 45px}.content .right .header .titletitle[data-v-ec58218d]{color:#000;font-size:24px;font-weight:650;margin-bottom:15px}.content .right .header .mj-header-left[data-v-ec58218d]{position:relative}.content .right .header .mj-header[data-v-ec58218d]{font-size:13px;justify-content:space-between;line-height:22px}.content .right .header .mj-header .mj-avatar[data-v-ec58218d]{border-radius:50%;height:24px;margin-right:10px;width:24px}.content .right .header .mj-header .user-name[data-v-ec58218d]{color:#333;margin-right:10px}.content .right .header .mj-header .hide[data-v-ec58218d]{color:#aaa;cursor:pointer;margin-left:12px}.content .right .header .mj-header .hide .icon[data-v-ec58218d]{height:16px;margin-right:5px}.content .right .header .mj-header .time[data-v-ec58218d]{color:#aaa}.content .right .header .mj-header .mj-header-right[data-v-ec58218d]{color:#333;cursor:pointer;font-size:14px}.content .right .header .mj-header .mj-header-right .original-icon[data-v-ec58218d]{height:16px;margin-right:7px;width:18px}.content .right .details-box[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding-top:41px}.content .right .details-box .details-item[data-v-ec58218d]{margin-bottom:40px}.content .right .details-box .details-item .details-top[data-v-ec58218d]{color:#000;font-size:14px;font-weight:650;margin-bottom:21px;padding-left:60px;position:relative}.content .right .details-box .details-item .details-top[data-v-ec58218d]:after{background-color:#62b1ff;border-radius:3px;content:"";height:10px;left:44px;position:absolute;top:5px;width:6px}.content .right .details-box .details-item .details-list[data-v-ec58218d]{background:inherit;background-color:#f6f6f6;border-radius:10px;font-size:14px;margin-left:60px;padding:20px;width:733px}.content .right .details-box .details-item .details-list .details-list-item[data-v-ec58218d]:not(:last-of-type){margin-bottom:20px}.content .right .details-box .details-item .details-list .details-list-item .details-name[data-v-ec58218d]{color:#555;margin-right:30px}.content .right .details-box .details-item .details-list .details-list-item .details-value[data-v-ec58218d]{color:#000;white-space:break-spaces;word-wrap:break-word}.content .right .details-box .details-item .details-list .details-list-item .details-value.date[data-v-ec58218d]{color:#000;font-family:Arial-Black,Arial Black,sans-serif;font-size:16px;font-style:normal;font-weight:900}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe[data-v-ec58218d]{font-size:15px;line-height:30px;position:relative;width:693px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe .unlock-mask[data-v-ec58218d]{display:none}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock[data-v-ec58218d]{height:180px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .text[data-v-ec58218d]{height:180px;overflow:hidden}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask[data-v-ec58218d]{align-items:center;background:linear-gradient(0deg,#f6f6f6 70%,transparent);color:#000;display:flex;flex-direction:column;font-size:14px;height:100%;justify-content:flex-end;left:0;line-height:normal;padding-bottom:38px;position:absolute;top:0;width:100%}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .unlock-text-box[data-v-ec58218d]{flex-direction:column;position:relative}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .unlock-text[data-v-ec58218d]{cursor:pointer;padding-top:7px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .emphasis[data-v-ec58218d]{color:#fa6b11;font-weight:650}.content .right .respond-area[data-v-ec58218d]{border-bottom:1px solid #ebebeb;padding:40px 45px 30px}.content .right .respond-area .respond-title[data-v-ec58218d]{color:#000;font-family:PingFangSC-Semibold,PingFang SC Semibold,PingFang SC,sans-serif;font-size:16px;font-weight:650;line-height:20px;margin-bottom:20px}.content .right .respond-area .respond-title .value[data-v-ec58218d]{color:#555;flex:1;font-family:PingFangSC-Regular,PingFang SC,sans-serif;font-weight:400;margin-left:5px}.content .right .respond-area .respond-title .respond-list-btn[data-v-ec58218d]{align-items:center;color:#555;cursor:pointer;display:flex;font-size:13px;font-weight:400}.content .right .respond-area .respond-title .respond-list-btn .respond-list-btn-amount[data-v-ec58218d]{color:#333;font-weight:650;margin:0 5px}.content .right .respond-area .respond-title .respond-list-btn .respond-list-btn-icon[data-v-ec58218d]{margin-left:5px;width:6px}.content .right .respond-area .respond-no-box[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:40px 208px 208px 40px;height:40px;width:382px}.content .right .respond-area .respond-no-box[data-v-ec58218d] .respond-add{margin:5px}.content .right .respond-area .respond-no-box .respond-no[data-v-ec58218d]{display:flex;justify-content:space-around}.content .right .respond-area .respond-no-box .respond-no .code[data-v-ec58218d]{cursor:pointer;font-family:emojifont;font-size:16px;line-height:30px;margin-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box[data-v-ec58218d]{display:flex;flex-wrap:wrap}.content .right .respond-area .respond-box .respond-item[data-v-ec58218d]{background:#fff;border:1px solid #d7d7d7;border-radius:8px;color:#555;cursor:pointer;display:inline-flex;font-size:12px;height:30px;margin-bottom:10px;margin-right:10px;padding:0 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box .respond-item .code[data-v-ec58218d]{font-family:emojifont;font-size:16px;line-height:30px;margin-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.content .right .respond-area .respond-box .respond-item.pitch[data-v-ec58218d]{background:#f6f6f6;border:none}.content .right .respond-area .respond-box .respond-select[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:208px;height:30px;width:250px}.content .right .respond-area .respond-box .respond-select .respond-select-box[data-v-ec58218d]{justify-content:space-around}.content .right .respond-area .respond-box .respond-select .respond-select-box .respond-select-item[data-v-ec58218d]{cursor:pointer;font-family:emojifont;font-size:16px;line-height:30px}.content .right .emoji-box-mask[data-v-ec58218d]{height:100%;left:0;position:fixed;top:0;width:100%;z-index:1}.content .right .comment-box[data-v-ec58218d]{padding-left:45px;padding-top:40px}.content .right .comment-box .edit-comment[data-v-ec58218d]{background-color:#00000080;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:12}.content .right .comment-box .edit-comment .box[data-v-ec58218d]{background:#fff;border-radius:10px;padding:20px 15px;width:650px}.content .right .comment-box .edit-comment .box .text[data-v-ec58218d]{color:#000;font-size:18px;font-weight:650;margin-bottom:15px}.content .right .comment-box .edit-comment .box .input-box[data-v-ec58218d]{margin-right:0}.content .right .comment-box .edit-comment .box .input-box .bottom[data-v-ec58218d]{border-top:1px solid #ebebeb}.content .right .comment-box .edit-comment .box .input-box .bottom .emoji-edit-box-mask[data-v-ec58218d]{height:100vh;left:0;position:fixed;top:0;width:100vw}.content .right .comment-box .edit-comment .box .btn-list[data-v-ec58218d]{justify-content:flex-end;padding:15px 0}.content .right .comment-box .edit-comment .box .btn-list .btn[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:43px;color:#333;cursor:pointer;font-size:14px;height:28px;line-height:28px;margin-left:20px;text-align:center;width:80px}.content .right .comment-box .edit-comment .box .btn-list .btn.send[data-v-ec58218d]{background-color:#fddf6d;border:1px solid #fddf6d}.content .right .comment-box .comment-title[data-v-ec58218d]{color:#000;font-size:16px;font-weight:650;line-height:20px;margin-bottom:16px}.content .right .comment-box .comment-title .value[data-v-ec58218d]{color:#555;font-weight:400;margin-left:5px}.content .right .comment-box .post-comment[data-v-ec58218d]{background-color:#fff;border:1px solid #d7d7d7;border-radius:6px;margin-bottom:30px;overflow:hidden;position:relative;transition:all 5s;width:749px}.content .right .comment-box .post-comment.post-comment-focus .post-input[data-v-ec58218d] .el-textarea__inner{max-height:80vh;min-height:200px!important;padding-bottom:52px}.content .right .comment-box .post-comment.post-comment-focus .post-input[data-v-ec58218d] .el-input__count{display:block;left:10px}.content .right .comment-box .post-comment.post-comment-focus .post-ok[data-v-ec58218d]{bottom:10px;height:32px;right:10px}.content .right .comment-box .post-comment.post-comment-focus .post-comment-input[data-v-ec58218d]{width:749px}.content .right .comment-box .post-comment .post-comment-input[data-v-ec58218d]{width:690px}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]{background-color:transparent;font-size:14px;height:100%;outline:none;outline-color:#62b1ff;resize:none;scrollbar-width:none;transition:all .5s;-ms-overflow-style:none;border:none}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::-moz-placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-ec58218d]::-webkit-scrollbar{width:0!important}.content .right .comment-box .post-comment .post-input[data-v-ec58218d] .el-textarea__inner{border:none;box-shadow:none;min-height:60px!important;padding:10px;resize:none;transition:all .5s}.content .right .comment-box .post-comment .post-input[data-v-ec58218d] .el-input__count{display:none}.content .right .comment-box .post-comment .post-ok[data-v-ec58218d]{background-color:#62b1ff;border-radius:6px;bottom:0;color:#fff;cursor:pointer;font-size:14px;height:62px;position:absolute;right:0;transition:all .5s;width:60px}.content .right .comment-box .input-box[data-v-ec58218d]{background-color:#f6f6f6;border-radius:10px;display:flex;flex-direction:column;justify-content:space-between;margin-right:30px;padding-top:11px;position:relative}.content .right .comment-box .input-box .top[data-v-ec58218d]{padding:0 14px;position:relative}.content .right .comment-box .input-box .top .input-placeholder[data-v-ec58218d]{color:#7f7f7f;font-size:14px;left:14px;pointer-events:none;position:absolute;top:0}.content .right .comment-box .input-box .top .avatar[data-v-ec58218d]{border-radius:50%;display:block;height:24px;margin-right:10px;width:24px}.content .right .comment-box .input-box .top .input-textarea[data-v-ec58218d]{background-color:transparent;border:none;font-size:14px;min-height:80px;outline:none;padding-bottom:11px}.content .right .comment-box .input-box .top .input-textarea[data-v-ec58218d] *{background:transparent!important;border:none!important;border-radius:0!important;color:#000!important;font-size:14px!important;height:auto!important;margin:0!important;outline:none!important;padding:0!important;width:auto!important}.content .right .comment-box .input-box .top .input-textarea img[data-v-ec58218d]{display:none!important}.content .right .comment-box .input-box .picture-box[data-v-ec58218d]{border-bottom:1px dotted hsla(0,0%,84%,.502);padding-bottom:10px;padding-left:14px}.content .right .comment-box .input-box .picture-box .picture[data-v-ec58218d]{position:relative;width:-moz-fit-content;width:fit-content}.content .right .comment-box .input-box .picture-box .picture .img[data-v-ec58218d]{border-radius:5px;display:block;height:60px}.content .right .comment-box .input-box .picture-box .picture .close[data-v-ec58218d]{cursor:pointer;height:17px;position:absolute;right:0;top:0;transform:translate(50%,-50%);width:17px}.content .right .comment-box .input-box .bottom[data-v-ec58218d]{height:52px;justify-content:space-between;padding:0 14px}.content .right .comment-box .input-box .bottom .operate .item[data-v-ec58218d]{display:inline-flex;margin-right:20px;position:relative;z-index:1}.content .right .comment-box .input-box .bottom .operate .item.pitch .emoji-box[data-v-ec58218d]{display:flex}.content .right .comment-box .input-box .bottom .operate .item.pitch[data-v-ec58218d]:after{background-color:#fff;border-radius:5px;content:"";height:28px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px;z-index:-1}.content .right .comment-box .input-box .bottom .operate .item .icon[data-v-ec58218d]{cursor:pointer;height:16px;width:16px}.content .right .comment-box .input-box .bottom .operate .item .emoji-box[data-v-ec58218d]{background-color:#fff;border:1px solid #ebebeb;border-radius:8px;display:none;filter:drop-shadow(0 0 11px rgba(0,0,0,.1));flex-wrap:wrap;font-size:22px;left:-14px;padding:8px;position:absolute;top:45px;width:581px;z-index:1}.content .right .comment-box .input-box .bottom .operate .item .emoji-box[data-v-ec58218d]:after{border-bottom:8px solid #fff;border-left:8px solid transparent;border-right:8px solid transparent;content:"";height:0;left:15px;position:absolute;top:-8px;width:0}.content .right .comment-box .input-box .bottom .operate .item .emoji-box .emoji-icon[data-v-ec58218d]{cursor:pointer;margin:5px}.content .right .comment-box .input-box .bottom .operate .item .file[data-v-ec58218d]{background:transparent;border:none;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.content .right .comment-box .input-box .bottom .operate .item .file[data-v-ec58218d]:after{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.content .right .comment-box .input-box .bottom .operate .item:hover .file-hint[data-v-ec58218d]{display:inline-block}.content .right .comment-box .input-box .bottom .operate .item .file-hint[data-v-ec58218d]{background-color:#333;border-radius:137px;color:#fff;display:none;font-size:13px;font-weight:400;height:22px;line-height:22px;margin-left:9px;padding:0 8px;text-align:center}.content .right .comment-box .input-box .bottom .btn[data-v-ec58218d]{background-color:#fddf6d;border-radius:43px;color:#333;cursor:pointer;font-size:14px;height:28px;line-height:28px;text-align:center;width:80px}.content .right .comment-box .input-box .cross[data-v-ec58218d]{cursor:pointer;height:12px;position:absolute;right:8px;top:5px;width:12px;z-index:2}.content .right .comment-box .empty-box[data-v-ec58218d]{padding:80px 0 110px}.content .right .comment-box .comment-list[data-v-ec58218d]{margin-bottom:78px;padding-top:17px}.content .right .comment-box .comment-list .comment-item[data-v-ec58218d]{padding-right:30px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-avatar[data-v-ec58218d]{margin-top:10px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-header[data-v-ec58218d]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .comment-avatar[data-v-ec58218d]{border-radius:50%;cursor:pointer;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header[data-v-ec58218d]{display:flex;justify-content:space-between;margin-bottom:10px;padding-right:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left[data-v-ec58218d]{font-size:13px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-avatar[data-v-ec58218d]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-username[data-v-ec58218d]{color:#555;cursor:pointer;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-time[data-v-ec58218d]{color:#aaa;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-identity[data-v-ec58218d]{background-color:#f0f2f5;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;font-size:12px;height:20px;margin-right:10px;padding:0 3px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box[data-v-ec58218d]{position:relative}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box:hover .operate-box[data-v-ec58218d]{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .menu-icon[data-v-ec58218d]{cursor:pointer;height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box[data-v-ec58218d]{background-color:#f6f6f6;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;cursor:pointer;display:none;flex-direction:column;font-size:12px;position:absolute;right:0;top:24px;width:60px;z-index:2}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box .item[data-v-ec58218d]{height:24px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box .item[data-v-ec58218d]:not(:last-of-type){border-bottom:1px solid #d7d7d7}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .operate-box[data-v-ec58218d]:after{content:"";height:36px;position:absolute;right:0;top:-14px;width:58px;z-index:-1}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .comment-icon[data-v-ec58218d]{cursor:pointer;height:13px;margin-left:30px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box[data-v-ec58218d]{color:#aaa;cursor:pointer;font-size:12px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-icon[data-v-ec58218d]{height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-quantity[data-v-ec58218d]{margin-left:6px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text[data-v-ec58218d]{color:#333;cursor:pointer;font-size:14px;line-height:22px;margin-bottom:10px;min-height:22px;word-break:break-all}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text .comments-reply[data-v-ec58218d]{color:#92a1bf;display:inline}.content .right .comment-box .comment-list .comment-item .comment-content .comments-img[data-v-ec58218d]{border-radius:5px;margin-bottom:13px;width:75px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-masking[data-v-ec58218d]{height:100vh;left:0;min-width:1200px;position:fixed;top:0;width:100vw;z-index:10}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box[data-v-ec58218d]{margin-top:13px;position:relative;transition:all .3s;z-index:11}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show[data-v-ec58218d]{height:184px;margin-bottom:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show[data-v-ec58218d]:after{background-color:#d7d7d7;content:"";display:block;height:20px;left:21px;position:absolute;top:-2px;transform:rotate(45deg);width:20px;z-index:-1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d]{background-color:#fff;border:1px solid #d7d7d7}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d] textarea{height:140px;min-height:40px!important;overflow:auto;padding:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input[data-v-ec58218d] .el-input__count{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box.comments-input-box-show .comments-input .operate-bottom[data-v-ec58218d]{display:flex}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d]{border-color:#fff;border-radius:8px;flex:1;position:relative;transition:all .3s;z-index:1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] textarea{border:none;border-radius:8px;font-size:14px;height:0;min-height:0!important;outline:none;overflow:hidden;padding:0 10px;resize:none;transition:all .2s;width:100%}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-textarea__inner{box-shadow:none}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-input__count{bottom:-32px;display:none;left:10px;width:-moz-fit-content;width:fit-content}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-ec58218d] .el-textarea{display:block}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom[data-v-ec58218d]{display:none;justify-content:flex-end;transition:all .3s}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom .comments-btn[data-v-ec58218d]{background-color:#62b1ff;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;height:32px;margin-bottom:10px;margin-right:10px;width:60px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .operate-bottom .comments-btn.comments-btn-cancel[data-v-ec58218d]{background-color:#fff;border:1px solid #ccc;color:#797979}.content .right .comment-box .comment-list .comment-item .child-comments .comment-avatar[data-v-ec58218d]{margin-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-header[data-v-ec58218d]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-item[data-v-ec58218d]{padding-right:0}.content .right .comment-box .comment-list .comment-item .comments-also[data-v-ec58218d]{border-top:1px dotted #d7d7d7;color:#62b1ff;cursor:pointer;font-size:13px;height:46px;line-height:22px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comments-also .also-icon[data-v-ec58218d]{height:10px;margin-left:8px;width:10px}.content .right .comment-box .comment-list .input-box[data-v-ec58218d]{margin-bottom:10px}.content .right .comment-box .comment-end[data-v-ec58218d]{color:#d7d7d7;font-size:12px;margin-bottom:118px;padding-right:30px;text-align:center}.content .floor-area[data-v-ec58218d]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px #00000031;height:70px;left:0;min-width:1200px;position:fixed;width:100vw;z-index:11}.content .floor-area .floor-content[data-v-ec58218d]{display:flex;height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.content .floor-area .floor-content .floor-left[data-v-ec58218d]{border-radius:150px;height:40px;padding:0 20px}.content .floor-area .floor-content .floor-left .item[data-v-ec58218d]{color:#aaa;cursor:pointer;font-size:13px}.content .floor-area .floor-content .floor-left .item[data-v-ec58218d]:not(:last-of-type){margin-right:40px}.content .floor-area .floor-content .floor-left .item .icon[data-v-ec58218d]{margin-right:5px}.content .floor-area .floor-content .floor-left .item .icon.h16[data-v-ec58218d]{height:16px}.content .floor-area .floor-content .floor-left .item .icon.h15[data-v-ec58218d]{height:15px}.content .floor-area .floor-content .floor-left .item .icon.h8[data-v-ec58218d]{height:8px}.content .floor-area .floor-content .floor-left .item.operate-item[data-v-ec58218d]{display:flex;justify-content:center;position:relative}.content .floor-area .floor-content .floor-middle[data-v-ec58218d]{background-color:#f6f6f6;border-radius:150px;height:40px;min-width:247px}.content .floor-area .floor-content .floor-middle .coin-content[data-v-ec58218d]{height:100%;padding:0 20px 0 16px}.content .floor-area .floor-content .floor-middle .coin-content .coin-icon[data-v-ec58218d]{height:24px;margin-right:5px;margin-top:-2px;width:20px}.content .floor-area .floor-content .floor-middle .coin-content .coin-text[data-v-ec58218d]{color:#333;font-size:13px}.content .floor-area .floor-content .floor-middle .coin-content .coin-text .coin-value[data-v-ec58218d]{font-family:Arial-Black,Arial Black,sans-serif;font-weight:900;margin:0 5px}.content .floor-area .floor-content .floor-middle .coin-btn[data-v-ec58218d]{background-color:#72db86;border-radius:150px;color:#fff;cursor:pointer;font-size:13px;height:40px;width:80px}.content .floor-area .floor-content .floor-centre[data-v-ec58218d]{color:#aaa;cursor:pointer}.content .floor-area .floor-content .floor-centre .icon[data-v-ec58218d]{height:16px;margin-right:5px}.content .floor-area .floor-content .floor-right[data-v-ec58218d]{color:#7f7f7f;cursor:pointer;font-size:13px}.content .floor-area .floor-content .floor-right .arrows-icon[data-v-ec58218d]{height:12px;margin:0 10px;width:12px}.content .floor-area .floor-content .floor-right .QR-code-ball[data-v-ec58218d]{background-color:#f6f6f6;border-radius:20px;cursor:pointer;height:40px;width:40px}.transmit-box[data-v-ec58218d]{border-radius:10px;cursor:auto;justify-content:space-between;padding:40px 35px 42px;width:628px}.transmit-box .cross-icon[data-v-ec58218d]{cursor:pointer;height:22px;padding:6px;position:absolute;right:6px;top:6px;width:22px}.transmit-box .transmit-title[data-v-ec58218d]{color:#000;font-size:16px;font-weight:650;line-height:24px;margin-bottom:24px}.transmit-box .transmit-content[data-v-ec58218d]{border:1px solid #f2f2f2;border-radius:16px}.transmit-box .transmit-web .transmit-content[data-v-ec58218d]{font-size:14px;line-height:24px;margin-bottom:32px;padding:14px 16px;width:300px}.transmit-box .transmit-web .transmit-content .transmit-headline[data-v-ec58218d]{color:#333}.transmit-box .transmit-web .transmit-content .transmit-url[data-v-ec58218d]{color:#aaa;word-wrap:break-word}.transmit-box .transmit-web .transmit-web-btn[data-v-ec58218d]{background-color:#72db86;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;height:38px;width:120px}.transmit-box .transmit-mini .transmit-content[data-v-ec58218d]{color:#555;flex-direction:column;font-size:13px;padding:22px 44px}.transmit-box .transmit-mini .transmit-content .transmit-mini-img[data-v-ec58218d]{height:90px;margin-bottom:21px;width:90px}.transmit-box .transmit-mini .transmit-content .give-sweep[data-v-ec58218d]{height:12px;margin-right:8px;width:12px}.examine-code[data-v-ec58218d]{height:113px;width:113px}.pop-masking[data-v-ec58218d]{background:#0009;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:10}.pop-masking[data-v-ec58218d] *{box-sizing:content-box}.pop-masking .slit-pop-box[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:20px;box-shadow:0 0 15px #00000036;display:flex;padding:60px 50px 48px 38px;width:433px}.pop-masking .slit-pop-box .slit-left-icon[data-v-ec58218d]{height:60px;width:50px}.pop-masking .slit-pop-box .slit-box[data-v-ec58218d]{flex:1;margin-left:15px}.pop-masking .slit-pop-box .slit-box .slit-head[data-v-ec58218d]{align-items:center;display:flex;height:54px;justify-content:space-between}.pop-masking .slit-pop-box .slit-box .slit-head .slit-head-title[data-v-ec58218d]{color:#333;font-size:20px;font-weight:650}.pop-masking .slit-pop-box .slit-box .slit-head .in-all[data-v-ec58218d]{color:#7f7f7f;font-size:13px;font-weight:400}.pop-masking .slit-pop-box .slit-box .slit-head .in-all>span[data-v-ec58218d]{color:#000;font-weight:650}.pop-masking .slit-pop-box .slit-box .coin-quantity[data-v-ec58218d]{align-items:center;display:flex;margin-bottom:27px;margin-top:20px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item[data-v-ec58218d]{background-color:#f0f2f5;border:1px solid #d7d7d7;border-radius:5px;color:#000;cursor:pointer;font-size:20px;font-weight:650;height:46px;line-height:46px;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:78px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item>span[data-v-ec58218d]{color:#555;font-size:14px;font-weight:400}.pop-masking .slit-pop-box .slit-box .coin-quantity-item[data-v-ec58218d]:not(:last-of-type){margin-right:16px}.pop-masking .slit-pop-box .slit-box .coin-quantity-item.coin-pitch[data-v-ec58218d]{background-color:#333;border-color:#333;color:#fff}.pop-masking .slit-pop-box .slit-box .coin-quantity-item.coin-pitch>span[data-v-ec58218d]{color:#fff}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]{border:1px solid #d7d7d7;border-radius:8px;height:38px;outline:none;overflow:hidden;padding-left:8px;width:360px}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]::-webkit-inner-spin-button,.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d]::-webkit-outer-spin-button{-webkit-appearance:none}.pop-masking .slit-pop-box .slit-box .slit-input[type=number][data-v-ec58218d]{-moz-appearance:textfield}.pop-masking .slit-pop-box .slit-box .slit-input[data-v-ec58218d] .el-input__wrapper{box-shadow:none}.pop-masking .slit-pop-box .slit-box .message-box[data-v-ec58218d]{display:flex;flex-direction:column}.pop-masking .slit-pop-box .slit-box .message-box .message-hint[data-v-ec58218d]{color:#000;font-size:14px;margin-bottom:12px;margin-top:29px}.pop-masking .slit-pop-box .slit-box .operation[data-v-ec58218d]{display:flex;justify-content:flex-end;margin-top:48px}.pop-masking .slit-pop-box .slit-box .operation .operation-item[data-v-ec58218d]{border:1px solid #797979;border-radius:45px;color:#000;cursor:pointer;font-size:16px;height:41px;margin-left:16px;width:120px}.pop-masking .slit-pop-box .slit-box .operation .operation-item.greenBj[data-v-ec58218d]{color:#fff}.no-jituobi-pop-box[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:11px;box-shadow:0 0 15px #00000036;display:flex;flex-direction:column;padding-bottom:55px;position:relative;width:520px}.no-jituobi-pop-box .no-jituobi-close[data-v-ec58218d]{cursor:pointer;height:16px;position:absolute;right:10px;top:10px;width:16px}.no-jituobi-pop-box .no-jituobi-head[data-v-ec58218d]{color:#333;font-size:15px;margin:38px auto 44px}.no-jituobi-pop-box .no-jituobi-head .bi-icon[data-v-ec58218d]{height:60px;width:50px}.no-jituobi-pop-box .strategy-btn[data-v-ec58218d]{border-radius:100px;color:#fff;cursor:pointer;font-size:16px;height:43px;margin:0 auto;width:198px}.no-jituobi-pop-box .strategy-btn .strategy-icon[data-v-ec58218d]{height:16px;margin-left:8px;width:16px}.greenBj[data-v-ec58218d]{background-color:#72db86;border-color:#72db86!important}.respond-pop-mask[data-v-ec58218d]{align-items:center;background:#0009;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:10}.respond-pop-mask .respond-pop[data-v-ec58218d]{background-color:#fff;border:1px solid #e5e5e5;border-radius:20px;box-shadow:0 0 15px #00000036;-webkit-box-shadow:0 0 15px rgba(0,0,0,.21);height:500px;width:600px}.respond-pop-mask .respond-pop .respond-pop-title[data-v-ec58218d]{align-items:center;border-bottom:1px dotted hsla(0,0%,84%,.5);color:#555;display:flex;height:50px;justify-content:center;position:relative}.respond-pop-mask .respond-pop .respond-pop-title .respond-pop-amount[data-v-ec58218d]{color:#000;font-weight:650;margin:0 8px}.respond-pop-mask .respond-pop .respond-pop-title .respond-title-icon[data-v-ec58218d]{cursor:pointer;position:absolute;right:20px;width:20px}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]{height:450px;overflow:auto}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar-track{border-radius:10px}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar-thumb{background-color:#0003;border-radius:10px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.respond-pop-mask .respond-pop .respond-list[data-v-ec58218d]::-webkit-scrollbar{width:6px}.respond-pop-mask .respond-pop .respond-list .respond-item[data-v-ec58218d]{display:flex;padding:20px 0 0 20px}.respond-pop-mask .respond-pop .respond-list .respond-item:not(:last-of-type) .respond-content[data-v-ec58218d]{border-bottom:1px dotted hsla(0,0%,84%,.5)}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-code[data-v-ec58218d]{align-items:center;background-color:#f6f6f6;border-radius:10px;box-sizing:border-box;cursor:pointer;display:flex;font-family:emojifont;font-size:25px;height:60px;justify-content:center;margin-right:20px;width:60px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-code.pitch[data-v-ec58218d]{background-color:#f6f6bd;border:1px solid #ccd003}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content[data-v-ec58218d]{padding-bottom:10px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .respond-total[data-v-ec58218d]{color:#7f7f7f;font-size:14px;margin-bottom:10px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item[data-v-ec58218d]{align-items:center;color:#555;cursor:pointer;display:inline-flex;font-size:14px;margin-bottom:10px;margin-right:20px}.respond-pop-mask .respond-pop .respond-list .respond-item .respond-content .user-item .user-avatar[data-v-ec58218d]{border-radius:50%;height:26px;margin-right:10px;width:26px}.respond-pop-mask .respond-pop .respond-pop-no[data-v-ec58218d]{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;width:100%}.respond-pop-mask .respond-pop .respond-pop-no .respond-title-icon[data-v-ec58218d]{cursor:pointer;position:absolute;right:20px;top:20px;width:20px}.respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-icon[data-v-ec58218d]{margin-bottom:15px;width:90px}.respond-pop-mask .respond-pop .respond-pop-no .respond-pop-no-text[data-v-ec58218d]{color:#7f7f7f;font-size:13px;line-height:22px}.respond-list-box[data-v-ec58218d]{background:#f6f6f6;border:1px solid #ebebeb;border-radius:10px;position:absolute;top:84px;z-index:1}.respond-list-box[data-v-ec58218d]:after{background:#f6f6f6;border:1px solid #e4e7ed;border-bottom-color:transparent!important;border-right-color:transparent!important;border-top-left-radius:2px;content:"";height:10px;left:50%;position:absolute;top:-6px;transform:translate(-50%) rotate(45deg);width:10px;z-index:3000}.respond-list-mask[data-v-ec58218d]{height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:1}.detail-image-mask[data-v-ec58218d]{background-color:#fffc;border:none;height:100%;left:0;max-height:none;max-width:none;position:fixed;top:0;width:100%;z-index:100}.detail-image-mask .detail-image[data-v-ec58218d]{background-color:#111;border-radius:8px;height:80vh;width:80vw}.detail-image-mask .detail-image .detail-img[data-v-ec58218d]{max-height:100%;max-width:100%}'; + +export { _id__vue_vue_type_style_index_0_scoped_ec58218d_lang as _ }; +//# sourceMappingURL=_id_-styles-1.mjs-CMsZWcIl.mjs.map diff --git a/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs.map b/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs.map new file mode 100644 index 0000000..546133d --- /dev/null +++ b/.output/server/chunks/build/_id_-styles-1.mjs-CMsZWcIl.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_id_-styles-1.mjs-CMsZWcIl.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs b/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs new file mode 100644 index 0000000..6213c6f --- /dev/null +++ b/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs @@ -0,0 +1,4 @@ +const _id__vue_vue_type_style_index_1_lang = '.respond-list-box{width:470px}.respond-list-box .respond-list-title{color:#333;font-size:14px;line-height:22px;padding-bottom:25px;padding-left:20px;padding-top:16px}.respond-list-box .respond-list{display:flex;display:grid;flex-wrap:wrap;grid-template-columns:repeat(10,1fr)}.respond-list-box .respond-list .respond-item{font-family:emojifont;font-size:20px;margin-bottom:20px;text-align:center}.respond-list-box .respond-list .respond-item .respond-item-key{cursor:pointer;font-family:emojifont;position:relative;z-index:1}.respond-list-box .respond-list .respond-item .respond-item-key:hover:after{background-color:#eee;border-radius:4px;content:"";display:block;height:35px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:35px;z-index:-1}'; + +export { _id__vue_vue_type_style_index_1_lang as _ }; +//# sourceMappingURL=_id_-styles-2.mjs-BmPHWmTu.mjs.map diff --git a/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs.map b/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs.map new file mode 100644 index 0000000..875c78f --- /dev/null +++ b/.output/server/chunks/build/_id_-styles-2.mjs-BmPHWmTu.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_id_-styles-2.mjs-BmPHWmTu.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-styles.CV67lafr.mjs b/.output/server/chunks/build/_id_-styles.CV67lafr.mjs new file mode 100644 index 0000000..a9312cf --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.CV67lafr.mjs @@ -0,0 +1,7 @@ +import { _ as _id__vue_vue_type_style_index_0_scoped_ec58218d_lang } from './_id_-styles-1.mjs-CMsZWcIl.mjs'; +import { _ as _id__vue_vue_type_style_index_1_lang } from './_id_-styles-2.mjs-BmPHWmTu.mjs'; + +const _id_Styles_CV67lafr = [_id__vue_vue_type_style_index_0_scoped_ec58218d_lang, _id__vue_vue_type_style_index_1_lang, _id__vue_vue_type_style_index_0_scoped_ec58218d_lang, _id__vue_vue_type_style_index_1_lang]; + +export { _id_Styles_CV67lafr as default }; +//# sourceMappingURL=_id_-styles.CV67lafr.mjs.map diff --git a/.output/server/chunks/build/_id_-styles.CV67lafr.mjs.map b/.output/server/chunks/build/_id_-styles.CV67lafr.mjs.map new file mode 100644 index 0000000..b7d402c --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.CV67lafr.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_id_-styles.CV67lafr.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/_id_-styles.CV67lafr.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2","style_3"],"mappings":";;;AAIA,4BAAe,CAACA,oDAAO,EAAEC,oCAAO,EAAEC,oDAAO,EAAEC,oCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs b/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs new file mode 100644 index 0000000..81fa3d2 --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs @@ -0,0 +1,6 @@ +import { _ as _id__vue_vue_type_style_index_1_lang } from './_id_-styles-2.mjs-BmPHWmTu.mjs'; + +const _id_Styles_D9A6nlym = [_id__vue_vue_type_style_index_1_lang]; + +export { _id_Styles_D9A6nlym as default }; +//# sourceMappingURL=_id_-styles.D9A6nlym.mjs.map diff --git a/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs.map b/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs.map new file mode 100644 index 0000000..5b148ac --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.D9A6nlym.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_id_-styles.D9A6nlym.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/_id_-styles.D9A6nlym.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,4BAAe,CAACA,oCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs b/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs new file mode 100644 index 0000000..c817727 --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs @@ -0,0 +1,6 @@ +import { _ as _id__vue_vue_type_style_index_0_scoped_ec58218d_lang } from './_id_-styles-1.mjs-CMsZWcIl.mjs'; + +const _id_Styles_tAcQtA1l = [_id__vue_vue_type_style_index_0_scoped_ec58218d_lang]; + +export { _id_Styles_tAcQtA1l as default }; +//# sourceMappingURL=_id_-styles.tAcQtA1l.mjs.map diff --git a/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs.map b/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs.map new file mode 100644 index 0000000..889c9b3 --- /dev/null +++ b/.output/server/chunks/build/_id_-styles.tAcQtA1l.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_id_-styles.tAcQtA1l.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/_id_-styles.tAcQtA1l.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,4BAAe,CAACA,oDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/_id_-xO0bwZ3v.mjs b/.output/server/chunks/build/_id_-xO0bwZ3v.mjs index c4724eb..e27ef15 100644 --- a/.output/server/chunks/build/_id_-xO0bwZ3v.mjs +++ b/.output/server/chunks/build/_id_-xO0bwZ3v.mjs @@ -1636,8 +1636,4 @@ _sfc_main.setup = (props, ctx) => { const _id_ = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ec58218d"]]); export { _id_ as default }; -<<<<<<<< HEAD:.output/server/chunks/build/_id_-xO0bwZ3v.mjs //# sourceMappingURL=_id_-xO0bwZ3v.mjs.map -======== -//# sourceMappingURL=_id_-3cYcmCI2.mjs.map ->>>>>>>> parent of 1d74a9f (no message):.output/server/chunks/build/_id_-3cYcmCI2.mjs diff --git a/.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map b/.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map index d0c0217..84bee8f 100644 --- a/.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map +++ b/.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map @@ -1,5 +1 @@ -<<<<<<<< HEAD:.output/server/chunks/build/_id_-xO0bwZ3v.mjs.map -{"version":3,"file":"_id_-xO0bwZ3v.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dropdown/src/dropdown.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/client-only.js","../../../../components/Report.vue","../../../../components/RankingBox.vue","../../../../assets/img/send-messages-icon.png","../../../../assets/img/homepage-icon.png","../../../../assets/img/set-icon.png","../../../../assets/img/original-icon.png","../../../../assets/img/close-icon.png","../../../../assets/img/smiling-face.png","../../../../assets/img/picture-icon.png","../../../../assets/img/title.png","../../../../assets/img/menu-icon-gray.svg","../../../../assets/img/comment-icon-gray.svg","../../../../assets/img/like-icon-colours.png","../../../../assets/img/like-icon-gray.png","../../../../assets/img/arrow-circular-gray.png","../../../../assets/img/arrows-icon.png","../../../../assets/img/QR-code-icon.svg","../../../../assets/img/eye-icon-black.svg","../../../../assets/img/like-icon.png","../../../../assets/img/comment-icon.png","../../../../assets/img/strategy-icon.svg","../../../../assets/img/cross-grey.png","../../../../assets/img/no-discussion.png","../../../../pages/details/[id].vue"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} -======== -{"version":3,"file":"_id_-3cYcmCI2.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dropdown/src/dropdown.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/client-only.js","../../../../components/Report.vue","../../../../components/RankingBox.vue","../../../../assets/img/send-messages-icon.png","../../../../assets/img/homepage-icon.png","../../../../assets/img/set-icon.png","../../../../assets/img/original-icon.png","../../../../assets/img/close-icon.png","../../../../assets/img/smiling-face.png","../../../../assets/img/picture-icon.png","../../../../assets/img/title.png","../../../../assets/img/menu-icon-gray.svg","../../../../assets/img/comment-icon-gray.svg","../../../../assets/img/like-icon-colours.png","../../../../assets/img/like-icon-gray.png","../../../../assets/img/arrow-circular-gray.png","../../../../assets/img/arrows-icon.png","../../../../assets/img/QR-code-icon.svg","../../../../assets/img/eye-icon-black.svg","../../../../assets/img/like-icon.png","../../../../assets/img/comment-icon.png","../../../../assets/img/strategy-icon.svg","../../../../assets/img/cross-grey.png","../../../../assets/img/no-discussion.png","../../../../pages/details/[id].vue"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} ->>>>>>>> parent of 1d74a9f (no message):.output/server/chunks/build/_id_-3cYcmCI2.mjs.map +{"version":3,"file":"_id_-xO0bwZ3v.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/collection/src/collection.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dropdown/src/dropdown.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/src/directive.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popover/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/client-only.js","../../../../components/Report.vue","../../../../components/RankingBox.vue","../../../../assets/img/send-messages-icon.png","../../../../assets/img/homepage-icon.png","../../../../assets/img/set-icon.png","../../../../assets/img/original-icon.png","../../../../assets/img/close-icon.png","../../../../assets/img/smiling-face.png","../../../../assets/img/picture-icon.png","../../../../assets/img/title.png","../../../../assets/img/menu-icon-gray.svg","../../../../assets/img/comment-icon-gray.svg","../../../../assets/img/like-icon-colours.png","../../../../assets/img/like-icon-gray.png","../../../../assets/img/arrow-circular-gray.png","../../../../assets/img/arrows-icon.png","../../../../assets/img/QR-code-icon.svg","../../../../assets/img/eye-icon-black.svg","../../../../assets/img/like-icon.png","../../../../assets/img/comment-icon.png","../../../../assets/img/strategy-icon.svg","../../../../assets/img/cross-grey.png","../../../../assets/img/no-discussion.png","../../../../pages/details/[id].vue"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs b/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs new file mode 100644 index 0000000..b494108 --- /dev/null +++ b/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs @@ -0,0 +1,10 @@ +const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; + +export { _export_sfc as _ }; +//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map diff --git a/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map b/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map new file mode 100644 index 0000000..dbc5da0 --- /dev/null +++ b/.output/server/chunks/build/_plugin-vue_export-helper-1tPrXgE0.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_plugin-vue_export-helper-1tPrXgE0.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/app-styles.WPwOYKA8.mjs b/.output/server/chunks/build/app-styles.WPwOYKA8.mjs new file mode 100644 index 0000000..a4ff147 --- /dev/null +++ b/.output/server/chunks/build/app-styles.WPwOYKA8.mjs @@ -0,0 +1,6 @@ +import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-1.mjs-Cbw30BTB.mjs'; + +const appStyles_WPwOYKA8 = [app_vue_vue_type_style_index_0_lang, app_vue_vue_type_style_index_0_lang]; + +export { appStyles_WPwOYKA8 as default }; +//# sourceMappingURL=app-styles.WPwOYKA8.mjs.map diff --git a/.output/server/chunks/build/app-styles.WPwOYKA8.mjs.map b/.output/server/chunks/build/app-styles.WPwOYKA8.mjs.map new file mode 100644 index 0000000..4088128 --- /dev/null +++ b/.output/server/chunks/build/app-styles.WPwOYKA8.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"app-styles.WPwOYKA8.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/app-styles.WPwOYKA8.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,2BAAe,CAACA,mCAAO,EAAEC,mCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/client.manifest.mjs b/.output/server/chunks/build/client.manifest.mjs new file mode 100644 index 0000000..6518ef2 --- /dev/null +++ b/.output/server/chunks/build/client.manifest.mjs @@ -0,0 +1,380 @@ +const client_manifest = { + "_BE7hzMIt.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "BE7hzMIt.js", + "name": "el-button", + "imports": [ + "_BnReMd0k.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js" + ], + "css": [ + "el-button.CsYDH6uT.css" + ] + }, + "el-button.CsYDH6uT.css": { + "file": "el-button.CsYDH6uT.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "_BfpgDEj5.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "BfpgDEj5.js", + "name": "masonry", + "isDynamicEntry": true, + "imports": [ + "_BnReMd0k.js" + ] + }, + "_BnReMd0k.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "BnReMd0k.js", + "name": "index", + "imports": [ + "_y8qSb7BL.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js" + ], + "css": [ + "index.C-c7eKmS.css" + ] + }, + "index.C-c7eKmS.css": { + "file": "index.C-c7eKmS.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "_DlAUqK2U.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "DlAUqK2U.js", + "name": "_plugin-vue_export-helper" + }, + "_el-button.CsYDH6uT.css": { + "resourceType": "style", + "prefetch": true, + "preload": true, + "file": "el-button.CsYDH6uT.css", + "src": "_el-button.CsYDH6uT.css" + }, + "_ijtA8km9.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "ijtA8km9.js", + "name": "top-head", + "imports": [ + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_DlAUqK2U.js", + "_BnReMd0k.js" + ], + "css": [ + "top-head.Dl-EBmIP.css" + ], + "assets": [ + "empty-icon.uRjiKTvo.svg", + "delete-icon.CnXBlQyp.svg", + "logo-icon.C2xYDAoO.png" + ] + }, + "top-head.Dl-EBmIP.css": { + "file": "top-head.Dl-EBmIP.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "empty-icon.uRjiKTvo.svg": { + "file": "empty-icon.uRjiKTvo.svg", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml" + }, + "delete-icon.CnXBlQyp.svg": { + "file": "delete-icon.CnXBlQyp.svg", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml" + }, + "logo-icon.C2xYDAoO.png": { + "file": "logo-icon.C2xYDAoO.png", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png" + }, + "_index.C-c7eKmS.css": { + "resourceType": "style", + "prefetch": true, + "preload": true, + "file": "index.C-c7eKmS.css", + "src": "_index.C-c7eKmS.css" + }, + "_top-head.Dl-EBmIP.css": { + "resourceType": "style", + "prefetch": true, + "preload": true, + "file": "top-head.Dl-EBmIP.css", + "src": "_top-head.Dl-EBmIP.css" + }, + "_y8qSb7BL.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "y8qSb7BL.js", + "name": "vue.-sixQ7xP", + "imports": [ + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js" + ] + }, + "assets/img/calendar-icon.svg": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml", + "file": "calendar-icon.BGBc-vDw.svg", + "src": "assets/img/calendar-icon.svg" + }, + "assets/img/delete-icon.svg": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml", + "file": "delete-icon.CnXBlQyp.svg", + "src": "assets/img/delete-icon.svg" + }, + "assets/img/empty-icon.svg": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml", + "file": "empty-icon.uRjiKTvo.svg", + "src": "assets/img/empty-icon.svg" + }, + "assets/img/logo-icon.png": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png", + "file": "logo-icon.C2xYDAoO.png", + "src": "assets/img/logo-icon.png" + }, + "assets/img/no-discussion.png": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png", + "file": "no-discussion.CTT65aaO.png", + "src": "assets/img/no-discussion.png" + }, + "assets/img/title.png": { + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png", + "file": "title.Bxzjc9QQ.png", + "src": "assets/img/title.png" + }, + "middleware/errorHandler.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "DwPp8tHk.js", + "name": "errorHandler", + "src": "middleware/errorHandler.js", + "isDynamicEntry": true + }, + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "C5qEE_Gi.js", + "name": "error-404", + "src": "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue", + "isDynamicEntry": true, + "imports": [ + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_DlAUqK2U.js", + "_y8qSb7BL.js" + ], + "css": [] + }, + "error-404.Dt7vALhq.css": { + "file": "error-404.Dt7vALhq.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "DeU7cwoU.js", + "name": "error-500", + "src": "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue", + "isDynamicEntry": true, + "imports": [ + "_DlAUqK2U.js", + "_y8qSb7BL.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js" + ], + "css": [] + }, + "error-500.CCfoYDQF.css": { + "file": "error-500.CCfoYDQF.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "C0eoOjsX.js", + "name": "entry", + "src": "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "isEntry": true, + "dynamicImports": [ + "middleware/errorHandler.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue" + ], + "css": [ + "entry.BMFnGFc3.css" + ], + "_globalCSS": true + }, + "entry.BMFnGFc3.css": { + "file": "entry.BMFnGFc3.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "pages/details/[id].vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "BP-Bk3NB.js", + "name": "_id_", + "src": "pages/details/[id].vue", + "isDynamicEntry": true, + "imports": [ + "_BnReMd0k.js", + "_ijtA8km9.js", + "_BE7hzMIt.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_DlAUqK2U.js", + "_y8qSb7BL.js" + ], + "css": [], + "assets": [ + "title.Bxzjc9QQ.png", + "no-discussion.CTT65aaO.png" + ] + }, + "_id_.DdwZQJ0A.css": { + "file": "_id_.DdwZQJ0A.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "title.Bxzjc9QQ.png": { + "file": "title.Bxzjc9QQ.png", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png" + }, + "no-discussion.CTT65aaO.png": { + "file": "no-discussion.CTT65aaO.png", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/png" + }, + "pages/index.html/index.vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "CGGlHf3T.js", + "name": "index", + "src": "pages/index.html/index.vue", + "isDynamicEntry": true, + "imports": [ + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_BnReMd0k.js", + "_ijtA8km9.js", + "_DlAUqK2U.js", + "_y8qSb7BL.js" + ], + "dynamicImports": [ + "_BfpgDEj5.js" + ], + "css": [] + }, + "index.D8KBBzil.css": { + "file": "index.D8KBBzil.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "pages/index.vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "Bur7c29Y.js", + "name": "index", + "src": "pages/index.vue", + "isDynamicEntry": true, + "imports": [ + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_y8qSb7BL.js" + ] + }, + "pages/publish/index.vue": { + "resourceType": "script", + "module": true, + "prefetch": true, + "preload": true, + "file": "B4CZI61d.js", + "name": "index", + "src": "pages/publish/index.vue", + "isDynamicEntry": true, + "imports": [ + "_BnReMd0k.js", + "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js", + "_BE7hzMIt.js", + "_y8qSb7BL.js", + "_DlAUqK2U.js" + ], + "css": [], + "assets": [ + "calendar-icon.BGBc-vDw.svg" + ] + }, + "index.DBngYpzy.css": { + "file": "index.DBngYpzy.css", + "resourceType": "style", + "prefetch": true, + "preload": true + }, + "calendar-icon.BGBc-vDw.svg": { + "file": "calendar-icon.BGBc-vDw.svg", + "resourceType": "image", + "prefetch": true, + "mimeType": "image/svg+xml" + } +}; + +export { client_manifest as default }; +//# sourceMappingURL=client.manifest.mjs.map diff --git a/.output/server/chunks/build/client.manifest.mjs.map b/.output/server/chunks/build/client.manifest.mjs.map new file mode 100644 index 0000000..576b61c --- /dev/null +++ b/.output/server/chunks/build/client.manifest.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"client.manifest.mjs","sources":["../../../../.nuxt/dist/server/client.manifest.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAA,wBAAe;AACf,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,SAAS,EAAE;AACf,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM;AACN;AACA,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM;AACN;AACA,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,SAAS,EAAE;AACf,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM;AACN;AACA,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE;AACZ,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,UAAU;AACtB,IAAI,SAAS,EAAE;AACf,MAAM,qEAAqE;AAC3E,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM;AACN,KAAK;AACL,IAAI,QAAQ,EAAE;AACd,MAAM,yBAAyB;AAC/B,MAAM,0BAA0B;AAChC,MAAM;AACN;AACA,GAAG;AACH,EAAE,uBAAuB,EAAE;AAC3B,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,IAAI,MAAM,EAAE,yBAAyB;AACrC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,0BAA0B,EAAE;AAC9B,IAAI,MAAM,EAAE,0BAA0B;AACtC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,qBAAqB,EAAE;AACzB,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,uBAAuB;AACnC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,cAAc,EAAE;AAClB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM;AACN;AACA,GAAG;AACH,EAAE,8BAA8B,EAAE;AAClC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,eAAe;AAC/B,IAAI,MAAM,EAAE,4BAA4B;AACxC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,4BAA4B,EAAE;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,eAAe;AAC/B,IAAI,MAAM,EAAE,0BAA0B;AACtC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,2BAA2B,EAAE;AAC/B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,eAAe;AAC/B,IAAI,MAAM,EAAE,yBAAyB;AACrC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,0BAA0B,EAAE;AAC9B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,8BAA8B,EAAE;AAClC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,MAAM,EAAE,4BAA4B;AACxC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,sBAAsB,EAAE;AAC1B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE,WAAW;AAC3B,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,4BAA4B,EAAE;AAChC,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,gBAAgB,EAAE;AACtB,GAAG;AACH,EAAE,qFAAqF,EAAE;AACzF,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,KAAK,EAAE,qFAAqF;AAChG,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,qEAAqE;AAC3E,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,qFAAqF,EAAE;AACzF,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,KAAK,EAAE,qFAAqF;AAChG,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,MAAM,EAAE,wBAAwB;AACpC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,qEAAqE,EAAE;AACzE,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,KAAK,EAAE,qEAAqE;AAChF,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,gBAAgB,EAAE;AACtB,MAAM,4BAA4B;AAClC,MAAM,qFAAqF;AAC3F,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,MAAM;AACN,KAAK;AACL,IAAI,YAAY,EAAE;AAClB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,wBAAwB,EAAE;AAC5B,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,KAAK,EAAE,wBAAwB;AACnC,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,qEAAqE;AAC3E,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,QAAQ,EAAE;AACd,MAAM,oBAAoB;AAC1B,MAAM;AACN;AACA,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,MAAM,EAAE,mBAAmB;AAC/B,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,4BAA4B,EAAE;AAChC,IAAI,MAAM,EAAE,4BAA4B;AACxC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB,GAAG;AACH,EAAE,4BAA4B,EAAE;AAChC,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,KAAK,EAAE,4BAA4B;AACvC,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,qEAAqE;AAC3E,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,gBAAgB,EAAE;AACtB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE;AACX,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,iBAAiB,EAAE;AACrB,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,qEAAqE;AAC3E,MAAM;AACN;AACA,GAAG;AACH,EAAE,yBAAyB,EAAE;AAC7B,IAAI,cAAc,EAAE,QAAQ;AAC5B,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,KAAK,EAAE,yBAAyB;AACpC,IAAI,gBAAgB,EAAE,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,MAAM,cAAc;AACpB,MAAM,qEAAqE;AAC3E,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB,MAAM;AACN,KAAK;AACL,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,QAAQ,EAAE;AACd,MAAM;AACN;AACA,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,MAAM,EAAE,oBAAoB;AAChC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,SAAS,EAAE;AACf,GAAG;AACH,EAAE,4BAA4B,EAAE;AAChC,IAAI,MAAM,EAAE,4BAA4B;AACxC,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,UAAU,EAAE;AAChB;AACA;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/config-provider-CA7emI64.mjs b/.output/server/chunks/build/config-provider-CA7emI64.mjs new file mode 100644 index 0000000..28c777e --- /dev/null +++ b/.output/server/chunks/build/config-provider-CA7emI64.mjs @@ -0,0 +1,1734 @@ +import { defineComponent, watch, renderSlot, getCurrentInstance, computed, unref, provide, ref, inject, warn, createElementBlock, openBlock, createElementVNode, isRef, mergeProps, createBlock, Teleport as Teleport$1 } from 'vue'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import { J as namespaceContextKey, K as zIndexContextKey, s as shared_cjs_prodExports, e as useNamespace, y as isUndefined$1, v as isNumber, I as isStringNumber, o as isElement } from './server.mjs'; +import axios from 'axios'; +import QS from 'qs'; + +var freeGlobal = typeof global == "object" && global && global.Object === Object && global; +var freeSelf = typeof self == "object" && self && self.Object === Object && self; +var root = freeGlobal || freeSelf || Function("return this")(); +var Symbol$1 = root.Symbol; +var objectProto$4 = Object.prototype; +var hasOwnProperty$3 = objectProto$4.hasOwnProperty; +var nativeObjectToString$1 = objectProto$4.toString; +var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0; +function getRawTag(value) { + var isOwn = hasOwnProperty$3.call(value, symToStringTag$1), tag = value[symToStringTag$1]; + try { + value[symToStringTag$1] = void 0; + var unmasked = true; + } catch (e) { + } + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; +} +var objectProto$3 = Object.prototype; +var nativeObjectToString = objectProto$3.toString; +function objectToString(value) { + return nativeObjectToString.call(value); +} +var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; +var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0; +function baseGetTag(value) { + if (value == null) { + return value === void 0 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); +} +function isObjectLike(value) { + return value != null && typeof value == "object"; +} +var symbolTag = "[object Symbol]"; +function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; +} +function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} +var isArray = Array.isArray; +var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0; +function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result = value + ""; + return result == "0" && 1 / value == -Infinity ? "-0" : result; +} +function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); +} +var asyncTag = "[object AsyncFunction]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; +function isFunction(value) { + if (!isObject(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} +var coreJsData = root["__core-js_shared__"]; +var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; +}(); +function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; +} +var funcProto$1 = Function.prototype; +var funcToString$1 = funcProto$1.toString; +function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; +} +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +var reIsHostCtor = /^\[object .+?Constructor\]$/; +var funcProto = Function.prototype, objectProto$2 = Object.prototype; +var funcToString = funcProto.toString; +var hasOwnProperty$2 = objectProto$2.hasOwnProperty; +var reIsNative = RegExp( + "^" + funcToString.call(hasOwnProperty$2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" +); +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} +function getValue(object, key) { + return object == null ? void 0 : object[key]; +} +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : void 0; +} +function eq(value, other) { + return value === other || value !== value && other !== other; +} +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); +} +var nativeCreate = getNative(Object, "create"); +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} +var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; +var objectProto$1 = Object.prototype; +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$1 ? void 0 : result; + } + return hasOwnProperty$1.call(data, key) ? data[key] : void 0; +} +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); +} +var HASH_UNDEFINED = "__lodash_hash_undefined__"; +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; + return this; +} +function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} +Hash.prototype.clear = hashClear; +Hash.prototype["delete"] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} +var arrayProto = Array.prototype; +var splice = arrayProto.splice; +function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} +function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? void 0 : data[index][1]; +} +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} +function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} +function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} +ListCache.prototype.clear = listCacheClear; +ListCache.prototype["delete"] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; +var Map = getNative(root, "Map"); +function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map || ListCache)(), + "string": new Hash() + }; +} +function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; +} +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; +} +function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; +} +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} +function mapCacheSet(key, value) { + var data = getMapData(this, key), size = data.size; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} +function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype["delete"] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; +var FUNC_ERROR_TEXT = "Expected a function"; +function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; +} +memoize.Cache = MapCache; +var MAX_MEMOIZE_SIZE = 500; +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result.cache; + return result; +} +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; +var reEscapeChar = /\\(\\)?/g; +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46) { + result.push(""); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result; +}); +function toString(value) { + return value == null ? "" : baseToString(value); +} +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} +function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result = value + ""; + return result == "0" && 1 / value == -Infinity ? "-0" : result; +} +function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return index && index == length ? object : void 0; +} +function get$1(object, path, defaultValue) { + var result = object == null ? void 0 : baseGet(object, path); + return result === void 0 ? defaultValue : result; +} +function fromPairs(pairs) { + var index = -1, length = pairs == null ? 0 : pairs.length, result = {}; + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; +} +function isNil(value) { + return value == null; +} +function isUndefined(value) { + return value === void 0; +} +const removeUndefinedProps = (props) => { + const filteredProps = /* @__PURE__ */ Object.create(null); + for (const key in props) { + const value = props[key]; + if (value !== void 0) { + filteredProps[key] = value; + } + } + return filteredProps; +}; +const setupForUseMeta = (metaFactory, renderChild) => (props, ctx) => { + useHead(() => metaFactory({ ...removeUndefinedProps(props), ...ctx.attrs }, ctx)); + return () => { + var _a, _b; + return renderChild ? (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a) : null; + }; +}; +const globalProps = { + accesskey: String, + autocapitalize: String, + autofocus: { + type: Boolean, + default: void 0 + }, + class: [String, Object, Array], + contenteditable: { + type: Boolean, + default: void 0 + }, + contextmenu: String, + dir: String, + draggable: { + type: Boolean, + default: void 0 + }, + enterkeyhint: String, + exportparts: String, + hidden: { + type: Boolean, + default: void 0 + }, + id: String, + inputmode: String, + is: String, + itemid: String, + itemprop: String, + itemref: String, + itemscope: String, + itemtype: String, + lang: String, + nonce: String, + part: String, + slot: String, + spellcheck: { + type: Boolean, + default: void 0 + }, + style: [String, Object, Array], + tabindex: String, + title: String, + translate: String +}; +defineComponent({ + name: "NoScript", + inheritAttrs: false, + props: { + ...globalProps, + title: String, + body: Boolean, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((props, { slots }) => { + var _a; + const noscript = { ...props }; + const slotVnodes = (_a = slots.default) == null ? void 0 : _a.call(slots); + const textContent = slotVnodes ? slotVnodes.filter(({ children }) => children).map(({ children }) => children).join("") : ""; + if (textContent) { + noscript.children = textContent; + } + return { + noscript: [noscript] + }; + }) +}); +defineComponent({ + name: "Link", + inheritAttrs: false, + props: { + ...globalProps, + as: String, + crossorigin: String, + disabled: Boolean, + fetchpriority: String, + href: String, + hreflang: String, + imagesizes: String, + imagesrcset: String, + integrity: String, + media: String, + prefetch: { + type: Boolean, + default: void 0 + }, + referrerpolicy: String, + rel: String, + sizes: String, + title: String, + type: String, + /** @deprecated **/ + methods: String, + /** @deprecated **/ + target: String, + body: Boolean, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((link) => ({ + link: [link] + })) +}); +defineComponent({ + name: "Base", + inheritAttrs: false, + props: { + ...globalProps, + href: String, + target: String + }, + setup: setupForUseMeta((base) => ({ + base + })) +}); +const Title = defineComponent({ + name: "Title", + inheritAttrs: false, + setup: setupForUseMeta((_, { slots }) => { + var _a, _b, _c; + return { + title: ((_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children) || null + }; + }) +}); +const Meta = defineComponent({ + name: "Meta", + inheritAttrs: false, + props: { + ...globalProps, + charset: String, + content: String, + httpEquiv: String, + name: String, + body: Boolean, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((props) => { + const meta = { ...props }; + if (meta.httpEquiv) { + meta["http-equiv"] = meta.httpEquiv; + delete meta.httpEquiv; + } + return { + meta: [meta] + }; + }) +}); +defineComponent({ + name: "Style", + inheritAttrs: false, + props: { + ...globalProps, + type: String, + media: String, + nonce: String, + title: String, + /** @deprecated **/ + scoped: { + type: Boolean, + default: void 0 + }, + body: Boolean, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((props, { slots }) => { + var _a, _b, _c; + const style = { ...props }; + const textContent = (_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children; + if (textContent) { + style.children = textContent; + } + return { + style: [style] + }; + }) +}); +const Head = defineComponent({ + name: "Head", + inheritAttrs: false, + setup: (_props, ctx) => () => { + var _a, _b; + return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a); + } +}); +defineComponent({ + name: "Html", + inheritAttrs: false, + props: { + ...globalProps, + manifest: String, + version: String, + xmlns: String, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((htmlAttrs) => ({ htmlAttrs }), true) +}); +defineComponent({ + name: "Body", + inheritAttrs: false, + props: { + ...globalProps, + renderPriority: [String, Number] + }, + setup: setupForUseMeta((bodyAttrs) => ({ bodyAttrs }), true) +}); +const epPropKey = "__epPropKey"; +const definePropType = (val) => val; +const isEpProp = (val) => shared_cjs_prodExports.isObject(val) && !!val[epPropKey]; +const buildProp = (prop, key) => { + if (!shared_cjs_prodExports.isObject(prop) || isEpProp(prop)) + return prop; + const { values, required, default: defaultValue, type, validator } = prop; + const _validator = values || validator ? (val) => { + let valid = false; + let allowedValues = []; + if (values) { + allowedValues = Array.from(values); + if (shared_cjs_prodExports.hasOwn(prop, "default")) { + allowedValues.push(defaultValue); + } + valid || (valid = allowedValues.includes(val)); + } + if (validator) + valid || (valid = validator(val)); + if (!valid && allowedValues.length > 0) { + const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", "); + warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`); + } + return valid; + } : void 0; + const epProp = { + type, + required: !!required, + validator: _validator, + [epPropKey]: true + }; + if (shared_cjs_prodExports.hasOwn(prop, "default")) + epProp.default = defaultValue; + return epProp; +}; +const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [ + key, + buildProp(option, key) +])); +const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented"; +const FOCUSOUT_PREVENTED_OPTS = { + cancelable: true, + bubbles: false +}; +const ON_TRAP_FOCUS_EVT = "focusAfterTrapped"; +const ON_RELEASE_FOCUS_EVT = "focusAfterReleased"; +const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap"); +const isFocusable = (element) => { + if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) { + return true; + } + if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") { + return false; + } + switch (element.nodeName) { + case "A": { + return !!element.href && element.rel !== "ignore"; + } + case "INPUT": { + return !(element.type === "hidden" || element.type === "file"); + } + case "BUTTON": + case "SELECT": + case "TEXTAREA": { + return true; + } + default: { + return false; + } + } +}; +const focusReason = ref(); +const lastUserFocusTimestamp = ref(0); +const lastAutomatedFocusTimestamp = ref(0); +const obtainAllFocusableElements = (element) => { + const nodes = []; + const walker = (void 0).createTreeWalker(element, NodeFilter.SHOW_ELEMENT, { + acceptNode: (node) => { + const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; + if (node.disabled || node.hidden || isHiddenInput) + return NodeFilter.FILTER_SKIP; + return node.tabIndex >= 0 || node === (void 0).activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; + } + }); + while (walker.nextNode()) + nodes.push(walker.currentNode); + return nodes; +}; +const getVisibleElement = (elements, container) => { + for (const element of elements) { + if (!isHidden(element, container)) + return element; + } +}; +const isHidden = (element, container) => { + if (getComputedStyle(element).visibility === "hidden") + return true; + while (element) { + if (container && element === container) + return false; + if (getComputedStyle(element).display === "none") + return true; + element = element.parentElement; + } + return false; +}; +const getEdges = (container) => { + const focusable = obtainAllFocusableElements(container); + const first = getVisibleElement(focusable, container); + const last = getVisibleElement(focusable.reverse(), container); + return [first, last]; +}; +const isSelectable = (element) => { + return element instanceof HTMLInputElement && "select" in element; +}; +const tryFocus = (element, shouldSelect) => { + if (element && element.focus) { + const prevFocusedElement = (void 0).activeElement; + let cleanup = false; + if (isElement(element) && !isFocusable(element) && !element.getAttribute("tabindex")) { + element.setAttribute("tabindex", "-1"); + cleanup = true; + } + element.focus({ preventScroll: true }); + lastAutomatedFocusTimestamp.value = (void 0).performance.now(); + if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) { + element.select(); + } + if (isElement(element) && cleanup) { + element.removeAttribute("tabindex"); + } + } +}; +const useFocusReason = () => { + return { + focusReason, + lastUserFocusTimestamp, + lastAutomatedFocusTimestamp + }; +}; +const createFocusOutPreventedEvent = (detail) => { + return new CustomEvent(FOCUSOUT_PREVENTED, { + ...FOCUSOUT_PREVENTED_OPTS, + detail + }); +}; +var _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; +const EVENT_CODE = { + tab: "Tab", + enter: "Enter", + space: "Space", + left: "ArrowLeft", + up: "ArrowUp", + right: "ArrowRight", + down: "ArrowDown", + esc: "Escape", + numpadEnter: "NumpadEnter", + pageUp: "PageUp", + pageDown: "PageDown", + home: "Home", + end: "End" +}; +const _sfc_main$2 = defineComponent({ + name: "ElFocusTrap", + inheritAttrs: false, + props: { + loop: Boolean, + trapped: Boolean, + focusTrapEl: Object, + focusStartEl: { + type: [Object, String], + default: "first" + } + }, + emits: [ + ON_TRAP_FOCUS_EVT, + ON_RELEASE_FOCUS_EVT, + "focusin", + "focusout", + "focusout-prevented", + "release-requested" + ], + setup(props, { emit }) { + const forwardRef = ref(); + let lastFocusAfterTrapped; + const { focusReason: focusReason2 } = useFocusReason(); + const onKeydown = (e) => { + if (!props.loop && !props.trapped) + return; + const { code, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e; + const { loop } = props; + const isTabbing = code === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey; + const currentFocusingEl = (void 0).activeElement; + if (isTabbing && currentFocusingEl) { + const container = currentTarget; + const [first, last] = getEdges(container); + const isTabbable = first && last; + if (!isTabbable) { + if (currentFocusingEl === container) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ + focusReason: focusReason2.value + }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + } + } + } else { + if (!shiftKey && currentFocusingEl === last) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ + focusReason: focusReason2.value + }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) + tryFocus(first, true); + } + } else if (shiftKey && [first, container].includes(currentFocusingEl)) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ + focusReason: focusReason2.value + }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) + tryFocus(last, true); + } + } + } + } + }; + provide(FOCUS_TRAP_INJECTION_KEY, { + focusTrapRef: forwardRef, + onKeydown + }); + watch(() => props.focusTrapEl, (focusTrapEl) => { + if (focusTrapEl) { + forwardRef.value = focusTrapEl; + } + }, { immediate: true }); + watch([forwardRef], ([forwardRef2], [oldForwardRef]) => { + if (forwardRef2) { + forwardRef2.addEventListener("keydown", onKeydown); + forwardRef2.addEventListener("focusin", onFocusIn); + forwardRef2.addEventListener("focusout", onFocusOut); + } + if (oldForwardRef) { + oldForwardRef.removeEventListener("keydown", onKeydown); + oldForwardRef.removeEventListener("focusin", onFocusIn); + oldForwardRef.removeEventListener("focusout", onFocusOut); + } + }); + const onFocusIn = (e) => { + const trapContainer = unref(forwardRef); + if (!trapContainer) + return; + const target = e.target; + const relatedTarget = e.relatedTarget; + const isFocusedInTrap = target && trapContainer.contains(target); + if (!props.trapped) { + relatedTarget && trapContainer.contains(relatedTarget); + } + if (isFocusedInTrap) + emit("focusin", e); + if (props.trapped) { + if (isFocusedInTrap) { + lastFocusAfterTrapped = target; + } else { + tryFocus(lastFocusAfterTrapped, true); + } + } + }; + const onFocusOut = (e) => { + const trapContainer = unref(forwardRef); + if (!trapContainer) + return; + if (props.trapped) { + const relatedTarget = e.relatedTarget; + if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) { + setTimeout(() => { + if (props.trapped) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ + focusReason: focusReason2.value + }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + tryFocus(lastFocusAfterTrapped, true); + } + } + }, 0); + } + } else { + const target = e.target; + const isFocusedInTrap = target && trapContainer.contains(target); + if (!isFocusedInTrap) + emit("focusout", e); + } + }; + return { + onKeydown + }; + } +}); +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return renderSlot(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown }); +} +var ElFocusTrap = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render], ["__file", "focus-trap.vue"]]); +const teleportProps = buildProps({ + to: { + type: definePropType([String, Object]), + required: true + }, + disabled: Boolean +}); +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + __name: "teleport", + props: teleportProps, + setup(__props) { + return (_ctx, _cache) => { + return _ctx.disabled ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createBlock(Teleport$1, { + key: 1, + to: _ctx.to + }, [ + renderSlot(_ctx.$slots, "default") + ], 8, ["to"])); + }; + } +}); +var Teleport = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "teleport.vue"]]); +const withInstall = (main, extra) => { + main.install = (app) => { + for (const comp of [main, ...Object.values(extra != null ? extra : {})]) { + app.component(comp.name, comp); + } + }; + if (extra) { + for (const [key, comp] of Object.entries(extra)) { + main[key] = comp; + } + } + return main; +}; +const withInstallFunction = (fn, name) => { + fn.install = (app) => { + fn._context = app._context; + app.config.globalProperties[name] = fn; + }; + return fn; +}; +const withInstallDirective = (directive, name) => { + directive.install = (app) => { + app.directive(name, directive); + }; + return directive; +}; +const withNoopInstall = (component) => { + component.install = shared_cjs_prodExports.NOOP; + return component; +}; +const ElTeleport = withInstall(Teleport); +const iconProps = buildProps({ + size: { + type: definePropType([Number, String]) + }, + color: { + type: String + } +}); +const keysOf = (arr) => Object.keys(arr); +const hasClass = (el, cls) => { + if (!el || !cls) + return false; + if (cls.includes(" ")) + throw new Error("className should not contain space."); + return el.classList.contains(cls); +}; +const getStyle = (element, styleName) => { + return ""; +}; +function addUnit(value, defaultUnit = "px") { + if (!value) + return ""; + if (isNumber(value) || isStringNumber(value)) { + return `${value}${defaultUnit}`; + } else if (shared_cjs_prodExports.isString(value)) { + return value; + } +} +const __default__ = defineComponent({ + name: "ElIcon", + inheritAttrs: false +}); +const _sfc_main = /* @__PURE__ */ defineComponent({ + ...__default__, + props: iconProps, + setup(__props) { + const props = __props; + const ns = useNamespace("icon"); + const style = computed(() => { + const { size, color } = props; + if (!size && !color) + return {}; + return { + fontSize: isUndefined$1(size) ? void 0 : addUnit(size), + "--color": color + }; + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("i", mergeProps({ + class: unref(ns).b(), + style: unref(style) + }, _ctx.$attrs), [ + renderSlot(_ctx.$slots, "default") + ], 16); + }; + } +}); +var Icon = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "icon.vue"]]); +const ElIcon = withInstall(Icon); +/*! Element Plus Icons Vue v2.3.1 */ +var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "ArrowDown", + __name: "arrow-down", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z" + }) + ])); + } +}); +var arrow_down_default = arrow_down_vue_vue_type_script_setup_true_lang_default; +var arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "ArrowLeft", + __name: "arrow-left", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z" + }) + ])); + } +}); +var arrow_left_default = arrow_left_vue_vue_type_script_setup_true_lang_default; +var arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "ArrowRight", + __name: "arrow-right", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z" + }) + ])); + } +}); +var arrow_right_default = arrow_right_vue_vue_type_script_setup_true_lang_default; +var arrow_up_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "ArrowUp", + __name: "arrow-up", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0" + }) + ])); + } +}); +var arrow_up_default = arrow_up_vue_vue_type_script_setup_true_lang_default; +var calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "Calendar", + __name: "calendar", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64" + }) + ])); + } +}); +var calendar_default = calendar_vue_vue_type_script_setup_true_lang_default; +var circle_check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "CircleCheck", + __name: "circle-check", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896" + }), + createElementVNode("path", { + fill: "currentColor", + d: "M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z" + }) + ])); + } +}); +var circle_check_default = circle_check_vue_vue_type_script_setup_true_lang_default; +var circle_close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "CircleClose", + __name: "circle-close", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z" + }), + createElementVNode("path", { + fill: "currentColor", + d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896" + }) + ])); + } +}); +var circle_close_default = circle_close_vue_vue_type_script_setup_true_lang_default; +var clock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "Clock", + __name: "clock", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896" + }), + createElementVNode("path", { + fill: "currentColor", + d: "M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32" + }), + createElementVNode("path", { + fill: "currentColor", + d: "M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32" + }) + ])); + } +}); +var clock_default = clock_vue_vue_type_script_setup_true_lang_default; +var close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "Close", + __name: "close", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z" + }) + ])); + } +}); +var close_default = close_vue_vue_type_script_setup_true_lang_default; +var d_arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "DArrowLeft", + __name: "d-arrow-left", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z" + }) + ])); + } +}); +var d_arrow_left_default = d_arrow_left_vue_vue_type_script_setup_true_lang_default; +var d_arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "DArrowRight", + __name: "d-arrow-right", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z" + }) + ])); + } +}); +var d_arrow_right_default = d_arrow_right_vue_vue_type_script_setup_true_lang_default; +var hide_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "Hide", + __name: "hide", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z" + }), + createElementVNode("path", { + fill: "currentColor", + d: "M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z" + }) + ])); + } +}); +var hide_default = hide_vue_vue_type_script_setup_true_lang_default; +var loading_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "Loading", + __name: "loading", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z" + }) + ])); + } +}); +var loading_default = loading_vue_vue_type_script_setup_true_lang_default; +var view_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({ + name: "View", + __name: "view", + setup(__props) { + return (_ctx, _cache) => (openBlock(), createElementBlock("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + createElementVNode("path", { + fill: "currentColor", + d: "M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160" + }) + ])); + } +}); +var view_default = view_vue_vue_type_script_setup_true_lang_default; +const iconPropType = definePropType([ + String, + Object, + Function +]); +const CloseComponents = { + Close: close_default +}; +const ValidateComponentsMap = { + validating: loading_default, + success: circle_check_default, + error: circle_close_default +}; +var English = { + name: "en", + el: { + breadcrumb: { + label: "Breadcrumb" + }, + colorpicker: { + confirm: "OK", + clear: "Clear", + defaultLabel: "color picker", + description: "current color is {color}. press enter to select a new color.", + alphaLabel: "pick alpha value" + }, + datepicker: { + now: "Now", + today: "Today", + cancel: "Cancel", + clear: "Clear", + confirm: "OK", + dateTablePrompt: "Use the arrow keys and enter to select the day of the month", + monthTablePrompt: "Use the arrow keys and enter to select the month", + yearTablePrompt: "Use the arrow keys and enter to select the year", + selectedDate: "Selected date", + selectDate: "Select date", + selectTime: "Select time", + startDate: "Start Date", + startTime: "Start Time", + endDate: "End Date", + endTime: "End Time", + prevYear: "Previous Year", + nextYear: "Next Year", + prevMonth: "Previous Month", + nextMonth: "Next Month", + year: "", + month1: "January", + month2: "February", + month3: "March", + month4: "April", + month5: "May", + month6: "June", + month7: "July", + month8: "August", + month9: "September", + month10: "October", + month11: "November", + month12: "December", + week: "week", + weeks: { + sun: "Sun", + mon: "Mon", + tue: "Tue", + wed: "Wed", + thu: "Thu", + fri: "Fri", + sat: "Sat" + }, + weeksFull: { + sun: "Sunday", + mon: "Monday", + tue: "Tuesday", + wed: "Wednesday", + thu: "Thursday", + fri: "Friday", + sat: "Saturday" + }, + months: { + jan: "Jan", + feb: "Feb", + mar: "Mar", + apr: "Apr", + may: "May", + jun: "Jun", + jul: "Jul", + aug: "Aug", + sep: "Sep", + oct: "Oct", + nov: "Nov", + dec: "Dec" + } + }, + inputNumber: { + decrease: "decrease number", + increase: "increase number" + }, + select: { + loading: "Loading", + noMatch: "No matching data", + noData: "No data", + placeholder: "Select" + }, + mention: { + loading: "Loading" + }, + dropdown: { + toggleDropdown: "Toggle Dropdown" + }, + cascader: { + noMatch: "No matching data", + loading: "Loading", + placeholder: "Select", + noData: "No data" + }, + pagination: { + goto: "Go to", + pagesize: "/page", + total: "Total {total}", + pageClassifier: "", + page: "Page", + prev: "Go to previous page", + next: "Go to next page", + currentPage: "page {pager}", + prevPages: "Previous {pager} pages", + nextPages: "Next {pager} pages", + deprecationWarning: "Deprecated usages detected, please refer to the el-pagination documentation for more details" + }, + dialog: { + close: "Close this dialog" + }, + drawer: { + close: "Close this dialog" + }, + messagebox: { + title: "Message", + confirm: "OK", + cancel: "Cancel", + error: "Illegal input", + close: "Close this dialog" + }, + upload: { + deleteTip: "press delete to remove", + delete: "Delete", + preview: "Preview", + continue: "Continue" + }, + slider: { + defaultLabel: "slider between {min} and {max}", + defaultRangeStartLabel: "pick start value", + defaultRangeEndLabel: "pick end value" + }, + table: { + emptyText: "No Data", + confirmFilter: "Confirm", + resetFilter: "Reset", + clearFilter: "All", + sumText: "Sum" + }, + tour: { + next: "Next", + previous: "Previous", + finish: "Finish" + }, + tree: { + emptyText: "No Data" + }, + transfer: { + noMatch: "No matching data", + noData: "No data", + titles: ["List 1", "List 2"], + filterPlaceholder: "Enter keyword", + noCheckedFormat: "{total} items", + hasCheckedFormat: "{checked}/{total} checked" + }, + image: { + error: "FAILED" + }, + pageHeader: { + title: "Back" + }, + popconfirm: { + confirmButtonText: "Yes", + cancelButtonText: "No" + }, + carousel: { + leftArrow: "Carousel arrow left", + rightArrow: "Carousel arrow right", + indicator: "Carousel switch to index {index}" + } + } +}; +const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale)); +const translate = (path, option, locale) => get$1(locale, path, path).replace(/\{(\w+)\}/g, (_, key) => { + var _a; + return `${(_a = option == null ? void 0 : option[key]) != null ? _a : `{${key}}`}`; +}); +const buildLocaleContext = (locale) => { + const lang = computed(() => unref(locale).name); + const localeRef = isRef(locale) ? locale : ref(locale); + return { + lang, + locale: localeRef, + t: buildTranslator(locale) + }; +}; +const localeContextKey = Symbol("localeContextKey"); +const useLocale = (localeOverrides) => { + const locale = inject(localeContextKey, ref()); + return buildLocaleContext(computed(() => locale.value || English)); +}; +const UPDATE_MODEL_EVENT = "update:modelValue"; +const CHANGE_EVENT = "change"; +const INPUT_EVENT = "input"; +const configProviderContextKey = Symbol(); +const componentSizes = ["", "default", "small", "large"]; +const useSizeProp = buildProp({ + type: String, + values: componentSizes, + required: false +}); +const SIZE_INJECTION_KEY = Symbol("size"); +const useGlobalSize = () => { + const injectedSize = inject(SIZE_INJECTION_KEY, {}); + return computed(() => { + return unref(injectedSize.size) || ""; + }); +}; +const emptyValuesContextKey = Symbol("emptyValuesContextKey"); +const DEFAULT_EMPTY_VALUES = ["", void 0, null]; +const useEmptyValuesProps = buildProps({ + emptyValues: Array, + valueOnClear: { + type: [String, Number, Boolean, Function], + default: void 0, + validator: (val) => shared_cjs_prodExports.isFunction(val) ? !val() : !val + } +}); +const useEmptyValues = (props, defaultValue) => { + const config = getCurrentInstance() ? inject(emptyValuesContextKey, ref({})) : ref({}); + const emptyValues = computed(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES); + const valueOnClear = computed(() => { + if (shared_cjs_prodExports.isFunction(props.valueOnClear)) { + return props.valueOnClear(); + } else if (props.valueOnClear !== void 0) { + return props.valueOnClear; + } else if (shared_cjs_prodExports.isFunction(config.value.valueOnClear)) { + return config.value.valueOnClear(); + } else if (config.value.valueOnClear !== void 0) { + return config.value.valueOnClear; + } + return defaultValue; + }); + const isEmptyValue = (value) => { + return emptyValues.value.includes(value); + }; + if (!emptyValues.value.includes(valueOnClear.value)) ; + return { + emptyValues, + valueOnClear, + isEmptyValue + }; +}; +const globalConfig = ref(); +function useGlobalConfig(key, defaultValue = void 0) { + const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig; + if (key) { + return computed(() => { + var _a, _b; + return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue; + }); + } else { + return config; + } +} +const provideGlobalConfig = (config, app, global2 = false) => { + var _a; + const inSetup = !!getCurrentInstance(); + const oldConfig = inSetup ? useGlobalConfig() : void 0; + const provideFn = (_a = void 0) != null ? _a : inSetup ? provide : void 0; + if (!provideFn) { + return; + } + const context = computed(() => { + const cfg = unref(config); + if (!(oldConfig == null ? void 0 : oldConfig.value)) + return cfg; + return mergeConfig(oldConfig.value, cfg); + }); + provideFn(configProviderContextKey, context); + provideFn(localeContextKey, computed(() => context.value.locale)); + provideFn(namespaceContextKey, computed(() => context.value.namespace)); + provideFn(zIndexContextKey, computed(() => context.value.zIndex)); + provideFn(SIZE_INJECTION_KEY, { + size: computed(() => context.value.size || "") + }); + provideFn(emptyValuesContextKey, computed(() => ({ + emptyValues: context.value.emptyValues, + valueOnClear: context.value.valueOnClear + }))); + if (global2 || !globalConfig.value) { + globalConfig.value = context.value; + } + return context; +}; +const mergeConfig = (a, b) => { + const keys = [.../* @__PURE__ */ new Set([...keysOf(a), ...keysOf(b)])]; + const obj = {}; + for (const key of keys) { + obj[key] = b[key] !== void 0 ? b[key] : a[key]; + } + return obj; +}; +const useDeprecated = ({ from, replacement, scope, version, ref: ref2, type = "API" }, condition) => { + watch(() => unref(condition), (val) => { + }, { + immediate: true + }); +}; +const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAgKADAAQAAAABAAAAgAAAAABIjgR3AAAGo0lEQVR4Ae2dTW8bVRSGEydOihDEUSW2ICQ2wBJERSLRDaJlwc8obBI5ShQkVl4SN5aVOEIgfgb9QioqCxcWXSLY0ILKjkWkuBVK4yQO5ygzMHbjyXzcO3PPue9Iluf73vu8z1zPxJnxxAQGEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABPQQmbTVlZWXl9cFg8GalUnk2MzPzYGNjo2erLI37rdfrtZOTk3epbbPE8Ld2u/2HjXYaF2B5efkNqvC3VNkPIhXuT05Ofj03N/d5o9F4FpmP0RECxOdCr9e7TuFfo0Uz4WKavkevT7e3t38P55l4NypAEP7PVLGLYyrXpd7g42az+XTMcq9nr6+vv9Tv928RhMUxIHbpQLpEvcHDMctTz66k3iJmg+DIHxc+b7lIDbzNDY3ZjZeLgvBvM6MYABepF/gmZnnqRcZ6AP7Mp8o9SliD+9QTXEVPcEorEv5CEn5TU1OvtVqtx0nWPW8dYz0An/CdV1hk+QJ6glMaacPnrQ4PD9+KsMw1akwAPttPWRPvJcgSPjPOwHpsNMYE4Es9KqU/tqSzF3grQdbwCeNBwPpsoinnGhOAr/P5Ui9l+by6dxLkCH+CzrO+MnnuZEwATpKv8+mty+MpB28kyBM+Me3Oz89/kZJt7OrGrgLCUtbW1l48Ojq6QdOXw3lJ36kH+Ym2vdrpdJ4k3UbSegGbm1Tn6B/JEjWB2VSr1Ssmj34u2LgAvFNIwBSGBxfD5xpaEYB3DAmYwungavhcO2sC8M4hwX8MnOr2OZtwsCoAF+KzBC4f+YUJ4KsEEsLnbKz3AKFpPvUEUsIvVAAuzAcJJIVfuADaJZAWfikCaJVAYvilCaBNAqnhlyqAFgkkh1+6ANIlkB6+EwJIlUBD+M4IIE0CLeE7JYAUCTSF75wArkugLXwnBXBVAo3hOyuAaxJoDd9pAVyRQHP4zgtQtgTawxchQFkS+BC+GAGKlsCX8EUJUJQEPoUvTgDbEvgWvkgBbEngY/hiBTAtga/hixbAlASzs7PHdDuas/+3z+20ORT2X8G2GpHzZsv7Qb0SPZljpA0qnnIiXgAOJejCM92QOhJqoklbN2omKtzwSioEYCZFSaApfOamRoAiJNAWvjoBbEqgMXyVAtiQQGv4agUwKYHm8FULYEIC7eEzI6MPieIdOjjkOtHd39/Ptb2DPIaqpLZxef68GyXEvYDmB1epFMBU+KEImiVQJ4Dp8LVLoEoAW+FrlkCNALbD1yqBCgGKCl+jBOIvA/nrYDpL/57CSf34VdqGvw4OvxIO8z33nR7Y/D79aMMtLvvclR1fQbQAfOTTD098R4xTf5/PZ/b8qyXT09Mf0fY/ZshpgX644c7S0tLLGbZ1ZhOxHwF5uv3Rv/AF+8r0/wTSLxFFCmAy/PBQ9FUCcQLYCN9nCUQJYDN8XyUQI0AR4fsogQgBigzfNwmcF6CM8H2SwGkBygzfFwmcFcCF8H2QwEkBXApfuwTOCeBi+JolcEoAl8PXKoEzAkgIX6METgggKXxtEpQugMTwNUlQqgCSw9ciQWkCaAhfgwSlCKApfOkSFC6AxvAlS1CoAJrDlypBYQL4EL5ECQoRwKfwpUlgXQAfw5ckgVUBfA5figTWBED4oQL5HmFn+74DKwIg/P/DD8cCJs7dfGJcAIQfRv78u4sSGL03sNFoXKAbNe9Q0zPdqFmtVq80m82nz6PTMWdzc/Mfuh/xE2pN1htSbzJjkzSMCtDr9a5T5RYzVFDFg5eTtJsF55tSad3UEjDbvb29L5OUk3QdYx8B9Xq9RoX+Ta+ZpIUH63kTfpRLjqecHxwfH7/S6XSeRPeXddxYD0Bnq+9QJRB+wiRy9ASz9GwCZm1kMCbAYDBI+9nk5ZEfTS2rBBlYR4sdGjcmAHVLvw7tOX7C+/BDPFkkoJPlNKzDos58NybAzs7On/TolHtnljI8E+EP85hIKcHdVqv1eGQXmSeNCcA1qFQq1+htN6Y2XT4D5gbHrOPloogE3RgAu9TTfhazPPUiowK02+2HdDJ4iV4/jNTkgHqHdq1W+xDhj5CJTDIbZkSztuh1EFnEo3cp/Pfo7P/RyPxck8YuA0drsbq6+ipV+G2av09H/QMEP0oofpofPhWc7b9AB88vW1tbf8VvgaUgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIgAAIg8C9yNG0zv/zA5QAAAABJRU5ErkJggg=="; +axios.defaults.baseURL = "https://interviewexperience.gter.net"; +axios.defaults.emulateJSON = true; +axios.defaults.withCredentials = true; +axios.interceptors.request.use( + //响应拦截 + async (config) => { + config["headers"]["authorization"] = false; + return config; + }, + (error) => { + return Promise.error(error); + } +); +axios.interceptors.response.use((response) => { + if (response.status === 200) return Promise.resolve(response); + else return Promise.reject(response); +}, (error) => { + if (error.response.status) { + switch (error.response.status) { + } + return Promise.reject(error.response); + } +}); +const get = (url, params) => { + return new Promise((resolve, reject) => { + axios.get(url, { params }).then((res) => { + resolve(res.data); + }).catch((err) => reject(err.data)); + }); +}; +const post = (url, params) => { + return new Promise((resolve, reject) => { + axios.post(url, QS.stringify(params)).then((res) => { + let data = res.data; + if (data.code == 401 && false) ; + resolve(data); + }).catch((err) => { + if (err.data.code == 401) { + goLogin(); + resolve(err.data); + } else reject(err.data); + }); + }); +}; +const goLogin = () => { + if (typeof ajax_login === "function") ajax_login(); +}; +const Http = { + get, + post +}; +const getListHttp = (params) => { + return Http.post("/api/lists", params); +}; +const operateLikeHttp = (query) => { + return Http.post("/api/operate/like", query); +}; +const relatedlistHttp = (query) => { + return Http.post("/api/details/relatedlist", query); +}; +const detailsHttp = (query) => { + return Http.post("/api/details", query); +}; +const detailsCommentListHttp = (query) => { + return Http.post("/api/comment/lists", query); +}; +const publishSchoolSearchHttp = (query) => { + return Http.get("/api/publish/schoolSearch", query); +}; +const publishProfessionSearchHttp = (query) => { + return Http.get("/api/publish/professionSearch", query); +}; +const changeAnonymousHttp = (query) => { + return Http.post("/api/publish/changeAnonymous", query); +}; +const MyUserPublishHttp = (query) => { + return Http.post("/api/user/publish", query); +}; +const MyUserDeleteCollectHttp = (query) => { + return Http.post("/api/user/deleteCollect", query); +}; +const MyUserCollectHttp = (query) => { + return Http.post("/api/user/collect", query); +}; +const coinHttp = (query) => { + return Http.post("/api/operate/coin", query); +}; +const getRiposteHttp = (query) => { + return Http.post("/api/riposte/riposteGet", query); +}; +const riposteSubmitHttp = (query) => { + return Http.post("/api/riposte/riposteSubmit", query); +}; +const mjHideHttp = (query) => { + return Http.post("/api/details/interviewExperienceHide", query); +}; +const mutable = (val) => val; +const configProviderProps = buildProps({ + a11y: { + type: Boolean, + default: true + }, + locale: { + type: definePropType(Object) + }, + size: useSizeProp, + button: { + type: definePropType(Object) + }, + experimentalFeatures: { + type: definePropType(Object) + }, + keyboardNavigation: { + type: Boolean, + default: true + }, + message: { + type: definePropType(Object) + }, + zIndex: Number, + namespace: { + type: String, + default: "el" + }, + ...useEmptyValuesProps +}); +const messageConfig = {}; +const ConfigProvider = defineComponent({ + name: "ElConfigProvider", + props: configProviderProps, + setup(props, { slots }) { + watch(() => props.message, (val) => { + Object.assign(messageConfig, val != null ? val : {}); + }, { immediate: true, deep: true }); + const config = provideGlobalConfig(props); + return () => renderSlot(slots, "default", { config: config == null ? void 0 : config.value }); + } +}); + +export { root as $, useLocale as A, ElIcon as B, CloseComponents as C, mutable as D, EVENT_CODE as E, FOCUS_TRAP_INJECTION_KEY as F, messageConfig as G, Head as H, publishSchoolSearchHttp as I, publishProfessionSearchHttp as J, ConfigProvider as K, useEmptyValuesProps as L, Meta as M, useSizeProp as N, circle_close_default as O, useEmptyValues as P, clock_default as Q, calendar_default as R, d_arrow_left_default as S, Title as T, UPDATE_MODEL_EVENT as U, arrow_left_default as V, arrow_right_default as W, d_arrow_right_default as X, isObjectLike as Y, baseGetTag as Z, _export_sfc as _, addUnit as a, hasClass as a0, isArray as a1, ListCache as a2, Symbol$1 as a3, eq as a4, arrow_up_default as a5, arrow_down_default as a6, MapCache as a7, freeGlobal as a8, isSymbol as a9, isObject as aa, getStyle as ab, getNative as ac, toSource as ad, Map as ae, loading_default as af, CHANGE_EVENT as ag, INPUT_EVENT as ah, isFunction as ai, useGlobalSize as aj, fromPairs as ak, buildProp as al, tryFocus as am, ValidateComponentsMap as an, view_default as ao, hide_default as ap, isNil as aq, withNoopInstall as ar, baseGet as as, castPath as at, toKey as au, buildProps as b, withInstall as c, definePropType as d, detailsHttp as e, _imports_1 as f, detailsCommentListHttp as g, riposteSubmitHttp as h, iconPropType as i, coinHttp as j, getRiposteHttp as k, getListHttp as l, mjHideHttp as m, withInstallFunction as n, operateLikeHttp as o, MyUserDeleteCollectHttp as p, changeAnonymousHttp as q, relatedlistHttp as r, MyUserCollectHttp as s, MyUserPublishHttp as t, useDeprecated as u, ElTeleport as v, withInstallDirective as w, ElFocusTrap as x, useGlobalConfig as y, isUndefined as z }; +//# sourceMappingURL=config-provider-CA7emI64.mjs.map diff --git a/.output/server/chunks/build/config-provider-CA7emI64.mjs.map b/.output/server/chunks/build/config-provider-CA7emI64.mjs.map new file mode 100644 index 0000000..75316b2 --- /dev/null +++ b/.output/server/chunks/build/config-provider-CA7emI64.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"config-provider-CA7emI64.mjs","sources":["../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_root.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_arrayMap.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseToString.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isObject.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/eq.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isKey.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Map.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/memoize.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_memoizeCapped.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stringToPath.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/toString.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_castPath.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_toKey.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseGet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/get.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/fromPairs.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isNil.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/head/runtime/components.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/vue/props/runtime.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/focus-trap/src/tokens.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/dom/aria.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/focus-trap/src/utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/_virtual/plugin-vue_export-helper.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/constants/aria.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/focus-trap/src/focus-trap.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/teleport/src/teleport2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/teleport/src/teleport.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/vue/install.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/teleport/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/icon/src/icon.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/objects.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/dom/style.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/icon/src/icon2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/icon/index.mjs","../../../../node_modules/.store/@element-plus+icons-vue@2.3.1/node_modules/@element-plus/icons-vue/dist/index.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/vue/icon.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/locale/lang/en.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-locale/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/constants/event.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/config-provider/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/constants/size.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-size/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-empty-values/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/config-provider/src/hooks/use-global-config.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-deprecated/index.mjs","../../../../assets/img/cross-icon.png","../../../../utils/http.js","../../../../composables/api.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/typescript.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/config-provider/src/config-provider-props.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/config-provider/src/config-provider.mjs"],"sourcesContent":null,"names":["Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","funcProto","funcToString","HASH_UNDEFINED","get","isObject","hasOwn","_sfc_main","focusReason","NOOP","isString","isUndefined","_openBlock6","_createElementBlock6","_createElementVNode6","_openBlock8","_createElementBlock8","_createElementVNode8","_openBlock10","_createElementBlock10","_createElementVNode10","_openBlock12","_createElementBlock12","_createElementVNode12","_openBlock29","_createElementBlock29","_createElementVNode29","_openBlock49","_createElementBlock49","_createElementVNode49","_openBlock51","_createElementBlock51","_createElementVNode51","_openBlock54","_createElementBlock54","_createElementVNode54","_openBlock56","_createElementBlock56","_createElementVNode56","_openBlock72","_createElementBlock72","_createElementVNode72","_openBlock73","_createElementBlock73","_createElementVNode73","_openBlock133","_createElementBlock133","_createElementVNode133","_openBlock150","_createElementBlock150","_createElementVNode150","_openBlock283","_createElementBlock283","_createElementVNode283","Close","Loading","CircleCheck","CircleClose","isFunction","global","ref"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,86,87,88]} \ No newline at end of file diff --git a/.output/server/chunks/build/el-button-BScT5ZwZ.mjs b/.output/server/chunks/build/el-button-BScT5ZwZ.mjs new file mode 100644 index 0000000..61969b5 --- /dev/null +++ b/.output/server/chunks/build/el-button-BScT5ZwZ.mjs @@ -0,0 +1,3605 @@ +import { inject, getCurrentInstance, shallowRef, ref, watch, computed, unref, defineComponent, toRef, provide, readonly, createBlock, openBlock, withCtx, createVNode, renderSlot, createCommentVNode, createElementBlock, toDisplayString, reactive, normalizeClass, resolveDynamicComponent, mergeProps, Fragment, useSlots, Text, Transition, withDirectives, vShow, normalizeStyle, cloneVNode, Comment, useAttrs as useAttrs$1, nextTick, createElementVNode, withModifiers } from 'vue'; +import { c as withInstall, _ as _export_sfc, b as buildProps, aj as useGlobalSize, ak as fromPairs, B as ElIcon, al as buildProp, d as definePropType, af as loading_default, i as iconPropType, N as useSizeProp, u as useDeprecated, y as useGlobalConfig, E as EVENT_CODE, v as ElTeleport, am as tryFocus, x as ElFocusTrap, z as isUndefined, ac as getNative, Y as isObjectLike, a3 as Symbol$1, D as mutable, an as ValidateComponentsMap, ao as view_default, ap as hide_default, aq as isNil, O as circle_close_default, ar as withNoopInstall, Z as baseGetTag, a1 as isArray, U as UPDATE_MODEL_EVENT, as as baseGet, at as castPath, aa as isObject, au as toKey, a4 as eq } from './config-provider-CA7emI64.mjs'; +import { z as isString, A as noop, B as resolveUnref, C as tryOnScopeDispose, s as shared_cjs_prodExports, k as useId, i as isBoolean, e as useNamespace, G as useGetDerivedNamespace, H as useIdInjection, v as isNumber, F as isClient, g as useZIndex, D as tryOnMounted, q as debugWarn, E as identity$1 } from './server.mjs'; +import { placements, createPopper } from '@popperjs/core'; + +function unrefElement(elRef) { + var _a; + const plain = resolveUnref(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; +} +const defaultWindow = void 0; +function useEventListener(...args) { + let target; + let events2; + let listeners; + let options; + if (isString(args[0]) || Array.isArray(args[0])) { + [events2, listeners, options] = args; + target = defaultWindow; + } else { + [target, events2, listeners, options] = args; + } + if (!target) + return noop; + if (!Array.isArray(events2)) + events2 = [events2]; + if (!Array.isArray(listeners)) + listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = watch(() => [unrefElement(target), resolveUnref(options)], ([el, options2]) => { + cleanup(); + if (!el) + return; + cleanups.push(...events2.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, options2)); + })); + }, { immediate: true, flush: "post" }); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; +} +function onClickOutside(target, handler, options = {}) { + const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window2) + return; + let shouldListen = true; + const shouldIgnore = (event) => { + return ignore.some((target2) => { + if (typeof target2 === "string") { + return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + } else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + const listener = (event) => { + const el = unrefElement(target); + if (!el || el === event.target || event.composedPath().includes(el)) + return; + if (event.detail === 0) + shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + const cleanup = [ + useEventListener(window2, "click", listener, { passive: true, capture }), + useEventListener(window2, "pointerdown", (e) => { + const el = unrefElement(target); + if (el) + shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e); + }, { passive: true }), + detectIframe && useEventListener(window2, "blur", (event) => { + var _a; + const el = unrefElement(target); + if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) + handler(event); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function useSupported(callback, sync = false) { + const isSupported = ref(); + const update = () => isSupported.value = Boolean(callback()); + update(); + tryOnMounted(update, sync); + return isSupported; +} +const _global = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +const globalKey = "__vueuse_ssr_handlers__"; +_global[globalKey] = _global[globalKey] || {}; +var __getOwnPropSymbols$g = Object.getOwnPropertySymbols; +var __hasOwnProp$g = Object.prototype.hasOwnProperty; +var __propIsEnum$g = Object.prototype.propertyIsEnumerable; +var __objRest$2 = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols$g) + for (var prop of __getOwnPropSymbols$g(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop)) + target[prop] = source[prop]; + } + return target; +}; +function useResizeObserver(target, callback, options = {}) { + const _a = options, { window: window2 = defaultWindow } = _a, observerOptions = __objRest$2(_a, ["window"]); + let observer; + const isSupported = useSupported(() => window2 && "ResizeObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const stopWatch = watch(() => unrefElement(target), (el) => { + cleanup(); + if (isSupported.value && window2 && el) { + observer = new ResizeObserver(callback); + observer.observe(el, observerOptions); + } + }, { immediate: true, flush: "post" }); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; +} +var SwipeDirection; +(function(SwipeDirection2) { + SwipeDirection2["UP"] = "UP"; + SwipeDirection2["RIGHT"] = "RIGHT"; + SwipeDirection2["DOWN"] = "DOWN"; + SwipeDirection2["LEFT"] = "LEFT"; + SwipeDirection2["NONE"] = "NONE"; +})(SwipeDirection || (SwipeDirection = {})); +var __defProp = Object.defineProperty; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +const _TransitionPresets = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +__spreadValues({ + linear: identity$1 +}, _TransitionPresets); +function identity(value) { + return value; +} +function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} +var HOT_COUNT = 800, HOT_SPAN = 16; +var nativeNow = Date.now; +function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(void 0, arguments); + }; +} +function constant(value) { + return function() { + return value; + }; +} +var defineProperty = function() { + try { + var func = getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } +}(); +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); +}; +var setToString = shortOut(baseSetToString); +var MAX_SAFE_INTEGER$1 = 9007199254740991; +var reIsUint = /^(?:0|[1-9]\d*)$/; +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); +} +function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + } else { + object[key] = value; + } +} +var objectProto$1 = Object.prototype; +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$1.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) { + baseAssignValue(object, key, value); + } +} +var nativeMax = Math.max; +function overRest(func, start, transform) { + start = nativeMax(start === void 0 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} +var MAX_SAFE_INTEGER = 9007199254740991; +function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} +var argsTag = "[object Arguments]"; +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +var propertyIsEnumerable = objectProto.propertyIsEnumerable; +var isArguments = baseIsArguments(/* @__PURE__ */ function() { + return arguments; +}()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); +}; +function arrayPush(array, values) { + var index = -1, length = values.length, offset = array.length; + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} +var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0; +function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); +} +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result || (result = []); + while (++index < length) { + var value = array[index]; + if (predicate(value)) { + { + arrayPush(result, value); + } + } else { + result[result.length] = value; + } + } + return result; +} +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array) : []; +} +function flatRest(func) { + return setToString(overRest(func, void 0, flatten), func + ""); +} +function baseHasIn(object, key) { + return object != null && key in Object(object); +} +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); +} +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = void 0; + if (newValue === void 0) { + newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} +function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} +var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); +}); +const POPPER_INJECTION_KEY = Symbol("popper"); +const POPPER_CONTENT_INJECTION_KEY = Symbol("popperContent"); +const roleTypes = [ + "dialog", + "grid", + "group", + "listbox", + "menu", + "navigation", + "tooltip", + "tree" +]; +const popperProps = buildProps({ + role: { + type: String, + values: roleTypes, + default: "tooltip" + } +}); +const __default__$9 = defineComponent({ + name: "ElPopper", + inheritAttrs: false +}); +const _sfc_main$9 = /* @__PURE__ */ defineComponent({ + ...__default__$9, + props: popperProps, + setup(__props, { expose }) { + const props = __props; + const triggerRef = ref(); + const popperInstanceRef = ref(); + const contentRef = ref(); + const referenceRef = ref(); + const role = computed(() => props.role); + const popperProvides = { + triggerRef, + popperInstanceRef, + contentRef, + referenceRef, + role + }; + expose(popperProvides); + provide(POPPER_INJECTION_KEY, popperProvides); + return (_ctx, _cache) => { + return renderSlot(_ctx.$slots, "default"); + }; + } +}); +var Popper = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "popper.vue"]]); +const popperArrowProps = buildProps({ + arrowOffset: { + type: Number, + default: 5 + } +}); +const __default__$8 = defineComponent({ + name: "ElPopperArrow", + inheritAttrs: false +}); +const _sfc_main$8 = /* @__PURE__ */ defineComponent({ + ...__default__$8, + props: popperArrowProps, + setup(__props, { expose }) { + const props = __props; + const ns = useNamespace("popper"); + const { arrowOffset, arrowRef, arrowStyle } = inject(POPPER_CONTENT_INJECTION_KEY, void 0); + watch(() => props.arrowOffset, (val) => { + arrowOffset.value = val; + }); + expose({ + arrowRef + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("span", { + ref_key: "arrowRef", + ref: arrowRef, + class: normalizeClass(unref(ns).e("arrow")), + style: normalizeStyle(unref(arrowStyle)), + "data-popper-arrow": "" + }, null, 6); + }; + } +}); +var ElPopperArrow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "arrow.vue"]]); +const popperTriggerProps = buildProps({ + virtualRef: { + type: definePropType(Object) + }, + virtualTriggering: Boolean, + onMouseenter: { + type: definePropType(Function) + }, + onMouseleave: { + type: definePropType(Function) + }, + onClick: { + type: definePropType(Function) + }, + onKeydown: { + type: definePropType(Function) + }, + onFocus: { + type: definePropType(Function) + }, + onBlur: { + type: definePropType(Function) + }, + onContextmenu: { + type: definePropType(Function) + }, + id: String, + open: Boolean +}); +const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef"); +const useForwardRef = (forwardRef) => { + const setForwardRef = (el) => { + forwardRef.value = el; + }; + provide(FORWARD_REF_INJECTION_KEY, { + setForwardRef + }); +}; +const useForwardRefDirective = (setForwardRef) => { + return { + mounted(el) { + setForwardRef(el); + }, + updated(el) { + setForwardRef(el); + }, + unmounted() { + setForwardRef(null); + } + }; +}; +const NAME = "ElOnlyChild"; +const OnlyChild = defineComponent({ + name: NAME, + setup(_, { + slots, + attrs + }) { + var _a; + const forwardRefInjection = inject(FORWARD_REF_INJECTION_KEY); + const forwardRefDirective = useForwardRefDirective((_a = forwardRefInjection == null ? void 0 : forwardRefInjection.setForwardRef) != null ? _a : shared_cjs_prodExports.NOOP); + return () => { + var _a2; + const defaultSlot = (_a2 = slots.default) == null ? void 0 : _a2.call(slots, attrs); + if (!defaultSlot) + return null; + if (defaultSlot.length > 1) { + return null; + } + const firstLegitNode = findFirstLegitChild(defaultSlot); + if (!firstLegitNode) { + return null; + } + return withDirectives(cloneVNode(firstLegitNode, attrs), [[forwardRefDirective]]); + }; + } +}); +function findFirstLegitChild(node) { + if (!node) + return null; + const children = node; + for (const child of children) { + if (shared_cjs_prodExports.isObject(child)) { + switch (child.type) { + case Comment: + continue; + case Text: + case "svg": + return wrapTextContent(child); + case Fragment: + return findFirstLegitChild(child.children); + default: + return child; + } + } + return wrapTextContent(child); + } + return null; +} +function wrapTextContent(s) { + const ns = useNamespace("only-child"); + return createVNode("span", { + "class": ns.e("content") + }, [s]); +} +const __default__$7 = defineComponent({ + name: "ElPopperTrigger", + inheritAttrs: false +}); +const _sfc_main$7 = /* @__PURE__ */ defineComponent({ + ...__default__$7, + props: popperTriggerProps, + setup(__props, { expose }) { + const props = __props; + const { role, triggerRef } = inject(POPPER_INJECTION_KEY, void 0); + useForwardRef(triggerRef); + const ariaControls = computed(() => { + return ariaHaspopup.value ? props.id : void 0; + }); + const ariaDescribedby = computed(() => { + if (role && role.value === "tooltip") { + return props.open && props.id ? props.id : void 0; + } + return void 0; + }); + const ariaHaspopup = computed(() => { + if (role && role.value !== "tooltip") { + return role.value; + } + return void 0; + }); + const ariaExpanded = computed(() => { + return ariaHaspopup.value ? `${props.open}` : void 0; + }); + expose({ + triggerRef + }); + return (_ctx, _cache) => { + return !_ctx.virtualTriggering ? (openBlock(), createBlock(unref(OnlyChild), mergeProps({ key: 0 }, _ctx.$attrs, { + "aria-controls": unref(ariaControls), + "aria-describedby": unref(ariaDescribedby), + "aria-expanded": unref(ariaExpanded), + "aria-haspopup": unref(ariaHaspopup) + }), { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"])) : createCommentVNode("v-if", true); + }; + } +}); +var ElPopperTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "trigger.vue"]]); +const ariaProps = buildProps({ + ariaLabel: String, + ariaOrientation: { + type: String, + values: ["horizontal", "vertical", "undefined"] + }, + ariaControls: String +}); +const useAriaProps = (arias) => { + return pick(ariaProps, arias); +}; +const POSITIONING_STRATEGIES = ["fixed", "absolute"]; +const popperCoreConfigProps = buildProps({ + boundariesPadding: { + type: Number, + default: 0 + }, + fallbackPlacements: { + type: definePropType(Array), + default: void 0 + }, + gpuAcceleration: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + placement: { + type: String, + values: placements, + default: "bottom" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + strategy: { + type: String, + values: POSITIONING_STRATEGIES, + default: "absolute" + } +}); +const popperContentProps = buildProps({ + ...popperCoreConfigProps, + id: String, + style: { + type: definePropType([String, Array, Object]) + }, + className: { + type: definePropType([String, Array, Object]) + }, + effect: { + type: definePropType(String), + default: "dark" + }, + visible: Boolean, + enterable: { + type: Boolean, + default: true + }, + pure: Boolean, + focusOnShow: { + type: Boolean, + default: false + }, + trapping: { + type: Boolean, + default: false + }, + popperClass: { + type: definePropType([String, Array, Object]) + }, + popperStyle: { + type: definePropType([String, Array, Object]) + }, + referenceEl: { + type: definePropType(Object) + }, + triggerTargetEl: { + type: definePropType(Object) + }, + stopPopperMouseEvent: { + type: Boolean, + default: true + }, + virtualTriggering: Boolean, + zIndex: Number, + ...useAriaProps(["ariaLabel"]) +}); +const popperContentEmits = { + mouseenter: (evt) => evt instanceof MouseEvent, + mouseleave: (evt) => evt instanceof MouseEvent, + focus: () => true, + blur: () => true, + close: () => true +}; +const usePopperContentFocusTrap = (props, emit) => { + const trapped = ref(false); + const focusStartRef = ref(); + const onFocusAfterTrapped = () => { + emit("focus"); + }; + const onFocusAfterReleased = (event) => { + var _a; + if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") { + focusStartRef.value = "first"; + emit("blur"); + } + }; + const onFocusInTrap = (event) => { + if (props.visible && !trapped.value) { + if (event.target) { + focusStartRef.value = event.target; + } + trapped.value = true; + } + }; + const onFocusoutPrevented = (event) => { + if (!props.trapping) { + if (event.detail.focusReason === "pointer") { + event.preventDefault(); + } + trapped.value = false; + } + }; + const onReleaseRequested = () => { + trapped.value = false; + emit("close"); + }; + return { + focusStartRef, + trapped, + onFocusAfterReleased, + onFocusAfterTrapped, + onFocusInTrap, + onFocusoutPrevented, + onReleaseRequested + }; +}; +const buildPopperOptions = (props, modifiers = []) => { + const { placement, strategy, popperOptions } = props; + const options = { + placement, + strategy, + ...popperOptions, + modifiers: [...genModifiers(props), ...modifiers] + }; + deriveExtraModifiers(options, popperOptions == null ? void 0 : popperOptions.modifiers); + return options; +}; +const unwrapMeasurableEl = ($el) => { + return; +}; +function genModifiers(options) { + const { offset, gpuAcceleration, fallbackPlacements } = options; + return [ + { + name: "offset", + options: { + offset: [0, offset != null ? offset : 12] + } + }, + { + name: "preventOverflow", + options: { + padding: { + top: 2, + bottom: 2, + left: 5, + right: 5 + } + } + }, + { + name: "flip", + options: { + padding: 5, + fallbackPlacements + } + }, + { + name: "computeStyles", + options: { + gpuAcceleration + } + } + ]; +} +function deriveExtraModifiers(options, modifiers) { + if (modifiers) { + options.modifiers = [...options.modifiers, ...modifiers != null ? modifiers : []]; + } +} +const usePopper = (referenceElementRef, popperElementRef, opts = {}) => { + const stateUpdater = { + name: "updateState", + enabled: true, + phase: "write", + fn: ({ state }) => { + const derivedState = deriveState(state); + Object.assign(states.value, derivedState); + }, + requires: ["computeStyles"] + }; + const options = computed(() => { + const { onFirstUpdate, placement, strategy, modifiers } = unref(opts); + return { + onFirstUpdate, + placement: placement || "bottom", + strategy: strategy || "absolute", + modifiers: [ + ...modifiers || [], + stateUpdater, + { name: "applyStyles", enabled: false } + ] + }; + }); + const instanceRef = shallowRef(); + const states = ref({ + styles: { + popper: { + position: unref(options).strategy, + left: "0", + top: "0" + }, + arrow: { + position: "absolute" + } + }, + attributes: {} + }); + const destroy = () => { + if (!instanceRef.value) + return; + instanceRef.value.destroy(); + instanceRef.value = void 0; + }; + watch(options, (newOptions) => { + const instance = unref(instanceRef); + if (instance) { + instance.setOptions(newOptions); + } + }, { + deep: true + }); + watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => { + destroy(); + if (!referenceElement || !popperElement) + return; + instanceRef.value = createPopper(referenceElement, popperElement, unref(options)); + }); + return { + state: computed(() => { + var _a; + return { ...((_a = unref(instanceRef)) == null ? void 0 : _a.state) || {} }; + }), + styles: computed(() => unref(states).styles), + attributes: computed(() => unref(states).attributes), + update: () => { + var _a; + return (_a = unref(instanceRef)) == null ? void 0 : _a.update(); + }, + forceUpdate: () => { + var _a; + return (_a = unref(instanceRef)) == null ? void 0 : _a.forceUpdate(); + }, + instanceRef: computed(() => unref(instanceRef)) + }; +}; +function deriveState(state) { + const elements = Object.keys(state.elements); + const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}])); + const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]])); + return { + styles, + attributes + }; +} +const DEFAULT_ARROW_OFFSET = 0; +const usePopperContent = (props) => { + const { popperInstanceRef, contentRef, triggerRef, role } = inject(POPPER_INJECTION_KEY, void 0); + const arrowRef = ref(); + const arrowOffset = ref(); + const eventListenerModifier = computed(() => { + return { + name: "eventListeners", + enabled: !!props.visible + }; + }); + const arrowModifier = computed(() => { + var _a; + const arrowEl = unref(arrowRef); + const offset = (_a = unref(arrowOffset)) != null ? _a : DEFAULT_ARROW_OFFSET; + return { + name: "arrow", + enabled: !isUndefined(arrowEl), + options: { + element: arrowEl, + padding: offset + } + }; + }); + const options = computed(() => { + return { + onFirstUpdate: () => { + update(); + }, + ...buildPopperOptions(props, [ + unref(arrowModifier), + unref(eventListenerModifier) + ]) + }; + }); + const computedReference = computed(() => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef)); + const { attributes, state, styles, update, forceUpdate, instanceRef } = usePopper(computedReference, contentRef, options); + watch(instanceRef, (instance) => popperInstanceRef.value = instance); + return { + attributes, + arrowRef, + contentRef, + instanceRef, + state, + styles, + role, + forceUpdate, + update + }; +}; +const usePopperContentDOM = (props, { + attributes, + styles, + role +}) => { + const { nextZIndex } = useZIndex(); + const ns = useNamespace("popper"); + const contentAttrs = computed(() => unref(attributes).popper); + const contentZIndex = ref(isNumber(props.zIndex) ? props.zIndex : nextZIndex()); + const contentClass = computed(() => [ + ns.b(), + ns.is("pure", props.pure), + ns.is(props.effect), + props.popperClass + ]); + const contentStyle = computed(() => { + return [ + { zIndex: unref(contentZIndex) }, + unref(styles).popper, + props.popperStyle || {} + ]; + }); + const ariaModal = computed(() => role.value === "dialog" ? "false" : void 0); + const arrowStyle = computed(() => unref(styles).arrow || {}); + const updateZIndex = () => { + contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex(); + }; + return { + ariaModal, + arrowStyle, + contentAttrs, + contentClass, + contentStyle, + contentZIndex, + updateZIndex + }; +}; +const formContextKey = Symbol("formContextKey"); +const formItemContextKey = Symbol("formItemContextKey"); +const __default__$6 = defineComponent({ + name: "ElPopperContent" +}); +const _sfc_main$6 = /* @__PURE__ */ defineComponent({ + ...__default__$6, + props: popperContentProps, + emits: popperContentEmits, + setup(__props, { expose, emit }) { + const props = __props; + const { + focusStartRef, + trapped, + onFocusAfterReleased, + onFocusAfterTrapped, + onFocusInTrap, + onFocusoutPrevented, + onReleaseRequested + } = usePopperContentFocusTrap(props, emit); + const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props); + const { + arrowStyle, + contentAttrs, + contentClass, + contentStyle, + updateZIndex + } = usePopperContentDOM(props, { + styles, + attributes, + role + }); + const formItemContext = inject(formItemContextKey, void 0); + const arrowOffset = ref(); + provide(POPPER_CONTENT_INJECTION_KEY, { + arrowStyle, + arrowRef, + arrowOffset + }); + if (formItemContext) { + provide(formItemContextKey, { + ...formItemContext, + addInputId: shared_cjs_prodExports.NOOP, + removeInputId: shared_cjs_prodExports.NOOP + }); + } + const updatePopper = (shouldUpdateZIndex = true) => { + update(); + shouldUpdateZIndex && updateZIndex(); + }; + expose({ + popperContentRef: contentRef, + popperInstanceRef: instanceRef, + updatePopper, + contentStyle + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", mergeProps({ + ref_key: "contentRef", + ref: contentRef + }, unref(contentAttrs), { + style: unref(contentStyle), + class: unref(contentClass), + tabindex: "-1", + onMouseenter: (e) => _ctx.$emit("mouseenter", e), + onMouseleave: (e) => _ctx.$emit("mouseleave", e) + }), [ + createVNode(unref(ElFocusTrap), { + trapped: unref(trapped), + "trap-on-focus-in": true, + "focus-trap-el": unref(contentRef), + "focus-start-el": unref(focusStartRef), + onFocusAfterTrapped: unref(onFocusAfterTrapped), + onFocusAfterReleased: unref(onFocusAfterReleased), + onFocusin: unref(onFocusInTrap), + onFocusoutPrevented: unref(onFocusoutPrevented), + onReleaseRequested: unref(onReleaseRequested) + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"]) + ], 16, ["onMouseenter", "onMouseleave"]); + }; + } +}); +var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "content.vue"]]); +const ElPopper = withInstall(Popper); +const TOOLTIP_INJECTION_KEY = Symbol("elTooltip"); +function useTimeout() { + let timeoutHandle; + const registerTimeout = (fn, delay) => { + cancelTimeout(); + timeoutHandle = (void 0).setTimeout(fn, delay); + }; + const cancelTimeout = () => (void 0).clearTimeout(timeoutHandle); + tryOnScopeDispose(() => cancelTimeout()); + return { + registerTimeout, + cancelTimeout + }; +} +const useDelayedToggleProps = buildProps({ + showAfter: { + type: Number, + default: 0 + }, + hideAfter: { + type: Number, + default: 200 + }, + autoClose: { + type: Number, + default: 0 + } +}); +const useDelayedToggle = ({ + showAfter, + hideAfter, + autoClose, + open, + close +}) => { + const { registerTimeout } = useTimeout(); + const { + registerTimeout: registerTimeoutForAutoClose, + cancelTimeout: cancelTimeoutForAutoClose + } = useTimeout(); + const onOpen = (event) => { + registerTimeout(() => { + open(event); + const _autoClose = unref(autoClose); + if (isNumber(_autoClose) && _autoClose > 0) { + registerTimeoutForAutoClose(() => { + close(event); + }, _autoClose); + } + }, unref(showAfter)); + }; + const onClose = (event) => { + cancelTimeoutForAutoClose(); + registerTimeout(() => { + close(event); + }, unref(hideAfter)); + }; + return { + onOpen, + onClose + }; +}; +const useTooltipContentProps = buildProps({ + ...useDelayedToggleProps, + ...popperContentProps, + appendTo: { + type: definePropType([String, Object]) + }, + content: { + type: String, + default: "" + }, + rawContent: Boolean, + persistent: Boolean, + visible: { + type: definePropType(Boolean), + default: null + }, + transition: String, + teleported: { + type: Boolean, + default: true + }, + disabled: Boolean, + ...useAriaProps(["ariaLabel"]) +}); +const useTooltipTriggerProps = buildProps({ + ...popperTriggerProps, + disabled: Boolean, + trigger: { + type: definePropType([String, Array]), + default: "hover" + }, + triggerKeys: { + type: definePropType(Array), + default: () => [EVENT_CODE.enter, EVENT_CODE.numpadEnter, EVENT_CODE.space] + } +}); +const _prop = buildProp({ + type: definePropType(Boolean), + default: null +}); +const _event = buildProp({ + type: definePropType(Function) +}); +const createModelToggleComposable = (name) => { + const updateEventKey = `update:${name}`; + const updateEventKeyRaw = `onUpdate:${name}`; + const useModelToggleEmits2 = [updateEventKey]; + const useModelToggleProps2 = { + [name]: _prop, + [updateEventKeyRaw]: _event + }; + const useModelToggle2 = ({ + indicator, + toggleReason, + shouldHideWhenRouteChanges, + shouldProceed, + onShow, + onHide + }) => { + const instance = getCurrentInstance(); + const { emit } = instance; + const props = instance.props; + const hasUpdateHandler = computed(() => shared_cjs_prodExports.isFunction(props[updateEventKeyRaw])); + const isModelBindingAbsent = computed(() => props[name] === null); + const doShow = (event) => { + if (indicator.value === true) { + return; + } + indicator.value = true; + if (toggleReason) { + toggleReason.value = event; + } + if (shared_cjs_prodExports.isFunction(onShow)) { + onShow(event); + } + }; + const doHide = (event) => { + if (indicator.value === false) { + return; + } + indicator.value = false; + if (toggleReason) { + toggleReason.value = event; + } + if (shared_cjs_prodExports.isFunction(onHide)) { + onHide(event); + } + }; + const show = (event) => { + if (props.disabled === true || shared_cjs_prodExports.isFunction(shouldProceed) && !shouldProceed()) + return; + hasUpdateHandler.value && isClient; + if (isModelBindingAbsent.value || true) { + doShow(event); + } + }; + const hide = (event) => { + if (props.disabled === true || true) + return; + }; + const onChange = (val) => { + if (!isBoolean(val)) + return; + if (props.disabled && val) { + if (hasUpdateHandler.value) { + emit(updateEventKey, false); + } + } else if (indicator.value !== val) { + if (val) { + doShow(); + } else { + doHide(); + } + } + }; + const toggle = () => { + if (indicator.value) { + hide(); + } else { + show(); + } + }; + watch(() => props[name], onChange); + if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) { + watch(() => ({ + ...instance.proxy.$route + }), () => { + if (shouldHideWhenRouteChanges.value && indicator.value) { + hide(); + } + }); + } + return { + hide, + show, + toggle, + hasUpdateHandler + }; + }; + return { + useModelToggle: useModelToggle2, + useModelToggleProps: useModelToggleProps2, + useModelToggleEmits: useModelToggleEmits2 + }; +}; +const { + useModelToggleProps: useTooltipModelToggleProps, + useModelToggleEmits: useTooltipModelToggleEmits, + useModelToggle: useTooltipModelToggle +} = createModelToggleComposable("visible"); +const useTooltipProps = buildProps({ + ...popperProps, + ...useTooltipModelToggleProps, + ...useTooltipContentProps, + ...useTooltipTriggerProps, + ...popperArrowProps, + showArrow: { + type: Boolean, + default: true + } +}); +const tooltipEmits = [ + ...useTooltipModelToggleEmits, + "before-show", + "before-hide", + "show", + "hide", + "open", + "close" +]; +const isTriggerType = (trigger, type) => { + if (shared_cjs_prodExports.isArray(trigger)) { + return trigger.includes(type); + } + return trigger === type; +}; +const whenTrigger = (trigger, type, handler) => { + return (e) => { + isTriggerType(unref(trigger), type) && handler(e); + }; +}; +const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => { + const handleEvent = (event) => { + const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event); + if (checkForDefaultPrevented === false || !shouldPrevent) { + return oursHandler == null ? void 0 : oursHandler(event); + } + }; + return handleEvent; +}; +const __default__$5 = defineComponent({ + name: "ElTooltipTrigger" +}); +const _sfc_main$5 = /* @__PURE__ */ defineComponent({ + ...__default__$5, + props: useTooltipTriggerProps, + setup(__props, { expose }) { + const props = __props; + const ns = useNamespace("tooltip"); + const { controlled, id, open, onOpen, onClose, onToggle } = inject(TOOLTIP_INJECTION_KEY, void 0); + const triggerRef = ref(null); + const stopWhenControlledOrDisabled = () => { + if (unref(controlled) || props.disabled) { + return true; + } + }; + const trigger = toRef(props, "trigger"); + const onMouseenter = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onOpen)); + const onMouseleave = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose)); + const onClick = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => { + if (e.button === 0) { + onToggle(e); + } + })); + const onFocus = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen)); + const onBlur = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose)); + const onContextMenu = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => { + e.preventDefault(); + onToggle(e); + })); + const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e) => { + const { code } = e; + if (props.triggerKeys.includes(code)) { + e.preventDefault(); + onToggle(e); + } + }); + expose({ + triggerRef + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElPopperTrigger), { + id: unref(id), + "virtual-ref": _ctx.virtualRef, + open: unref(open), + "virtual-triggering": _ctx.virtualTriggering, + class: normalizeClass(unref(ns).e("trigger")), + onBlur: unref(onBlur), + onClick: unref(onClick), + onContextmenu: unref(onContextMenu), + onFocus: unref(onFocus), + onMouseenter: unref(onMouseenter), + onMouseleave: unref(onMouseleave), + onKeydown: unref(onKeydown) + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]); + }; + } +}); +var ElTooltipTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "trigger.vue"]]); +const usePopperContainerId = () => { + const namespace = useGetDerivedNamespace(); + const idInjection = useIdInjection(); + const id = computed(() => { + return `${namespace.value}-popper-container-${idInjection.prefix}`; + }); + const selector = computed(() => `#${id.value}`); + return { + id, + selector + }; +}; +const usePopperContainer = () => { + const { id, selector } = usePopperContainerId(); + return { + id, + selector + }; +}; +const __default__$4 = defineComponent({ + name: "ElTooltipContent", + inheritAttrs: false +}); +const _sfc_main$4 = /* @__PURE__ */ defineComponent({ + ...__default__$4, + props: useTooltipContentProps, + setup(__props, { expose }) { + const props = __props; + const { selector } = usePopperContainerId(); + const ns = useNamespace("tooltip"); + const contentRef = ref(); + let stopHandle; + const { + controlled, + id, + open, + trigger, + onClose, + onOpen, + onShow, + onHide, + onBeforeShow, + onBeforeHide + } = inject(TOOLTIP_INJECTION_KEY, void 0); + const transitionClass = computed(() => { + return props.transition || `${ns.namespace.value}-fade-in-linear`; + }); + const persistentRef = computed(() => { + return props.persistent; + }); + const shouldRender = computed(() => { + return unref(persistentRef) ? true : unref(open); + }); + const shouldShow = computed(() => { + return props.disabled ? false : unref(open); + }); + const appendTo = computed(() => { + return props.appendTo || selector.value; + }); + const contentStyle = computed(() => { + var _a; + return (_a = props.style) != null ? _a : {}; + }); + const ariaHidden = ref(true); + const onTransitionLeave = () => { + onHide(); + isFocusInsideContent() && tryFocus((void 0).body); + ariaHidden.value = true; + }; + const stopWhenControlled = () => { + if (unref(controlled)) + return true; + }; + const onContentEnter = composeEventHandlers(stopWhenControlled, () => { + if (props.enterable && unref(trigger) === "hover") { + onOpen(); + } + }); + const onContentLeave = composeEventHandlers(stopWhenControlled, () => { + if (unref(trigger) === "hover") { + onClose(); + } + }); + const onBeforeEnter = () => { + var _a, _b; + (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a); + onBeforeShow == null ? void 0 : onBeforeShow(); + }; + const onBeforeLeave = () => { + onBeforeHide == null ? void 0 : onBeforeHide(); + }; + const onAfterShow = () => { + onShow(); + stopHandle = onClickOutside(computed(() => { + var _a; + return (_a = contentRef.value) == null ? void 0 : _a.popperContentRef; + }), () => { + if (unref(controlled)) + return; + const $trigger = unref(trigger); + if ($trigger !== "hover") { + onClose(); + } + }); + }; + const onBlur = () => { + if (!props.virtualTriggering) { + onClose(); + } + }; + const isFocusInsideContent = (event) => { + var _a; + const popperContent = (_a = contentRef.value) == null ? void 0 : _a.popperContentRef; + const activeElement = (event == null ? void 0 : event.relatedTarget) || (void 0).activeElement; + return popperContent == null ? void 0 : popperContent.contains(activeElement); + }; + watch(() => unref(open), (val) => { + if (!val) { + stopHandle == null ? void 0 : stopHandle(); + } else { + ariaHidden.value = false; + } + }, { + flush: "post" + }); + watch(() => props.content, () => { + var _a, _b; + (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a); + }); + expose({ + contentRef, + isFocusInsideContent + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElTeleport), { + disabled: !_ctx.teleported, + to: unref(appendTo) + }, { + default: withCtx(() => [ + createVNode(Transition, { + name: unref(transitionClass), + onAfterLeave: onTransitionLeave, + onBeforeEnter, + onAfterEnter: onAfterShow, + onBeforeLeave + }, { + default: withCtx(() => [ + unref(shouldRender) ? withDirectives((openBlock(), createBlock(unref(ElPopperContent), mergeProps({ + key: 0, + id: unref(id), + ref_key: "contentRef", + ref: contentRef + }, _ctx.$attrs, { + "aria-label": _ctx.ariaLabel, + "aria-hidden": ariaHidden.value, + "boundaries-padding": _ctx.boundariesPadding, + "fallback-placements": _ctx.fallbackPlacements, + "gpu-acceleration": _ctx.gpuAcceleration, + offset: _ctx.offset, + placement: _ctx.placement, + "popper-options": _ctx.popperOptions, + strategy: _ctx.strategy, + effect: _ctx.effect, + enterable: _ctx.enterable, + pure: _ctx.pure, + "popper-class": _ctx.popperClass, + "popper-style": [_ctx.popperStyle, unref(contentStyle)], + "reference-el": _ctx.referenceEl, + "trigger-target-el": _ctx.triggerTargetEl, + visible: unref(shouldShow), + "z-index": _ctx.zIndex, + onMouseenter: unref(onContentEnter), + onMouseleave: unref(onContentLeave), + onBlur, + onClose: unref(onClose) + }), { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 16, ["id", "aria-label", "aria-hidden", "boundaries-padding", "fallback-placements", "gpu-acceleration", "offset", "placement", "popper-options", "strategy", "effect", "enterable", "pure", "popper-class", "popper-style", "reference-el", "trigger-target-el", "visible", "z-index", "onMouseenter", "onMouseleave", "onClose"])), [ + [vShow, unref(shouldShow)] + ]) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 8, ["name"]) + ]), + _: 3 + }, 8, ["disabled", "to"]); + }; + } +}); +var ElTooltipContent = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "content.vue"]]); +const __default__$3 = defineComponent({ + name: "ElTooltip" +}); +const _sfc_main$3 = /* @__PURE__ */ defineComponent({ + ...__default__$3, + props: useTooltipProps, + emits: tooltipEmits, + setup(__props, { expose, emit }) { + const props = __props; + usePopperContainer(); + const id = useId(); + const popperRef = ref(); + const contentRef = ref(); + const updatePopper = () => { + var _a; + const popperComponent = unref(popperRef); + if (popperComponent) { + (_a = popperComponent.popperInstanceRef) == null ? void 0 : _a.update(); + } + }; + const open = ref(false); + const toggleReason = ref(); + const { show, hide, hasUpdateHandler } = useTooltipModelToggle({ + indicator: open, + toggleReason + }); + const { onOpen, onClose } = useDelayedToggle({ + showAfter: toRef(props, "showAfter"), + hideAfter: toRef(props, "hideAfter"), + autoClose: toRef(props, "autoClose"), + open: show, + close: hide + }); + const controlled = computed(() => isBoolean(props.visible) && !hasUpdateHandler.value); + provide(TOOLTIP_INJECTION_KEY, { + controlled, + id, + open: readonly(open), + trigger: toRef(props, "trigger"), + onOpen: (event) => { + onOpen(event); + }, + onClose: (event) => { + onClose(event); + }, + onToggle: (event) => { + if (unref(open)) { + onClose(event); + } else { + onOpen(event); + } + }, + onShow: () => { + emit("show", toggleReason.value); + }, + onHide: () => { + emit("hide", toggleReason.value); + }, + onBeforeShow: () => { + emit("before-show", toggleReason.value); + }, + onBeforeHide: () => { + emit("before-hide", toggleReason.value); + }, + updatePopper + }); + watch(() => props.disabled, (disabled) => { + if (disabled && open.value) { + open.value = false; + } + }); + const isFocusInsideContent = (event) => { + var _a; + return (_a = contentRef.value) == null ? void 0 : _a.isFocusInsideContent(event); + }; + expose({ + popperRef, + contentRef, + isFocusInsideContent, + updatePopper, + onOpen, + onClose, + hide + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElPopper), { + ref_key: "popperRef", + ref: popperRef, + role: _ctx.role + }, { + default: withCtx(() => [ + createVNode(ElTooltipTrigger, { + disabled: _ctx.disabled, + trigger: _ctx.trigger, + "trigger-keys": _ctx.triggerKeys, + "virtual-ref": _ctx.virtualRef, + "virtual-triggering": _ctx.virtualTriggering + }, { + default: withCtx(() => [ + _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering"]), + createVNode(ElTooltipContent, { + ref_key: "contentRef", + ref: contentRef, + "aria-label": _ctx.ariaLabel, + "boundaries-padding": _ctx.boundariesPadding, + content: _ctx.content, + disabled: _ctx.disabled, + effect: _ctx.effect, + enterable: _ctx.enterable, + "fallback-placements": _ctx.fallbackPlacements, + "hide-after": _ctx.hideAfter, + "gpu-acceleration": _ctx.gpuAcceleration, + offset: _ctx.offset, + persistent: _ctx.persistent, + "popper-class": _ctx.popperClass, + "popper-style": _ctx.popperStyle, + placement: _ctx.placement, + "popper-options": _ctx.popperOptions, + pure: _ctx.pure, + "raw-content": _ctx.rawContent, + "reference-el": _ctx.referenceEl, + "trigger-target-el": _ctx.triggerTargetEl, + "show-after": _ctx.showAfter, + strategy: _ctx.strategy, + teleported: _ctx.teleported, + transition: _ctx.transition, + "virtual-triggering": _ctx.virtualTriggering, + "z-index": _ctx.zIndex, + "append-to": _ctx.appendTo + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "content", {}, () => [ + _ctx.rawContent ? (openBlock(), createElementBlock("span", { + key: 0, + innerHTML: _ctx.content + }, null, 8, ["innerHTML"])) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(_ctx.content), 1)) + ]), + _ctx.showArrow ? (openBlock(), createBlock(unref(ElPopperArrow), { + key: 0, + "arrow-offset": _ctx.arrowOffset + }, null, 8, ["arrow-offset"])) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 8, ["aria-label", "boundaries-padding", "content", "disabled", "effect", "enterable", "fallback-placements", "hide-after", "gpu-acceleration", "offset", "persistent", "popper-class", "popper-style", "placement", "popper-options", "pure", "raw-content", "reference-el", "trigger-target-el", "show-after", "strategy", "teleported", "transition", "virtual-triggering", "z-index", "append-to"]) + ]), + _: 3 + }, 8, ["role"]); + }; + } +}); +var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "tooltip.vue"]]); +const ElTooltip = withInstall(Tooltip); +const inputProps = buildProps({ + id: { + type: String, + default: void 0 + }, + size: useSizeProp, + disabled: Boolean, + modelValue: { + type: definePropType([ + String, + Number, + Object + ]), + default: "" + }, + maxlength: { + type: [String, Number] + }, + minlength: { + type: [String, Number] + }, + type: { + type: String, + default: "text" + }, + resize: { + type: String, + values: ["none", "both", "horizontal", "vertical"] + }, + autosize: { + type: definePropType([Boolean, Object]), + default: false + }, + autocomplete: { + type: String, + default: "off" + }, + formatter: { + type: Function + }, + parser: { + type: Function + }, + placeholder: { + type: String + }, + form: { + type: String + }, + readonly: Boolean, + clearable: Boolean, + showPassword: Boolean, + showWordLimit: Boolean, + suffixIcon: { + type: iconPropType + }, + prefixIcon: { + type: iconPropType + }, + containerRole: { + type: String, + default: void 0 + }, + tabindex: { + type: [String, Number], + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + inputStyle: { + type: definePropType([Object, Array, String]), + default: () => mutable({}) + }, + autofocus: Boolean, + rows: { + type: Number, + default: 2 + }, + ...useAriaProps(["ariaLabel"]) +}); +const inputEmits = { + [UPDATE_MODEL_EVENT]: (value) => shared_cjs_prodExports.isString(value), + input: (value) => shared_cjs_prodExports.isString(value), + change: (value) => shared_cjs_prodExports.isString(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + mouseleave: (evt) => evt instanceof MouseEvent, + mouseenter: (evt) => evt instanceof MouseEvent, + keydown: (evt) => evt instanceof Event, + compositionstart: (evt) => evt instanceof CompositionEvent, + compositionupdate: (evt) => evt instanceof CompositionEvent, + compositionend: (evt) => evt instanceof CompositionEvent +}; +const DEFAULT_EXCLUDE_KEYS = ["class", "style"]; +const LISTENER_PREFIX = /^on[A-Z]/; +const useAttrs = (params = {}) => { + const { excludeListeners = false, excludeKeys } = params; + const allExcludeKeys = computed(() => { + return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS); + }); + const instance = getCurrentInstance(); + if (!instance) { + return computed(() => ({})); + } + return computed(() => { + var _a; + return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key)))); + }); +}; +const useFormItem = () => { + const form = inject(formContextKey, void 0); + const formItem = inject(formItemContextKey, void 0); + return { + form, + formItem + }; +}; +const useFormItemInputId = (props, { + formItemContext, + disableIdGeneration, + disableIdManagement +}) => { + if (!disableIdGeneration) { + disableIdGeneration = ref(false); + } + if (!disableIdManagement) { + disableIdManagement = ref(false); + } + const inputId = ref(); + const isLabeledByFormItem = computed(() => { + var _a; + return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1); + }); + return { + isLabeledByFormItem, + inputId + }; +}; +const useProp = (name) => { + const vm = getCurrentInstance(); + return computed(() => { + var _a, _b; + return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name]; + }); +}; +const useFormSize = (fallback, ignore = {}) => { + const emptyRef = ref(void 0); + const size = ignore.prop ? emptyRef : useProp("size"); + const globalConfig = ignore.global ? emptyRef : useGlobalSize(); + const form = ignore.form ? { size: void 0 } : inject(formContextKey, void 0); + const formItem = ignore.formItem ? { size: void 0 } : inject(formItemContextKey, void 0); + return computed(() => size.value || unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || ""); +}; +const useFormDisabled = (fallback) => { + const disabled = useProp("disabled"); + const form = inject(formContextKey, void 0); + return computed(() => disabled.value || unref(fallback) || (form == null ? void 0 : form.disabled) || false); +}; +function useFocusController(target, { + beforeFocus, + afterFocus, + beforeBlur, + afterBlur +} = {}) { + const instance = getCurrentInstance(); + const { emit } = instance; + const wrapperRef = shallowRef(); + const isFocused = ref(false); + const handleFocus = (event) => { + const cancelFocus = shared_cjs_prodExports.isFunction(beforeFocus) ? beforeFocus(event) : false; + if (cancelFocus || isFocused.value) + return; + isFocused.value = true; + emit("focus", event); + afterFocus == null ? void 0 : afterFocus(); + }; + const handleBlur = (event) => { + var _a; + const cancelBlur = shared_cjs_prodExports.isFunction(beforeBlur) ? beforeBlur(event) : false; + if (cancelBlur || event.relatedTarget && ((_a = wrapperRef.value) == null ? void 0 : _a.contains(event.relatedTarget))) + return; + isFocused.value = false; + emit("blur", event); + afterBlur == null ? void 0 : afterBlur(); + }; + const handleClick = () => { + var _a, _b; + if (((_a = wrapperRef.value) == null ? void 0 : _a.contains((void 0).activeElement)) && wrapperRef.value !== (void 0).activeElement) + return; + (_b = target.value) == null ? void 0 : _b.focus(); + }; + watch(wrapperRef, (el) => { + if (el) { + el.setAttribute("tabindex", "-1"); + } + }); + useEventListener(wrapperRef, "focus", handleFocus, true); + useEventListener(wrapperRef, "blur", handleBlur, true); + useEventListener(wrapperRef, "click", handleClick, true); + return { + isFocused, + wrapperRef, + handleFocus, + handleBlur + }; +} +const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text); +function useComposition({ + afterComposition, + emit +}) { + const isComposing = ref(false); + const handleCompositionStart = (event) => { + emit == null ? void 0 : emit("compositionstart", event); + isComposing.value = true; + }; + const handleCompositionUpdate = (event) => { + var _a; + emit == null ? void 0 : emit("compositionupdate", event); + const text = (_a = event.target) == null ? void 0 : _a.value; + const lastCharacter = text[text.length - 1] || ""; + isComposing.value = !isKorean(lastCharacter); + }; + const handleCompositionEnd = (event) => { + emit == null ? void 0 : emit("compositionend", event); + if (isComposing.value) { + isComposing.value = false; + nextTick(() => afterComposition(event)); + } + }; + const handleComposition = (event) => { + event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event); + }; + return { + isComposing, + handleComposition, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd + }; +} +function useCursor(input) { + let selectionInfo; + function recordCursor() { + if (input.value == void 0) + return; + const { selectionStart, selectionEnd, value } = input.value; + if (selectionStart == null || selectionEnd == null) + return; + const beforeTxt = value.slice(0, Math.max(0, selectionStart)); + const afterTxt = value.slice(Math.max(0, selectionEnd)); + selectionInfo = { + selectionStart, + selectionEnd, + value, + beforeTxt, + afterTxt + }; + } + function setCursor() { + if (input.value == void 0 || selectionInfo == void 0) + return; + const { value } = input.value; + const { beforeTxt, afterTxt, selectionStart } = selectionInfo; + if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0) + return; + let startPos = value.length; + if (value.endsWith(afterTxt)) { + startPos = value.length - afterTxt.length; + } else if (value.startsWith(beforeTxt)) { + startPos = beforeTxt.length; + } else { + const beforeLastChar = beforeTxt[selectionStart - 1]; + const newIndex = value.indexOf(beforeLastChar, selectionStart - 1); + if (newIndex !== -1) { + startPos = newIndex + 1; + } + } + input.value.setSelectionRange(startPos, startPos); + } + return [recordCursor, setCursor]; +} +const __default__$2 = defineComponent({ + name: "ElInput", + inheritAttrs: false +}); +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ + ...__default__$2, + props: inputProps, + emits: inputEmits, + setup(__props, { expose, emit }) { + const props = __props; + const rawAttrs = useAttrs$1(); + const attrs = useAttrs(); + const slots = useSlots(); + const containerKls = computed(() => [ + props.type === "textarea" ? nsTextarea.b() : nsInput.b(), + nsInput.m(inputSize.value), + nsInput.is("disabled", inputDisabled.value), + nsInput.is("exceed", inputExceed.value), + { + [nsInput.b("group")]: slots.prepend || slots.append, + [nsInput.m("prefix")]: slots.prefix || props.prefixIcon, + [nsInput.m("suffix")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword, + [nsInput.bm("suffix", "password-clear")]: showClear.value && showPwdVisible.value, + [nsInput.b("hidden")]: props.type === "hidden" + }, + rawAttrs.class + ]); + const wrapperKls = computed(() => [ + nsInput.e("wrapper"), + nsInput.is("focus", isFocused.value) + ]); + const { form: elForm, formItem: elFormItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { + formItemContext: elFormItem + }); + const inputSize = useFormSize(); + const inputDisabled = useFormDisabled(); + const nsInput = useNamespace("input"); + const nsTextarea = useNamespace("textarea"); + const input = shallowRef(); + const textarea = shallowRef(); + const hovering = ref(false); + const passwordVisible = ref(false); + const countStyle = ref(); + const textareaCalcStyle = shallowRef(props.inputStyle); + const _ref = computed(() => input.value || textarea.value); + const { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(_ref, { + beforeFocus() { + return inputDisabled.value; + }, + afterBlur() { + var _a; + if (props.validateEvent) { + (_a = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "blur").catch((err) => debugWarn()); + } + } + }); + const needStatusIcon = computed(() => { + var _a; + return (_a = elForm == null ? void 0 : elForm.statusIcon) != null ? _a : false; + }); + const validateState = computed(() => (elFormItem == null ? void 0 : elFormItem.validateState) || ""); + const validateIcon = computed(() => validateState.value && ValidateComponentsMap[validateState.value]); + const passwordIcon = computed(() => passwordVisible.value ? view_default : hide_default); + const containerStyle = computed(() => [ + rawAttrs.style + ]); + const textareaStyle = computed(() => [ + props.inputStyle, + textareaCalcStyle.value, + { resize: props.resize } + ]); + const nativeInputValue = computed(() => isNil(props.modelValue) ? "" : String(props.modelValue)); + const showClear = computed(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value)); + const showPwdVisible = computed(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value)); + const isWordLimitVisible = computed(() => props.showWordLimit && !!props.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword); + const textLength = computed(() => nativeInputValue.value.length); + const inputExceed = computed(() => !!isWordLimitVisible.value && textLength.value > Number(props.maxlength)); + const suffixVisible = computed(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value); + const [recordCursor, setCursor] = useCursor(input); + useResizeObserver(textarea, (entries) => { + onceInitSizeTextarea(); + if (!isWordLimitVisible.value || props.resize !== "both") + return; + const entry = entries[0]; + const { width } = entry.contentRect; + countStyle.value = { + right: `calc(100% - ${width + 15 + 6}px)` + }; + }); + const resizeTextarea = () => { + const { type, autosize } = props; + return; + }; + const createOnceInitResize = (resizeTextarea2) => { + let isInit = false; + return () => { + var _a; + if (isInit || !props.autosize) + return; + const isElHidden = ((_a = textarea.value) == null ? void 0 : _a.offsetParent) === null; + if (!isElHidden) { + resizeTextarea2(); + isInit = true; + } + }; + }; + const onceInitSizeTextarea = createOnceInitResize(resizeTextarea); + const setNativeInputValue = () => { + const input2 = _ref.value; + const formatterValue = props.formatter ? props.formatter(nativeInputValue.value) : nativeInputValue.value; + if (!input2 || input2.value === formatterValue) + return; + input2.value = formatterValue; + }; + const handleInput = async (event) => { + recordCursor(); + let { value } = event.target; + if (props.formatter) { + value = props.parser ? props.parser(value) : value; + } + if (isComposing.value) + return; + if (value === nativeInputValue.value) { + setNativeInputValue(); + return; + } + emit(UPDATE_MODEL_EVENT, value); + emit("input", value); + await nextTick(); + setNativeInputValue(); + setCursor(); + }; + const handleChange = (event) => { + emit("change", event.target.value); + }; + const { + isComposing, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd + } = useComposition({ emit, afterComposition: handleInput }); + const handlePasswordVisible = () => { + recordCursor(); + passwordVisible.value = !passwordVisible.value; + setTimeout(setCursor); + }; + const focus = () => { + var _a; + return (_a = _ref.value) == null ? void 0 : _a.focus(); + }; + const blur = () => { + var _a; + return (_a = _ref.value) == null ? void 0 : _a.blur(); + }; + const handleMouseLeave = (evt) => { + hovering.value = false; + emit("mouseleave", evt); + }; + const handleMouseEnter = (evt) => { + hovering.value = true; + emit("mouseenter", evt); + }; + const handleKeydown = (evt) => { + emit("keydown", evt); + }; + const select = () => { + var _a; + (_a = _ref.value) == null ? void 0 : _a.select(); + }; + const clear = () => { + emit(UPDATE_MODEL_EVENT, ""); + emit("change", ""); + emit("clear"); + emit("input", ""); + }; + watch(() => props.modelValue, () => { + var _a; + nextTick(() => resizeTextarea()); + if (props.validateEvent) { + (_a = elFormItem == null ? void 0 : elFormItem.validate) == null ? void 0 : _a.call(elFormItem, "change").catch((err) => debugWarn()); + } + }); + watch(nativeInputValue, () => setNativeInputValue()); + watch(() => props.type, async () => { + await nextTick(); + setNativeInputValue(); + resizeTextarea(); + }); + expose({ + input, + textarea, + ref: _ref, + textareaStyle, + autosize: toRef(props, "autosize"), + isComposing, + focus, + blur, + select, + clear, + resizeTextarea + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([ + unref(containerKls), + { + [unref(nsInput).bm("group", "append")]: _ctx.$slots.append, + [unref(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend + } + ]), + style: normalizeStyle(unref(containerStyle)), + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave + }, [ + createCommentVNode(" input "), + _ctx.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createCommentVNode(" prepend slot "), + _ctx.$slots.prepend ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(nsInput).be("group", "prepend")) + }, [ + renderSlot(_ctx.$slots, "prepend") + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: normalizeClass(unref(wrapperKls)) + }, [ + createCommentVNode(" prefix slot "), + _ctx.$slots.prefix || _ctx.prefixIcon ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass(unref(nsInput).e("prefix")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(nsInput).e("prefix-inner")) + }, [ + renderSlot(_ctx.$slots, "prefix"), + _ctx.prefixIcon ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass(unref(nsInput).e("icon")) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.prefixIcon))) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true) + ], 2) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("input", mergeProps({ + id: unref(inputId), + ref_key: "input", + ref: input, + class: unref(nsInput).e("inner") + }, unref(attrs), { + minlength: _ctx.minlength, + maxlength: _ctx.maxlength, + type: _ctx.showPassword ? passwordVisible.value ? "text" : "password" : _ctx.type, + disabled: unref(inputDisabled), + readonly: _ctx.readonly, + autocomplete: _ctx.autocomplete, + tabindex: _ctx.tabindex, + "aria-label": _ctx.ariaLabel, + placeholder: _ctx.placeholder, + style: _ctx.inputStyle, + form: _ctx.form, + autofocus: _ctx.autofocus, + role: _ctx.containerRole, + onCompositionstart: unref(handleCompositionStart), + onCompositionupdate: unref(handleCompositionUpdate), + onCompositionend: unref(handleCompositionEnd), + onInput: handleInput, + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, ["id", "minlength", "maxlength", "type", "disabled", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend"]), + createCommentVNode(" suffix slot "), + unref(suffixVisible) ? (openBlock(), createElementBlock("span", { + key: 1, + class: normalizeClass(unref(nsInput).e("suffix")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(nsInput).e("suffix-inner")) + }, [ + !unref(showClear) || !unref(showPwdVisible) || !unref(isWordLimitVisible) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + renderSlot(_ctx.$slots, "suffix"), + _ctx.suffixIcon ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass(unref(nsInput).e("icon")) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.suffixIcon))) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true) + ], 64)) : createCommentVNode("v-if", true), + unref(showClear) ? (openBlock(), createBlock(unref(ElIcon), { + key: 1, + class: normalizeClass([unref(nsInput).e("icon"), unref(nsInput).e("clear")]), + onMousedown: withModifiers(unref(shared_cjs_prodExports.NOOP), ["prevent"]), + onClick: clear + }, { + default: withCtx(() => [ + createVNode(unref(circle_close_default)) + ]), + _: 1 + }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true), + unref(showPwdVisible) ? (openBlock(), createBlock(unref(ElIcon), { + key: 2, + class: normalizeClass([unref(nsInput).e("icon"), unref(nsInput).e("password")]), + onClick: handlePasswordVisible + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(unref(passwordIcon)))) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true), + unref(isWordLimitVisible) ? (openBlock(), createElementBlock("span", { + key: 3, + class: normalizeClass(unref(nsInput).e("count")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(nsInput).e("count-inner")) + }, toDisplayString(unref(textLength)) + " / " + toDisplayString(_ctx.maxlength), 3) + ], 2)) : createCommentVNode("v-if", true), + unref(validateState) && unref(validateIcon) && unref(needStatusIcon) ? (openBlock(), createBlock(unref(ElIcon), { + key: 4, + class: normalizeClass([ + unref(nsInput).e("icon"), + unref(nsInput).e("validateIcon"), + unref(nsInput).is("loading", unref(validateState) === "validating") + ]) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(unref(validateIcon)))) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true) + ], 2) + ], 2)) : createCommentVNode("v-if", true) + ], 2), + createCommentVNode(" append slot "), + _ctx.$slots.append ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass(unref(nsInput).be("group", "append")) + }, [ + renderSlot(_ctx.$slots, "append") + ], 2)) : createCommentVNode("v-if", true) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createCommentVNode(" textarea "), + createElementVNode("textarea", mergeProps({ + id: unref(inputId), + ref_key: "textarea", + ref: textarea, + class: [unref(nsTextarea).e("inner"), unref(nsInput).is("focus", unref(isFocused))] + }, unref(attrs), { + minlength: _ctx.minlength, + maxlength: _ctx.maxlength, + tabindex: _ctx.tabindex, + disabled: unref(inputDisabled), + readonly: _ctx.readonly, + autocomplete: _ctx.autocomplete, + style: unref(textareaStyle), + "aria-label": _ctx.ariaLabel, + placeholder: _ctx.placeholder, + form: _ctx.form, + autofocus: _ctx.autofocus, + rows: _ctx.rows, + role: _ctx.containerRole, + onCompositionstart: unref(handleCompositionStart), + onCompositionupdate: unref(handleCompositionUpdate), + onCompositionend: unref(handleCompositionEnd), + onInput: handleInput, + onFocus: unref(handleFocus), + onBlur: unref(handleBlur), + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, ["id", "minlength", "maxlength", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus", "rows", "role", "onCompositionstart", "onCompositionupdate", "onCompositionend", "onFocus", "onBlur"]), + unref(isWordLimitVisible) ? (openBlock(), createElementBlock("span", { + key: 0, + style: normalizeStyle(countStyle.value), + class: normalizeClass(unref(nsInput).e("count")) + }, toDisplayString(unref(textLength)) + " / " + toDisplayString(_ctx.maxlength), 7)) : createCommentVNode("v-if", true) + ], 64)) + ], 38); + }; + } +}); +var Input = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "input.vue"]]); +const ElInput = withInstall(Input); +const buttonGroupContextKey = Symbol("buttonGroupContextKey"); +const useButton = (props, emit) => { + useDeprecated({ + from: "type.text", + replacement: "link", + version: "3.0.0", + scope: "props", + ref: "https://element-plus.org/en-US/component/button.html#button-attributes" + }, computed(() => props.type === "text")); + const buttonGroupContext = inject(buttonGroupContextKey, void 0); + const globalConfig = useGlobalConfig("button"); + const { form } = useFormItem(); + const _size = useFormSize(computed(() => buttonGroupContext == null ? void 0 : buttonGroupContext.size)); + const _disabled = useFormDisabled(); + const _ref = ref(); + const slots = useSlots(); + const _type = computed(() => props.type || (buttonGroupContext == null ? void 0 : buttonGroupContext.type) || ""); + const autoInsertSpace = computed(() => { + var _a, _b, _c; + return (_c = (_b = props.autoInsertSpace) != null ? _b : (_a = globalConfig.value) == null ? void 0 : _a.autoInsertSpace) != null ? _c : false; + }); + const _props = computed(() => { + if (props.tag === "button") { + return { + ariaDisabled: _disabled.value || props.loading, + disabled: _disabled.value || props.loading, + autofocus: props.autofocus, + type: props.nativeType + }; + } + return {}; + }); + const shouldAddSpace = computed(() => { + var _a; + const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots); + if (autoInsertSpace.value && (defaultSlot == null ? void 0 : defaultSlot.length) === 1) { + const slot = defaultSlot[0]; + if ((slot == null ? void 0 : slot.type) === Text) { + const text = slot.children; + return new RegExp("^\\p{Unified_Ideograph}{2}$", "u").test(text.trim()); + } + } + return false; + }); + const handleClick = (evt) => { + if (_disabled.value || props.loading) { + evt.stopPropagation(); + return; + } + if (props.nativeType === "reset") { + form == null ? void 0 : form.resetFields(); + } + emit("click", evt); + }; + return { + _disabled, + _size, + _type, + _ref, + _props, + shouldAddSpace, + handleClick + }; +}; +const buttonTypes = [ + "default", + "primary", + "success", + "warning", + "info", + "danger", + "text", + "" +]; +const buttonNativeTypes = ["button", "submit", "reset"]; +const buttonProps = buildProps({ + size: useSizeProp, + disabled: Boolean, + type: { + type: String, + values: buttonTypes, + default: "" + }, + icon: { + type: iconPropType + }, + nativeType: { + type: String, + values: buttonNativeTypes, + default: "button" + }, + loading: Boolean, + loadingIcon: { + type: iconPropType, + default: () => loading_default + }, + plain: Boolean, + text: Boolean, + link: Boolean, + bg: Boolean, + autofocus: Boolean, + round: Boolean, + circle: Boolean, + color: String, + dark: Boolean, + autoInsertSpace: { + type: Boolean, + default: void 0 + }, + tag: { + type: definePropType([String, Object]), + default: "button" + } +}); +const buttonEmits = { + click: (evt) => evt instanceof MouseEvent +}; +function bound01(n, max) { + if (isOnePointZero(n)) { + n = "100%"; + } + var isPercent = isPercentage(n); + n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n))); + if (isPercent) { + n = parseInt(String(n * max), 10) / 100; + } + if (Math.abs(n - max) < 1e-6) { + return 1; + } + if (max === 360) { + n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max)); + } else { + n = n % max / parseFloat(String(max)); + } + return n; +} +function clamp01(val) { + return Math.min(1, Math.max(0, val)); +} +function isOnePointZero(n) { + return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1; +} +function isPercentage(n) { + return typeof n === "string" && n.indexOf("%") !== -1; +} +function boundAlpha(a) { + a = parseFloat(a); + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + return a; +} +function convertToPercentage(n) { + if (n <= 1) { + return "".concat(Number(n) * 100, "%"); + } + return n; +} +function pad2(c) { + return c.length === 1 ? "0" + c : String(c); +} +function rgbToRgb(r, g, b) { + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} +function rgbToHsl(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h = 0; + var s = 0; + var l = (max + min) / 2; + if (max === min) { + s = 0; + h = 0; + } else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; + } + return { h, s, l }; +} +function hue2rgb(p, q, t) { + if (t < 0) { + t += 1; + } + if (t > 1) { + t -= 1; + } + if (t < 1 / 6) { + return p + (q - p) * (6 * t); + } + if (t < 1 / 2) { + return q; + } + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; + } + return p; +} +function hslToRgb(h, s, l) { + var r; + var g; + var b; + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + if (s === 0) { + g = l; + b = l; + r = l; + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + return { r: r * 255, g: g * 255, b: b * 255 }; +} +function rgbToHsv(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h = 0; + var v = max; + var d = max - min; + var s = max === 0 ? 0 : d / max; + if (max === min) { + h = 0; + } else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; + } + return { h, s, v }; +} +function hsvToRgb(h, s, v) { + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + var i = Math.floor(h); + var f = h - i; + var p = v * (1 - s); + var q = v * (1 - f * s); + var t = v * (1 - (1 - f) * s); + var mod = i % 6; + var r = [v, q, p, p, t, v][mod]; + var g = [t, v, v, q, p, p][mod]; + var b = [p, p, t, v, v, q][mod]; + return { r: r * 255, g: g * 255, b: b * 255 }; +} +function rgbToHex(r, g, b, allow3Char) { + var hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)) + ]; + if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + return hex.join(""); +} +function rgbaToHex(r, g, b, a, allow4Char) { + var hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + } + return hex.join(""); +} +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +function convertHexToDecimal(h) { + return parseIntFromHex(h) / 255; +} +function parseIntFromHex(val) { + return parseInt(val, 16); +} +function numberInputToObject(color) { + return { + r: color >> 16, + g: (color & 65280) >> 8, + b: color & 255 + }; +} +var names = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#00ffff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000000", + blanchedalmond: "#ffebcd", + blue: "#0000ff", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#00ffff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgreen: "#006400", + darkgrey: "#a9a9a9", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#ff00ff", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + goldenrod: "#daa520", + gold: "#ffd700", + gray: "#808080", + green: "#008000", + greenyellow: "#adff2f", + grey: "#808080", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavenderblush: "#fff0f5", + lavender: "#e6e6fa", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgreen: "#90ee90", + lightgrey: "#d3d3d3", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#00ff00", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#ff00ff", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370db", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#db7093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + rebeccapurple: "#663399", + red: "#ff0000", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#ffffff", + whitesmoke: "#f5f5f5", + yellow: "#ffff00", + yellowgreen: "#9acd32" +}; +function inputToRGB(color) { + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format = false; + if (typeof color === "string") { + color = stringInputToObject(color); + } + if (typeof color === "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } + if (Object.prototype.hasOwnProperty.call(color, "a")) { + a = color.a; + } + } + a = boundAlpha(a); + return { + ok, + format: color.format || format, + r: Math.min(255, Math.max(rgb.r, 0)), + g: Math.min(255, Math.max(rgb.g, 0)), + b: Math.min(255, Math.max(rgb.b, 0)), + a + }; +} +var CSS_INTEGER = "[-\\+]?\\d+%?"; +var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; +var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")"); +var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?"); +var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?"); +var matchers = { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ +}; +function stringInputToObject(color) { + color = color.trim().toLowerCase(); + if (color.length === 0) { + return false; + } + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } else if (color === "transparent") { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + var match = matchers.rgb.exec(color); + if (match) { + return { r: match[1], g: match[2], b: match[3] }; + } + match = matchers.rgba.exec(color); + if (match) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + match = matchers.hsl.exec(color); + if (match) { + return { h: match[1], s: match[2], l: match[3] }; + } + match = matchers.hsla.exec(color); + if (match) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + match = matchers.hsv.exec(color); + if (match) { + return { h: match[1], s: match[2], v: match[3] }; + } + match = matchers.hsva.exec(color); + if (match) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + match = matchers.hex8.exec(color); + if (match) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + match = matchers.hex6.exec(color); + if (match) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + match = matchers.hex4.exec(color); + if (match) { + return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + a: convertHexToDecimal(match[4] + match[4]), + format: named ? "name" : "hex8" + }; + } + match = matchers.hex3.exec(color); + if (match) { + return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + format: named ? "name" : "hex" + }; + } + return false; +} +function isValidCSSUnit(color) { + return Boolean(matchers.CSS_UNIT.exec(String(color))); +} +var TinyColor = ( + /** @class */ + function() { + function TinyColor2(color, opts) { + if (color === void 0) { + color = ""; + } + if (opts === void 0) { + opts = {}; + } + var _a; + if (color instanceof TinyColor2) { + return color; + } + if (typeof color === "number") { + color = numberInputToObject(color); + } + this.originalInput = color; + var rgb = inputToRGB(color); + this.originalInput = color; + this.r = rgb.r; + this.g = rgb.g; + this.b = rgb.b; + this.a = rgb.a; + this.roundA = Math.round(100 * this.a) / 100; + this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format; + this.gradientType = opts.gradientType; + if (this.r < 1) { + this.r = Math.round(this.r); + } + if (this.g < 1) { + this.g = Math.round(this.g); + } + if (this.b < 1) { + this.b = Math.round(this.b); + } + this.isValid = rgb.ok; + } + TinyColor2.prototype.isDark = function() { + return this.getBrightness() < 128; + }; + TinyColor2.prototype.isLight = function() { + return !this.isDark(); + }; + TinyColor2.prototype.getBrightness = function() { + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3; + }; + TinyColor2.prototype.getLuminance = function() { + var rgb = this.toRgb(); + var R; + var G; + var B; + var RsRGB = rgb.r / 255; + var GsRGB = rgb.g / 255; + var BsRGB = rgb.b / 255; + if (RsRGB <= 0.03928) { + R = RsRGB / 12.92; + } else { + R = Math.pow((RsRGB + 0.055) / 1.055, 2.4); + } + if (GsRGB <= 0.03928) { + G = GsRGB / 12.92; + } else { + G = Math.pow((GsRGB + 0.055) / 1.055, 2.4); + } + if (BsRGB <= 0.03928) { + B = BsRGB / 12.92; + } else { + B = Math.pow((BsRGB + 0.055) / 1.055, 2.4); + } + return 0.2126 * R + 0.7152 * G + 0.0722 * B; + }; + TinyColor2.prototype.getAlpha = function() { + return this.a; + }; + TinyColor2.prototype.setAlpha = function(alpha) { + this.a = boundAlpha(alpha); + this.roundA = Math.round(100 * this.a) / 100; + return this; + }; + TinyColor2.prototype.isMonochrome = function() { + var s = this.toHsl().s; + return s === 0; + }; + TinyColor2.prototype.toHsv = function() { + var hsv = rgbToHsv(this.r, this.g, this.b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a }; + }; + TinyColor2.prototype.toHsvString = function() { + var hsv = rgbToHsv(this.r, this.g, this.b); + var h = Math.round(hsv.h * 360); + var s = Math.round(hsv.s * 100); + var v = Math.round(hsv.v * 100); + return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")"); + }; + TinyColor2.prototype.toHsl = function() { + var hsl = rgbToHsl(this.r, this.g, this.b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a }; + }; + TinyColor2.prototype.toHslString = function() { + var hsl = rgbToHsl(this.r, this.g, this.b); + var h = Math.round(hsl.h * 360); + var s = Math.round(hsl.s * 100); + var l = Math.round(hsl.l * 100); + return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")"); + }; + TinyColor2.prototype.toHex = function(allow3Char) { + if (allow3Char === void 0) { + allow3Char = false; + } + return rgbToHex(this.r, this.g, this.b, allow3Char); + }; + TinyColor2.prototype.toHexString = function(allow3Char) { + if (allow3Char === void 0) { + allow3Char = false; + } + return "#" + this.toHex(allow3Char); + }; + TinyColor2.prototype.toHex8 = function(allow4Char) { + if (allow4Char === void 0) { + allow4Char = false; + } + return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char); + }; + TinyColor2.prototype.toHex8String = function(allow4Char) { + if (allow4Char === void 0) { + allow4Char = false; + } + return "#" + this.toHex8(allow4Char); + }; + TinyColor2.prototype.toHexShortString = function(allowShortChar) { + if (allowShortChar === void 0) { + allowShortChar = false; + } + return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar); + }; + TinyColor2.prototype.toRgb = function() { + return { + r: Math.round(this.r), + g: Math.round(this.g), + b: Math.round(this.b), + a: this.a + }; + }; + TinyColor2.prototype.toRgbString = function() { + var r = Math.round(this.r); + var g = Math.round(this.g); + var b = Math.round(this.b); + return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")"); + }; + TinyColor2.prototype.toPercentageRgb = function() { + var fmt = function(x) { + return "".concat(Math.round(bound01(x, 255) * 100), "%"); + }; + return { + r: fmt(this.r), + g: fmt(this.g), + b: fmt(this.b), + a: this.a + }; + }; + TinyColor2.prototype.toPercentageRgbString = function() { + var rnd = function(x) { + return Math.round(bound01(x, 255) * 100); + }; + return this.a === 1 ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)") : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")"); + }; + TinyColor2.prototype.toName = function() { + if (this.a === 0) { + return "transparent"; + } + if (this.a < 1) { + return false; + } + var hex = "#" + rgbToHex(this.r, this.g, this.b, false); + for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) { + var _b = _a[_i], key = _b[0], value = _b[1]; + if (hex === value) { + return key; + } + } + return false; + }; + TinyColor2.prototype.toString = function(format) { + var formatSet = Boolean(format); + format = format !== null && format !== void 0 ? format : this.format; + var formattedString = false; + var hasAlpha = this.a < 1 && this.a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith("hex") || format === "name"); + if (needsAlphaFormat) { + if (format === "name" && this.a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex4") { + formattedString = this.toHex8String(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + return formattedString || this.toHexString(); + }; + TinyColor2.prototype.toNumber = function() { + return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b); + }; + TinyColor2.prototype.clone = function() { + return new TinyColor2(this.toString()); + }; + TinyColor2.prototype.lighten = function(amount) { + if (amount === void 0) { + amount = 10; + } + var hsl = this.toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor2(hsl); + }; + TinyColor2.prototype.brighten = function(amount) { + if (amount === void 0) { + amount = 10; + } + var rgb = this.toRgb(); + rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100)))); + rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100)))); + rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100)))); + return new TinyColor2(rgb); + }; + TinyColor2.prototype.darken = function(amount) { + if (amount === void 0) { + amount = 10; + } + var hsl = this.toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor2(hsl); + }; + TinyColor2.prototype.tint = function(amount) { + if (amount === void 0) { + amount = 10; + } + return this.mix("white", amount); + }; + TinyColor2.prototype.shade = function(amount) { + if (amount === void 0) { + amount = 10; + } + return this.mix("black", amount); + }; + TinyColor2.prototype.desaturate = function(amount) { + if (amount === void 0) { + amount = 10; + } + var hsl = this.toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor2(hsl); + }; + TinyColor2.prototype.saturate = function(amount) { + if (amount === void 0) { + amount = 10; + } + var hsl = this.toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor2(hsl); + }; + TinyColor2.prototype.greyscale = function() { + return this.desaturate(100); + }; + TinyColor2.prototype.spin = function(amount) { + var hsl = this.toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return new TinyColor2(hsl); + }; + TinyColor2.prototype.mix = function(color, amount) { + if (amount === void 0) { + amount = 50; + } + var rgb1 = this.toRgb(); + var rgb2 = new TinyColor2(color).toRgb(); + var p = amount / 100; + var rgba = { + r: (rgb2.r - rgb1.r) * p + rgb1.r, + g: (rgb2.g - rgb1.g) * p + rgb1.g, + b: (rgb2.b - rgb1.b) * p + rgb1.b, + a: (rgb2.a - rgb1.a) * p + rgb1.a + }; + return new TinyColor2(rgba); + }; + TinyColor2.prototype.analogous = function(results, slices) { + if (results === void 0) { + results = 6; + } + if (slices === void 0) { + slices = 30; + } + var hsl = this.toHsl(); + var part = 360 / slices; + var ret = [this]; + for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(new TinyColor2(hsl)); + } + return ret; + }; + TinyColor2.prototype.complement = function() { + var hsl = this.toHsl(); + hsl.h = (hsl.h + 180) % 360; + return new TinyColor2(hsl); + }; + TinyColor2.prototype.monochromatic = function(results) { + if (results === void 0) { + results = 6; + } + var hsv = this.toHsv(); + var h = hsv.h; + var s = hsv.s; + var v = hsv.v; + var res = []; + var modification = 1 / results; + while (results--) { + res.push(new TinyColor2({ h, s, v })); + v = (v + modification) % 1; + } + return res; + }; + TinyColor2.prototype.splitcomplement = function() { + var hsl = this.toHsl(); + var h = hsl.h; + return [ + this, + new TinyColor2({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }), + new TinyColor2({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }) + ]; + }; + TinyColor2.prototype.onBackground = function(background) { + var fg = this.toRgb(); + var bg = new TinyColor2(background).toRgb(); + var alpha = fg.a + bg.a * (1 - fg.a); + return new TinyColor2({ + r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha, + g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha, + b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha, + a: alpha + }); + }; + TinyColor2.prototype.triad = function() { + return this.polyad(3); + }; + TinyColor2.prototype.tetrad = function() { + return this.polyad(4); + }; + TinyColor2.prototype.polyad = function(n) { + var hsl = this.toHsl(); + var h = hsl.h; + var result = [this]; + var increment = 360 / n; + for (var i = 1; i < n; i++) { + result.push(new TinyColor2({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l })); + } + return result; + }; + TinyColor2.prototype.equals = function(color) { + return this.toRgbString() === new TinyColor2(color).toRgbString(); + }; + return TinyColor2; + }() +); +function darken(color, amount = 20) { + return color.mix("#141414", amount).toString(); +} +function useButtonCustomStyle(props) { + const _disabled = useFormDisabled(); + const ns = useNamespace("button"); + return computed(() => { + let styles = {}; + let buttonColor = props.color; + if (buttonColor) { + const match = buttonColor.match(/var\((.*?)\)/); + if (match) { + buttonColor = (void 0).getComputedStyle((void 0).document.documentElement).getPropertyValue(match[1]); + } + const color = new TinyColor(buttonColor); + const activeBgColor = props.dark ? color.tint(20).toString() : darken(color, 20); + if (props.plain) { + styles = ns.cssVarBlock({ + "bg-color": props.dark ? darken(color, 90) : color.tint(90).toString(), + "text-color": buttonColor, + "border-color": props.dark ? darken(color, 50) : color.tint(50).toString(), + "hover-text-color": `var(${ns.cssVarName("color-white")})`, + "hover-bg-color": buttonColor, + "hover-border-color": buttonColor, + "active-bg-color": activeBgColor, + "active-text-color": `var(${ns.cssVarName("color-white")})`, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + styles[ns.cssVarBlockName("disabled-bg-color")] = props.dark ? darken(color, 90) : color.tint(90).toString(); + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-border-color")] = props.dark ? darken(color, 80) : color.tint(80).toString(); + } + } else { + const hoverBgColor = props.dark ? darken(color, 30) : color.tint(30).toString(); + const textColor = color.isDark() ? `var(${ns.cssVarName("color-white")})` : `var(${ns.cssVarName("color-black")})`; + styles = ns.cssVarBlock({ + "bg-color": buttonColor, + "text-color": textColor, + "border-color": buttonColor, + "hover-bg-color": hoverBgColor, + "hover-text-color": textColor, + "hover-border-color": hoverBgColor, + "active-bg-color": activeBgColor, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + const disabledButtonColor = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-bg-color")] = disabledButtonColor; + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? "rgba(255, 255, 255, 0.5)" : `var(${ns.cssVarName("color-white")})`; + styles[ns.cssVarBlockName("disabled-border-color")] = disabledButtonColor; + } + } + } + return styles; + }); +} +const __default__$1 = defineComponent({ + name: "ElButton" +}); +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + ...__default__$1, + props: buttonProps, + emits: buttonEmits, + setup(__props, { expose, emit }) { + const props = __props; + const buttonStyle = useButtonCustomStyle(props); + const ns = useNamespace("button"); + const { _ref, _size, _type, _disabled, _props, shouldAddSpace, handleClick } = useButton(props, emit); + const buttonKls = computed(() => [ + ns.b(), + ns.m(_type.value), + ns.m(_size.value), + ns.is("disabled", _disabled.value), + ns.is("loading", props.loading), + ns.is("plain", props.plain), + ns.is("round", props.round), + ns.is("circle", props.circle), + ns.is("text", props.text), + ns.is("link", props.link), + ns.is("has-bg", props.bg) + ]); + expose({ + ref: _ref, + size: _size, + type: _type, + disabled: _disabled, + shouldAddSpace + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({ + ref_key: "_ref", + ref: _ref + }, unref(_props), { + class: unref(buttonKls), + style: unref(buttonStyle), + onClick: unref(handleClick) + }), { + default: withCtx(() => [ + _ctx.loading ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + _ctx.$slots.loading ? renderSlot(_ctx.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(unref(ElIcon), { + key: 1, + class: normalizeClass(unref(ns).is("loading")) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.loadingIcon))) + ]), + _: 1 + }, 8, ["class"])) + ], 64)) : _ctx.icon || _ctx.$slots.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 1 }, { + default: withCtx(() => [ + _ctx.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon), { key: 0 })) : renderSlot(_ctx.$slots, "icon", { key: 1 }) + ]), + _: 3 + })) : createCommentVNode("v-if", true), + _ctx.$slots.default ? (openBlock(), createElementBlock("span", { + key: 2, + class: normalizeClass({ [unref(ns).em("text", "expand")]: unref(shouldAddSpace) }) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2)) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 16, ["class", "style", "onClick"]); + }; + } +}); +var Button = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "button.vue"]]); +const buttonGroupProps = { + size: buttonProps.size, + type: buttonProps.type +}; +const __default__ = defineComponent({ + name: "ElButtonGroup" +}); +const _sfc_main = /* @__PURE__ */ defineComponent({ + ...__default__, + props: buttonGroupProps, + setup(__props) { + const props = __props; + provide(buttonGroupContextKey, reactive({ + size: toRef(props, "size"), + type: toRef(props, "type") + })); + const ns = useNamespace("button"); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass(unref(ns).b("group")) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); + }; + } +}); +var ButtonGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "button-group.vue"]]); +const ElButton = withInstall(Button, { + ButtonGroup +}); +withNoopInstall(ButtonGroup); + +export { ElTooltip as E, TOOLTIP_INJECTION_KEY as T, useTooltipTriggerProps as a, ElInput as b, ElButton as c, useAriaProps as d, useFormItem as e, useFocusController as f, useFormSize as g, useAttrs as h, flatten as i, isLength as j, arrayPush as k, useResizeObserver as l, useEventListener as m, useFormDisabled as n, onClickOutside as o, unrefElement as p, isArguments as q, isIndex as r, useTooltipContentProps as u }; +//# sourceMappingURL=el-button-BScT5ZwZ.mjs.map diff --git a/.output/server/chunks/build/el-button-BScT5ZwZ.mjs.map b/.output/server/chunks/build/el-button-BScT5ZwZ.mjs.map new file mode 100644 index 0000000..fdc5ae7 --- /dev/null +++ b/.output/server/chunks/build/el-button-BScT5ZwZ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"el-button-BScT5ZwZ.mjs","sources":["../../../../node_modules/.store/@vueuse+core@9.13.0/node_modules/@vueuse/core/index.mjs","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/identity.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_apply.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/constant.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseSetToString.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isLength.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isFlattenable.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseFlatten.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/flatten.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_flatRest.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseHasIn.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_hasPath.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseSet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_basePickBy.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_basePick.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/pick.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/popper.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/popper2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/arrow.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/arrow2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/trigger2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-forward-ref/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/slot/src/only-child.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/trigger.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-aria/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/content.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/composables/use-focus-trap.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-popper/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/composables/use-content.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/composables/use-content-dom.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/form/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/src/content2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/popper/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-timeout/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-delayed-toggle/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/content.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/trigger.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-model-toggle/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/tooltip.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/dom/event.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/trigger2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-popper-container/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/content2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/src/tooltip2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/tooltip/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/input/src/input.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-attrs/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/form/src/hooks/use-form-item.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-prop/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/form/src/hooks/use-form-common-props.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-focus-controller/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/i18n.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-composition/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-cursor/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/input/src/input2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/input/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/use-button.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/button.mjs","../../../../node_modules/.store/@ctrl+tinycolor@3.6.1/node_modules/@ctrl/tinycolor/dist/module/util.js","../../../../node_modules/.store/@ctrl+tinycolor@3.6.1/node_modules/@ctrl/tinycolor/dist/module/conversion.js","../../../../node_modules/.store/@ctrl+tinycolor@3.6.1/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../../../../node_modules/.store/@ctrl+tinycolor@3.6.1/node_modules/@ctrl/tinycolor/dist/module/format-input.js","../../../../node_modules/.store/@ctrl+tinycolor@3.6.1/node_modules/@ctrl/tinycolor/dist/module/index.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/button-custom.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/button2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/button-group.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/src/button-group2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/button/index.mjs"],"sourcesContent":null,"names":["events","window","identity","MAX_SAFE_INTEGER","objectProto","hasOwnProperty","Symbol","__default__","_sfc_main","NOOP","isObject","isFunction","isArray","isString","useAttrs","useAttrs$1","View","Hide","CircleClose","Loading","TinyColor"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83]} \ No newline at end of file diff --git a/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs b/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs new file mode 100644 index 0000000..f299aef --- /dev/null +++ b/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs @@ -0,0 +1,4 @@ +const app_vue_vue_type_style_index_0_lang = "*{box-sizing:border-box;font-family:PingFangSC-Regular,PingFang SC,sans-serif;margin:0;padding:0}.flexflex{display:flex}.flex1{flex:1}.flexcenter{justify-content:center}.flexacenter,.flexcenter{align-items:center;display:flex}.flexjcenter{display:flex;justify-content:center}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body{background-color:#eef2f5}a{text-decoration:none!important}::-webkit-scrollbar{background-color:transparent;width:8px}::-webkit-scrollbar-thumb{background-color:#d7d7d7;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:#666}*{scrollbar-color:#d7d7d7 transparent;scrollbar-width:thin}::-moz-scrollbar-thumb{background-color:#d7d7d7}::-moz-scrollbar-thumb:hover{background-color:#666}header.page-header .box .tab-list .item.pitch{color:#72db86!important}header.page-header .box .tab-list .item.pitch:after{background-color:#72db86!important}.avatar-box{background-color:#f4f8ff;border:1px solid #dce0ea;border-radius:10px;flex-direction:column;height:101px;z-index:100}.avatar-box .avatar-mask{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%;z-index:-1}.avatar-box .avatar-item{color:#333;cursor:pointer;font-size:14px;height:50px}.avatar-box .avatar-item:not(:last-of-type){border-bottom:1px dotted #d7d7d7}.avatar-box .avatar-icon{height:16px;margin-right:5px;width:16px}.el-popover.el-popper.avatar-box-popper{border:none;border-radius:10px;min-width:140px;padding:0}"; + +export { app_vue_vue_type_style_index_0_lang as a }; +//# sourceMappingURL=entry-styles-1.mjs-Cbw30BTB.mjs.map diff --git a/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs.map b/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs.map new file mode 100644 index 0000000..13ba5b9 --- /dev/null +++ b/.output/server/chunks/build/entry-styles-1.mjs-Cbw30BTB.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"entry-styles-1.mjs-Cbw30BTB.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/entry-styles.Djg_djNw.mjs b/.output/server/chunks/build/entry-styles.Djg_djNw.mjs new file mode 100644 index 0000000..21bdc93 --- /dev/null +++ b/.output/server/chunks/build/entry-styles.Djg_djNw.mjs @@ -0,0 +1,6 @@ +import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-1.mjs-Cbw30BTB.mjs'; + +const entryStyles_Djg_djNw = [app_vue_vue_type_style_index_0_lang]; + +export { entryStyles_Djg_djNw as default }; +//# sourceMappingURL=entry-styles.Djg_djNw.mjs.map diff --git a/.output/server/chunks/build/entry-styles.Djg_djNw.mjs.map b/.output/server/chunks/build/entry-styles.Djg_djNw.mjs.map new file mode 100644 index 0000000..56479df --- /dev/null +++ b/.output/server/chunks/build/entry-styles.Djg_djNw.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"entry-styles.Djg_djNw.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles.Djg_djNw.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,6BAAe,CAACA,mCAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-404-DfKhgA-G.mjs b/.output/server/chunks/build/error-404-DfKhgA-G.mjs new file mode 100644 index 0000000..4b7607e --- /dev/null +++ b/.output/server/chunks/build/error-404-DfKhgA-G.mjs @@ -0,0 +1,370 @@ +import { mergeProps, withCtx, createTextVNode, toDisplayString, defineComponent, ref, h, resolveComponent, computed, useSSRContext } from 'vue'; +import { u as useRouter, a as useNuxtApp, p as parseQuery, h as hasProtocol, r as resolveRouteObject, j as joinURL, b as useRuntimeConfig, n as navigateTo, w as withTrailingSlash, c as withoutTrailingSlash, d as nuxtLinkDefaults } from './server.mjs'; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer'; +import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'devalue'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'vue-router'; + +const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); +// @__NO_SIDE_EFFECTS__ +function defineNuxtLink(options) { + const componentName = options.componentName || "NuxtLink"; + function isHashLinkWithoutHashMode(link) { + return typeof link === "string" && link.startsWith("#"); + } + function resolveTrailingSlashBehavior(to, resolve) { + if (!to || options.trailingSlash !== "append" && options.trailingSlash !== "remove") { + return to; + } + if (typeof to === "string") { + return applyTrailingSlashBehavior(to, options.trailingSlash); + } + const path = "path" in to && to.path !== void 0 ? to.path : resolve(to).path; + const resolvedPath = { + ...to, + name: void 0, + // named routes would otherwise always override trailing slash behavior + path: applyTrailingSlashBehavior(path, options.trailingSlash) + }; + return resolvedPath; + } + function useNuxtLink(props) { + var _a, _b, _c; + const router = useRouter(); + const config = useRuntimeConfig(); + const hasTarget = computed(() => !!props.target && props.target !== "_self"); + const isAbsoluteUrl = computed(() => { + const path = props.to || props.href || ""; + return typeof path === "string" && hasProtocol(path, { acceptRelative: true }); + }); + const builtinRouterLink = resolveComponent("RouterLink"); + const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== "string" ? builtinRouterLink.useLink : void 0; + const isExternal = computed(() => { + if (props.external) { + return true; + } + const path = props.to || props.href || ""; + if (typeof path === "object") { + return false; + } + return path === "" || isAbsoluteUrl.value; + }); + const to = computed(() => { + const path = props.to || props.href || ""; + if (isExternal.value) { + return path; + } + return resolveTrailingSlashBehavior(path, router.resolve); + }); + const link = isExternal.value ? void 0 : useBuiltinLink == null ? void 0 : useBuiltinLink({ ...props, to }); + const href = computed(() => { + var _a3; + var _a2; + if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) { + return to.value; + } + if (isExternal.value) { + const path = typeof to.value === "object" && "path" in to.value ? resolveRouteObject(to.value) : to.value; + const href2 = typeof path === "object" ? router.resolve(path).href : path; + return resolveTrailingSlashBehavior( + href2, + router.resolve + /* will not be called */ + ); + } + if (typeof to.value === "object") { + return (_a3 = (_a2 = router.resolve(to.value)) == null ? void 0 : _a2.href) != null ? _a3 : null; + } + return resolveTrailingSlashBehavior( + joinURL(config.app.baseURL, to.value), + router.resolve + /* will not be called */ + ); + }); + return { + to, + hasTarget, + isAbsoluteUrl, + isExternal, + // + href, + isActive: (_a = link == null ? void 0 : link.isActive) != null ? _a : computed(() => to.value === router.currentRoute.value.path), + isExactActive: (_b = link == null ? void 0 : link.isExactActive) != null ? _b : computed(() => to.value === router.currentRoute.value.path), + route: (_c = link == null ? void 0 : link.route) != null ? _c : computed(() => router.resolve(to.value)), + async navigate() { + await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value }); + } + }; + } + return defineComponent({ + name: componentName, + props: { + // Routing + to: { + type: [String, Object], + default: void 0, + required: false + }, + href: { + type: [String, Object], + default: void 0, + required: false + }, + // Attributes + target: { + type: String, + default: void 0, + required: false + }, + rel: { + type: String, + default: void 0, + required: false + }, + noRel: { + type: Boolean, + default: void 0, + required: false + }, + // Prefetching + prefetch: { + type: Boolean, + default: void 0, + required: false + }, + prefetchOn: { + type: [String, Object], + default: void 0, + required: false + }, + noPrefetch: { + type: Boolean, + default: void 0, + required: false + }, + // Styling + activeClass: { + type: String, + default: void 0, + required: false + }, + exactActiveClass: { + type: String, + default: void 0, + required: false + }, + prefetchedClass: { + type: String, + default: void 0, + required: false + }, + // Vue Router's `<RouterLink>` additional props + replace: { + type: Boolean, + default: void 0, + required: false + }, + ariaCurrentValue: { + type: String, + default: void 0, + required: false + }, + // Edge cases handling + external: { + type: Boolean, + default: void 0, + required: false + }, + // Slot API + custom: { + type: Boolean, + default: void 0, + required: false + } + }, + useLink: useNuxtLink, + setup(props, { slots }) { + useRouter(); + const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props); + ref(false); + const el = void 0; + const elRef = void 0; + async function prefetch(nuxtApp = useNuxtApp()) { + { + return; + } + } + return () => { + var _a; + if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) { + const routerLinkProps = { + ref: elRef, + to: to.value, + activeClass: props.activeClass || options.activeClass, + exactActiveClass: props.exactActiveClass || options.exactActiveClass, + replace: props.replace, + ariaCurrentValue: props.ariaCurrentValue, + custom: props.custom + }; + if (!props.custom) { + routerLinkProps.rel = props.rel || void 0; + } + return h( + resolveComponent("RouterLink"), + routerLinkProps, + slots.default + ); + } + const target = props.target || null; + const rel = firstNonUndefined( + // converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`) + props.noRel ? "" : props.rel, + options.externalRelAttribute, + /* + * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab. + * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy. + */ + isAbsoluteUrl.value || hasTarget.value ? "noopener noreferrer" : "" + ) || null; + if (props.custom) { + if (!slots.default) { + return null; + } + return slots.default({ + href: href.value, + navigate, + prefetch, + get route() { + if (!href.value) { + return void 0; + } + const url = new URL(href.value, "http://localhost"); + return { + path: url.pathname, + fullPath: url.pathname, + get query() { + return parseQuery(url.search); + }, + hash: url.hash, + params: {}, + name: void 0, + matched: [], + redirectedFrom: void 0, + meta: {}, + href: href.value + }; + }, + rel, + target, + isExternal: isExternal.value || hasTarget.value, + isActive: false, + isExactActive: false + }); + } + return h("a", { ref: el, href: href.value || null, rel, target }, (_a = slots.default) == null ? void 0 : _a.call(slots)); + }; + } + }); +} +const __nuxt_component_0 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults); +function applyTrailingSlashBehavior(to, trailingSlash) { + const normalizeFn = trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash; + const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith("http"); + if (hasProtocolDifferentFromHttp) { + return to; + } + return normalizeFn(to, true); +} +const _sfc_main = { + __name: "error-404", + __ssrInlineRender: true, + props: { + appName: { + type: String, + default: "Nuxt" + }, + version: { + type: String, + default: "" + }, + statusCode: { + type: Number, + default: 404 + }, + statusMessage: { + type: String, + default: "Not Found" + }, + description: { + type: String, + default: "Sorry, the page you are looking for could not be found." + }, + backHome: { + type: String, + default: "Go back home" + } + }, + setup(__props) { + const props = __props; + useHead({ + title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`, + script: [ + { + children: `!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();` + } + ], + style: [ + { + children: `*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }` + } + ] + }); + return (_ctx, _push, _parent, _attrs) => { + const _component_NuxtLink = __nuxt_component_0; + _push(`<div${ssrRenderAttrs(mergeProps({ class: "antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black" }, _attrs))} data-v-3d4207d3><div class="fixed left-0 right-0 spotlight z-10" data-v-3d4207d3></div><div class="max-w-520px text-center z-20" data-v-3d4207d3><h1 class="font-medium mb-8 sm:text-10xl text-8xl" data-v-3d4207d3>${ssrInterpolate(__props.statusCode)}</h1><p class="font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl" data-v-3d4207d3>${ssrInterpolate(__props.description)}</p><div class="flex items-center justify-center w-full" data-v-3d4207d3>`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/", + class: "cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(`${ssrInterpolate(__props.backHome)}`); + } else { + return [ + createTextVNode(toDisplayString(__props.backHome), 1) + ]; + } + }), + _: 1 + }, _parent)); + _push(`</div></div></div>`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3d4207d3"]]); + +export { error404 as default }; +//# sourceMappingURL=error-404-DfKhgA-G.mjs.map diff --git a/.output/server/chunks/build/error-404-DfKhgA-G.mjs.map b/.output/server/chunks/build/error-404-DfKhgA-G.mjs.map new file mode 100644 index 0000000..05bc68f --- /dev/null +++ b/.output/server/chunks/build/error-404-DfKhgA-G.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-DfKhgA-G.mjs","sources":["../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/nuxt-link.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":null,"names":["_a"],"mappings":"","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs b/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs new file mode 100644 index 0000000..e0c7bc0 --- /dev/null +++ b/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs @@ -0,0 +1,4 @@ +const error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang = '.spotlight[data-v-3d4207d3]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-3d4207d3]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-3d4207d3]{background-color:#ffffff4d}.gradient-border[data-v-3d4207d3]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-3d4207d3]{background-color:#1414144d}.gradient-border[data-v-3d4207d3]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-3d4207d3]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-3d4207d3]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-3d4207d3]{position:fixed}.left-0[data-v-3d4207d3]{left:0}.right-0[data-v-3d4207d3]{right:0}.z-10[data-v-3d4207d3]{z-index:10}.z-20[data-v-3d4207d3]{z-index:20}.grid[data-v-3d4207d3]{display:grid}.mb-16[data-v-3d4207d3]{margin-bottom:4rem}.mb-8[data-v-3d4207d3]{margin-bottom:2rem}.max-w-520px[data-v-3d4207d3]{max-width:520px}.min-h-screen[data-v-3d4207d3]{min-height:100vh}.w-full[data-v-3d4207d3]{width:100%}.flex[data-v-3d4207d3]{display:flex}.cursor-pointer[data-v-3d4207d3]{cursor:pointer}.place-content-center[data-v-3d4207d3]{place-content:center}.items-center[data-v-3d4207d3]{align-items:center}.justify-center[data-v-3d4207d3]{justify-content:center}.overflow-hidden[data-v-3d4207d3]{overflow:hidden}.bg-white[data-v-3d4207d3]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-3d4207d3]{padding-left:1rem;padding-right:1rem}.px-8[data-v-3d4207d3]{padding-left:2rem;padding-right:2rem}.py-2[data-v-3d4207d3]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-3d4207d3]{text-align:center}.text-8xl[data-v-3d4207d3]{font-size:6rem;line-height:1}.text-xl[data-v-3d4207d3]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-3d4207d3]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-3d4207d3]{font-weight:300}.font-medium[data-v-3d4207d3]{font-weight:500}.leading-tight[data-v-3d4207d3]{line-height:1.25}.font-sans[data-v-3d4207d3]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-3d4207d3]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-3d4207d3]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-3d4207d3]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-3d4207d3]{padding-left:0;padding-right:0}.sm\\:px-6[data-v-3d4207d3]{padding-left:1.5rem;padding-right:1.5rem}.sm\\:py-3[data-v-3d4207d3]{padding-bottom:.75rem;padding-top:.75rem}.sm\\:text-4xl[data-v-3d4207d3]{font-size:2.25rem;line-height:2.5rem}.sm\\:text-xl[data-v-3d4207d3]{font-size:1.25rem;line-height:1.75rem}}'; + +export { error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang as e }; +//# sourceMappingURL=error-404-styles-1.mjs-BVH-2AVy.mjs.map diff --git a/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs.map b/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs.map new file mode 100644 index 0000000..fc5c9de --- /dev/null +++ b/.output/server/chunks/build/error-404-styles-1.mjs-BVH-2AVy.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-styles-1.mjs-BVH-2AVy.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs b/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs new file mode 100644 index 0000000..b6b12e7 --- /dev/null +++ b/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs @@ -0,0 +1,6 @@ +import { e as error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang } from './error-404-styles-1.mjs-BVH-2AVy.mjs'; + +const error404Styles_BPUCN93s = [error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang, error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang]; + +export { error404Styles_BPUCN93s as default }; +//# sourceMappingURL=error-404-styles.BPUCN93s.mjs.map diff --git a/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs.map b/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs.map new file mode 100644 index 0000000..1b7232a --- /dev/null +++ b/.output/server/chunks/build/error-404-styles.BPUCN93s.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-styles.BPUCN93s.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-styles.BPUCN93s.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,gCAAe,CAACA,wDAAO,EAAEC,wDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs b/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs new file mode 100644 index 0000000..e48a392 --- /dev/null +++ b/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs @@ -0,0 +1,6 @@ +import { e as error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang } from './error-404-styles-1.mjs-BVH-2AVy.mjs'; + +const error404Styles_DgVKLL0h = [error404_vue_vue_type_style_index_0_scoped_3d4207d3_lang]; + +export { error404Styles_DgVKLL0h as default }; +//# sourceMappingURL=error-404-styles.DgVKLL0h.mjs.map diff --git a/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs.map b/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs.map new file mode 100644 index 0000000..97b519e --- /dev/null +++ b/.output/server/chunks/build/error-404-styles.DgVKLL0h.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-styles.DgVKLL0h.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-styles.DgVKLL0h.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,gCAAe,CAACA,wDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-500-BkGeOzF0.mjs b/.output/server/chunks/build/error-500-BkGeOzF0.mjs new file mode 100644 index 0000000..7f1b001 --- /dev/null +++ b/.output/server/chunks/build/error-500-BkGeOzF0.mjs @@ -0,0 +1,79 @@ +import { mergeProps, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer'; +import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import './server.mjs'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'devalue'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'vue-router'; + +const _sfc_main = { + __name: "error-500", + __ssrInlineRender: true, + props: { + appName: { + type: String, + default: "Nuxt" + }, + version: { + type: String, + default: "" + }, + statusCode: { + type: Number, + default: 500 + }, + statusMessage: { + type: String, + default: "Server error" + }, + description: { + type: String, + default: "This page is temporarily unavailable." + } + }, + setup(__props) { + const props = __props; + useHead({ + title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`, + script: [ + { + children: `!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();` + } + ], + style: [ + { + children: `*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }` + } + ] + }); + return (_ctx, _push, _parent, _attrs) => { + _push(`<div${ssrRenderAttrs(mergeProps({ class: "antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black" }, _attrs))} data-v-fd2e3e85><div class="-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight" data-v-fd2e3e85></div><div class="max-w-520px text-center" data-v-fd2e3e85><h1 class="font-medium mb-8 sm:text-10xl text-8xl" data-v-fd2e3e85>${ssrInterpolate(__props.statusCode)}</h1><p class="font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl" data-v-fd2e3e85>${ssrInterpolate(__props.description)}</p></div></div>`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fd2e3e85"]]); + +export { error500 as default }; +//# sourceMappingURL=error-500-BkGeOzF0.mjs.map diff --git a/.output/server/chunks/build/error-500-BkGeOzF0.mjs.map b/.output/server/chunks/build/error-500-BkGeOzF0.mjs.map new file mode 100644 index 0000000..824193d --- /dev/null +++ b/.output/server/chunks/build/error-500-BkGeOzF0.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500-BkGeOzF0.mjs","sources":["../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue"],"sourcesContent":null,"names":[],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs b/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs new file mode 100644 index 0000000..43cda95 --- /dev/null +++ b/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs @@ -0,0 +1,4 @@ +const error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang = ".spotlight[data-v-fd2e3e85]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-fd2e3e85]{position:fixed}.-bottom-1\\/2[data-v-fd2e3e85]{bottom:-50%}.left-0[data-v-fd2e3e85]{left:0}.right-0[data-v-fd2e3e85]{right:0}.grid[data-v-fd2e3e85]{display:grid}.mb-16[data-v-fd2e3e85]{margin-bottom:4rem}.mb-8[data-v-fd2e3e85]{margin-bottom:2rem}.h-1\\/2[data-v-fd2e3e85]{height:50%}.max-w-520px[data-v-fd2e3e85]{max-width:520px}.min-h-screen[data-v-fd2e3e85]{min-height:100vh}.place-content-center[data-v-fd2e3e85]{place-content:center}.overflow-hidden[data-v-fd2e3e85]{overflow:hidden}.bg-white[data-v-fd2e3e85]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-fd2e3e85]{padding-left:2rem;padding-right:2rem}.text-center[data-v-fd2e3e85]{text-align:center}.text-8xl[data-v-fd2e3e85]{font-size:6rem;line-height:1}.text-xl[data-v-fd2e3e85]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-fd2e3e85]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-fd2e3e85]{font-weight:300}.font-medium[data-v-fd2e3e85]{font-weight:500}.leading-tight[data-v-fd2e3e85]{line-height:1.25}.font-sans[data-v-fd2e3e85]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-fd2e3e85]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-fd2e3e85]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-fd2e3e85]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-fd2e3e85]{padding-left:0;padding-right:0}.sm\\:text-4xl[data-v-fd2e3e85]{font-size:2.25rem;line-height:2.5rem}}"; + +export { error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang as e }; +//# sourceMappingURL=error-500-styles-1.mjs-Diebn6od.mjs.map diff --git a/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs.map b/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs.map new file mode 100644 index 0000000..74a5513 --- /dev/null +++ b/.output/server/chunks/build/error-500-styles-1.mjs-Diebn6od.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500-styles-1.mjs-Diebn6od.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs b/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs new file mode 100644 index 0000000..205d98d --- /dev/null +++ b/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs @@ -0,0 +1,6 @@ +import { e as error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang } from './error-500-styles-1.mjs-Diebn6od.mjs'; + +const error500Styles_9rM1FDsT = [error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang, error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang]; + +export { error500Styles_9rM1FDsT as default }; +//# sourceMappingURL=error-500-styles.9rM1FDsT.mjs.map diff --git a/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs.map b/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs.map new file mode 100644 index 0000000..097ae8f --- /dev/null +++ b/.output/server/chunks/build/error-500-styles.9rM1FDsT.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500-styles.9rM1FDsT.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-styles.9rM1FDsT.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,gCAAe,CAACA,wDAAO,EAAEC,wDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs b/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs new file mode 100644 index 0000000..7194986 --- /dev/null +++ b/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs @@ -0,0 +1,6 @@ +import { e as error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang } from './error-500-styles-1.mjs-Diebn6od.mjs'; + +const error500Styles_CGAgx0q4 = [error500_vue_vue_type_style_index_0_scoped_fd2e3e85_lang]; + +export { error500Styles_CGAgx0q4 as default }; +//# sourceMappingURL=error-500-styles.CGAgx0q4.mjs.map diff --git a/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs.map b/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs.map new file mode 100644 index 0000000..3bf9fc4 --- /dev/null +++ b/.output/server/chunks/build/error-500-styles.CGAgx0q4.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500-styles.CGAgx0q4.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-styles.CGAgx0q4.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,gCAAe,CAACA,wDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs b/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs new file mode 100644 index 0000000..b0dd84b --- /dev/null +++ b/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs @@ -0,0 +1,8 @@ +function errorHandler({ error, redirect }) { + if (error) { + return redirect("/index.html"); + } +} + +export { errorHandler as default }; +//# sourceMappingURL=errorHandler-CbUFZXp5.mjs.map diff --git a/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs.map b/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs.map new file mode 100644 index 0000000..76ded54 --- /dev/null +++ b/.output/server/chunks/build/errorHandler-CbUFZXp5.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"errorHandler-CbUFZXp5.mjs","sources":["../../../../middleware/errorHandler.js"],"sourcesContent":null,"names":[],"mappings":"AACe,SAAA,YAAU,CAAA,EAAE,KAAO,EAAA,QAAA,EAAY,EAAA;AAC1C,EAAA,IAAI,KAAO,EAAA;AACP,IAAA,OAAO,SAAS,aAAa,CAAA;AAAA;AAErC;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-Bm6l4dY_.mjs b/.output/server/chunks/build/index-Bm6l4dY_.mjs new file mode 100644 index 0000000..0d6db32 --- /dev/null +++ b/.output/server/chunks/build/index-Bm6l4dY_.mjs @@ -0,0 +1,257 @@ +import { l as getListHttp, H as Head, T as Title, M as Meta, o as operateLikeHttp } from './config-provider-CA7emI64.mjs'; +import { E as ElMessage, _ as __nuxt_component_3, a as __nuxt_component_4, h as handleDate } from './top-head-BW7zJBtJ.mjs'; +import { inject, ref, watchEffect, nextTick, withAsyncContext, withCtx, createTextVNode, createVNode, unref, mergeProps, useSSRContext } from 'vue'; +import { ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderList, ssrRenderStyle, ssrRenderAttrs } from 'vue/server-renderer'; +import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import { f as useRoute, u as useRouter } from './server.mjs'; +import 'axios'; +import 'qs'; +import '../routes/renderer.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'node:http'; +import 'node:https'; +import 'node:fs'; +import 'node:url'; +import 'node:path'; +import 'devalue'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'vue-router'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:net'; + +const _imports_0$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter1211'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.2%200%201%200%200%200.2%200%200%201%200%200.2%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-12%20-72%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='20'%20height='20'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYxQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO6AaXgAAAIN0Uk5TABQcASQMVPr+dqvsLL7lisnxJ5VLa3fi+IzHclwlE5T3Pyrf/XUW4F+bmVBE1bZHbO8S+/zG9SENw3RXs+EQhyO8RjPb6VLyGtHcgznC6G7SUbS7t6mQQc+G8/kF580JQjUiBtCSTC9d6qEL5GEZaG9aSNnaVS24pFt4DhFmD4kHQE/dY/XDAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAedJREFUWMPtlldTwlAQhVFRig1BsYu9gaJgwY4FxYqKiopi771g7/vHvcklYUKSYZVxRh3O0+6e7EdyKwpFXHHJKiExspKkTP5Cf4pKrYkoaSE1DQ9IB8gQVhIBIBMP0AFkCSt6AjAgOpOzc4xEuQB5RoHyCaCACQqLiuXbS0ylgJCuTKa/vALTTlRZJdlfXYPsJ6qVAtQx7HqzhaiBjIFFoCJiNjKBtYl5z2abuN9mB2ix0rgVoE3otpOuOho6OkjcKQZ0kbIpFHcD9Ajd3kqAvlDsbAHoFwOMBDAQigeHXMMRtmZE5+biUYAxMWCcACYQS4VoEmDqtwI8FpSmZQF4/VqAwYhSbqyzoIsDfh4wM+tlNeehTvk8zb0LDhTAreKXi491Fvl8CQXQh9dbCuv08Hk97hMyl+njfu0Km5tXaa4OOP/KLMQMWCujB886d3tshE6iTRxga5sbdBc9yHe43L6LAuyFp3GfdQ74/BAFODrmni9Vss48DzjBjcHpGT14zvXU2bqgeafvz0zjNwEaArjEAa4ArsXVYHi3RdGNGuBWXO71k384ZkR/SYC5RSUME7Nj7+6DUfTAbG7XowTgaQh9samHJd9NeYXsVz3LfN3L6wjm572D8gP09l77HEUfbkVc/06fZiPR4mu5xpIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTEtMDJUMTQ6NTU6NDArMDg6MDCc3/v8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTExLTAyVDE0OjU1OjQwKzA4OjAw7YJDQAAAAEd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faG51MTgycmltYzkvcmlxaS5zdmeP3YsrAAAAAElFTkSuQmCC'%20x='12px'%20y='72px'%20filter='url(%23filter1211)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_1$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='20px'%20height='20px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter1212'%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%201.5%200%200%200%200%201.5%200%200%200%200%201.5%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-12%20-72%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='20'%20height='20'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYxQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO6AaXgAAAIN0Uk5TABQcASQMVPr+dqvsLL7lisnxJ5VLa3fi+IzHclwlE5T3Pyrf/XUW4F+bmVBE1bZHbO8S+/zG9SENw3RXs+EQhyO8RjPb6VLyGtHcgznC6G7SUbS7t6mQQc+G8/kF580JQjUiBtCSTC9d6qEL5GEZaG9aSNnaVS24pFt4DhFmD4kHQE/dY/XDAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAedJREFUWMPtlldTwlAQhVFRig1BsYu9gaJgwY4FxYqKiopi771g7/vHvcklYUKSYZVxRh3O0+6e7EdyKwpFXHHJKiExspKkTP5Cf4pKrYkoaSE1DQ9IB8gQVhIBIBMP0AFkCSt6AjAgOpOzc4xEuQB5RoHyCaCACQqLiuXbS0ylgJCuTKa/vALTTlRZJdlfXYPsJ6qVAtQx7HqzhaiBjIFFoCJiNjKBtYl5z2abuN9mB2ix0rgVoE3otpOuOho6OkjcKQZ0kbIpFHcD9Ajd3kqAvlDsbAHoFwOMBDAQigeHXMMRtmZE5+biUYAxMWCcACYQS4VoEmDqtwI8FpSmZQF4/VqAwYhSbqyzoIsDfh4wM+tlNeehTvk8zb0LDhTAreKXi491Fvl8CQXQh9dbCuv08Hk97hMyl+njfu0Km5tXaa4OOP/KLMQMWCujB886d3tshE6iTRxga5sbdBc9yHe43L6LAuyFp3GfdQ74/BAFODrmni9Vss48DzjBjcHpGT14zvXU2bqgeafvz0zjNwEaArjEAa4ArsXVYHi3RdGNGuBWXO71k384ZkR/SYC5RSUME7Nj7+6DUfTAbG7XowTgaQh9samHJd9NeYXsVz3LfN3L6wjm572D8gP09l77HEUfbkVc/06fZiPR4mu5xpIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTEtMDJUMTQ6NTU6NDArMDg6MDCc3/v8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTExLTAyVDE0OjU1OjQwKzA4OjAw7YJDQAAAAEd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25faG51MTgycmltYzkvcmlxaS5zdmeP3YsrAAAAAElFTkSuQmCC'%20x='12px'%20y='72px'%20filter='url(%23filter1212)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1497%20-272%20)'%3e%3cpath%20d='M%209.65206473214286%206.26736111111111%20C%2010.6217447916667%205.70486111111111%2011.4281994047619%204.94907407407407%2012.0714285714286%204%20C%2011.3363095238095%202.90740740740741%2010.4149925595238%202.09027777777778%209.30747767857143%201.54861111111111%20C%209.60249255952381%202.03009259259259%209.75%202.55092592592593%209.75%203.11111111111111%20C%209.75%203.96759259259259%209.43201264880952%204.70023148148148%208.79603794642857%205.30902777777778%20C%208.16006324404762%205.91782407407407%207.39471726190476%206.22222222222222%206.5%206.22222222222222%20C%205.60528273809524%206.22222222222222%204.83993675595238%205.91782407407407%204.20396205357143%205.30902777777778%20C%203.56798735119048%204.70023148148148%203.25%203.96759259259259%203.25%203.11111111111111%20C%203.25%202.55092592592593%203.39750744047619%202.03009259259259%203.69252232142857%201.54861111111111%20C%202.58500744047619%202.09027777777778%201.66369047619048%202.90740740740741%200.928571428571428%204%20C%201.5718005952381%204.94907407407407%202.37825520833333%205.70486111111111%203.34793526785714%206.26736111111111%20C%204.31761532738095%206.82986111111111%205.36830357142857%207.11111111111111%206.5%207.11111111111111%20C%207.63169642857143%207.11111111111111%208.68238467261905%206.82986111111111%209.65206473214286%206.26736111111111%20Z%20M%206.74665178571429%201.56944444444444%20C%206.81436011904762%201.50462962962963%206.84821428571429%201.42592592592593%206.84821428571429%201.33333333333333%20C%206.84821428571429%201.24074074074074%206.81436011904762%201.16203703703704%206.74665178571429%201.09722222222222%20C%206.67894345238095%201.03240740740741%206.59672619047619%200.999999999999999%206.5%201%20C%205.89546130952381%200.999999999999999%205.37676711309524%201.20717592592593%204.94391741071429%201.62152777777778%20C%204.51106770833333%202.03587962962963%204.29464285714286%202.53240740740741%204.29464285714286%203.11111111111111%20C%204.29464285714286%203.2037037037037%204.32849702380952%203.28240740740741%204.39620535714286%203.34722222222222%20C%204.46391369047619%203.41203703703704%204.54613095238095%203.44444444444444%204.64285714285714%203.44444444444444%20C%204.73958333333333%203.44444444444444%204.8218005952381%203.41203703703704%204.88950892857143%203.34722222222222%20C%204.95721726190476%203.28240740740741%204.99107142857143%203.2037037037037%204.99107142857143%203.11111111111111%20C%204.99107142857143%202.71296296296296%205.13857886904762%202.37268518518519%205.43359375%202.09027777777778%20C%205.72860863095238%201.80787037037037%206.08407738095238%201.66666666666667%206.5%201.66666666666667%20C%206.59672619047619%201.66666666666667%206.67894345238095%201.63425925925926%206.74665178571429%201.56944444444444%20Z%20M%2012.8549107142857%203.52083333333333%20C%2012.9516369047619%203.68287037037037%2013%203.84259259259259%2013%204%20C%2013%204.15740740740741%2012.9516369047619%204.31712962962963%2012.8549107142857%204.47916666666667%20C%2012.1778273809524%205.54398148148148%2011.2673921130952%206.39699074074074%2010.1236049107143%207.03819444444444%20C%208.97981770833333%207.67939814814815%207.77194940476191%208%206.5%208%20C%205.2280505952381%208%204.02018229166667%207.67824074074074%202.87639508928571%207.03472222222222%20C%201.73260788690476%206.3912037037037%200.822172619047619%205.53935185185185%200.145089285714286%204.47916666666667%20C%200.0483630952380952%204.31712962962963%200%204.15740740740741%200%204%20C%200%203.84259259259259%200.0483630952380952%203.68287037037037%200.145089285714286%203.52083333333333%20C%200.822172619047619%202.46064814814815%201.73260788690476%201.6087962962963%202.87639508928571%200.965277777777778%20C%204.02018229166667%200.321759259259259%205.2280505952381%200%206.5%200%20C%207.77194940476191%200%208.97981770833333%200.321759259259259%2010.1236049107143%200.965277777777778%20C%2011.2673921130952%201.6087962962963%2012.1778273809524%202.46064814814815%2012.8549107142857%203.52083333333333%20Z%20'%20fill-rule='nonzero'%20fill='%23a4a3a3'%20stroke='none'%20transform='matrix(1%200%200%201%201497%20272%20)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_3 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='13px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter851'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.25%200%201%200%200%200.25%200%200%201%200%200.25%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1059%20-1144%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='13'%20height='13'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg=='%20x='1059px'%20y='1144px'%20filter='url(%23filter851)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg=="; +const _imports_5 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='12px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='-50.00%25'%20y='-50.00%25'%20width='200.00%25'%20height='200.00%25'%20filterUnits='objectBoundingBox'%20id='filter852'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200.25%200%201%200%200%200.25%200%200%201%200%200.25%200%200%200%201%200%20'%20in='SourceGraphic'%20/%3e%3c/filter%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1099%20-1145%20)'%3e%3cimage%20preserveAspectRatio='none'%20style='overflow:visible'%20width='13'%20height='12'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg=='%20x='1099px'%20y='1145px'%20filter='url(%23filter852)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _sfc_main$1 = { + __name: "Item", + __ssrInlineRender: true, + props: { + item: Object + }, + emits: ["childEvent"], + setup(__props, { emit: __emit }) { + const formatNumberWithCommas = (number) => { + return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); + }; + return (_ctx, _push, _parent, _attrs) => { + _push(`<a${ssrRenderAttrs(mergeProps({ + class: "box flexflex", + target: "_blank", + href: `./details/${__props.item["uniqid"]}` + }, _attrs))} data-v-f1ba08be><img class="img"${ssrRenderAttr("src", __props.item["schoolimage"])} data-v-f1ba08be><div class="content flexflex" data-v-f1ba08be><div class="name" data-v-f1ba08be>${ssrInterpolate(__props.item["school"])}</div><div class="list flexflex" data-v-f1ba08be>`); + if (__props.item["profession"]) { + _push(`<div class="item flexacenter" data-v-f1ba08be><div class="item-name" data-v-f1ba08be>\u4E13\u4E1A</div><div class="item-value ellipsis" data-v-f1ba08be>${ssrInterpolate(__props.item["profession"])}</div></div>`); + } else { + _push(`<!---->`); + } + if (__props.item["project"]) { + _push(`<div class="item flexacenter" data-v-f1ba08be><div class="item-name" data-v-f1ba08be>\u9879\u76EE</div><div class="item-value ellipsis" data-v-f1ba08be>${ssrInterpolate(__props.item["project"])}</div></div>`); + } else { + _push(`<!---->`); + } + if (__props.item["interviewtime"]) { + _push(`<div class="item flexacenter" data-v-f1ba08be><div class="item-name" data-v-f1ba08be>\u65F6\u95F4</div><div class="item-value ellipsis" data-v-f1ba08be>${ssrInterpolate(__props.item["interviewtime"])}</div></div>`); + } else { + _push(`<!---->`); + } + _push(`</div><div class="text-box" data-v-f1ba08be><div class="text" data-v-f1ba08be>${ssrInterpolate(__props.item["message"])}</div><div class="time flexacenter" data-v-f1ba08be><img class="time-icon time-black-icon"${ssrRenderAttr("src", _imports_0$1)} data-v-f1ba08be><img class="time-icon time-white-icon"${ssrRenderAttr("src", _imports_1$1)} data-v-f1ba08be> ${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(__props.item["releasetime"]))}\u53D1\u5E03 </div></div><div class="data-list flexacenter" data-v-f1ba08be><div class="data-item flexacenter" data-v-f1ba08be><img class="data-item-icon"${ssrRenderAttr("src", _imports_2)} data-v-f1ba08be> ${ssrInterpolate(formatNumberWithCommas(__props.item["views"] || 0))}</div><div class="data-item flexacenter" data-v-f1ba08be>`); + if (__props.item["islike"] == 0) { + _push(`<img class="data-item-icon"${ssrRenderAttr("src", _imports_3)} data-v-f1ba08be>`); + } else { + _push(`<img class="data-item-icon"${ssrRenderAttr("src", _imports_4)} data-v-f1ba08be>`); + } + _push(` ${ssrInterpolate(__props.item["likenum"] || 0)}</div><div class="data-item flexacenter" data-v-f1ba08be><img class="data-item-icon"${ssrRenderAttr("src", _imports_5)} data-v-f1ba08be> ${ssrInterpolate(__props.item["commentnum"] || 0)}</div></div></div></a>`); + }; + } +}; +const _sfc_setup$1 = _sfc_main$1.setup; +_sfc_main$1.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Item.vue"); + return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; +}; +const __nuxt_component_5 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-f1ba08be"]]); +const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAED0lEQVRYCe2Wu09UQRTGdwlYWWMAIzEhWhCJhRgVAbHzAWil1sT/gKcKLAqG159AYimVgIFSeVOglSYmRhPFEEiIlTQ2sP6+y5zr3OUuLFDqJLPnzHce883MmdmbSPzrLXmQDRgaGjqNfyO9Op1OFyFPuvjVZDK5Dja3tbU10dHR8d3h+4qcCDDxdZL3ku3yvhlxgMwS4nFLS8vMfv57Eujr6zuRn5//goQ3vESf0Sch9BW55vBifMrA6pFnPN9Jxk0Q2fCwiJqVwODg4Hk8J+inXMQYyVIk+xDJkDFgtyogkgK+60wrxDVki4sloMkJmifRcZJsoN/LZTvdhIEYGBioI26UQSF9E/1qHIldBLTtBQUFywRp5Z/y8vJuNjc3r6AfuA0PD5dub29PEVhOX4HERUhEjiMvM6vOHEyTbxxlcuUVcXLcUi56KTs6ItxvEQKqdlgGBYfz/cOu3J9AOcj5wGH1HG+tb48QYNI+Zxxra2ub9h2lc64XSFCVidtYNvnY2CTb/hZ9XGPIPDdcMiTgHplLAnFKSfqN86wEV20s4Nvp26Q7bEE+cSTAu+XHIq+oNqSrhQQw3NmBEl/iqpViOoY9KFp8n7LaLuefkC7MjZPo8o00l1NviEjoNQ1aSACGVx322smIaG1tXSSw1QN7WHU3q20D6zGcPF3t7e1LNvYl8boRatU7IroDwbtOgi9mzJTUxZBPAj2Ff7/5aXJW+szGMTLITVyJ2cIdAChy4JoZ42QmCfPJYfIEV3Ld+RdbnE8gLZCz3vU4mbMn/TiD4zCzBdLLHcwl0A+ylYfsItFuoDP3t918dByqCRvHSeKCXUbaXH8JGIgsiwsWpmrHHp45kK5jeCVFwr8divEbdsu9mwDGOTkzQXhF/GASq3LDakfv5Gb0qkv3fHv6+/vtRnlwoN7WL0cxa4bwCPQlI1As2coKczBJAf2WWWNIPnETB2bpwoIBPujyjTTlBD8DyBTp8KqHBPQZhcOSonBISfqNN/0dJCphX8VVsyc7dBEmm3y4Ke9Dg1PIGewecyzyTvwwe6TiYXkNx2kZkdfj/g8s8CCSvPqke+NiatixeYsPd0AAq5hBTEqH6aj/Zgs7TFMOJn/pYsf9yYVFCAhg4ibECr2QLZ06CgnFKody0b9xPA+RkbaLALugT7AGvDbp5SRY1tFEonIY8F7UKVY56L/QG6mjn5mhkRrwjapatk7VWiocUq+4KSkK6KPvl6lzBc+xUhWcfZR+0+TZ4rISUGJIFEJiBLVeY9f0l6rPbf2xBA8KE5Qw1iOje36Wbm1c2x63cnPYk4A58QjVouvqVRm2l4TMAsQfZRZcXExOBCzQVXQjyWuYpAhpf+Gr6Pqnm2U3Jvx7brH/ZbYd+APZxM/2zgvhdQAAAABJRU5ErkJggg=="; +const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAADXElEQVR4Ae2bS2vVQBTHm/qqIuJCUARBUbrQhVDwic+Kaz+CGzcuXfsNXPtY9AsIbly4EUSEKnWh7hSLVSqC0PpqSwXRwvV3IInJZO4kuTd37mScgT+ZOedk5vz/OclNbu4dGQktKBAU+J8ViHTkO53OGPZr4AxYr4tpke03uT4Et6MoWlPzLggA+e0EPQWH1OCWj2fIfxIRfmV5jGYHcf8GW9/IC7UT4Lp0sk1XAcsEbMsGedR/RwWMZ/nkKoDyF0E2ZwM8629V+eQEQJ0OAc/VII/Gz1QuulNgIhZhgxrc8vEq+R/mIH/I8shVgDgIeMXmFHgpYw+aVPU0OK6SF26FChBj0rgmyMVwRzJu6XYB4j9bmntI208FOLXGwT3wFSyB++Cgn2wVVhA9Ar4DtS1jOKmE+zWE4AT4pjLPjFfpn/WLdcwGYmXkEx38E6EGef9E6IG8PyL0Qb79IjRAvr0iNEi+fSIMgHx7RBggefdFsEDeXREskndPBDKSe/sfSWYl2/f4F0tiZkv8iXuFznCfHUig6u2tJD0P9oI5GRjaLnyvDf6sa3i3zWRRm7w8FrBfmQARMTuBuyL0Sr6qAHGcmyL0Q76OAE6K0C/5ugI4JUIT5HsRwAkRmiLfqwBDFQHy+4DpayzcaZPP+T2ScLeGv/RTwLDvbvZ/m65m7siXrQe6zVXZziS3zOuk3lLysijRPQsQ719HhKkyooVXY5odjmpsqknet53jDcwn1dH0mDU+M+ckmK0w97GymCoCrJRM8hH/BRvkkzxiEeTb4zeJrct2qYs9NVcR4FEaXezIkT9NQvNF12AtrLnACheBqRJMuVdLkHN2DEynZ/q/jlyMjBc83Qrs09c1QJ2T+eSaoLttnsG+RY1Xx8a3w0kwE22ifwWcBxuB/NDgDkeh7PQgLN+Yaw7L/rw1NxplXnmlXbkxp/zy4yqQ1/pr4AmYYp7cD6KwDb+JAMDUKh2UpphUuQY0tZaT8wQBnDwsFpMKFWBRbCeXChXg5GGxmFSoAItiO7lUqAAnD4vFpEIFWBQ7WepL0tFsF+s+CWrmqGUaRgXcNWRo8hl2a5GL5+B14IHmefgFtsI/OgZNzeqzd0IGorLuZXAJyN/yHoOblP8ftqEFBYICQQFrCvwFEG2wKFYx49sAAAAASUVORK5CYII="; +const _sfc_main = { + __name: "index", + __ssrInlineRender: true, + async setup(__props) { + let __temp, __restore; + let isNeedLogin = inject("isNeedLogin"); + const goLogin = inject("goLogin"); + useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer,popupnotification", body: true }] }); + ref(null); + const route = useRoute(); + let keyword = ref(""); + keyword.value = route.query["keyword"]; + watchEffect(() => { + if (keyword.value != route.query["keyword"]) { + list.value = []; + page.value = 1; + keyword.value = route.query["keyword"]; + getList(route.query["keyword"]); + } + }); + let page = ref(1); + let count = ref(0); + let list = ref([]); + let loading = false; + const getList = () => { + if (page.value == 0 || loading) return; + loading = true; + getListHttp({ page: page.value, keyword: keyword.value }).then((res) => { + if (res.code != 200) { + page.value = 0; + ElMessage({ + message: res.message, + type: "error" + }); + return; + } + let data = res.data; + list.value = list.value.concat(data.data || []); + if (data.count > list.value.length) page.value++; + else page.value = 0; + count.value = data["count"]; + nextTick(() => { + }); + }).finally(() => loading = false); + }; + const handleLike = (token) => { + if (isNeedLogin.value) { + goLogin(); + return; + } + operateLikeHttp({ token }).then((res) => { + if (res.code != 200) return; + let data = res.data; + list.value.forEach((element) => { + if (element["token"] == token) { + element["islike"] = data["status"]; + element["likenum"] = data["count"]; + } + }); + ElMessage.success(res.message); + }); + }; + useRouter(); + try { + if (true) { + [__temp, __restore] = withAsyncContext(() => getListHttp({ page: 1, keyword: keyword.value }).then((res) => { + if (res.code != 200) { + page.value = 0; + ElMessage({ + message: res.message, + type: "error" + }); + return; + } + let data = res.data; + list.value = list.value.concat(data.data || []); + })), await __temp, __restore(); + } + } catch (error) { + } + let returnTopState = ref(false); + return (_ctx, _push, _parent, _attrs) => { + const _component_Head = Head; + const _component_Title = Title; + const _component_Meta = Meta; + const _component_TopHead = __nuxt_component_3; + const _component_empty = __nuxt_component_4; + const _component_Item = __nuxt_component_5; + _push(`<!--[-->`); + _push(ssrRenderComponent(_component_Head, null, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(ssrRenderComponent(_component_Title, null, { + default: withCtx((_2, _push3, _parent3, _scopeId2) => { + if (_push3) { + _push3(`\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB`); + } else { + return [ + createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB") + ]; + } + }), + _: 1 + }, _parent2, _scopeId)); + _push2(ssrRenderComponent(_component_Meta, { + name: "keyword", + content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B" + }, null, _parent2, _scopeId)); + } else { + return [ + createVNode(_component_Title, null, { + default: withCtx(() => [ + createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB") + ]), + _: 1 + }), + createVNode(_component_Meta, { + name: "keyword", + content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B" + }) + ]; + } + }), + _: 1 + }, _parent)); + _push(ssrRenderComponent(_component_TopHead, null, null, _parent)); + if (unref(keyword)) { + _push(`<div class="search-result flexacenter" data-v-3292866c><div class="keyword flexacenter" data-v-3292866c>${ssrInterpolate(unref(keyword))} <img class="keyword-icon"${ssrRenderAttr("src", _imports_0)} data-v-3292866c></div><div class="halving-line" data-v-3292866c></div><div class="total" data-v-3292866c>\u5171 ${ssrInterpolate(unref(count))} \u6761\u641C\u7D22\u6570\u636E</div></div>`); + } else { + _push(`<!---->`); + } + _push(`<div class="content" data-v-3292866c>`); + if (unref(list).length == 0 && unref(page) == 0) { + _push(`<div class="empty-box flexcenter" data-v-3292866c>`); + _push(ssrRenderComponent(_component_empty, { hint: "\u6CA1\u6709\u627E\u5230\u76F8\u5173\u7ED3\u679C\uFF0C\u8BF7\u66F4\u6362\u641C\u7D22\u5173\u952E\u8BCD" }, null, _parent)); + _push(`</div>`); + } else { + _push(`<!--[-->`); + ssrRenderList(unref(list), (item, index2) => { + _push(ssrRenderComponent(_component_Item, { + key: index2, + item, + onHandleLike: handleLike + }, null, _parent)); + }); + _push(`<!--]-->`); + } + _push(`</div>`); + if (unref(page) == 0 && unref(list).length > 0) { + _push(`<div class="in-end" data-v-3292866c>- \u5230\u5E95\u4E86 -</div>`); + } else { + _push(`<!---->`); + } + if (unref(returnTopState)) { + _push(`<div class="right-returnTop" data-v-3292866c><img${ssrRenderAttr("src", _imports_1)} style="${ssrRenderStyle({ "width": "24px", "height": "24px" })}" data-v-3292866c></div>`); + } else { + _push(`<!---->`); + } + _push(`<!--]-->`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.html/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3292866c"]]); + +export { index as default }; +//# sourceMappingURL=index-Bm6l4dY_.mjs.map diff --git a/.output/server/chunks/build/index-Bm6l4dY_.mjs.map b/.output/server/chunks/build/index-Bm6l4dY_.mjs.map new file mode 100644 index 0000000..b6c057b --- /dev/null +++ b/.output/server/chunks/build/index-Bm6l4dY_.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-Bm6l4dY_.mjs","sources":["../../../../assets/img/time-icon.svg","../../../../assets/img/time-white-icon.svg","../../../../assets/img/eye-icon.svg","../../../../assets/img/like-no.svg","../../../../assets/img/like-yes.png","../../../../assets/img/comment-icon.svg","../../../../components/Item.vue","../../../../assets/img/cross-circle-icon.png","../../../../assets/img/returnTop-icon.png","../../../../pages/index.html/index.vue"],"sourcesContent":null,"names":["_withAsyncContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAe,YAAA,GAAA,klFAAA;ACAf,MAAe,YAAA,GAAA,klFAAA;ACAf,MAAe,UAAA,GAAA,6yIAAA;ACAf,MAAe,UAAA,GAAA,uoFAAA;ACAf,MAAe,UAAA,GAAA,4gDAAA;ACAf,MAAe,UAAA,GAAA,mqEAAA;;;;;;;;;ACkEf,IAAA,MAAA,sBAAA,GAAA,CAAA,MAAA,KAAA;AAEA,MAAA,OAAA,MAAA,CAAA,QAAA,EAAA,CAAA,OAAA,CAAA,yBAAA,GAAA,CAAA;AAAA,KAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFA,MAAe,UAAA,GAAA,4kDAAA;ACAf,MAAe,UAAA,GAAA,41CAAA;;;;;;AC6Bf,IAAA,IAAA,WAAA,GAAA,OAAA,aAAA,CAAA;AACA,IAAA,MAAA,OAAA,GAAA,OAAA,SAAA,CAAA;AAEA,IAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,KAAA,mDAAA,EAAA,EAAA,EAAA,GAAA,EAAA,0DAAA,EAAA,IAAA,EAAA,IAAA,EAAA,GAAA,CAAA;AAEA,IAAA,GAAA,CAAA,IAAA,CAAA;AAGA,IAAA,MAAA,QAAA,QAAA,EAAA;AACA,IAAA,IAAA,OAAA,GAAA,IAAA,EAAA,CAAA;AACA,IAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA;AAEA,IAAA,WAAA,CAAA,MAAA;AACI,MAAA,IAAA,OAAA,CAAA,KAAA,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AACI,QAAA,IAAA,CAAA,QAAA,EAAA;AACA,QAAA,IAAA,CAAA,KAAA,GAAA,CAAA;AACA,QAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA;AACA,QAAA,OAAA,CAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AAAA;AAA8B,KAClC,CAAA;AAgCJ,IAAA,IAAA,IAAA,GAAA,IAAA,CAAA,CAAA;AACA,IAAA,IAAA,KAAA,GAAA,IAAA,CAAA,CAAA;AACA,IAAA,IAAA,IAAA,GAAA,GAAA,CAAA,EAAA,CAAA;AACA,IAAA,IAAA,OAAA,GAAA,KAAA;AAEA,IAAA,MAAA,UAAA,MAAA;AACI,MAAA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,IAAA,OAAA,EAAA;AAEA,MAAA,OAAA,GAAA,IAAA;AACA,MAAA,WAAA,CAAA,EAAA,IAAA,EAAA,IAAA,CAAA,KAAA,EAAA,OAAA,EAAA,OAAA,CAAA,KAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AAEQ,QAAA,IAAA,GAAA,CAAA,QAAA,GAAA,EAAA;AACI,UAAA,IAAA,CAAA,KAAA,GAAA,CAAA;AACU,UAAA,SAAA,CAAA;AAAA,YAAA,SAAA,GAAA,CAAA,OAAA;AAAA,YACO,IAAA,EAAA;AAAA,WACP,CAAA;AAEV,UAAA;AAAA;AAEJ,QAAA,IAAA,OAAA,GAAA,CAAA,IAAA;AAGA,QAAA,IAAA,CAAA,QAAA,IAAA,CAAA,KAAA,CAAA,OAAA,IAAA,CAAA,IAAA,IAAA,EAAA,CAAA;AAEA,QAAA,IAAA,IAAA,CAAA,KAAA,GAAA,IAAA,CAAA,KAAA,CAAA,QAAA,IAAA,CAAA,KAAA,EAAA;AAAA,kBAAyC,KAAA,GAAA,CAAA;AAGzC,QAAA,KAAA,CAAA,KAAA,GAAA,KAAA,OAAA,CAAA;AAEA,QAAA,QAAA,CAAA,MAAA;AAAA,SAII,CAAA;AAAA,OACH,CAAA,CAAA,OAAA,CAAA,MAAA,UAAA,KAAA,CAAA;AAAA,KAE2B;AAGxC,IAAA,MAAA,UAAA,GAAA,CAAA,KAAA,KAAA;AACI,MAAA,IAAA,YAAA,KAAA,EAAA;AACI,QAAA,OAAA,EAAA;AACA,QAAA;AAAA;AAGJ,MAAA,eAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACI,QAAA,IAAA,GAAA,CAAA,QAAA,GAAA,EAAA;AACA,QAAA,IAAA,OAAA,GAAA,CAAA,IAAA;AAEA,QAAA,IAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA,OAAA,KAAA;AACI,UAAA,IAAA,OAAA,CAAA,OAAA,CAAA,IAAA,KAAA,EAAA;AACI,YAAA,OAAA,CAAA,QAAA,CAAA,GAAA,IAAA,CAAA,QAAA,CAAA;AACA,YAAA,OAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,OAAA,CAAA;AAAA;AAAiC,SACrC,CAAA;AAGM,QAAA,SAAA,CAAA,OAAA,CAAA,IAAA,OAAA,CAAA;AAAA,OAAmB,CAAA;AAAA,KAChC;AAOL,IAAA,SAAA,EAAA;AAMA,IAAA,IAAA;AACI,MAAA,IAAA,IAAA,EAAA;AACI,QAAA,CAAA,QAAA,SAAA,CAAA,GAAAA,gBAAA,CAAA,MAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,KAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACI,UAAA,IAAA,GAAA,CAAA,QAAA,GAAA,EAAA;AACI,YAAA,IAAA,CAAA,KAAA,GAAA,CAAA;AACU,YAAA,SAAA,CAAA;AAAA,cAAA,SAAA,GAAA,CAAA,OAAA;AAAA,cACO,IAAA,EAAA;AAAA,aACP,CAAA;AAEV,YAAA;AAAA;AAEJ,UAAA,IAAA,OAAA,GAAA,CAAA,IAAA;AAEA,UAAA,IAAA,CAAA,QAAA,IAAA,CAAA,KAAA,CAAA,OAAA,IAAA,CAAA,IAAA,IAAA,EAAA,CAAA;AAAA,SAA8C,CAAA,CAAA,EAAA,MAAA,QAAA,SAAA,EAAA;AAAA;AAAA,aAEtD,KAAA,EAAA;AAAA;AAGJ,IAAA,IAAA,cAAA,GAAA,IAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-Bu7_l8qv.mjs b/.output/server/chunks/build/index-Bu7_l8qv.mjs new file mode 100644 index 0000000..5580cf8 --- /dev/null +++ b/.output/server/chunks/build/index-Bu7_l8qv.mjs @@ -0,0 +1,43 @@ +import { u as useRouter } from './server.mjs'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import { useSSRContext } from 'vue'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'devalue'; +import 'vue/server-renderer'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'vue-router'; + +const _sfc_main = { + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const router = useRouter(); + router.replace("/index.html"); + useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer,popupnotification", body: true }] }); + return (_ctx, _push, _parent, _attrs) => { + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; + +export { _sfc_main as default }; +//# sourceMappingURL=index-Bu7_l8qv.mjs.map diff --git a/.output/server/chunks/build/index-Bu7_l8qv.mjs.map b/.output/server/chunks/build/index-Bu7_l8qv.mjs.map new file mode 100644 index 0000000..9c236ac --- /dev/null +++ b/.output/server/chunks/build/index-Bu7_l8qv.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-Bu7_l8qv.mjs","sources":["../../../../pages/index.vue"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAA,MAAM,SAAS,SAAW,EAAA;AAC1B,IAAA,MAAA,CAAO,QAAQ,aAAa,CAAA;AAC5B,IAAA,OAAA,CAAQ,EAAE,MAAA,EAAQ,CAAC,EAAE,KAAK,mDAAqD,EAAA,EAAE,EAAE,GAAA,EAAK,0DAA4D,EAAA,IAAA,EAAM,IAAI,EAAE,GAAG,CAAA;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-DABfsv71.mjs b/.output/server/chunks/build/index-DABfsv71.mjs new file mode 100644 index 0000000..07a3d09 --- /dev/null +++ b/.output/server/chunks/build/index-DABfsv71.mjs @@ -0,0 +1,6602 @@ +import { a as buildAssetsURL } from '../routes/renderer.mjs'; +import { H as Head, T as Title, M as Meta, f as _imports_1, c as withInstall, I as publishSchoolSearchHttp, J as publishProfessionSearchHttp, K as ConfigProvider, b as buildProps, _ as _export_sfc$1, d as definePropType, L as useEmptyValuesProps, N as useSizeProp, O as circle_close_default, A as useLocale, P as useEmptyValues, Q as clock_default, R as calendar_default, B as ElIcon, S as d_arrow_left_default, V as arrow_left_default, W as arrow_right_default, X as d_arrow_right_default, E as EVENT_CODE, Y as isObjectLike, Z as baseGetTag, $ as root, a0 as hasClass, a1 as isArray, a2 as ListCache, a3 as Symbol$1, a4 as eq, a5 as arrow_up_default, a6 as arrow_down_default, a7 as MapCache, a8 as freeGlobal, a9 as isSymbol, aa as isObject, ab as getStyle, a as addUnit, ac as getNative, ad as toSource, ae as Map$1, af as loading_default, ag as CHANGE_EVENT, ah as INPUT_EVENT, U as UPDATE_MODEL_EVENT, ai as isFunction } from './config-provider-CA7emI64.mjs'; +import { ref, withCtx, createTextVNode, createVNode, unref, defineComponent, provide, reactive, toRef, mergeProps, useAttrs, inject, computed, watch, nextTick, createBlock, openBlock, renderSlot, withModifiers, normalizeStyle, normalizeClass, createCommentVNode, resolveDynamicComponent, createElementVNode, toDisplayString, useSlots, createElementBlock, withDirectives, Fragment, renderList, vShow, withKeys, getCurrentInstance, Transition, createSlots, useSSRContext } from 'vue'; +import { b as ElInput, d as useAriaProps, e as useFormItem, f as useFocusController, g as useFormSize, o as onClickOutside, E as ElTooltip, T as TOOLTIP_INJECTION_KEY, c as ElButton, h as useAttrs$1, i as flatten, j as isLength, k as arrayPush, l as useResizeObserver, m as useEventListener, u as useTooltipContentProps, n as useFormDisabled, p as unrefElement, q as isArguments, r as isIndex } from './el-button-BScT5ZwZ.mjs'; +import { u as useRouter, e as useNamespace, q as debugWarn, s as shared_cjs_prodExports, x as isEmpty, y as isUndefined, o as isElement, v as isNumber, t as throwError, k as useId } from './server.mjs'; +import dayjs from 'dayjs'; +import customParseFormat from 'dayjs/plugin/customParseFormat.js'; +import advancedFormat from 'dayjs/plugin/advancedFormat.js'; +import localeData from 'dayjs/plugin/localeData.js'; +import weekOfYear from 'dayjs/plugin/weekOfYear.js'; +import weekYear from 'dayjs/plugin/weekYear.js'; +import dayOfYear from 'dayjs/plugin/dayOfYear.js'; +import isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js'; +import isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js'; +import { placements } from '@popperjs/core'; +import { ssrRenderComponent, ssrRenderAttr, ssrInterpolate } from 'vue/server-renderer'; +import { u as useHead } from './vue.-sixQ7xP-CqaSk6XG.mjs'; +import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'node:http'; +import 'node:https'; +import 'node:fs'; +import 'node:url'; +import 'node:path'; +import 'devalue'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'axios'; +import 'qs'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:net'; +import 'vue-router'; + +var reWhitespace = /\s/; +function trimmedEndIndex(string) { + var index2 = string.length; + while (index2-- && reWhitespace.test(string.charAt(index2))) { + } + return index2; +} +var reTrimStart = /^\s+/; +function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; +} +var NAN = 0 / 0; +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; +var reIsBinary = /^0b[01]+$/i; +var reIsOctal = /^0o[0-7]+$/i; +var freeParseInt = parseInt; +function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; +} +var WeakMap = getNative(root, "WeakMap"); +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} +var objectProto$5 = Object.prototype; +function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto$5; + return value === proto; +} +function baseTimes(n, iteratee) { + var index2 = -1, result = Array(n); + while (++index2 < n) { + result[index2] = iteratee(index2); + } + return result; +} +function stubFalse() { + return false; +} +var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports; +var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module; +var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1; +var Buffer = moduleExports$1 ? root.Buffer : void 0; +var nativeIsBuffer = Buffer ? Buffer.isBuffer : void 0; +var isBuffer = nativeIsBuffer || stubFalse; +var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", mapTag$2 = "[object Map]", numberTag$1 = "[object Number]", objectTag$2 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$2 = "[object Set]", stringTag$1 = "[object String]", weakMapTag$1 = "[object WeakMap]"; +var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false; +function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} +function baseUnary(func) { + return function(value) { + return func(value); + }; +} +var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; +var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; +var moduleExports = freeModule && freeModule.exports === freeExports; +var freeProcess = moduleExports && freeGlobal.process; +var nodeUtil = function() { + try { + var types = freeModule && freeModule.require && freeModule.require("util").types; + if (types) { + return types; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } +}(); +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; +var objectProto$4 = Object.prototype; +var hasOwnProperty$3 = objectProto$4.hasOwnProperty; +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; + for (var key in value) { + if (hasOwnProperty$3.call(value, key) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode. + (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers. + isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays. + isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties. + isIndex(key, length)))) { + result.push(key); + } + } + return result; +} +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} +var nativeKeys = overArg(Object.keys, Object); +var objectProto$3 = Object.prototype; +var hasOwnProperty$2 = objectProto$3.hasOwnProperty; +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$2.call(object, key) && key != "constructor") { + result.push(key); + } + } + return result; +} +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} +function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; +} +function stackDelete(key) { + var data = this.__data__, result = data["delete"](key); + this.size = data.size; + return result; +} +function stackGet(key) { + return this.__data__.get(key); +} +function stackHas(key) { + return this.__data__.has(key); +} +var LARGE_ARRAY_SIZE = 200; +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} +Stack.prototype.clear = stackClear; +Stack.prototype["delete"] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; +function arrayFilter(array, predicate) { + var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index2 < length) { + var value = array[index2]; + if (predicate(value, index2, array)) { + result[resIndex++] = value; + } + } + return result; +} +function stubArray() { + return []; +} +var objectProto$2 = Object.prototype; +var propertyIsEnumerable = objectProto$2.propertyIsEnumerable; +var nativeGetSymbols = Object.getOwnPropertySymbols; +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} +var DataView = getNative(root, "DataView"); +var Promise$1 = getNative(root, "Promise"); +var Set$1 = getNative(root, "Set"); +var mapTag$1 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$1 = "[object Set]", weakMapTag = "[object WeakMap]"; +var dataViewTag$1 = "[object DataView]"; +var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap); +var getTag = baseGetTag; +if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag$1 || Map$1 && getTag(new Map$1()) != mapTag$1 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$1 || WeakMap && getTag(new WeakMap()) != weakMapTag) { + getTag = function(value) { + var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag$1; + case mapCtorString: + return mapTag$1; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag$1; + case weakMapCtorString: + return weakMapTag; + } + } + return result; + }; +} +var Uint8Array = root.Uint8Array; +var HASH_UNDEFINED = "__lodash_hash_undefined__"; +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} +function setCacheHas(value) { + return this.__data__.has(value); +} +function SetCache(values) { + var index2 = -1, length = values == null ? 0 : values.length; + this.__data__ = new MapCache(); + while (++index2 < length) { + this.add(values[index2]); + } +} +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; +function arraySome(array, predicate) { + var index2 = -1, length = array == null ? 0 : array.length; + while (++index2 < length) { + if (predicate(array[index2], index2, array)) { + return true; + } + } + return false; +} +function cacheHas(cache, key) { + return cache.has(key); +} +var COMPARE_PARTIAL_FLAG$3 = 1, COMPARE_UNORDERED_FLAG$1 = 2; +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$1 ? new SetCache() : void 0; + stack.set(array, other); + stack.set(other, array); + while (++index2 < arrLength) { + var arrValue = array[index2], othValue = other[index2]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack); + } + if (compared !== void 0) { + if (compared) { + continue; + } + result = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result; +} +function mapToArray(map) { + var index2 = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index2] = [key, value]; + }); + return result; +} +function setToArray(set) { + var index2 = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index2] = value; + }); + return result; +} +var COMPARE_PARTIAL_FLAG$2 = 1, COMPARE_UNORDERED_FLAG = 2; +var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; +var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; +var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} +var COMPARE_PARTIAL_FLAG$1 = 1; +var objectProto$1 = Object.prototype; +var hasOwnProperty$1 = objectProto$1.hasOwnProperty; +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index2 = objLength; + while (index2--) { + var key = objProps[index2]; + if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index2 < objLength) { + key = objProps[index2]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && ("constructor" in object && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result; +} +var COMPARE_PARTIAL_FLAG = 1; +var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; +var objectProto = Object.prototype; +var hasOwnProperty = objectProto.hasOwnProperty; +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} +var now = function() { + return root.Date.now(); +}; +var FUNC_ERROR_TEXT = "Expected a function"; +var nativeMax = Math.max, nativeMin = Math.min; +function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} +function isEqual(value, other) { + return baseIsEqual(value, other); +} +const GAP = 4; +const BAR_MAP = { + vertical: { + offset: "offsetHeight", + scroll: "scrollTop", + scrollSize: "scrollHeight", + size: "height", + key: "vertical", + axis: "Y", + client: "clientY", + direction: "top" + }, + horizontal: { + offset: "offsetWidth", + scroll: "scrollLeft", + scrollSize: "scrollWidth", + size: "width", + key: "horizontal", + axis: "X", + client: "clientX", + direction: "left" + } +}; +const renderThumbStyle = ({ + move, + size, + bar +}) => ({ + [bar.size]: size, + transform: `translate${bar.axis}(${move}%)` +}); +const scrollbarContextKey = Symbol("scrollbarContextKey"); +const thumbProps = buildProps({ + vertical: Boolean, + size: String, + move: Number, + ratio: { + type: Number, + required: true + }, + always: Boolean +}); +const COMPONENT_NAME$2 = "Thumb"; +const _sfc_main$f = /* @__PURE__ */ defineComponent({ + __name: "thumb", + props: thumbProps, + setup(__props) { + const props = __props; + const scrollbar = inject(scrollbarContextKey); + const ns = useNamespace("scrollbar"); + if (!scrollbar) + throwError(COMPONENT_NAME$2, "can not inject scrollbar context"); + const instance = ref(); + const thumb = ref(); + const thumbState = ref({}); + const visible = ref(false); + let cursorDown = false; + let cursorLeave = false; + let originalOnSelectStart = null; + const bar = computed(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]); + const thumbStyle = computed(() => renderThumbStyle({ + size: props.size, + move: props.move, + bar: bar.value + })); + const offsetRatio = computed(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]); + const clickThumbHandler = (e) => { + var _a; + e.stopPropagation(); + if (e.ctrlKey || [1, 2].includes(e.button)) + return; + (_a = (void 0).getSelection()) == null ? void 0 : _a.removeAllRanges(); + startDrag(e); + const el = e.currentTarget; + if (!el) + return; + thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]); + }; + const clickTrackHandler = (e) => { + if (!thumb.value || !instance.value || !scrollbar.wrapElement) + return; + const offset = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]); + const thumbHalf = thumb.value[bar.value.offset] / 2; + const thumbPositionPercentage = (offset - thumbHalf) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100; + }; + const startDrag = (e) => { + e.stopImmediatePropagation(); + cursorDown = true; + (void 0).addEventListener("mousemove", mouseMoveDocumentHandler); + (void 0).addEventListener("mouseup", mouseUpDocumentHandler); + originalOnSelectStart = (void 0).onselectstart; + (void 0).onselectstart = () => false; + }; + const mouseMoveDocumentHandler = (e) => { + if (!instance.value || !thumb.value) + return; + if (cursorDown === false) + return; + const prevPage = thumbState.value[bar.value.axis]; + if (!prevPage) + return; + const offset = (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1; + const thumbClickPosition = thumb.value[bar.value.offset] - prevPage; + const thumbPositionPercentage = (offset - thumbClickPosition) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100; + }; + const mouseUpDocumentHandler = () => { + cursorDown = false; + thumbState.value[bar.value.axis] = 0; + (void 0).removeEventListener("mousemove", mouseMoveDocumentHandler); + (void 0).removeEventListener("mouseup", mouseUpDocumentHandler); + restoreOnselectstart(); + if (cursorLeave) + visible.value = false; + }; + const mouseMoveScrollbarHandler = () => { + cursorLeave = false; + visible.value = !!props.size; + }; + const mouseLeaveScrollbarHandler = () => { + cursorLeave = true; + visible.value = cursorDown; + }; + const restoreOnselectstart = () => { + if ((void 0).onselectstart !== originalOnSelectStart) + (void 0).onselectstart = originalOnSelectStart; + }; + useEventListener(toRef(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler); + useEventListener(toRef(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler); + return (_ctx, _cache) => { + return openBlock(), createBlock(Transition, { + name: unref(ns).b("fade"), + persisted: "" + }, { + default: withCtx(() => [ + withDirectives(createElementVNode("div", { + ref_key: "instance", + ref: instance, + class: normalizeClass([unref(ns).e("bar"), unref(ns).is(unref(bar).key)]), + onMousedown: clickTrackHandler + }, [ + createElementVNode("div", { + ref_key: "thumb", + ref: thumb, + class: normalizeClass(unref(ns).e("thumb")), + style: normalizeStyle(unref(thumbStyle)), + onMousedown: clickThumbHandler + }, null, 38) + ], 34), [ + [vShow, _ctx.always || visible.value] + ]) + ]), + _: 1 + }, 8, ["name"]); + }; + } +}); +var Thumb = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__file", "thumb.vue"]]); +const barProps = buildProps({ + always: { + type: Boolean, + default: true + }, + minSize: { + type: Number, + required: true + } +}); +const _sfc_main$e = /* @__PURE__ */ defineComponent({ + __name: "bar", + props: barProps, + setup(__props, { expose }) { + const props = __props; + const scrollbar = inject(scrollbarContextKey); + const moveX = ref(0); + const moveY = ref(0); + const sizeWidth = ref(""); + const sizeHeight = ref(""); + const ratioY = ref(1); + const ratioX = ref(1); + const handleScroll = (wrap) => { + if (wrap) { + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + moveY.value = wrap.scrollTop * 100 / offsetHeight * ratioY.value; + moveX.value = wrap.scrollLeft * 100 / offsetWidth * ratioX.value; + } + }; + const update = () => { + const wrap = scrollbar == null ? void 0 : scrollbar.wrapElement; + if (!wrap) + return; + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + const originalHeight = offsetHeight ** 2 / wrap.scrollHeight; + const originalWidth = offsetWidth ** 2 / wrap.scrollWidth; + const height = Math.max(originalHeight, props.minSize); + const width = Math.max(originalWidth, props.minSize); + ratioY.value = originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height)); + ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width)); + sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ""; + sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ""; + }; + expose({ + handleScroll, + update + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock(Fragment, null, [ + createVNode(Thumb, { + move: moveX.value, + ratio: ratioX.value, + size: sizeWidth.value, + always: _ctx.always + }, null, 8, ["move", "ratio", "size", "always"]), + createVNode(Thumb, { + move: moveY.value, + ratio: ratioY.value, + size: sizeHeight.value, + vertical: "", + always: _ctx.always + }, null, 8, ["move", "ratio", "size", "always"]) + ], 64); + }; + } +}); +var Bar = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__file", "bar.vue"]]); +const scrollbarProps = buildProps({ + height: { + type: [String, Number], + default: "" + }, + maxHeight: { + type: [String, Number], + default: "" + }, + native: { + type: Boolean, + default: false + }, + wrapStyle: { + type: definePropType([String, Object, Array]), + default: "" + }, + wrapClass: { + type: [String, Array], + default: "" + }, + viewClass: { + type: [String, Array], + default: "" + }, + viewStyle: { + type: [String, Array, Object], + default: "" + }, + noresize: Boolean, + tag: { + type: String, + default: "div" + }, + always: Boolean, + minSize: { + type: Number, + default: 20 + }, + tabindex: { + type: [String, Number], + default: void 0 + }, + id: String, + role: String, + ...useAriaProps(["ariaLabel", "ariaOrientation"]) +}); +const scrollbarEmits = { + scroll: ({ + scrollTop, + scrollLeft + }) => [scrollTop, scrollLeft].every(isNumber) +}; +const COMPONENT_NAME$1 = "ElScrollbar"; +const __default__$5 = defineComponent({ + name: COMPONENT_NAME$1 +}); +const _sfc_main$d = /* @__PURE__ */ defineComponent({ + ...__default__$5, + props: scrollbarProps, + emits: scrollbarEmits, + setup(__props, { expose, emit }) { + const props = __props; + const ns = useNamespace("scrollbar"); + let stopResizeObserver = void 0; + let stopResizeListener = void 0; + const scrollbarRef = ref(); + const wrapRef = ref(); + const resizeRef = ref(); + const barRef = ref(); + const wrapStyle = computed(() => { + const style = {}; + if (props.height) + style.height = addUnit(props.height); + if (props.maxHeight) + style.maxHeight = addUnit(props.maxHeight); + return [props.wrapStyle, style]; + }); + const wrapKls = computed(() => { + return [ + props.wrapClass, + ns.e("wrap"), + { [ns.em("wrap", "hidden-default")]: !props.native } + ]; + }); + const resizeKls = computed(() => { + return [ns.e("view"), props.viewClass]; + }); + const handleScroll = () => { + var _a; + if (wrapRef.value) { + (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value); + wrapRef.value.scrollTop; + wrapRef.value.scrollLeft; + emit("scroll", { + scrollTop: wrapRef.value.scrollTop, + scrollLeft: wrapRef.value.scrollLeft + }); + } + }; + function scrollTo(arg1, arg2) { + if (shared_cjs_prodExports.isObject(arg1)) { + wrapRef.value.scrollTo(arg1); + } else if (isNumber(arg1) && isNumber(arg2)) { + wrapRef.value.scrollTo(arg1, arg2); + } + } + const setScrollTop = (value) => { + if (!isNumber(value)) { + return; + } + wrapRef.value.scrollTop = value; + }; + const setScrollLeft = (value) => { + if (!isNumber(value)) { + return; + } + wrapRef.value.scrollLeft = value; + }; + const update = () => { + var _a; + (_a = barRef.value) == null ? void 0 : _a.update(); + }; + watch(() => props.noresize, (noresize) => { + if (noresize) { + stopResizeObserver == null ? void 0 : stopResizeObserver(); + stopResizeListener == null ? void 0 : stopResizeListener(); + } else { + ({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update)); + stopResizeListener = useEventListener("resize", update); + } + }, { immediate: true }); + watch(() => [props.maxHeight, props.height], () => { + if (!props.native) + nextTick(() => { + var _a; + update(); + if (wrapRef.value) { + (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value); + } + }); + }); + provide(scrollbarContextKey, reactive({ + scrollbarElement: scrollbarRef, + wrapElement: wrapRef + })); + expose({ + wrapRef, + update, + scrollTo, + setScrollTop, + setScrollLeft, + handleScroll + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + ref_key: "scrollbarRef", + ref: scrollbarRef, + class: normalizeClass(unref(ns).b()) + }, [ + createElementVNode("div", { + ref_key: "wrapRef", + ref: wrapRef, + class: normalizeClass(unref(wrapKls)), + style: normalizeStyle(unref(wrapStyle)), + tabindex: _ctx.tabindex, + onScroll: handleScroll + }, [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), { + id: _ctx.id, + ref_key: "resizeRef", + ref: resizeRef, + class: normalizeClass(unref(resizeKls)), + style: normalizeStyle(_ctx.viewStyle), + role: _ctx.role, + "aria-label": _ctx.ariaLabel, + "aria-orientation": _ctx.ariaOrientation + }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"])) + ], 46, ["tabindex"]), + !_ctx.native ? (openBlock(), createBlock(Bar, { + key: 0, + ref_key: "barRef", + ref: barRef, + always: _ctx.always, + "min-size": _ctx.minSize + }, null, 8, ["always", "min-size"])) : createCommentVNode("v-if", true) + ], 2); + }; + } +}); +var Scrollbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__file", "scrollbar.vue"]]); +const ElScrollbar = withInstall(Scrollbar); +const autocompleteProps = buildProps({ + valueKey: { + type: String, + default: "value" + }, + modelValue: { + type: [String, Number], + default: "" + }, + debounce: { + type: Number, + default: 300 + }, + placement: { + type: definePropType(String), + values: [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end" + ], + default: "bottom-start" + }, + fetchSuggestions: { + type: definePropType([Function, Array]), + default: shared_cjs_prodExports.NOOP + }, + popperClass: { + type: String, + default: "" + }, + triggerOnFocus: { + type: Boolean, + default: true + }, + selectWhenUnmatched: { + type: Boolean, + default: false + }, + hideLoading: { + type: Boolean, + default: false + }, + teleported: useTooltipContentProps.teleported, + highlightFirstItem: { + type: Boolean, + default: false + }, + fitInputWidth: { + type: Boolean, + default: false + }, + clearable: { + type: Boolean, + default: false + }, + disabled: { + type: Boolean, + default: false + }, + name: String, + ...useAriaProps(["ariaLabel"]) +}); +const autocompleteEmits = { + [UPDATE_MODEL_EVENT]: (value) => shared_cjs_prodExports.isString(value), + [INPUT_EVENT]: (value) => shared_cjs_prodExports.isString(value), + [CHANGE_EVENT]: (value) => shared_cjs_prodExports.isString(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + select: (item) => shared_cjs_prodExports.isObject(item) +}; +const COMPONENT_NAME = "ElAutocomplete"; +const __default__$4 = defineComponent({ + name: COMPONENT_NAME, + inheritAttrs: false +}); +const _sfc_main$c = /* @__PURE__ */ defineComponent({ + ...__default__$4, + props: autocompleteProps, + emits: autocompleteEmits, + setup(__props, { expose, emit }) { + const props = __props; + const attrs = useAttrs$1(); + const rawAttrs = useAttrs(); + const disabled = useFormDisabled(); + const ns = useNamespace("autocomplete"); + const inputRef = ref(); + const regionRef = ref(); + const popperRef = ref(); + const listboxRef = ref(); + let ignoreFocusEvent = false; + const suggestions = ref([]); + const highlightedIndex = ref(-1); + const dropdownWidth = ref(""); + const activated = ref(false); + const suggestionDisabled = ref(false); + const loading = ref(false); + const listboxId = useId(); + const styles = computed(() => rawAttrs.style); + const suggestionVisible = computed(() => { + const isValidData = suggestions.value.length > 0; + return (isValidData || loading.value) && activated.value; + }); + const suggestionLoading = computed(() => !props.hideLoading && loading.value); + const refInput = computed(() => { + if (inputRef.value) { + return Array.from(inputRef.value.$el.querySelectorAll("input")); + } + return []; + }); + const onSuggestionShow = () => { + if (suggestionVisible.value) { + dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`; + } + }; + const onHide = () => { + highlightedIndex.value = -1; + }; + const getData = async (queryString) => { + if (suggestionDisabled.value) + return; + const cb = (suggestionList) => { + loading.value = false; + if (suggestionDisabled.value) + return; + if (shared_cjs_prodExports.isArray(suggestionList)) { + suggestions.value = suggestionList; + highlightedIndex.value = props.highlightFirstItem ? 0 : -1; + } else { + throwError(COMPONENT_NAME, "autocomplete suggestions must be an array"); + } + }; + loading.value = true; + if (shared_cjs_prodExports.isArray(props.fetchSuggestions)) { + cb(props.fetchSuggestions); + } else { + const result = await props.fetchSuggestions(queryString, cb); + if (shared_cjs_prodExports.isArray(result)) + cb(result); + } + }; + const debouncedGetData = debounce(getData, props.debounce); + const handleInput = (value) => { + const valuePresented = !!value; + emit(INPUT_EVENT, value); + emit(UPDATE_MODEL_EVENT, value); + suggestionDisabled.value = false; + activated.value || (activated.value = valuePresented); + if (!props.triggerOnFocus && !value) { + suggestionDisabled.value = true; + suggestions.value = []; + return; + } + debouncedGetData(value); + }; + const handleMouseDown = (event) => { + var _a; + if (disabled.value) + return; + if (((_a = event.target) == null ? void 0 : _a.tagName) !== "INPUT" || refInput.value.includes((void 0).activeElement)) { + activated.value = true; + } + }; + const handleChange = (value) => { + emit(CHANGE_EVENT, value); + }; + const handleFocus = (evt) => { + if (!ignoreFocusEvent) { + activated.value = true; + emit("focus", evt); + if (props.triggerOnFocus && true) { + debouncedGetData(String(props.modelValue)); + } + } else { + ignoreFocusEvent = false; + } + }; + const handleBlur = (evt) => { + setTimeout(() => { + var _a; + if ((_a = popperRef.value) == null ? void 0 : _a.isFocusInsideContent()) { + ignoreFocusEvent = true; + return; + } + activated.value && close(); + emit("blur", evt); + }); + }; + const handleClear = () => { + activated.value = false; + emit(UPDATE_MODEL_EVENT, ""); + emit("clear"); + }; + const handleKeyEnter = async () => { + if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) { + handleSelect(suggestions.value[highlightedIndex.value]); + } else if (props.selectWhenUnmatched) { + emit("select", { value: props.modelValue }); + suggestions.value = []; + highlightedIndex.value = -1; + } + }; + const handleKeyEscape = (evt) => { + if (suggestionVisible.value) { + evt.preventDefault(); + evt.stopPropagation(); + close(); + } + }; + const close = () => { + activated.value = false; + }; + const focus = () => { + var _a; + (_a = inputRef.value) == null ? void 0 : _a.focus(); + }; + const blur = () => { + var _a; + (_a = inputRef.value) == null ? void 0 : _a.blur(); + }; + const handleSelect = async (item) => { + emit(INPUT_EVENT, item[props.valueKey]); + emit(UPDATE_MODEL_EVENT, item[props.valueKey]); + emit("select", item); + suggestions.value = []; + highlightedIndex.value = -1; + }; + const highlight = (index2) => { + if (!suggestionVisible.value || loading.value) + return; + if (index2 < 0) { + highlightedIndex.value = -1; + return; + } + if (index2 >= suggestions.value.length) { + index2 = suggestions.value.length - 1; + } + const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`); + const suggestionList = suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`); + const highlightItem = suggestionList[index2]; + const scrollTop = suggestion.scrollTop; + const { offsetTop, scrollHeight } = highlightItem; + if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) { + suggestion.scrollTop += scrollHeight; + } + if (offsetTop < scrollTop) { + suggestion.scrollTop -= scrollHeight; + } + highlightedIndex.value = index2; + inputRef.value.ref.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`); + }; + onClickOutside(listboxRef, () => { + var _a; + if ((_a = popperRef.value) == null ? void 0 : _a.isFocusInsideContent()) + return; + suggestionVisible.value && close(); + }); + expose({ + highlightedIndex, + activated, + loading, + inputRef, + popperRef, + suggestions, + handleSelect, + handleKeyEnter, + focus, + blur, + close, + highlight, + getData + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElTooltip), { + ref_key: "popperRef", + ref: popperRef, + visible: unref(suggestionVisible), + placement: _ctx.placement, + "fallback-placements": ["bottom-start", "top-start"], + "popper-class": [unref(ns).e("popper"), _ctx.popperClass], + teleported: _ctx.teleported, + "gpu-acceleration": false, + pure: "", + "manual-mode": "", + effect: "light", + trigger: "click", + transition: `${unref(ns).namespace.value}-zoom-in-top`, + persistent: "", + role: "listbox", + onBeforeShow: onSuggestionShow, + onHide + }, { + content: withCtx(() => [ + createElementVNode("div", { + ref_key: "regionRef", + ref: regionRef, + class: normalizeClass([unref(ns).b("suggestion"), unref(ns).is("loading", unref(suggestionLoading))]), + style: normalizeStyle({ + [_ctx.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value, + outline: "none" + }), + role: "region" + }, [ + createVNode(unref(ElScrollbar), { + id: unref(listboxId), + tag: "ul", + "wrap-class": unref(ns).be("suggestion", "wrap"), + "view-class": unref(ns).be("suggestion", "list"), + role: "listbox" + }, { + default: withCtx(() => [ + unref(suggestionLoading) ? (openBlock(), createElementBlock("li", { key: 0 }, [ + renderSlot(_ctx.$slots, "loading", {}, () => [ + createVNode(unref(ElIcon), { + class: normalizeClass(unref(ns).is("loading")) + }, { + default: withCtx(() => [ + createVNode(unref(loading_default)) + ]), + _: 1 + }, 8, ["class"]) + ]) + ])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(suggestions.value, (item, index2) => { + return openBlock(), createElementBlock("li", { + id: `${unref(listboxId)}-item-${index2}`, + key: index2, + class: normalizeClass({ highlighted: highlightedIndex.value === index2 }), + role: "option", + "aria-selected": highlightedIndex.value === index2, + onClick: ($event) => handleSelect(item) + }, [ + renderSlot(_ctx.$slots, "default", { item }, () => [ + createTextVNode(toDisplayString(item[_ctx.valueKey]), 1) + ]) + ], 10, ["id", "aria-selected", "onClick"]); + }), 128)) + ]), + _: 3 + }, 8, ["id", "wrap-class", "view-class"]) + ], 6) + ]), + default: withCtx(() => [ + createElementVNode("div", { + ref_key: "listboxRef", + ref: listboxRef, + class: normalizeClass([unref(ns).b(), _ctx.$attrs.class]), + style: normalizeStyle(unref(styles)), + role: "combobox", + "aria-haspopup": "listbox", + "aria-expanded": unref(suggestionVisible), + "aria-owns": unref(listboxId) + }, [ + createVNode(unref(ElInput), mergeProps({ + ref_key: "inputRef", + ref: inputRef + }, unref(attrs), { + clearable: _ctx.clearable, + disabled: unref(disabled), + name: _ctx.name, + "model-value": _ctx.modelValue, + "aria-label": _ctx.ariaLabel, + onInput: handleInput, + onChange: handleChange, + onFocus: handleFocus, + onBlur: handleBlur, + onClear: handleClear, + onKeydown: [ + withKeys(withModifiers(($event) => highlight(highlightedIndex.value - 1), ["prevent"]), ["up"]), + withKeys(withModifiers(($event) => highlight(highlightedIndex.value + 1), ["prevent"]), ["down"]), + withKeys(handleKeyEnter, ["enter"]), + withKeys(close, ["tab"]), + withKeys(handleKeyEscape, ["esc"]) + ], + onMousedown: handleMouseDown + }), createSlots({ + _: 2 + }, [ + _ctx.$slots.prepend ? { + name: "prepend", + fn: withCtx(() => [ + renderSlot(_ctx.$slots, "prepend") + ]) + } : void 0, + _ctx.$slots.append ? { + name: "append", + fn: withCtx(() => [ + renderSlot(_ctx.$slots, "append") + ]) + } : void 0, + _ctx.$slots.prefix ? { + name: "prefix", + fn: withCtx(() => [ + renderSlot(_ctx.$slots, "prefix") + ]) + } : void 0, + _ctx.$slots.suffix ? { + name: "suffix", + fn: withCtx(() => [ + renderSlot(_ctx.$slots, "suffix") + ]) + } : void 0 + ]), 1040, ["clearable", "disabled", "name", "model-value", "aria-label", "onKeydown"]) + ], 14, ["aria-expanded", "aria-owns"]) + ]), + _: 3 + }, 8, ["visible", "placement", "popper-class", "teleported", "transition"]); + }; + } +}); +var Autocomplete = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__file", "autocomplete.vue"]]); +const ElAutocomplete = withInstall(Autocomplete); +const buildTimeList = (value, bound) => { + return [ + value > 0 ? value - 1 : void 0, + value, + value < bound ? value + 1 : void 0 + ]; +}; +const rangeArr = (n) => Array.from(Array.from({ length: n }).keys()); +const extractDateFormat = (format) => { + return format.replace(/\W?m{1,2}|\W?ZZ/g, "").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, "").trim(); +}; +const extractTimeFormat = (format) => { + return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g, "").trim(); +}; +const dateEquals = function(a, b) { + const aIsDate = shared_cjs_prodExports.isDate(a); + const bIsDate = shared_cjs_prodExports.isDate(b); + if (aIsDate && bIsDate) { + return a.getTime() === b.getTime(); + } + if (!aIsDate && !bIsDate) { + return a === b; + } + return false; +}; +const valueEquals = function(a, b) { + const aIsArray = shared_cjs_prodExports.isArray(a); + const bIsArray = shared_cjs_prodExports.isArray(b); + if (aIsArray && bIsArray) { + if (a.length !== b.length) { + return false; + } + return a.every((item, index2) => dateEquals(item, b[index2])); + } + if (!aIsArray && !bIsArray) { + return dateEquals(a, b); + } + return false; +}; +const parseDate = function(date, format, lang) { + const day = isEmpty(format) || format === "x" ? dayjs(date).locale(lang) : dayjs(date, format).locale(lang); + return day.isValid() ? day : void 0; +}; +const formatter = function(date, format, lang) { + if (isEmpty(format)) + return date; + if (format === "x") + return +date; + return dayjs(date).locale(lang).format(format); +}; +const makeList = (total, method) => { + var _a; + const arr = []; + const disabledArr = method == null ? void 0 : method(); + for (let i = 0; i < total; i++) { + arr.push((_a = disabledArr == null ? void 0 : disabledArr.includes(i)) != null ? _a : false); + } + return arr; +}; +const dayOrDaysToDate = (dayOrDays) => { + return shared_cjs_prodExports.isArray(dayOrDays) ? dayOrDays.map((d) => d.toDate()) : dayOrDays.toDate(); +}; +const datePickTypes = [ + "year", + "years", + "month", + "months", + "date", + "dates", + "week", + "datetime", + "datetimerange", + "daterange", + "monthrange", + "yearrange" +]; +const castArray = (arr) => { + if (!arr && arr !== 0) + return []; + return shared_cjs_prodExports.isArray(arr) ? arr : [arr]; +}; +const nodeList = /* @__PURE__ */ new Map(); +function createDocumentHandler(el, binding) { + let excludes = []; + if (shared_cjs_prodExports.isArray(binding.arg)) { + excludes = binding.arg; + } else if (isElement(binding.arg)) { + excludes.push(binding.arg); + } + return function(mouseup, mousedown) { + const popperRef = binding.instance.popperRef; + const mouseUpTarget = mouseup.target; + const mouseDownTarget = mousedown == null ? void 0 : mousedown.target; + const isBound = !binding || !binding.instance; + const isTargetExists = !mouseUpTarget || !mouseDownTarget; + const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget); + const isSelf = el === mouseUpTarget; + const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget); + const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget)); + if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) { + return; + } + binding.value(mouseup, mousedown); + }; +} +const ClickOutside = { + beforeMount(el, binding) { + if (!nodeList.has(el)) { + nodeList.set(el, []); + } + nodeList.get(el).push({ + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }); + }, + updated(el, binding) { + if (!nodeList.has(el)) { + nodeList.set(el, []); + } + const handlers = nodeList.get(el); + const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue); + const newHandler = { + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }; + if (oldHandlerIndex >= 0) { + handlers.splice(oldHandlerIndex, 1, newHandler); + } else { + handlers.push(newHandler); + } + }, + unmounted(el) { + nodeList.delete(el); + } +}; +const ElConfigProvider = withInstall(ConfigProvider); +const timeUnits = ["hours", "minutes", "seconds"]; +const DEFAULT_FORMATS_TIME = "HH:mm:ss"; +const DEFAULT_FORMATS_DATE = "YYYY-MM-DD"; +const DEFAULT_FORMATS_DATEPICKER = { + date: DEFAULT_FORMATS_DATE, + dates: DEFAULT_FORMATS_DATE, + week: "gggg[w]ww", + year: "YYYY", + years: "YYYY", + month: "YYYY-MM", + months: "YYYY-MM", + datetime: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`, + monthrange: "YYYY-MM", + yearrange: "YYYY", + daterange: DEFAULT_FORMATS_DATE, + datetimerange: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}` +}; +const disabledTimeListsProps = buildProps({ + disabledHours: { + type: definePropType(Function) + }, + disabledMinutes: { + type: definePropType(Function) + }, + disabledSeconds: { + type: definePropType(Function) + } +}); +const timePanelSharedProps = buildProps({ + visible: Boolean, + actualVisible: { + type: Boolean, + default: void 0 + }, + format: { + type: String, + default: "" + } +}); +const timePickerDefaultProps = buildProps({ + id: { + type: definePropType([Array, String]) + }, + name: { + type: definePropType([Array, String]) + }, + popperClass: { + type: String, + default: "" + }, + format: String, + valueFormat: String, + dateFormat: String, + timeFormat: String, + type: { + type: String, + default: "" + }, + clearable: { + type: Boolean, + default: true + }, + clearIcon: { + type: definePropType([String, Object]), + default: circle_close_default + }, + editable: { + type: Boolean, + default: true + }, + prefixIcon: { + type: definePropType([String, Object]), + default: "" + }, + size: useSizeProp, + readonly: Boolean, + disabled: Boolean, + placeholder: { + type: String, + default: "" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + modelValue: { + type: definePropType([Date, Array, String, Number]), + default: "" + }, + rangeSeparator: { + type: String, + default: "-" + }, + startPlaceholder: String, + endPlaceholder: String, + defaultValue: { + type: definePropType([Date, Array]) + }, + defaultTime: { + type: definePropType([Date, Array]) + }, + isRange: Boolean, + ...disabledTimeListsProps, + disabledDate: { + type: Function + }, + cellClassName: { + type: Function + }, + shortcuts: { + type: Array, + default: () => [] + }, + arrowControl: Boolean, + tabindex: { + type: definePropType([String, Number]), + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + unlinkPanels: Boolean, + placement: { + type: definePropType(String), + values: placements, + default: "bottom" + }, + fallbackPlacements: { + type: definePropType(Array), + default: ["bottom", "top", "right", "left"] + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]), + showNow: { + type: Boolean, + default: true + } +}); +const timePickerRangeTriggerProps = buildProps({ + id: { + type: definePropType(Array) + }, + name: { + type: definePropType(Array) + }, + modelValue: { + type: definePropType([Array, String]) + }, + startPlaceholder: String, + endPlaceholder: String +}); +const __default__$3 = defineComponent({ + name: "PickerRangeTrigger", + inheritAttrs: false +}); +const _sfc_main$b = /* @__PURE__ */ defineComponent({ + ...__default__$3, + props: timePickerRangeTriggerProps, + emits: [ + "mouseenter", + "mouseleave", + "click", + "touchstart", + "focus", + "blur", + "startInput", + "endInput", + "startChange", + "endChange" + ], + setup(__props, { expose, emit }) { + const attrs = useAttrs$1(); + const nsDate = useNamespace("date"); + const nsRange = useNamespace("range"); + const inputRef = ref(); + const endInputRef = ref(); + const { wrapperRef, isFocused } = useFocusController(inputRef); + const handleClick = (evt) => { + emit("click", evt); + }; + const handleMouseEnter = (evt) => { + emit("mouseenter", evt); + }; + const handleMouseLeave = (evt) => { + emit("mouseleave", evt); + }; + const handleTouchStart = (evt) => { + emit("mouseenter", evt); + }; + const handleStartInput = (evt) => { + emit("startInput", evt); + }; + const handleEndInput = (evt) => { + emit("endInput", evt); + }; + const handleStartChange = (evt) => { + emit("startChange", evt); + }; + const handleEndChange = (evt) => { + emit("endChange", evt); + }; + const focus = () => { + var _a; + (_a = inputRef.value) == null ? void 0 : _a.focus(); + }; + const blur = () => { + var _a, _b; + (_a = inputRef.value) == null ? void 0 : _a.blur(); + (_b = endInputRef.value) == null ? void 0 : _b.blur(); + }; + expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: normalizeClass([unref(nsDate).is("active", unref(isFocused)), _ctx.$attrs.class]), + style: normalizeStyle(_ctx.$attrs.style), + onClick: handleClick, + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave, + onTouchstartPassive: handleTouchStart + }, [ + renderSlot(_ctx.$slots, "prefix"), + createElementVNode("input", mergeProps(unref(attrs), { + id: _ctx.id && _ctx.id[0], + ref_key: "inputRef", + ref: inputRef, + name: _ctx.name && _ctx.name[0], + placeholder: _ctx.startPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[0], + class: unref(nsRange).b("input"), + onInput: handleStartInput, + onChange: handleStartChange + }), null, 16, ["id", "name", "placeholder", "value"]), + renderSlot(_ctx.$slots, "range-separator"), + createElementVNode("input", mergeProps(unref(attrs), { + id: _ctx.id && _ctx.id[1], + ref_key: "endInputRef", + ref: endInputRef, + name: _ctx.name && _ctx.name[1], + placeholder: _ctx.endPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[1], + class: unref(nsRange).b("input"), + onInput: handleEndInput, + onChange: handleEndChange + }), null, 16, ["id", "name", "placeholder", "value"]), + renderSlot(_ctx.$slots, "suffix") + ], 38); + }; + } +}); +var PickerRangeTrigger = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__file", "picker-range-trigger.vue"]]); +const __default__$2 = defineComponent({ + name: "Picker" +}); +const _sfc_main$a = /* @__PURE__ */ defineComponent({ + ...__default__$2, + props: timePickerDefaultProps, + emits: [ + "update:modelValue", + "change", + "focus", + "blur", + "clear", + "calendar-change", + "panel-change", + "visible-change", + "keydown" + ], + setup(__props, { expose, emit }) { + const props = __props; + const attrs = useAttrs(); + const { lang } = useLocale(); + const nsDate = useNamespace("date"); + const nsInput = useNamespace("input"); + const nsRange = useNamespace("range"); + const { form, formItem } = useFormItem(); + const elPopperOptions = inject("ElPopperOptions", {}); + const { valueOnClear } = useEmptyValues(props, null); + const refPopper = ref(); + const inputRef = ref(); + const pickerVisible = ref(false); + const pickerActualVisible = ref(false); + const valueOnOpen = ref(null); + let hasJustTabExitedInput = false; + const { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, { + beforeFocus() { + return props.readonly || pickerDisabled.value; + }, + afterFocus() { + pickerVisible.value = true; + }, + beforeBlur(event) { + var _a; + return !hasJustTabExitedInput && ((_a = refPopper.value) == null ? void 0 : _a.isFocusInsideContent(event)); + }, + afterBlur() { + handleChange(); + pickerVisible.value = false; + hasJustTabExitedInput = false; + props.validateEvent && (formItem == null ? void 0 : formItem.validate("blur").catch((err) => debugWarn())); + } + }); + const rangeInputKls = computed(() => [ + nsDate.b("editor"), + nsDate.bm("editor", props.type), + nsInput.e("wrapper"), + nsDate.is("disabled", pickerDisabled.value), + nsDate.is("active", pickerVisible.value), + nsRange.b("editor"), + pickerSize ? nsRange.bm("editor", pickerSize.value) : "", + attrs.class + ]); + const clearIconKls = computed(() => [ + nsInput.e("icon"), + nsRange.e("close-icon"), + !showClose.value ? nsRange.e("close-icon--hidden") : "" + ]); + watch(pickerVisible, (val) => { + if (!val) { + userInput.value = null; + nextTick(() => { + emitChange(props.modelValue); + }); + } else { + nextTick(() => { + if (val) { + valueOnOpen.value = props.modelValue; + } + }); + } + }); + const emitChange = (val, isClear) => { + if (isClear || !valueEquals(val, valueOnOpen.value)) { + emit("change", val); + props.validateEvent && (formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn())); + } + }; + const emitInput = (input) => { + if (!valueEquals(props.modelValue, input)) { + let formatted; + if (shared_cjs_prodExports.isArray(input)) { + formatted = input.map((item) => formatter(item, props.valueFormat, lang.value)); + } else if (input) { + formatted = formatter(input, props.valueFormat, lang.value); + } + emit("update:modelValue", input ? formatted : input, lang.value); + } + }; + const emitKeydown = (e) => { + emit("keydown", e); + }; + const refInput = computed(() => { + if (inputRef.value) { + return Array.from(inputRef.value.$el.querySelectorAll("input")); + } + return []; + }); + const setSelectionRange = (start, end, pos) => { + const _inputs = refInput.value; + if (!_inputs.length) + return; + if (!pos || pos === "min") { + _inputs[0].setSelectionRange(start, end); + _inputs[0].focus(); + } else if (pos === "max") { + _inputs[1].setSelectionRange(start, end); + _inputs[1].focus(); + } + }; + const onPick = (date = "", visible = false) => { + pickerVisible.value = visible; + let result; + if (shared_cjs_prodExports.isArray(date)) { + result = date.map((_) => _.toDate()); + } else { + result = date ? date.toDate() : date; + } + userInput.value = null; + emitInput(result); + }; + const onBeforeShow = () => { + pickerActualVisible.value = true; + }; + const onShow = () => { + emit("visible-change", true); + }; + const onHide = () => { + pickerActualVisible.value = false; + pickerVisible.value = false; + emit("visible-change", false); + }; + const handleOpen = () => { + pickerVisible.value = true; + }; + const handleClose = () => { + pickerVisible.value = false; + }; + const pickerDisabled = computed(() => { + return props.disabled || (form == null ? void 0 : form.disabled); + }); + const parsedValue = computed(() => { + let dayOrDays; + if (valueIsEmpty.value) { + if (pickerOptions.value.getDefaultValue) { + dayOrDays = pickerOptions.value.getDefaultValue(); + } + } else { + if (shared_cjs_prodExports.isArray(props.modelValue)) { + dayOrDays = props.modelValue.map((d) => parseDate(d, props.valueFormat, lang.value)); + } else { + dayOrDays = parseDate(props.modelValue, props.valueFormat, lang.value); + } + } + if (pickerOptions.value.getRangeAvailableTime) { + const availableResult = pickerOptions.value.getRangeAvailableTime(dayOrDays); + if (!isEqual(availableResult, dayOrDays)) { + dayOrDays = availableResult; + if (!valueIsEmpty.value) { + emitInput(dayOrDaysToDate(dayOrDays)); + } + } + } + if (shared_cjs_prodExports.isArray(dayOrDays) && dayOrDays.some((day) => !day)) { + dayOrDays = []; + } + return dayOrDays; + }); + const displayValue = computed(() => { + if (!pickerOptions.value.panelReady) + return ""; + const formattedValue = formatDayjsToString(parsedValue.value); + if (shared_cjs_prodExports.isArray(userInput.value)) { + return [ + userInput.value[0] || formattedValue && formattedValue[0] || "", + userInput.value[1] || formattedValue && formattedValue[1] || "" + ]; + } else if (userInput.value !== null) { + return userInput.value; + } + if (!isTimePicker.value && valueIsEmpty.value) + return ""; + if (!pickerVisible.value && valueIsEmpty.value) + return ""; + if (formattedValue) { + return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value ? formattedValue.join(", ") : formattedValue; + } + return ""; + }); + const isTimeLikePicker = computed(() => props.type.includes("time")); + const isTimePicker = computed(() => props.type.startsWith("time")); + const isDatesPicker = computed(() => props.type === "dates"); + const isMonthsPicker = computed(() => props.type === "months"); + const isYearsPicker = computed(() => props.type === "years"); + const triggerIcon = computed(() => props.prefixIcon || (isTimeLikePicker.value ? clock_default : calendar_default)); + const showClose = ref(false); + const onClearIconClick = (event) => { + if (props.readonly || pickerDisabled.value) + return; + if (showClose.value) { + event.stopPropagation(); + if (pickerOptions.value.handleClear) { + pickerOptions.value.handleClear(); + } else { + emitInput(valueOnClear.value); + } + emitChange(valueOnClear.value, true); + showClose.value = false; + onHide(); + } + emit("clear"); + }; + const valueIsEmpty = computed(() => { + const { modelValue } = props; + return !modelValue || shared_cjs_prodExports.isArray(modelValue) && !modelValue.filter(Boolean).length; + }); + const onMouseDownInput = async (event) => { + var _a; + if (props.readonly || pickerDisabled.value) + return; + if (((_a = event.target) == null ? void 0 : _a.tagName) !== "INPUT" || isFocused.value) { + pickerVisible.value = true; + } + }; + const onMouseEnter = () => { + if (props.readonly || pickerDisabled.value) + return; + if (!valueIsEmpty.value && props.clearable) { + showClose.value = true; + } + }; + const onMouseLeave = () => { + showClose.value = false; + }; + const onTouchStartInput = (event) => { + var _a; + if (props.readonly || pickerDisabled.value) + return; + if (((_a = event.touches[0].target) == null ? void 0 : _a.tagName) !== "INPUT" || isFocused.value) { + pickerVisible.value = true; + } + }; + const isRangeInput = computed(() => { + return props.type.includes("range"); + }); + const pickerSize = useFormSize(); + const popperEl = computed(() => { + var _a, _b; + return (_b = (_a = unref(refPopper)) == null ? void 0 : _a.popperRef) == null ? void 0 : _b.contentRef; + }); + onClickOutside(inputRef, (e) => { + const unrefedPopperEl = unref(popperEl); + const inputEl = unrefElement(inputRef); + if (unrefedPopperEl && (e.target === unrefedPopperEl || e.composedPath().includes(unrefedPopperEl)) || e.target === inputEl || inputEl && e.composedPath().includes(inputEl)) + return; + pickerVisible.value = false; + }); + const userInput = ref(null); + const handleChange = () => { + if (userInput.value) { + const value = parseUserInputToDayjs(displayValue.value); + if (value) { + if (isValidValue(value)) { + emitInput(dayOrDaysToDate(value)); + userInput.value = null; + } + } + } + if (userInput.value === "") { + emitInput(valueOnClear.value); + emitChange(valueOnClear.value); + userInput.value = null; + } + }; + const parseUserInputToDayjs = (value) => { + if (!value) + return null; + return pickerOptions.value.parseUserInput(value); + }; + const formatDayjsToString = (value) => { + if (!value) + return null; + return pickerOptions.value.formatToString(value); + }; + const isValidValue = (value) => { + return pickerOptions.value.isValidValue(value); + }; + const handleKeydownInput = async (event) => { + if (props.readonly || pickerDisabled.value) + return; + const { code } = event; + emitKeydown(event); + if (code === EVENT_CODE.esc) { + if (pickerVisible.value === true) { + pickerVisible.value = false; + event.preventDefault(); + event.stopPropagation(); + } + return; + } + if (code === EVENT_CODE.down) { + if (pickerOptions.value.handleFocusPicker) { + event.preventDefault(); + event.stopPropagation(); + } + if (pickerVisible.value === false) { + pickerVisible.value = true; + await nextTick(); + } + if (pickerOptions.value.handleFocusPicker) { + pickerOptions.value.handleFocusPicker(); + return; + } + } + if (code === EVENT_CODE.tab) { + hasJustTabExitedInput = true; + return; + } + if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) { + if (userInput.value === null || userInput.value === "" || isValidValue(parseUserInputToDayjs(displayValue.value))) { + handleChange(); + pickerVisible.value = false; + } + event.stopPropagation(); + return; + } + if (userInput.value) { + event.stopPropagation(); + return; + } + if (pickerOptions.value.handleKeydownInput) { + pickerOptions.value.handleKeydownInput(event); + } + }; + const onUserInput = (e) => { + userInput.value = e; + if (!pickerVisible.value) { + pickerVisible.value = true; + } + }; + const handleStartInput = (event) => { + const target = event.target; + if (userInput.value) { + userInput.value = [target.value, userInput.value[1]]; + } else { + userInput.value = [target.value, null]; + } + }; + const handleEndInput = (event) => { + const target = event.target; + if (userInput.value) { + userInput.value = [userInput.value[0], target.value]; + } else { + userInput.value = [null, target.value]; + } + }; + const handleStartChange = () => { + var _a; + const values = userInput.value; + const value = parseUserInputToDayjs(values && values[0]); + const parsedVal = unref(parsedValue); + if (value && value.isValid()) { + userInput.value = [ + formatDayjsToString(value), + ((_a = displayValue.value) == null ? void 0 : _a[1]) || null + ]; + const newValue = [value, parsedVal && (parsedVal[1] || null)]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const handleEndChange = () => { + var _a; + const values = unref(userInput); + const value = parseUserInputToDayjs(values && values[1]); + const parsedVal = unref(parsedValue); + if (value && value.isValid()) { + userInput.value = [ + ((_a = unref(displayValue)) == null ? void 0 : _a[0]) || null, + formatDayjsToString(value) + ]; + const newValue = [parsedVal && parsedVal[0], value]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const pickerOptions = ref({}); + const onSetPickerOption = (e) => { + pickerOptions.value[e[0]] = e[1]; + pickerOptions.value.panelReady = true; + }; + const onCalendarChange = (e) => { + emit("calendar-change", e); + }; + const onPanelChange = (value, mode, view) => { + emit("panel-change", value, mode, view); + }; + const focus = () => { + var _a; + (_a = inputRef.value) == null ? void 0 : _a.focus(); + }; + const blur = () => { + var _a; + (_a = inputRef.value) == null ? void 0 : _a.blur(); + }; + provide("EP_PICKER_BASE", { + props + }); + expose({ + focus, + blur, + handleOpen, + handleClose, + onPick + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElTooltip), mergeProps({ + ref_key: "refPopper", + ref: refPopper, + visible: pickerVisible.value, + effect: "light", + pure: "", + trigger: "click" + }, _ctx.$attrs, { + role: "dialog", + teleported: "", + transition: `${unref(nsDate).namespace.value}-zoom-in-top`, + "popper-class": [`${unref(nsDate).namespace.value}-picker__popper`, _ctx.popperClass], + "popper-options": unref(elPopperOptions), + "fallback-placements": _ctx.fallbackPlacements, + "gpu-acceleration": false, + placement: _ctx.placement, + "stop-popper-mouse-event": false, + "hide-after": 0, + persistent: "", + onBeforeShow, + onShow, + onHide + }), { + default: withCtx(() => [ + !unref(isRangeInput) ? (openBlock(), createBlock(unref(ElInput), { + key: 0, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "container-role": "combobox", + "model-value": unref(displayValue), + name: _ctx.name, + size: unref(pickerSize), + disabled: unref(pickerDisabled), + placeholder: _ctx.placeholder, + class: normalizeClass([unref(nsDate).b("editor"), unref(nsDate).bm("editor", _ctx.type), _ctx.$attrs.class]), + style: normalizeStyle(_ctx.$attrs.style), + readonly: !_ctx.editable || _ctx.readonly || unref(isDatesPicker) || unref(isMonthsPicker) || unref(isYearsPicker) || _ctx.type === "week", + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + "validate-event": false, + onInput: onUserInput, + onFocus: unref(handleFocus), + onBlur: unref(handleBlur), + onKeydown: handleKeydownInput, + onChange: handleChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onClick: withModifiers(() => { + }, ["stop"]) + }, { + prefix: withCtx(() => [ + unref(triggerIcon) ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass(unref(nsInput).e("icon")), + onMousedown: withModifiers(onMouseDownInput, ["prevent"]), + onTouchstartPassive: onTouchStartInput + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(unref(triggerIcon)))) + ]), + _: 1 + }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true) + ]), + suffix: withCtx(() => [ + showClose.value && _ctx.clearIcon ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass(`${unref(nsInput).e("icon")} clear-icon`), + onMousedown: withModifiers(unref(shared_cjs_prodExports.NOOP), ["prevent"]), + onClick: onClearIconClick + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon))) + ]), + _: 1 + }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true) + ]), + _: 1 + }, 8, ["id", "model-value", "name", "size", "disabled", "placeholder", "class", "style", "readonly", "aria-label", "tabindex", "onFocus", "onBlur", "onClick"])) : (openBlock(), createBlock(PickerRangeTrigger, { + key: 1, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "model-value": unref(displayValue), + name: _ctx.name, + disabled: unref(pickerDisabled), + readonly: !_ctx.editable || _ctx.readonly, + "start-placeholder": _ctx.startPlaceholder, + "end-placeholder": _ctx.endPlaceholder, + class: normalizeClass(unref(rangeInputKls)), + style: normalizeStyle(_ctx.$attrs.style), + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + autocomplete: "off", + role: "combobox", + onClick: onMouseDownInput, + onFocus: unref(handleFocus), + onBlur: unref(handleBlur), + onStartInput: handleStartInput, + onStartChange: handleStartChange, + onEndInput: handleEndInput, + onEndChange: handleEndChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onKeydown: handleKeydownInput + }, { + prefix: withCtx(() => [ + unref(triggerIcon) ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass([unref(nsInput).e("icon"), unref(nsRange).e("icon")]) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(unref(triggerIcon)))) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true) + ]), + "range-separator": withCtx(() => [ + renderSlot(_ctx.$slots, "range-separator", {}, () => [ + createElementVNode("span", { + class: normalizeClass(unref(nsRange).b("separator")) + }, toDisplayString(_ctx.rangeSeparator), 3) + ]) + ]), + suffix: withCtx(() => [ + _ctx.clearIcon ? (openBlock(), createBlock(unref(ElIcon), { + key: 0, + class: normalizeClass(unref(clearIconKls)), + onMousedown: withModifiers(unref(shared_cjs_prodExports.NOOP), ["prevent"]), + onClick: onClearIconClick + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon))) + ]), + _: 1 + }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 8, ["id", "model-value", "name", "disabled", "readonly", "start-placeholder", "end-placeholder", "class", "style", "aria-label", "tabindex", "onFocus", "onBlur"])) + ]), + content: withCtx(() => [ + renderSlot(_ctx.$slots, "default", { + visible: pickerVisible.value, + actualVisible: pickerActualVisible.value, + parsedValue: unref(parsedValue), + format: _ctx.format, + dateFormat: _ctx.dateFormat, + timeFormat: _ctx.timeFormat, + unlinkPanels: _ctx.unlinkPanels, + type: _ctx.type, + defaultValue: _ctx.defaultValue, + showNow: _ctx.showNow, + onPick, + onSelectRange: setSelectionRange, + onSetPickerOption, + onCalendarChange, + onPanelChange, + onMousedown: withModifiers(() => { + }, ["stop"]) + }) + ]), + _: 3 + }, 16, ["visible", "transition", "popper-class", "popper-options", "fallback-placements", "placement"]); + }; + } +}); +var CommonPicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__file", "picker.vue"]]); +const panelTimePickerProps = buildProps({ + ...timePanelSharedProps, + datetimeRole: String, + parsedValue: { + type: definePropType(Object) + } +}); +const useTimePanel = ({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds +}) => { + const getAvailableTime = (date, role, first, compareDate) => { + const availableTimeGetters = { + hour: getAvailableHours, + minute: getAvailableMinutes, + second: getAvailableSeconds + }; + let result = date; + ["hour", "minute", "second"].forEach((type) => { + if (availableTimeGetters[type]) { + let availableTimeSlots; + const method = availableTimeGetters[type]; + switch (type) { + case "minute": { + availableTimeSlots = method(result.hour(), role, compareDate); + break; + } + case "second": { + availableTimeSlots = method(result.hour(), result.minute(), role, compareDate); + break; + } + default: { + availableTimeSlots = method(role, compareDate); + break; + } + } + if ((availableTimeSlots == null ? void 0 : availableTimeSlots.length) && !availableTimeSlots.includes(result[type]())) { + const pos = first ? 0 : availableTimeSlots.length - 1; + result = result[type](availableTimeSlots[pos]); + } + } + }); + return result; + }; + const timePickerOptions = {}; + const onSetOption = ([key, val]) => { + timePickerOptions[key] = val; + }; + return { + timePickerOptions, + getAvailableTime, + onSetOption + }; +}; +const makeAvailableArr = (disabledList) => { + const trueOrNumber = (isDisabled, index2) => isDisabled || index2; + const getNumber = (predicate) => predicate !== true; + return disabledList.map(trueOrNumber).filter(getNumber); +}; +const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => { + const getHoursList = (role, compare) => { + return makeList(24, disabledHours && (() => disabledHours == null ? void 0 : disabledHours(role, compare))); + }; + const getMinutesList = (hour, role, compare) => { + return makeList(60, disabledMinutes && (() => disabledMinutes == null ? void 0 : disabledMinutes(hour, role, compare))); + }; + const getSecondsList = (hour, minute, role, compare) => { + return makeList(60, disabledSeconds && (() => disabledSeconds == null ? void 0 : disabledSeconds(hour, minute, role, compare))); + }; + return { + getHoursList, + getMinutesList, + getSecondsList + }; +}; +const buildAvailableTimeSlotGetter = (disabledHours, disabledMinutes, disabledSeconds) => { + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(disabledHours, disabledMinutes, disabledSeconds); + const getAvailableHours = (role, compare) => { + return makeAvailableArr(getHoursList(role, compare)); + }; + const getAvailableMinutes = (hour, role, compare) => { + return makeAvailableArr(getMinutesList(hour, role, compare)); + }; + const getAvailableSeconds = (hour, minute, role, compare) => { + return makeAvailableArr(getSecondsList(hour, minute, role, compare)); + }; + return { + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }; +}; +const useOldValue = (props) => { + const oldValue = ref(props.parsedValue); + watch(() => props.visible, (val) => { + if (!val) { + oldValue.value = props.parsedValue; + } + }); + return oldValue; +}; +const basicTimeSpinnerProps = buildProps({ + role: { + type: String, + required: true + }, + spinnerDate: { + type: definePropType(Object), + required: true + }, + showSeconds: { + type: Boolean, + default: true + }, + arrowControl: Boolean, + amPmMode: { + type: definePropType(String), + default: "" + }, + ...disabledTimeListsProps +}); +const REPEAT_INTERVAL = 100; +const REPEAT_DELAY = 600; +const vRepeatClick = { + beforeMount(el, binding) { + const value = binding.value; + const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = shared_cjs_prodExports.isFunction(value) ? {} : value; + let intervalId; + let delayId; + const handler = () => shared_cjs_prodExports.isFunction(value) ? value() : value.handler(); + const clear = () => { + if (delayId) { + clearTimeout(delayId); + delayId = void 0; + } + if (intervalId) { + clearInterval(intervalId); + intervalId = void 0; + } + }; + el.addEventListener("mousedown", (evt) => { + if (evt.button !== 0) + return; + clear(); + handler(); + (void 0).addEventListener("mouseup", () => clear(), { + once: true + }); + delayId = setTimeout(() => { + intervalId = setInterval(() => { + handler(); + }, interval); + }, delay); + }); + } +}; +const _sfc_main$9 = /* @__PURE__ */ defineComponent({ + __name: "basic-time-spinner", + props: basicTimeSpinnerProps, + emits: ["change", "select-range", "set-option"], + setup(__props, { emit }) { + const props = __props; + const pickerBase = inject("EP_PICKER_BASE"); + const { isRange } = pickerBase.props; + const ns = useNamespace("time"); + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds); + let isScrolling = false; + const currentScrollbar = ref(); + const listHoursRef = ref(); + const listMinutesRef = ref(); + const listSecondsRef = ref(); + const listRefsMap = { + hours: listHoursRef, + minutes: listMinutesRef, + seconds: listSecondsRef + }; + const spinnerItems = computed(() => { + return props.showSeconds ? timeUnits : timeUnits.slice(0, 2); + }); + const timePartials = computed(() => { + const { spinnerDate } = props; + const hours = spinnerDate.hour(); + const minutes = spinnerDate.minute(); + const seconds = spinnerDate.second(); + return { hours, minutes, seconds }; + }); + const timeList = computed(() => { + const { hours, minutes } = unref(timePartials); + const { role, spinnerDate } = props; + const compare = !isRange ? spinnerDate : void 0; + return { + hours: getHoursList(role, compare), + minutes: getMinutesList(hours, role, compare), + seconds: getSecondsList(hours, minutes, role, compare) + }; + }); + const arrowControlTimeList = computed(() => { + const { hours, minutes, seconds } = unref(timePartials); + return { + hours: buildTimeList(hours, 23), + minutes: buildTimeList(minutes, 59), + seconds: buildTimeList(seconds, 59) + }; + }); + debounce((type) => { + isScrolling = false; + adjustCurrentSpinner(type); + }, 200); + const getAmPmFlag = (hour) => { + const shouldShowAmPm = !!props.amPmMode; + if (!shouldShowAmPm) + return ""; + const isCapital = props.amPmMode === "A"; + let content = hour < 12 ? " am" : " pm"; + if (isCapital) + content = content.toUpperCase(); + return content; + }; + const emitSelectRange = (type) => { + let range; + switch (type) { + case "hours": + range = [0, 2]; + break; + case "minutes": + range = [3, 5]; + break; + case "seconds": + range = [6, 8]; + break; + } + const [left, right] = range; + emit("select-range", left, right); + currentScrollbar.value = type; + }; + const adjustCurrentSpinner = (type) => { + adjustSpinner(type, unref(timePartials)[type]); + }; + const adjustSpinners = () => { + adjustCurrentSpinner("hours"); + adjustCurrentSpinner("minutes"); + adjustCurrentSpinner("seconds"); + }; + const getScrollbarElement = (el) => el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`); + const adjustSpinner = (type, value) => { + if (props.arrowControl) + return; + const scrollbar = unref(listRefsMap[type]); + if (scrollbar && scrollbar.$el) { + getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type)); + } + }; + const typeItemHeight = (type) => { + const scrollbar = unref(listRefsMap[type]); + const listItem = scrollbar == null ? void 0 : scrollbar.$el.querySelector("li"); + if (listItem) { + return Number.parseFloat(getStyle()) || 0; + } + return 0; + }; + const onIncrement = () => { + scrollDown(1); + }; + const onDecrement = () => { + scrollDown(-1); + }; + const scrollDown = (step) => { + if (!currentScrollbar.value) { + emitSelectRange("hours"); + } + const label = currentScrollbar.value; + const now2 = unref(timePartials)[label]; + const total = currentScrollbar.value === "hours" ? 24 : 60; + const next = findNextUnDisabled(label, now2, step, total); + modifyDateField(label, next); + adjustSpinner(label, next); + nextTick(() => emitSelectRange(label)); + }; + const findNextUnDisabled = (type, now2, step, total) => { + let next = (now2 + step + total) % total; + const list = unref(timeList)[type]; + while (list[next] && next !== now2) { + next = (next + step + total) % total; + } + return next; + }; + const modifyDateField = (type, value) => { + const list = unref(timeList)[type]; + const isDisabled = list[value]; + if (isDisabled) + return; + const { hours, minutes, seconds } = unref(timePartials); + let changeTo; + switch (type) { + case "hours": + changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds); + break; + case "minutes": + changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds); + break; + case "seconds": + changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value); + break; + } + emit("change", changeTo); + }; + const handleClick = (type, { value, disabled }) => { + if (!disabled) { + modifyDateField(type, value); + emitSelectRange(type); + adjustSpinner(type, value); + } + }; + const setRef = (scrollbar, type) => { + listRefsMap[type].value = scrollbar != null ? scrollbar : void 0; + }; + emit("set-option", [`${props.role}_scrollDown`, scrollDown]); + emit("set-option", [`${props.role}_emitSelectRange`, emitSelectRange]); + watch(() => props.spinnerDate, () => { + if (isScrolling) + return; + adjustSpinners(); + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([unref(ns).b("spinner"), { "has-seconds": _ctx.showSeconds }]) + }, [ + !_ctx.arrowControl ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(spinnerItems), (item) => { + return openBlock(), createBlock(unref(ElScrollbar), { + key: item, + ref_for: true, + ref: (scrollbar) => setRef(scrollbar, item), + class: normalizeClass(unref(ns).be("spinner", "wrapper")), + "wrap-style": "max-height: inherit;", + "view-class": unref(ns).be("spinner", "list"), + noresize: "", + tag: "ul", + onMouseenter: ($event) => emitSelectRange(item), + onMousemove: ($event) => adjustCurrentSpinner(item) + }, { + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(timeList)[item], (disabled, key) => { + return openBlock(), createElementBlock("li", { + key, + class: normalizeClass([ + unref(ns).be("spinner", "item"), + unref(ns).is("active", key === unref(timePartials)[item]), + unref(ns).is("disabled", disabled) + ]), + onClick: ($event) => handleClick(item, { value: key, disabled }) + }, [ + item === "hours" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString(("0" + (_ctx.amPmMode ? key % 12 || 12 : key)).slice(-2)) + toDisplayString(getAmPmFlag(key)), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString(("0" + key).slice(-2)), 1) + ], 64)) + ], 10, ["onClick"]); + }), 128)) + ]), + _: 2 + }, 1032, ["class", "view-class", "onMouseenter", "onMousemove"]); + }), 128)) : createCommentVNode("v-if", true), + _ctx.arrowControl ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(spinnerItems), (item) => { + return openBlock(), createElementBlock("div", { + key: item, + class: normalizeClass([unref(ns).be("spinner", "wrapper"), unref(ns).is("arrow")]), + onMouseenter: ($event) => emitSelectRange(item) + }, [ + withDirectives((openBlock(), createBlock(unref(ElIcon), { + class: normalizeClass(["arrow-up", unref(ns).be("spinner", "arrow")]) + }, { + default: withCtx(() => [ + createVNode(unref(arrow_up_default)) + ]), + _: 1 + }, 8, ["class"])), [ + [unref(vRepeatClick), onDecrement] + ]), + withDirectives((openBlock(), createBlock(unref(ElIcon), { + class: normalizeClass(["arrow-down", unref(ns).be("spinner", "arrow")]) + }, { + default: withCtx(() => [ + createVNode(unref(arrow_down_default)) + ]), + _: 1 + }, 8, ["class"])), [ + [unref(vRepeatClick), onIncrement] + ]), + createElementVNode("ul", { + class: normalizeClass(unref(ns).be("spinner", "list")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(arrowControlTimeList)[item], (time, key) => { + return openBlock(), createElementBlock("li", { + key, + class: normalizeClass([ + unref(ns).be("spinner", "item"), + unref(ns).is("active", time === unref(timePartials)[item]), + unref(ns).is("disabled", unref(timeList)[item][time]) + ]) + }, [ + unref(isNumber)(time) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + item === "hours" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ + createTextVNode(toDisplayString(("0" + (_ctx.amPmMode ? time % 12 || 12 : time)).slice(-2)) + toDisplayString(getAmPmFlag(time)), 1) + ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ + createTextVNode(toDisplayString(("0" + time).slice(-2)), 1) + ], 64)) + ], 64)) : createCommentVNode("v-if", true) + ], 2); + }), 128)) + ], 2) + ], 42, ["onMouseenter"]); + }), 128)) : createCommentVNode("v-if", true) + ], 2); + }; + } +}); +var TimeSpinner = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__file", "basic-time-spinner.vue"]]); +const _sfc_main$8 = /* @__PURE__ */ defineComponent({ + __name: "panel-time-pick", + props: panelTimePickerProps, + emits: ["pick", "select-range", "set-picker-option"], + setup(__props, { emit }) { + const props = __props; + const pickerBase = inject("EP_PICKER_BASE"); + const { + arrowControl, + disabledHours, + disabledMinutes, + disabledSeconds, + defaultValue + } = pickerBase.props; + const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds); + const ns = useNamespace("time"); + const { t, lang } = useLocale(); + const selectionRange = ref([0, 2]); + const oldValue = useOldValue(props); + const transitionName = computed(() => { + return isUndefined(props.actualVisible) ? `${ns.namespace.value}-zoom-in-top` : ""; + }); + const showSeconds = computed(() => { + return props.format.includes("ss"); + }); + const amPmMode = computed(() => { + if (props.format.includes("A")) + return "A"; + if (props.format.includes("a")) + return "a"; + return ""; + }); + const isValidValue = (_date) => { + const parsedDate = dayjs(_date).locale(lang.value); + const result = getRangeAvailableTime(parsedDate); + return parsedDate.isSame(result); + }; + const handleCancel = () => { + emit("pick", oldValue.value, false); + }; + const handleConfirm = (visible = false, first = false) => { + if (first) + return; + emit("pick", props.parsedValue, visible); + }; + const handleChange = (_date) => { + if (!props.visible) { + return; + } + const result = getRangeAvailableTime(_date).millisecond(0); + emit("pick", result, true); + }; + const setSelectionRange = (start, end) => { + emit("select-range", start, end); + selectionRange.value = [start, end]; + }; + const changeSelectionRange = (step) => { + const list = [0, 3].concat(showSeconds.value ? [6] : []); + const mapping = ["hours", "minutes"].concat(showSeconds.value ? ["seconds"] : []); + const index2 = list.indexOf(selectionRange.value[0]); + const next = (index2 + step + list.length) % list.length; + timePickerOptions["start_emitSelectRange"](mapping[next]); + }; + const handleKeydown = (event) => { + const code = event.code; + const { left, right, up, down } = EVENT_CODE; + if ([left, right].includes(code)) { + const step = code === left ? -1 : 1; + changeSelectionRange(step); + event.preventDefault(); + return; + } + if ([up, down].includes(code)) { + const step = code === up ? -1 : 1; + timePickerOptions["start_scrollDown"](step); + event.preventDefault(); + return; + } + }; + const { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }); + const getRangeAvailableTime = (date) => { + return getAvailableTime(date, props.datetimeRole || "", true); + }; + const parseUserInput = (value) => { + if (!value) + return null; + return dayjs(value, props.format).locale(lang.value); + }; + const formatToString = (value) => { + if (!value) + return null; + return value.format(props.format); + }; + const getDefaultValue2 = () => { + return dayjs(defaultValue).locale(lang.value); + }; + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["formatToString", formatToString]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleKeydownInput", handleKeydown]); + emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]); + emit("set-picker-option", ["getDefaultValue", getDefaultValue2]); + return (_ctx, _cache) => { + return openBlock(), createBlock(Transition, { name: unref(transitionName) }, { + default: withCtx(() => [ + _ctx.actualVisible || _ctx.visible ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ns).b("panel")) + }, [ + createElementVNode("div", { + class: normalizeClass([unref(ns).be("panel", "content"), { "has-seconds": unref(showSeconds) }]) + }, [ + createVNode(TimeSpinner, { + ref: "spinner", + role: _ctx.datetimeRole || "start", + "arrow-control": unref(arrowControl), + "show-seconds": unref(showSeconds), + "am-pm-mode": unref(amPmMode), + "spinner-date": _ctx.parsedValue, + "disabled-hours": unref(disabledHours), + "disabled-minutes": unref(disabledMinutes), + "disabled-seconds": unref(disabledSeconds), + onChange: handleChange, + onSetOption: unref(onSetOption), + onSelectRange: setSelectionRange + }, null, 8, ["role", "arrow-control", "show-seconds", "am-pm-mode", "spinner-date", "disabled-hours", "disabled-minutes", "disabled-seconds", "onSetOption"]) + ], 2), + createElementVNode("div", { + class: normalizeClass(unref(ns).be("panel", "footer")) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ns).be("panel", "btn"), "cancel"]), + onClick: handleCancel + }, toDisplayString(unref(t)("el.datepicker.cancel")), 3), + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ns).be("panel", "btn"), "confirm"]), + onClick: ($event) => handleConfirm() + }, toDisplayString(unref(t)("el.datepicker.confirm")), 11, ["onClick"]) + ], 2) + ], 2)) : createCommentVNode("v-if", true) + ]), + _: 1 + }, 8, ["name"]); + }; + } +}); +var TimePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__file", "panel-time-pick.vue"]]); +const ROOT_PICKER_INJECTION_KEY = Symbol(); +const datePickerProps = buildProps({ + ...timePickerDefaultProps, + type: { + type: definePropType(String), + default: "date" + } +}); +const selectionModes = [ + "date", + "dates", + "year", + "years", + "month", + "months", + "week", + "range" +]; +const datePickerSharedProps = buildProps({ + disabledDate: { + type: definePropType(Function) + }, + date: { + type: definePropType(Object), + required: true + }, + minDate: { + type: definePropType(Object) + }, + maxDate: { + type: definePropType(Object) + }, + parsedValue: { + type: definePropType([Object, Array]) + }, + rangeState: { + type: definePropType(Object), + default: () => ({ + endDate: null, + selecting: false + }) + } +}); +const panelSharedProps = buildProps({ + type: { + type: definePropType(String), + required: true, + values: datePickTypes + }, + dateFormat: String, + timeFormat: String, + showNow: { + type: Boolean, + default: true + } +}); +const panelRangeSharedProps = buildProps({ + unlinkPanels: Boolean, + parsedValue: { + type: definePropType(Array) + } +}); +const selectionModeWithDefault = (mode) => { + return { + type: String, + values: selectionModes, + default: mode + }; +}; +const panelDatePickProps = buildProps({ + ...panelSharedProps, + parsedValue: { + type: definePropType([Object, Array]) + }, + visible: { + type: Boolean + }, + format: { + type: String, + default: "" + } +}); +const isValidRange = (range) => { + if (!shared_cjs_prodExports.isArray(range)) + return false; + const [left, right] = range; + return dayjs.isDayjs(left) && dayjs.isDayjs(right) && left.isSameOrBefore(right); +}; +const getDefaultValue = (defaultValue, { lang, unit: unit2, unlinkPanels }) => { + let start; + if (shared_cjs_prodExports.isArray(defaultValue)) { + let [left, right] = defaultValue.map((d) => dayjs(d).locale(lang)); + if (!unlinkPanels) { + right = left.add(1, unit2); + } + return [left, right]; + } else if (defaultValue) { + start = dayjs(defaultValue); + } else { + start = dayjs(); + } + start = start.locale(lang); + return [start, start.add(1, unit2)]; +}; +const buildPickerTable = (dimension, rows, { + columnIndexOffset, + startDate, + nextEndDate, + now: now2, + unit: unit2, + relativeDateGetter, + setCellMetadata, + setRowMetadata +}) => { + for (let rowIndex = 0; rowIndex < dimension.row; rowIndex++) { + const row = rows[rowIndex]; + for (let columnIndex = 0; columnIndex < dimension.column; columnIndex++) { + let cell = row[columnIndex + columnIndexOffset]; + if (!cell) { + cell = { + row: rowIndex, + column: columnIndex, + type: "normal", + inRange: false, + start: false, + end: false + }; + } + const index2 = rowIndex * dimension.column + columnIndex; + const nextStartDate = relativeDateGetter(index2); + cell.dayjs = nextStartDate; + cell.date = nextStartDate.toDate(); + cell.timestamp = nextStartDate.valueOf(); + cell.type = "normal"; + cell.inRange = !!(startDate && nextStartDate.isSameOrAfter(startDate, unit2) && nextEndDate && nextStartDate.isSameOrBefore(nextEndDate, unit2)) || !!(startDate && nextStartDate.isSameOrBefore(startDate, unit2) && nextEndDate && nextStartDate.isSameOrAfter(nextEndDate, unit2)); + if (startDate == null ? void 0 : startDate.isSameOrAfter(nextEndDate)) { + cell.start = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit2); + cell.end = startDate && nextStartDate.isSame(startDate, unit2); + } else { + cell.start = !!startDate && nextStartDate.isSame(startDate, unit2); + cell.end = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit2); + } + const isToday = nextStartDate.isSame(now2, unit2); + if (isToday) { + cell.type = "today"; + } + setCellMetadata == null ? void 0 : setCellMetadata(cell, { rowIndex, columnIndex }); + row[columnIndex + columnIndexOffset] = cell; + } + setRowMetadata == null ? void 0 : setRowMetadata(row); + } +}; +const datesInMonth = (year, month, lang) => { + const firstDay = dayjs().locale(lang).startOf("month").month(month).year(year); + const numOfDays = firstDay.daysInMonth(); + return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate()); +}; +const getValidDateOfMonth = (year, month, lang, disabledDate) => { + const _value = dayjs().year(year).month(month).startOf("month"); + const _date = datesInMonth(year, month, lang).find((date) => { + return !(disabledDate == null ? void 0 : disabledDate(date)); + }); + if (_date) { + return dayjs(_date).locale(lang); + } + return _value.locale(lang); +}; +const getValidDateOfYear = (value, lang, disabledDate) => { + const year = value.year(); + if (!(disabledDate == null ? void 0 : disabledDate(value.toDate()))) { + return value.locale(lang); + } + const month = value.month(); + if (!datesInMonth(year, month, lang).every(disabledDate)) { + return getValidDateOfMonth(year, month, lang, disabledDate); + } + for (let i = 0; i < 12; i++) { + if (!datesInMonth(year, i, lang).every(disabledDate)) { + return getValidDateOfMonth(year, i, lang, disabledDate); + } + } + return value; +}; +const basicDateTableProps = buildProps({ + ...datePickerSharedProps, + cellClassName: { + type: definePropType(Function) + }, + showWeekNumber: Boolean, + selectionMode: selectionModeWithDefault("date") +}); +const basicDateTableEmits = ["changerange", "pick", "select"]; +const isNormalDay = (type = "") => { + return ["normal", "today"].includes(type); +}; +const useBasicDateTable = (props, emit) => { + const { lang } = useLocale(); + const tbodyRef = ref(); + const currentCellRef = ref(); + const lastRow = ref(); + const lastColumn = ref(); + const tableRows = ref([[], [], [], [], [], []]); + let focusWithClick = false; + const firstDayOfWeek = props.date.$locale().weekStart || 7; + const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase()); + const offsetDay = computed(() => { + return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek; + }); + const startDate = computed(() => { + const startDayOfMonth = props.date.startOf("month"); + return startDayOfMonth.subtract(startDayOfMonth.day() || 7, "day"); + }); + const WEEKS = computed(() => { + return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(firstDayOfWeek, firstDayOfWeek + 7); + }); + const hasCurrent = computed(() => { + return flatten(unref(rows)).some((row) => { + return row.isCurrent; + }); + }); + const days = computed(() => { + const startOfMonth = props.date.startOf("month"); + const startOfMonthDay = startOfMonth.day() || 7; + const dateCountOfMonth = startOfMonth.daysInMonth(); + const dateCountOfLastMonth = startOfMonth.subtract(1, "month").daysInMonth(); + return { + startOfMonthDay, + dateCountOfMonth, + dateCountOfLastMonth + }; + }); + const selectedDate = computed(() => { + return props.selectionMode === "dates" ? castArray(props.parsedValue) : []; + }); + const setDateText = (cell, { count, rowIndex, columnIndex }) => { + const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } = unref(days); + const offset = unref(offsetDay); + if (rowIndex >= 0 && rowIndex <= 1) { + const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset; + if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) { + cell.text = count; + return true; + } else { + cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - columnIndex % 7) + 1 + rowIndex * 7; + cell.type = "prev-month"; + } + } else { + if (count <= dateCountOfMonth) { + cell.text = count; + } else { + cell.text = count - dateCountOfMonth; + cell.type = "next-month"; + } + return true; + } + return false; + }; + const setCellMetadata = (cell, { columnIndex, rowIndex }, count) => { + const { disabledDate, cellClassName } = props; + const _selectedDate = unref(selectedDate); + const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex }); + const cellDate = cell.dayjs.toDate(); + cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, "day")); + cell.isSelected = !!cell.selected; + cell.isCurrent = isCurrent(cell); + cell.disabled = disabledDate == null ? void 0 : disabledDate(cellDate); + cell.customClass = cellClassName == null ? void 0 : cellClassName(cellDate); + return shouldIncrement; + }; + const setRowMetadata = (row) => { + if (props.selectionMode === "week") { + const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6]; + const isActive = isWeekActive(row[start + 1]); + row[start].inRange = isActive; + row[start].start = isActive; + row[end].inRange = isActive; + row[end].end = isActive; + } + }; + const rows = computed(() => { + const { minDate, maxDate, rangeState, showWeekNumber } = props; + const offset = unref(offsetDay); + const rows_ = unref(tableRows); + const dateUnit = "day"; + let count = 1; + if (showWeekNumber) { + for (let rowIndex = 0; rowIndex < 6; rowIndex++) { + if (!rows_[rowIndex][0]) { + rows_[rowIndex][0] = { + type: "week", + text: unref(startDate).add(rowIndex * 7 + 1, dateUnit).week() + }; + } + } + } + buildPickerTable({ row: 6, column: 7 }, rows_, { + startDate: minDate, + columnIndexOffset: showWeekNumber ? 1 : 0, + nextEndDate: rangeState.endDate || maxDate || rangeState.selecting && minDate || null, + now: dayjs().locale(unref(lang)).startOf(dateUnit), + unit: dateUnit, + relativeDateGetter: (idx) => unref(startDate).add(idx - offset, dateUnit), + setCellMetadata: (...args) => { + if (setCellMetadata(...args, count)) { + count += 1; + } + }, + setRowMetadata + }); + return rows_; + }); + watch(() => props.date, async () => { + var _a; + if ((_a = unref(tbodyRef)) == null ? void 0 : _a.contains((void 0).activeElement)) { + await nextTick(); + await focus(); + } + }); + const focus = async () => { + var _a; + return (_a = unref(currentCellRef)) == null ? void 0 : _a.focus(); + }; + const isCurrent = (cell) => { + return props.selectionMode === "date" && isNormalDay(cell.type) && cellMatchesDate(cell, props.parsedValue); + }; + const cellMatchesDate = (cell, date) => { + if (!date) + return false; + return dayjs(date).locale(unref(lang)).isSame(props.date.date(Number(cell.text)), "day"); + }; + const getDateOfCell = (row, column) => { + const offsetFromStart = row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - unref(offsetDay); + return unref(startDate).add(offsetFromStart, "day"); + }; + const handleMouseMove = (event) => { + var _a; + if (!props.rangeState.selecting) + return; + let target = event.target; + if (target.tagName === "SPAN") { + target = (_a = target.parentNode) == null ? void 0 : _a.parentNode; + } + if (target.tagName === "DIV") { + target = target.parentNode; + } + if (target.tagName !== "TD") + return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + if (unref(rows)[row][column].disabled) + return; + if (row !== unref(lastRow) || column !== unref(lastColumn)) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: getDateOfCell(row, column) + }); + } + }; + const isSelectedCell = (cell) => { + return !unref(hasCurrent) && (cell == null ? void 0 : cell.text) === 1 && cell.type === "normal" || cell.isCurrent; + }; + const handleFocus = (event) => { + if (focusWithClick || unref(hasCurrent) || props.selectionMode !== "date") + return; + handlePickDate(event, true); + }; + const handleMouseDown = (event) => { + const target = event.target.closest("td"); + if (!target) + return; + focusWithClick = true; + }; + const handleMouseUp = (event) => { + const target = event.target.closest("td"); + if (!target) + return; + focusWithClick = false; + }; + const handleRangePick = (newDate) => { + if (!props.rangeState.selecting || !props.minDate) { + emit("pick", { minDate: newDate, maxDate: null }); + emit("select", true); + } else { + if (newDate >= props.minDate) { + emit("pick", { minDate: props.minDate, maxDate: newDate }); + } else { + emit("pick", { minDate: newDate, maxDate: props.minDate }); + } + emit("select", false); + } + }; + const handleWeekPick = (newDate) => { + const weekNumber = newDate.week(); + const value = `${newDate.year()}w${weekNumber}`; + emit("pick", { + year: newDate.year(), + week: weekNumber, + value, + date: newDate.startOf("week") + }); + }; + const handleDatesPick = (newDate, selected) => { + const newValue = selected ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.valueOf()) !== newDate.valueOf()) : castArray(props.parsedValue).concat([newDate]); + emit("pick", newValue); + }; + const handlePickDate = (event, isKeyboardMovement = false) => { + const target = event.target.closest("td"); + if (!target) + return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + const cell = unref(rows)[row][column]; + if (cell.disabled || cell.type === "week") + return; + const newDate = getDateOfCell(row, column); + switch (props.selectionMode) { + case "range": { + handleRangePick(newDate); + break; + } + case "date": { + emit("pick", newDate, isKeyboardMovement); + break; + } + case "week": { + handleWeekPick(newDate); + break; + } + case "dates": { + handleDatesPick(newDate, !!cell.selected); + break; + } + } + }; + const isWeekActive = (cell) => { + if (props.selectionMode !== "week") + return false; + let newDate = props.date.startOf("day"); + if (cell.type === "prev-month") { + newDate = newDate.subtract(1, "month"); + } + if (cell.type === "next-month") { + newDate = newDate.add(1, "month"); + } + newDate = newDate.date(Number.parseInt(cell.text, 10)); + if (props.parsedValue && !shared_cjs_prodExports.isArray(props.parsedValue)) { + const dayOffset = (props.parsedValue.day() - firstDayOfWeek + 7) % 7 - 1; + const weekDate = props.parsedValue.subtract(dayOffset, "day"); + return weekDate.isSame(newDate, "day"); + } + return false; + }; + return { + WEEKS, + rows, + tbodyRef, + currentCellRef, + focus, + isCurrent, + isWeekActive, + isSelectedCell, + handlePickDate, + handleMouseUp, + handleMouseDown, + handleMouseMove, + handleFocus + }; +}; +const useBasicDateTableDOM = (props, { + isCurrent, + isWeekActive +}) => { + const ns = useNamespace("date-table"); + const { t } = useLocale(); + const tableKls = computed(() => [ + ns.b(), + { "is-week-mode": props.selectionMode === "week" } + ]); + const tableLabel = computed(() => t("el.datepicker.dateTablePrompt")); + const weekLabel = computed(() => t("el.datepicker.week")); + const getCellClasses = (cell) => { + const classes = []; + if (isNormalDay(cell.type) && !cell.disabled) { + classes.push("available"); + if (cell.type === "today") { + classes.push("today"); + } + } else { + classes.push(cell.type); + } + if (isCurrent(cell)) { + classes.push("current"); + } + if (cell.inRange && (isNormalDay(cell.type) || props.selectionMode === "week")) { + classes.push("in-range"); + if (cell.start) { + classes.push("start-date"); + } + if (cell.end) { + classes.push("end-date"); + } + } + if (cell.disabled) { + classes.push("disabled"); + } + if (cell.selected) { + classes.push("selected"); + } + if (cell.customClass) { + classes.push(cell.customClass); + } + return classes.join(" "); + }; + const getRowKls = (cell) => [ + ns.e("row"), + { current: isWeekActive(cell) } + ]; + return { + tableKls, + tableLabel, + weekLabel, + getCellClasses, + getRowKls, + t + }; +}; +const basicCellProps = buildProps({ + cell: { + type: definePropType(Object) + } +}); +var ElDatePickerCell = defineComponent({ + name: "ElDatePickerCell", + props: basicCellProps, + setup(props) { + const ns = useNamespace("date-table-cell"); + const { + slots + } = inject(ROOT_PICKER_INJECTION_KEY); + return () => { + const { + cell + } = props; + return renderSlot(slots, "default", { + ...cell + }, () => { + var _a; + return [createVNode("div", { + "class": ns.b() + }, [createVNode("span", { + "class": ns.e("text") + }, [(_a = cell == null ? void 0 : cell.renderText) != null ? _a : cell == null ? void 0 : cell.text])])]; + }); + }; + } +}); +const _sfc_main$7 = /* @__PURE__ */ defineComponent({ + __name: "basic-date-table", + props: basicDateTableProps, + emits: basicDateTableEmits, + setup(__props, { expose, emit }) { + const props = __props; + const { + WEEKS, + rows, + tbodyRef, + currentCellRef, + focus, + isCurrent, + isWeekActive, + isSelectedCell, + handlePickDate, + handleMouseUp, + handleMouseDown, + handleMouseMove, + handleFocus + } = useBasicDateTable(props, emit); + const { tableLabel, tableKls, weekLabel, getCellClasses, getRowKls, t } = useBasicDateTableDOM(props, { + isCurrent, + isWeekActive + }); + expose({ + focus + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("table", { + "aria-label": unref(tableLabel), + class: normalizeClass(unref(tableKls)), + cellspacing: "0", + cellpadding: "0", + role: "grid", + onClick: unref(handlePickDate), + onMousemove: unref(handleMouseMove), + onMousedown: withModifiers(unref(handleMouseDown), ["prevent"]), + onMouseup: unref(handleMouseUp) + }, [ + createElementVNode("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [ + createElementVNode("tr", null, [ + _ctx.showWeekNumber ? (openBlock(), createElementBlock("th", { + key: 0, + scope: "col" + }, toDisplayString(unref(weekLabel)), 1)) : createCommentVNode("v-if", true), + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(WEEKS), (week, key) => { + return openBlock(), createElementBlock("th", { + key, + "aria-label": unref(t)("el.datepicker.weeksFull." + week), + scope: "col" + }, toDisplayString(unref(t)("el.datepicker.weeks." + week)), 9, ["aria-label"]); + }), 128)) + ]), + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, rowKey) => { + return openBlock(), createElementBlock("tr", { + key: rowKey, + class: normalizeClass(unref(getRowKls)(row[1])) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, columnKey) => { + return openBlock(), createElementBlock("td", { + key: `${rowKey}.${columnKey}`, + ref_for: true, + ref: (el) => unref(isSelectedCell)(cell) && (currentCellRef.value = el), + class: normalizeClass(unref(getCellClasses)(cell)), + "aria-current": cell.isCurrent ? "date" : void 0, + "aria-selected": cell.isCurrent, + tabindex: unref(isSelectedCell)(cell) ? 0 : -1, + onFocus: unref(handleFocus) + }, [ + createVNode(unref(ElDatePickerCell), { cell }, null, 8, ["cell"]) + ], 42, ["aria-current", "aria-selected", "tabindex", "onFocus"]); + }), 128)) + ], 2); + }), 128)) + ], 512) + ], 42, ["aria-label", "onClick", "onMousemove", "onMousedown", "onMouseup"]); + }; + } +}); +var DateTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__file", "basic-date-table.vue"]]); +const basicMonthTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("month") +}); +const _sfc_main$6 = /* @__PURE__ */ defineComponent({ + __name: "basic-month-table", + props: basicMonthTableProps, + emits: ["changerange", "pick", "select"], + setup(__props, { expose, emit }) { + const props = __props; + const ns = useNamespace("month-table"); + const { t, lang } = useLocale(); + const tbodyRef = ref(); + const currentCellRef = ref(); + const months = ref(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase())); + const tableRows = ref([ + [], + [], + [] + ]); + const lastRow = ref(); + const lastColumn = ref(); + const rows = computed(() => { + var _a, _b; + const rows2 = tableRows.value; + const now2 = dayjs().locale(lang.value).startOf("month"); + for (let i = 0; i < 3; i++) { + const row = rows2[i]; + for (let j = 0; j < 4; j++) { + const cell = row[j] || (row[j] = { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false + }); + cell.type = "normal"; + const index2 = i * 4 + j; + const calTime = props.date.startOf("year").month(index2); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month")); + if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "month")); + cell.end = props.minDate && calTime.isSame(props.minDate, "month"); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "month")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "month")); + } + const isToday = now2.isSame(calTime); + if (isToday) { + cell.type = "today"; + } + cell.text = index2; + cell.disabled = ((_b = props.disabledDate) == null ? void 0 : _b.call(props, calTime.toDate())) || false; + } + } + return rows2; + }); + const focus = () => { + var _a; + (_a = currentCellRef.value) == null ? void 0 : _a.focus(); + }; + const getCellStyle = (cell) => { + const style = {}; + const year = props.date.year(); + const today = /* @__PURE__ */ new Date(); + const month = cell.text; + style.disabled = props.disabledDate ? datesInMonth(year, month, lang.value).every(props.disabledDate) : false; + style.current = castArray(props.parsedValue).findIndex((date) => dayjs.isDayjs(date) && date.year() === year && date.month() === month) >= 0; + style.today = today.getFullYear() === year && today.getMonth() === month; + if (cell.inRange) { + style["in-range"] = true; + if (cell.start) { + style["start-date"] = true; + } + if (cell.end) { + style["end-date"] = true; + } + } + return style; + }; + const isSelectedCell = (cell) => { + const year = props.date.year(); + const month = cell.text; + return castArray(props.date).findIndex((date) => date.year() === year && date.month() === month) >= 0; + }; + const handleMouseMove = (event) => { + var _a; + if (!props.rangeState.selecting) + return; + let target = event.target; + if (target.tagName === "SPAN") { + target = (_a = target.parentNode) == null ? void 0 : _a.parentNode; + } + if (target.tagName === "DIV") { + target = target.parentNode; + } + if (target.tagName !== "TD") + return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) + return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: props.date.startOf("year").month(row * 4 + column) + }); + } + }; + const handleMonthTableClick = (event) => { + var _a; + const target = (_a = event.target) == null ? void 0 : _a.closest("td"); + if ((target == null ? void 0 : target.tagName) !== "TD") + return; + if (hasClass(target, "disabled")) + return; + const column = target.cellIndex; + const row = target.parentNode.rowIndex; + const month = row * 4 + column; + const newDate = props.date.startOf("year").month(month); + if (props.selectionMode === "months") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const newMonth = getValidDateOfMonth(props.date.year(), month, lang.value, props.disabledDate); + const newValue = hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.month()) !== newMonth.month()) : castArray(props.parsedValue).concat([dayjs(newMonth)]); + emit("pick", newValue); + } else if (props.selectionMode === "range") { + if (!props.rangeState.selecting) { + emit("pick", { minDate: newDate, maxDate: null }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) { + emit("pick", { minDate: props.minDate, maxDate: newDate }); + } else { + emit("pick", { minDate: newDate, maxDate: props.minDate }); + } + emit("select", false); + } + } else { + emit("pick", month); + } + }; + watch(() => props.date, async () => { + var _a, _b; + if ((_a = tbodyRef.value) == null ? void 0 : _a.contains((void 0).activeElement)) { + await nextTick(); + (_b = currentCellRef.value) == null ? void 0 : _b.focus(); + } + }); + expose({ + focus + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("table", { + role: "grid", + "aria-label": unref(t)("el.datepicker.monthTablePrompt"), + class: normalizeClass(unref(ns).b()), + onClick: handleMonthTableClick, + onMousemove: handleMouseMove + }, [ + createElementVNode("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, key) => { + return openBlock(), createElementBlock("tr", { key }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key_) => { + return openBlock(), createElementBlock("td", { + key: key_, + ref_for: true, + ref: (el) => isSelectedCell(cell) && (currentCellRef.value = el), + class: normalizeClass(getCellStyle(cell)), + "aria-selected": `${isSelectedCell(cell)}`, + "aria-label": unref(t)(`el.datepicker.month${+cell.text + 1}`), + tabindex: isSelectedCell(cell) ? 0 : -1, + onKeydown: [ + withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["space"]), + withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["enter"]) + ] + }, [ + createVNode(unref(ElDatePickerCell), { + cell: { + ...cell, + renderText: unref(t)("el.datepicker.months." + months.value[cell.text]) + } + }, null, 8, ["cell"]) + ], 42, ["aria-selected", "aria-label", "tabindex", "onKeydown"]); + }), 128)) + ]); + }), 128)) + ], 512) + ], 42, ["aria-label"]); + }; + } +}); +var MonthTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__file", "basic-month-table.vue"]]); +const basicYearTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("year") +}); +const _sfc_main$5 = /* @__PURE__ */ defineComponent({ + __name: "basic-year-table", + props: basicYearTableProps, + emits: ["changerange", "pick", "select"], + setup(__props, { expose, emit }) { + const props = __props; + const datesInYear = (year, lang2) => { + const firstDay = dayjs(String(year)).locale(lang2).startOf("year"); + const lastDay = firstDay.endOf("year"); + const numOfDays = lastDay.dayOfYear(); + return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate()); + }; + const ns = useNamespace("year-table"); + const { t, lang } = useLocale(); + const tbodyRef = ref(); + const currentCellRef = ref(); + const startYear = computed(() => { + return Math.floor(props.date.year() / 10) * 10; + }); + const tableRows = ref([[], [], []]); + const lastRow = ref(); + const lastColumn = ref(); + const rows = computed(() => { + var _a; + const rows2 = tableRows.value; + const now2 = dayjs().locale(lang.value).startOf("year"); + for (let i = 0; i < 3; i++) { + const row = rows2[i]; + for (let j = 0; j < 4; j++) { + if (i * 4 + j >= 10) { + break; + } + let cell = row[j]; + if (!cell) { + cell = { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false + }; + } + cell.type = "normal"; + const index2 = i * 4 + j + startYear.value; + const calTime = dayjs().year(index2); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "year") && calEndDate && calTime.isSameOrBefore(calEndDate, "year")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "year") && calEndDate && calTime.isSameOrAfter(calEndDate, "year")); + if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "year")); + cell.end = !!(props.minDate && calTime.isSame(props.minDate, "year")); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "year")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "year")); + } + const isToday = now2.isSame(calTime); + if (isToday) { + cell.type = "today"; + } + cell.text = index2; + const cellDate = calTime.toDate(); + cell.disabled = props.disabledDate && props.disabledDate(cellDate) || false; + row[j] = cell; + } + } + return rows2; + }); + const focus = () => { + var _a; + (_a = currentCellRef.value) == null ? void 0 : _a.focus(); + }; + const getCellKls = (cell) => { + const kls = {}; + const today = dayjs().locale(lang.value); + const year = cell.text; + kls.disabled = props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false; + kls.today = today.year() === year; + kls.current = castArray(props.parsedValue).findIndex((d) => d.year() === year) >= 0; + if (cell.inRange) { + kls["in-range"] = true; + if (cell.start) { + kls["start-date"] = true; + } + if (cell.end) { + kls["end-date"] = true; + } + } + return kls; + }; + const isSelectedCell = (cell) => { + const year = cell.text; + return castArray(props.date).findIndex((date) => date.year() === year) >= 0; + }; + const handleYearTableClick = (event) => { + var _a; + const target = (_a = event.target) == null ? void 0 : _a.closest("td"); + if (!target || !target.textContent || hasClass(target, "disabled")) + return; + const column = target.cellIndex; + const row = target.parentNode.rowIndex; + const selectedYear = row * 4 + column + startYear.value; + const newDate = dayjs().year(selectedYear); + if (props.selectionMode === "range") { + if (!props.rangeState.selecting) { + emit("pick", { minDate: newDate, maxDate: null }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) { + emit("pick", { minDate: props.minDate, maxDate: newDate }); + } else { + emit("pick", { minDate: newDate, maxDate: props.minDate }); + } + emit("select", false); + } + } else if (props.selectionMode === "years") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const vaildYear = getValidDateOfYear(newDate.startOf("year"), lang.value, props.disabledDate); + const newValue = hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.year()) !== selectedYear) : castArray(props.parsedValue).concat([vaildYear]); + emit("pick", newValue); + } else { + emit("pick", selectedYear); + } + }; + const handleMouseMove = (event) => { + var _a; + if (!props.rangeState.selecting) + return; + const target = (_a = event.target) == null ? void 0 : _a.closest("td"); + if (!target) + return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) + return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: dayjs().year(startYear.value).add(row * 4 + column, "year") + }); + } + }; + watch(() => props.date, async () => { + var _a, _b; + if ((_a = tbodyRef.value) == null ? void 0 : _a.contains((void 0).activeElement)) { + await nextTick(); + (_b = currentCellRef.value) == null ? void 0 : _b.focus(); + } + }); + expose({ + focus + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("table", { + role: "grid", + "aria-label": unref(t)("el.datepicker.yearTablePrompt"), + class: normalizeClass(unref(ns).b()), + onClick: handleYearTableClick, + onMousemove: handleMouseMove + }, [ + createElementVNode("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, rowKey) => { + return openBlock(), createElementBlock("tr", { key: rowKey }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, cellKey) => { + return openBlock(), createElementBlock("td", { + key: `${rowKey}_${cellKey}`, + ref_for: true, + ref: (el) => isSelectedCell(cell) && (currentCellRef.value = el), + class: normalizeClass(["available", getCellKls(cell)]), + "aria-selected": isSelectedCell(cell), + "aria-label": String(cell.text), + tabindex: isSelectedCell(cell) ? 0 : -1, + onKeydown: [ + withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["space"]), + withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["enter"]) + ] + }, [ + createVNode(unref(ElDatePickerCell), { cell }, null, 8, ["cell"]) + ], 42, ["aria-selected", "aria-label", "tabindex", "onKeydown"]); + }), 128)) + ]); + }), 128)) + ], 512) + ], 42, ["aria-label"]); + }; + } +}); +var YearTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__file", "basic-year-table.vue"]]); +const _sfc_main$4 = /* @__PURE__ */ defineComponent({ + __name: "panel-date-pick", + props: panelDatePickProps, + emits: ["pick", "set-picker-option", "panel-change"], + setup(__props, { emit: contextEmit }) { + const props = __props; + const timeWithinRange = (_, __, ___) => true; + const ppNs = useNamespace("picker-panel"); + const dpNs = useNamespace("date-picker"); + const attrs = useAttrs(); + const slots = useSlots(); + const { t, lang } = useLocale(); + const pickerBase = inject("EP_PICKER_BASE"); + const popper = inject(TOOLTIP_INJECTION_KEY); + const { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props; + const defaultValue = toRef(pickerBase.props, "defaultValue"); + const currentViewRef = ref(); + const innerDate = ref(dayjs().locale(lang.value)); + const isChangeToNow = ref(false); + let isShortcut = false; + const defaultTimeD = computed(() => { + return dayjs(defaultTime).locale(lang.value); + }); + const month = computed(() => { + return innerDate.value.month(); + }); + const year = computed(() => { + return innerDate.value.year(); + }); + const selectableRange = ref([]); + const userInputDate = ref(null); + const userInputTime = ref(null); + const checkDateWithinRange = (date) => { + return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || "HH:mm:ss") : true; + }; + const formatEmit = (emitDayjs) => { + if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) { + return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + } + if (showTime.value) + return emitDayjs.millisecond(0); + return emitDayjs.startOf("day"); + }; + const emit = (value, ...args) => { + if (!value) { + contextEmit("pick", value, ...args); + } else if (shared_cjs_prodExports.isArray(value)) { + const dates = value.map(formatEmit); + contextEmit("pick", dates, ...args); + } else { + contextEmit("pick", formatEmit(value), ...args); + } + userInputDate.value = null; + userInputTime.value = null; + isChangeToNow.value = false; + isShortcut = false; + }; + const handleDatePick = async (value, keepOpen) => { + if (selectionMode.value === "date") { + value = value; + let newDate = props.parsedValue ? props.parsedValue.year(value.year()).month(value.month()).date(value.date()) : value; + if (!checkDateWithinRange(newDate)) { + newDate = selectableRange.value[0][0].year(value.year()).month(value.month()).date(value.date()); + } + innerDate.value = newDate; + emit(newDate, showTime.value || keepOpen); + if (props.type === "datetime") { + await nextTick(); + handleFocusPicker(); + } + } else if (selectionMode.value === "week") { + emit(value.date); + } else if (selectionMode.value === "dates") { + emit(value, true); + } + }; + const moveByMonth = (forward) => { + const action = forward ? "add" : "subtract"; + innerDate.value = innerDate.value[action](1, "month"); + handlePanelChange("month"); + }; + const moveByYear = (forward) => { + const currentDate = innerDate.value; + const action = forward ? "add" : "subtract"; + innerDate.value = currentView.value === "year" ? currentDate[action](10, "year") : currentDate[action](1, "year"); + handlePanelChange("year"); + }; + const currentView = ref("date"); + const yearLabel = computed(() => { + const yearTranslation = t("el.datepicker.year"); + if (currentView.value === "year") { + const startYear = Math.floor(year.value / 10) * 10; + if (yearTranslation) { + return `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}`; + } + return `${startYear} - ${startYear + 9}`; + } + return `${year.value} ${yearTranslation}`; + }); + const handleShortcutClick = (shortcut) => { + const shortcutValue = shared_cjs_prodExports.isFunction(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValue) { + isShortcut = true; + emit(dayjs(shortcutValue).locale(lang.value)); + return; + } + if (shortcut.onClick) { + shortcut.onClick({ + attrs, + slots, + emit: contextEmit + }); + } + }; + const selectionMode = computed(() => { + const { type } = props; + if (["week", "month", "months", "year", "years", "dates"].includes(type)) + return type; + return "date"; + }); + const isMultipleType = computed(() => { + return selectionMode.value === "dates" || selectionMode.value === "months" || selectionMode.value === "years"; + }); + const keyboardMode = computed(() => { + return selectionMode.value === "date" ? currentView.value : selectionMode.value; + }); + const hasShortcuts = computed(() => !!shortcuts.length); + const handleMonthPick = async (month2, keepOpen) => { + if (selectionMode.value === "month") { + innerDate.value = getValidDateOfMonth(innerDate.value.year(), month2, lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "months") { + emit(month2, keepOpen != null ? keepOpen : true); + } else { + innerDate.value = getValidDateOfMonth(innerDate.value.year(), month2, lang.value, disabledDate); + currentView.value = "date"; + if (["month", "year", "date", "week"].includes(selectionMode.value)) { + emit(innerDate.value, true); + await nextTick(); + handleFocusPicker(); + } + } + handlePanelChange("month"); + }; + const handleYearPick = async (year2, keepOpen) => { + if (selectionMode.value === "year") { + const data = innerDate.value.startOf("year").year(year2); + innerDate.value = getValidDateOfYear(data, lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "years") { + emit(year2, keepOpen != null ? keepOpen : true); + } else { + const data = innerDate.value.year(year2); + innerDate.value = getValidDateOfYear(data, lang.value, disabledDate); + currentView.value = "month"; + if (["month", "year", "date", "week"].includes(selectionMode.value)) { + emit(innerDate.value, true); + await nextTick(); + handleFocusPicker(); + } + } + handlePanelChange("year"); + }; + const showPicker = async (view) => { + currentView.value = view; + await nextTick(); + handleFocusPicker(); + }; + const showTime = computed(() => props.type === "datetime" || props.type === "datetimerange"); + const footerVisible = computed(() => { + const showDateFooter = showTime.value || selectionMode.value === "dates"; + const showYearFooter = selectionMode.value === "years"; + const showMonthFooter = selectionMode.value === "months"; + const isDateView = currentView.value === "date"; + const isYearView = currentView.value === "year"; + const isMonthView = currentView.value === "month"; + return showDateFooter && isDateView || showYearFooter && isYearView || showMonthFooter && isMonthView; + }); + const disabledConfirm = computed(() => { + if (!disabledDate) + return false; + if (!props.parsedValue) + return true; + if (shared_cjs_prodExports.isArray(props.parsedValue)) { + return disabledDate(props.parsedValue[0].toDate()); + } + return disabledDate(props.parsedValue.toDate()); + }); + const onConfirm = () => { + if (isMultipleType.value) { + emit(props.parsedValue); + } else { + let result = props.parsedValue; + if (!result) { + const defaultTimeD2 = dayjs(defaultTime).locale(lang.value); + const defaultValueD = getDefaultValue2(); + result = defaultTimeD2.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date()); + } + innerDate.value = result; + emit(result); + } + }; + const disabledNow = computed(() => { + if (!disabledDate) + return false; + return disabledDate(dayjs().locale(lang.value).toDate()); + }); + const changeToNow = () => { + const now2 = dayjs().locale(lang.value); + const nowDate = now2.toDate(); + isChangeToNow.value = true; + if ((!disabledDate || !disabledDate(nowDate)) && checkDateWithinRange(nowDate)) { + innerDate.value = dayjs().locale(lang.value); + emit(innerDate.value); + } + }; + const timeFormat = computed(() => { + return props.timeFormat || extractTimeFormat(props.format); + }); + const dateFormat = computed(() => { + return props.dateFormat || extractDateFormat(props.format); + }); + const visibleTime = computed(() => { + if (userInputTime.value) + return userInputTime.value; + if (!props.parsedValue && !defaultValue.value) + return; + return (props.parsedValue || innerDate.value).format(timeFormat.value); + }); + const visibleDate = computed(() => { + if (userInputDate.value) + return userInputDate.value; + if (!props.parsedValue && !defaultValue.value) + return; + return (props.parsedValue || innerDate.value).format(dateFormat.value); + }); + const timePickerVisible = ref(false); + const onTimePickerInputFocus = () => { + timePickerVisible.value = true; + }; + const handleTimePickClose = () => { + timePickerVisible.value = false; + }; + const getUnits = (date) => { + return { + hour: date.hour(), + minute: date.minute(), + second: date.second(), + year: date.year(), + month: date.month(), + date: date.date() + }; + }; + const handleTimePick = (value, visible, first) => { + const { hour, minute, second } = getUnits(value); + const newDate = props.parsedValue ? props.parsedValue.hour(hour).minute(minute).second(second) : value; + innerDate.value = newDate; + emit(innerDate.value, true); + if (!first) { + timePickerVisible.value = visible; + } + }; + const handleVisibleTimeChange = (value) => { + const newDate = dayjs(value, timeFormat.value).locale(lang.value); + if (newDate.isValid() && checkDateWithinRange(newDate)) { + const { year: year2, month: month2, date } = getUnits(innerDate.value); + innerDate.value = newDate.year(year2).month(month2).date(date); + userInputTime.value = null; + timePickerVisible.value = false; + emit(innerDate.value, true); + } + }; + const handleVisibleDateChange = (value) => { + const newDate = dayjs(value, dateFormat.value).locale(lang.value); + if (newDate.isValid()) { + if (disabledDate && disabledDate(newDate.toDate())) { + return; + } + const { hour, minute, second } = getUnits(innerDate.value); + innerDate.value = newDate.hour(hour).minute(minute).second(second); + userInputDate.value = null; + emit(innerDate.value, true); + } + }; + const isValidValue = (date) => { + return dayjs.isDayjs(date) && date.isValid() && (disabledDate ? !disabledDate(date.toDate()) : true); + }; + const formatToString = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => _.format(props.format)) : value.format(props.format); + }; + const parseUserInput = (value) => { + return dayjs(value, props.format).locale(lang.value); + }; + const getDefaultValue2 = () => { + const parseDate2 = dayjs(defaultValue.value).locale(lang.value); + if (!defaultValue.value) { + const defaultTimeDValue = defaultTimeD.value; + return dayjs().hour(defaultTimeDValue.hour()).minute(defaultTimeDValue.minute()).second(defaultTimeDValue.second()).locale(lang.value); + } + return parseDate2; + }; + const handleFocusPicker = () => { + var _a; + if (["week", "month", "year", "date"].includes(selectionMode.value)) { + (_a = currentViewRef.value) == null ? void 0 : _a.focus(); + } + }; + const _handleFocusPicker = () => { + handleFocusPicker(); + if (selectionMode.value === "week") { + handleKeyControl(EVENT_CODE.down); + } + }; + const handleKeydownTable = (event) => { + const { code } = event; + const validCode = [ + EVENT_CODE.up, + EVENT_CODE.down, + EVENT_CODE.left, + EVENT_CODE.right, + EVENT_CODE.home, + EVENT_CODE.end, + EVENT_CODE.pageUp, + EVENT_CODE.pageDown + ]; + if (validCode.includes(code)) { + handleKeyControl(code); + event.stopPropagation(); + event.preventDefault(); + } + if ([EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(code) && userInputDate.value === null && userInputTime.value === null) { + event.preventDefault(); + emit(innerDate.value, false); + } + }; + const handleKeyControl = (code) => { + var _a; + const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE; + const mapping = { + year: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setFullYear(date.getFullYear() + step) + }, + month: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setMonth(date.getMonth() + step) + }, + week: { + [up]: -1, + [down]: 1, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setDate(date.getDate() + step * 7) + }, + date: { + [up]: -7, + [down]: 7, + [left]: -1, + [right]: 1, + [home]: (date) => -date.getDay(), + [end]: (date) => -date.getDay() + 6, + [pageUp]: (date) => -new Date(date.getFullYear(), date.getMonth(), 0).getDate(), + [pageDown]: (date) => new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(), + offset: (date, step) => date.setDate(date.getDate() + step) + } + }; + const newDate = innerDate.value.toDate(); + while (Math.abs(innerDate.value.diff(newDate, "year", true)) < 1) { + const map = mapping[keyboardMode.value]; + if (!map) + return; + map.offset(newDate, shared_cjs_prodExports.isFunction(map[code]) ? map[code](newDate) : (_a = map[code]) != null ? _a : 0); + if (disabledDate && disabledDate(newDate)) { + break; + } + const result = dayjs(newDate).locale(lang.value); + innerDate.value = result; + contextEmit("pick", result, true); + break; + } + }; + const handlePanelChange = (mode) => { + contextEmit("panel-change", innerDate.value.toDate(), mode, currentView.value); + }; + watch(() => selectionMode.value, (val) => { + if (["month", "year"].includes(val)) { + currentView.value = val; + return; + } else if (val === "years") { + currentView.value = "year"; + return; + } else if (val === "months") { + currentView.value = "month"; + return; + } + currentView.value = "date"; + }, { immediate: true }); + watch(() => currentView.value, () => { + popper == null ? void 0 : popper.updatePopper(); + }); + watch(() => defaultValue.value, (val) => { + if (val) { + innerDate.value = getDefaultValue2(); + } + }, { immediate: true }); + watch(() => props.parsedValue, (val) => { + if (val) { + if (isMultipleType.value) + return; + if (shared_cjs_prodExports.isArray(val)) + return; + innerDate.value = val; + } else { + innerDate.value = getDefaultValue2(); + } + }, { immediate: true }); + contextEmit("set-picker-option", ["isValidValue", isValidValue]); + contextEmit("set-picker-option", ["formatToString", formatToString]); + contextEmit("set-picker-option", ["parseUserInput", parseUserInput]); + contextEmit("set-picker-option", ["handleFocusPicker", _handleFocusPicker]); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([ + unref(ppNs).b(), + unref(dpNs).b(), + { + "has-sidebar": _ctx.$slots.sidebar || unref(hasShortcuts), + "has-time": unref(showTime) + } + ]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body-wrapper")) + }, [ + renderSlot(_ctx.$slots, "sidebar", { + class: normalizeClass(unref(ppNs).e("sidebar")) + }), + unref(hasShortcuts) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ppNs).e("sidebar")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => { + return openBlock(), createElementBlock("button", { + key, + type: "button", + class: normalizeClass(unref(ppNs).e("shortcut")), + onClick: ($event) => handleShortcutClick(shortcut) + }, toDisplayString(shortcut.text), 11, ["onClick"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body")) + }, [ + unref(showTime) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(dpNs).e("time-header")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(dpNs).e("editor-wrap")) + }, [ + createVNode(unref(ElInput), { + placeholder: unref(t)("el.datepicker.selectDate"), + "model-value": unref(visibleDate), + size: "small", + "validate-event": false, + onInput: (val) => userInputDate.value = val, + onChange: handleVisibleDateChange + }, null, 8, ["placeholder", "model-value", "onInput"]) + ], 2), + withDirectives((openBlock(), createElementBlock("span", { + class: normalizeClass(unref(dpNs).e("editor-wrap")) + }, [ + createVNode(unref(ElInput), { + placeholder: unref(t)("el.datepicker.selectTime"), + "model-value": unref(visibleTime), + size: "small", + "validate-event": false, + onFocus: onTimePickerInputFocus, + onInput: (val) => userInputTime.value = val, + onChange: handleVisibleTimeChange + }, null, 8, ["placeholder", "model-value", "onInput"]), + createVNode(unref(TimePickPanel), { + visible: timePickerVisible.value, + format: unref(timeFormat), + "parsed-value": innerDate.value, + onPick: handleTimePick + }, null, 8, ["visible", "format", "parsed-value"]) + ], 2)), [ + [unref(ClickOutside), handleTimePickClose] + ]) + ], 2)) : createCommentVNode("v-if", true), + withDirectives(createElementVNode("div", { + class: normalizeClass([ + unref(dpNs).e("header"), + (currentView.value === "year" || currentView.value === "month") && unref(dpNs).e("header--bordered") + ]) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(dpNs).e("prev-btn")) + }, [ + createElementVNode("button", { + type: "button", + "aria-label": unref(t)(`el.datepicker.prevYear`), + class: normalizeClass(["d-arrow-left", unref(ppNs).e("icon-btn")]), + onClick: ($event) => moveByYear(false) + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label", "onClick"]), + withDirectives(createElementVNode("button", { + type: "button", + "aria-label": unref(t)(`el.datepicker.prevMonth`), + class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-left"]), + onClick: ($event) => moveByMonth(false) + }, [ + renderSlot(_ctx.$slots, "prev-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label", "onClick"]), [ + [vShow, currentView.value === "date"] + ]) + ], 2), + createElementVNode("span", { + role: "button", + class: normalizeClass(unref(dpNs).e("header-label")), + "aria-live": "polite", + tabindex: "0", + onKeydown: withKeys(($event) => showPicker("year"), ["enter"]), + onClick: ($event) => showPicker("year") + }, toDisplayString(unref(yearLabel)), 43, ["onKeydown", "onClick"]), + withDirectives(createElementVNode("span", { + role: "button", + "aria-live": "polite", + tabindex: "0", + class: normalizeClass([ + unref(dpNs).e("header-label"), + { active: currentView.value === "month" } + ]), + onKeydown: withKeys(($event) => showPicker("month"), ["enter"]), + onClick: ($event) => showPicker("month") + }, toDisplayString(unref(t)(`el.datepicker.month${unref(month) + 1}`)), 43, ["onKeydown", "onClick"]), [ + [vShow, currentView.value === "date"] + ]), + createElementVNode("span", { + class: normalizeClass(unref(dpNs).e("next-btn")) + }, [ + withDirectives(createElementVNode("button", { + type: "button", + "aria-label": unref(t)(`el.datepicker.nextMonth`), + class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-right"]), + onClick: ($event) => moveByMonth(true) + }, [ + renderSlot(_ctx.$slots, "next-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label", "onClick"]), [ + [vShow, currentView.value === "date"] + ]), + createElementVNode("button", { + type: "button", + "aria-label": unref(t)(`el.datepicker.nextYear`), + class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]), + onClick: ($event) => moveByYear(true) + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label", "onClick"]) + ], 2) + ], 2), [ + [vShow, currentView.value !== "time"] + ]), + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("content")), + onKeydown: handleKeydownTable + }, [ + currentView.value === "date" ? (openBlock(), createBlock(DateTable, { + key: 0, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": unref(selectionMode), + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": unref(disabledDate), + "cell-class-name": unref(cellClassName), + onPick: handleDatePick + }, null, 8, ["selection-mode", "date", "parsed-value", "disabled-date", "cell-class-name"])) : createCommentVNode("v-if", true), + currentView.value === "year" ? (openBlock(), createBlock(YearTable, { + key: 1, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": unref(selectionMode), + date: innerDate.value, + "disabled-date": unref(disabledDate), + "parsed-value": _ctx.parsedValue, + onPick: handleYearPick + }, null, 8, ["selection-mode", "date", "disabled-date", "parsed-value"])) : createCommentVNode("v-if", true), + currentView.value === "month" ? (openBlock(), createBlock(MonthTable, { + key: 2, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": unref(selectionMode), + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": unref(disabledDate), + onPick: handleMonthPick + }, null, 8, ["selection-mode", "date", "parsed-value", "disabled-date"])) : createCommentVNode("v-if", true) + ], 34) + ], 2) + ], 2), + withDirectives(createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("footer")) + }, [ + withDirectives(createVNode(unref(ElButton), { + text: "", + size: "small", + class: normalizeClass(unref(ppNs).e("link-btn")), + disabled: unref(disabledNow), + onClick: changeToNow + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(unref(t)("el.datepicker.now")), 1) + ]), + _: 1 + }, 8, ["class", "disabled"]), [ + [vShow, !unref(isMultipleType) && _ctx.showNow] + ]), + createVNode(unref(ElButton), { + plain: "", + size: "small", + class: normalizeClass(unref(ppNs).e("link-btn")), + disabled: unref(disabledConfirm), + onClick: onConfirm + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(unref(t)("el.datepicker.confirm")), 1) + ]), + _: 1 + }, 8, ["class", "disabled"]) + ], 2), [ + [vShow, unref(footerVisible)] + ]) + ], 2); + }; + } +}); +var DatePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__file", "panel-date-pick.vue"]]); +const panelDateRangeProps = buildProps({ + ...panelSharedProps, + ...panelRangeSharedProps, + visible: Boolean +}); +const useShortcut = (lang) => { + const { emit } = getCurrentInstance(); + const attrs = useAttrs(); + const slots = useSlots(); + const handleShortcutClick = (shortcut) => { + const shortcutValues = shared_cjs_prodExports.isFunction(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValues) { + emit("pick", [ + dayjs(shortcutValues[0]).locale(lang.value), + dayjs(shortcutValues[1]).locale(lang.value) + ]); + return; + } + if (shortcut.onClick) { + shortcut.onClick({ + attrs, + slots, + emit + }); + } + }; + return handleShortcutClick; +}; +const useRangePicker = (props, { + defaultValue, + leftDate, + rightDate, + unit: unit2, + onParsedValueChanged +}) => { + const { emit } = getCurrentInstance(); + const { pickerNs } = inject(ROOT_PICKER_INJECTION_KEY); + const drpNs = useNamespace("date-range-picker"); + const { t, lang } = useLocale(); + const handleShortcutClick = useShortcut(lang); + const minDate = ref(); + const maxDate = ref(); + const rangeState = ref({ + endDate: null, + selecting: false + }); + const handleChangeRange = (val) => { + rangeState.value = val; + }; + const handleRangeConfirm = (visible = false) => { + const _minDate = unref(minDate); + const _maxDate = unref(maxDate); + if (isValidRange([_minDate, _maxDate])) { + emit("pick", [_minDate, _maxDate], visible); + } + }; + const onSelect = (selecting) => { + rangeState.value.selecting = selecting; + if (!selecting) { + rangeState.value.endDate = null; + } + }; + const onReset = (parsedValue) => { + if (shared_cjs_prodExports.isArray(parsedValue) && parsedValue.length === 2) { + const [start, end] = parsedValue; + minDate.value = start; + leftDate.value = start; + maxDate.value = end; + onParsedValueChanged(unref(minDate), unref(maxDate)); + } else { + restoreDefault(); + } + }; + const restoreDefault = () => { + const [start, end] = getDefaultValue(unref(defaultValue), { + lang: unref(lang), + unit: unit2, + unlinkPanels: props.unlinkPanels + }); + minDate.value = void 0; + maxDate.value = void 0; + leftDate.value = start; + rightDate.value = end; + }; + watch(defaultValue, (val) => { + if (val) { + restoreDefault(); + } + }, { immediate: true }); + watch(() => props.parsedValue, onReset, { immediate: true }); + return { + minDate, + maxDate, + rangeState, + lang, + ppNs: pickerNs, + drpNs, + handleChangeRange, + handleRangeConfirm, + handleShortcutClick, + onSelect, + onReset, + t + }; +}; +const unit$2 = "month"; +const _sfc_main$3 = /* @__PURE__ */ defineComponent({ + __name: "panel-date-range", + props: panelDateRangeProps, + emits: [ + "pick", + "set-picker-option", + "calendar-change", + "panel-change" + ], + setup(__props, { emit }) { + const props = __props; + const pickerBase = inject("EP_PICKER_BASE"); + const { disabledDate, cellClassName, defaultTime, clearable } = pickerBase.props; + const format = toRef(pickerBase.props, "format"); + const shortcuts = toRef(pickerBase.props, "shortcuts"); + const defaultValue = toRef(pickerBase.props, "defaultValue"); + const { lang } = useLocale(); + const leftDate = ref(dayjs().locale(lang.value)); + const rightDate = ref(dayjs().locale(lang.value).add(1, unit$2)); + const { + minDate, + maxDate, + rangeState, + ppNs, + drpNs, + handleChangeRange, + handleRangeConfirm, + handleShortcutClick, + onSelect, + onReset, + t + } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + unit: unit$2, + onParsedValueChanged + }); + watch(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + onReset(props.parsedValue); + onSelect(false); + } + }); + const dateUserInput = ref({ + min: null, + max: null + }); + const timeUserInput = ref({ + min: null, + max: null + }); + const leftLabel = computed(() => { + return `${leftDate.value.year()} ${t("el.datepicker.year")} ${t(`el.datepicker.month${leftDate.value.month() + 1}`)}`; + }); + const rightLabel = computed(() => { + return `${rightDate.value.year()} ${t("el.datepicker.year")} ${t(`el.datepicker.month${rightDate.value.month() + 1}`)}`; + }); + const leftYear = computed(() => { + return leftDate.value.year(); + }); + const leftMonth = computed(() => { + return leftDate.value.month(); + }); + const rightYear = computed(() => { + return rightDate.value.year(); + }); + const rightMonth = computed(() => { + return rightDate.value.month(); + }); + const hasShortcuts = computed(() => !!shortcuts.value.length); + const minVisibleDate = computed(() => { + if (dateUserInput.value.min !== null) + return dateUserInput.value.min; + if (minDate.value) + return minDate.value.format(dateFormat.value); + return ""; + }); + const maxVisibleDate = computed(() => { + if (dateUserInput.value.max !== null) + return dateUserInput.value.max; + if (maxDate.value || minDate.value) + return (maxDate.value || minDate.value).format(dateFormat.value); + return ""; + }); + const minVisibleTime = computed(() => { + if (timeUserInput.value.min !== null) + return timeUserInput.value.min; + if (minDate.value) + return minDate.value.format(timeFormat.value); + return ""; + }); + const maxVisibleTime = computed(() => { + if (timeUserInput.value.max !== null) + return timeUserInput.value.max; + if (maxDate.value || minDate.value) + return (maxDate.value || minDate.value).format(timeFormat.value); + return ""; + }); + const timeFormat = computed(() => { + return props.timeFormat || extractTimeFormat(format.value); + }); + const dateFormat = computed(() => { + return props.dateFormat || extractDateFormat(format.value); + }); + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(1, "year"); + if (!props.unlinkPanels) { + rightDate.value = leftDate.value.add(1, "month"); + } + handlePanelChange("year"); + }; + const leftPrevMonth = () => { + leftDate.value = leftDate.value.subtract(1, "month"); + if (!props.unlinkPanels) { + rightDate.value = leftDate.value.add(1, "month"); + } + handlePanelChange("month"); + }; + const rightNextYear = () => { + if (!props.unlinkPanels) { + leftDate.value = leftDate.value.add(1, "year"); + rightDate.value = leftDate.value.add(1, "month"); + } else { + rightDate.value = rightDate.value.add(1, "year"); + } + handlePanelChange("year"); + }; + const rightNextMonth = () => { + if (!props.unlinkPanels) { + leftDate.value = leftDate.value.add(1, "month"); + rightDate.value = leftDate.value.add(1, "month"); + } else { + rightDate.value = rightDate.value.add(1, "month"); + } + handlePanelChange("month"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(1, "year"); + handlePanelChange("year"); + }; + const leftNextMonth = () => { + leftDate.value = leftDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(1, "year"); + handlePanelChange("year"); + }; + const rightPrevMonth = () => { + rightDate.value = rightDate.value.subtract(1, "month"); + handlePanelChange("month"); + }; + const handlePanelChange = (mode) => { + emit("panel-change", [leftDate.value.toDate(), rightDate.value.toDate()], mode); + }; + const enableMonthArrow = computed(() => { + const nextMonth = (leftMonth.value + 1) % 12; + const yearOffset = leftMonth.value + 1 >= 12 ? 1 : 0; + return props.unlinkPanels && new Date(leftYear.value + yearOffset, nextMonth) < new Date(rightYear.value, rightMonth.value); + }); + const enableYearArrow = computed(() => { + return props.unlinkPanels && rightYear.value * 12 + rightMonth.value - (leftYear.value * 12 + leftMonth.value + 1) >= 12; + }); + const btnDisabled = computed(() => { + return !(minDate.value && maxDate.value && !rangeState.value.selecting && isValidRange([minDate.value, maxDate.value])); + }); + const showTime = computed(() => props.type === "datetime" || props.type === "datetimerange"); + const formatEmit = (emitDayjs, index2) => { + if (!emitDayjs) + return; + if (defaultTime) { + const defaultTimeD = dayjs(defaultTime[index2] || defaultTime).locale(lang.value); + return defaultTimeD.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + } + return emitDayjs; + }; + const handleRangePick = (val, close = true) => { + const min_ = val.minDate; + const max_ = val.maxDate; + const minDate_ = formatEmit(min_, 0); + const maxDate_ = formatEmit(max_, 1); + if (maxDate.value === maxDate_ && minDate.value === minDate_) { + return; + } + emit("calendar-change", [min_.toDate(), max_ && max_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close || showTime.value) + return; + handleRangeConfirm(); + }; + const minTimePickerVisible = ref(false); + const maxTimePickerVisible = ref(false); + const handleMinTimeClose = () => { + minTimePickerVisible.value = false; + }; + const handleMaxTimeClose = () => { + maxTimePickerVisible.value = false; + }; + const handleDateInput = (value, type) => { + dateUserInput.value[type] = value; + const parsedValueD = dayjs(value, dateFormat.value).locale(lang.value); + if (parsedValueD.isValid()) { + if (disabledDate && disabledDate(parsedValueD.toDate())) { + return; + } + if (type === "min") { + leftDate.value = parsedValueD; + minDate.value = (minDate.value || leftDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!maxDate.value || maxDate.value.isBefore(minDate.value))) { + rightDate.value = parsedValueD.add(1, "month"); + maxDate.value = minDate.value.add(1, "month"); + } + } else { + rightDate.value = parsedValueD; + maxDate.value = (maxDate.value || rightDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!minDate.value || minDate.value.isAfter(maxDate.value))) { + leftDate.value = parsedValueD.subtract(1, "month"); + minDate.value = maxDate.value.subtract(1, "month"); + } + } + } + }; + const handleDateChange = (_, type) => { + dateUserInput.value[type] = null; + }; + const handleTimeInput = (value, type) => { + timeUserInput.value[type] = value; + const parsedValueD = dayjs(value, timeFormat.value).locale(lang.value); + if (parsedValueD.isValid()) { + if (type === "min") { + minTimePickerVisible.value = true; + minDate.value = (minDate.value || leftDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + } else { + maxTimePickerVisible.value = true; + maxDate.value = (maxDate.value || rightDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + rightDate.value = maxDate.value; + } + } + }; + const handleTimeChange = (value, type) => { + timeUserInput.value[type] = null; + if (type === "min") { + leftDate.value = minDate.value; + minTimePickerVisible.value = false; + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) { + maxDate.value = minDate.value; + } + } else { + rightDate.value = maxDate.value; + maxTimePickerVisible.value = false; + if (maxDate.value && maxDate.value.isBefore(minDate.value)) { + minDate.value = maxDate.value; + } + } + }; + const handleMinTimePick = (value, visible, first) => { + if (timeUserInput.value.min) + return; + if (value) { + leftDate.value = value; + minDate.value = (minDate.value || leftDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + } + if (!first) { + minTimePickerVisible.value = visible; + } + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) { + maxDate.value = minDate.value; + rightDate.value = value; + } + }; + const handleMaxTimePick = (value, visible, first) => { + if (timeUserInput.value.max) + return; + if (value) { + rightDate.value = value; + maxDate.value = (maxDate.value || rightDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + } + if (!first) { + maxTimePickerVisible.value = visible; + } + if (maxDate.value && maxDate.value.isBefore(minDate.value)) { + minDate.value = maxDate.value; + } + }; + const handleClear = () => { + leftDate.value = getDefaultValue(unref(defaultValue), { + lang: unref(lang), + unit: "month", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "month"); + maxDate.value = void 0; + minDate.value = void 0; + emit("pick", null); + }; + const formatToString = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => _.format(format.value)) : value.format(format.value); + }; + const parseUserInput = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => dayjs(_, format.value).locale(lang.value)) : dayjs(value, format.value).locale(lang.value); + }; + function onParsedValueChanged(minDate2, maxDate2) { + if (props.unlinkPanels && maxDate2) { + const minDateYear = (minDate2 == null ? void 0 : minDate2.year()) || 0; + const minDateMonth = (minDate2 == null ? void 0 : minDate2.month()) || 0; + const maxDateYear = maxDate2.year(); + const maxDateMonth = maxDate2.month(); + rightDate.value = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? maxDate2.add(1, unit$2) : maxDate2; + } else { + rightDate.value = leftDate.value.add(1, unit$2); + if (maxDate2) { + rightDate.value = rightDate.value.hour(maxDate2.hour()).minute(maxDate2.minute()).second(maxDate2.second()); + } + } + } + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["formatToString", formatToString]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([ + unref(ppNs).b(), + unref(drpNs).b(), + { + "has-sidebar": _ctx.$slots.sidebar || unref(hasShortcuts), + "has-time": unref(showTime) + } + ]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body-wrapper")) + }, [ + renderSlot(_ctx.$slots, "sidebar", { + class: normalizeClass(unref(ppNs).e("sidebar")) + }), + unref(hasShortcuts) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ppNs).e("sidebar")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => { + return openBlock(), createElementBlock("button", { + key, + type: "button", + class: normalizeClass(unref(ppNs).e("shortcut")), + onClick: ($event) => unref(handleShortcutClick)(shortcut) + }, toDisplayString(shortcut.text), 11, ["onClick"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body")) + }, [ + unref(showTime) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(drpNs).e("time-header")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(drpNs).e("editors-wrap")) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(drpNs).e("time-picker-wrap")) + }, [ + createVNode(unref(ElInput), { + size: "small", + disabled: unref(rangeState).selecting, + placeholder: unref(t)("el.datepicker.startDate"), + class: normalizeClass(unref(drpNs).e("editor")), + "model-value": unref(minVisibleDate), + "validate-event": false, + onInput: (val) => handleDateInput(val, "min"), + onChange: (val) => handleDateChange(val, "min") + }, null, 8, ["disabled", "placeholder", "class", "model-value", "onInput", "onChange"]) + ], 2), + withDirectives((openBlock(), createElementBlock("span", { + class: normalizeClass(unref(drpNs).e("time-picker-wrap")) + }, [ + createVNode(unref(ElInput), { + size: "small", + class: normalizeClass(unref(drpNs).e("editor")), + disabled: unref(rangeState).selecting, + placeholder: unref(t)("el.datepicker.startTime"), + "model-value": unref(minVisibleTime), + "validate-event": false, + onFocus: ($event) => minTimePickerVisible.value = true, + onInput: (val) => handleTimeInput(val, "min"), + onChange: (val) => handleTimeChange(val, "min") + }, null, 8, ["class", "disabled", "placeholder", "model-value", "onFocus", "onInput", "onChange"]), + createVNode(unref(TimePickPanel), { + visible: minTimePickerVisible.value, + format: unref(timeFormat), + "datetime-role": "start", + "parsed-value": leftDate.value, + onPick: handleMinTimePick + }, null, 8, ["visible", "format", "parsed-value"]) + ], 2)), [ + [unref(ClickOutside), handleMinTimeClose] + ]) + ], 2), + createElementVNode("span", null, [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_right_default)) + ]), + _: 1 + }) + ]), + createElementVNode("span", { + class: normalizeClass([unref(drpNs).e("editors-wrap"), "is-right"]) + }, [ + createElementVNode("span", { + class: normalizeClass(unref(drpNs).e("time-picker-wrap")) + }, [ + createVNode(unref(ElInput), { + size: "small", + class: normalizeClass(unref(drpNs).e("editor")), + disabled: unref(rangeState).selecting, + placeholder: unref(t)("el.datepicker.endDate"), + "model-value": unref(maxVisibleDate), + readonly: !unref(minDate), + "validate-event": false, + onInput: (val) => handleDateInput(val, "max"), + onChange: (val) => handleDateChange(val, "max") + }, null, 8, ["class", "disabled", "placeholder", "model-value", "readonly", "onInput", "onChange"]) + ], 2), + withDirectives((openBlock(), createElementBlock("span", { + class: normalizeClass(unref(drpNs).e("time-picker-wrap")) + }, [ + createVNode(unref(ElInput), { + size: "small", + class: normalizeClass(unref(drpNs).e("editor")), + disabled: unref(rangeState).selecting, + placeholder: unref(t)("el.datepicker.endTime"), + "model-value": unref(maxVisibleTime), + readonly: !unref(minDate), + "validate-event": false, + onFocus: ($event) => unref(minDate) && (maxTimePickerVisible.value = true), + onInput: (val) => handleTimeInput(val, "max"), + onChange: (val) => handleTimeChange(val, "max") + }, null, 8, ["class", "disabled", "placeholder", "model-value", "readonly", "onFocus", "onInput", "onChange"]), + createVNode(unref(TimePickPanel), { + "datetime-role": "end", + visible: maxTimePickerVisible.value, + format: unref(timeFormat), + "parsed-value": rightDate.value, + onPick: handleMaxTimePick + }, null, 8, ["visible", "format", "parsed-value"]) + ], 2)), [ + [unref(ClickOutside), handleMaxTimeClose] + ]) + ], 2) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-left"]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-left"]), + "aria-label": unref(t)(`el.datepicker.prevYear`), + onClick: leftPrevYear + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label"]), + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-left"]), + "aria-label": unref(t)(`el.datepicker.prevMonth`), + onClick: leftPrevMonth + }, [ + renderSlot(_ctx.$slots, "prev-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label"]), + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-right"]), + "aria-label": unref(t)(`el.datepicker.nextYear`), + onClick: leftNextYear + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "aria-label"])) : createCommentVNode("v-if", true), + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 1, + type: "button", + disabled: !unref(enableMonthArrow), + class: normalizeClass([[ + unref(ppNs).e("icon-btn"), + { "is-disabled": !unref(enableMonthArrow) } + ], "arrow-right"]), + "aria-label": unref(t)(`el.datepicker.nextMonth`), + onClick: leftNextMonth + }, [ + renderSlot(_ctx.$slots, "next-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "aria-label"])) : createCommentVNode("v-if", true), + createElementVNode("div", null, toDisplayString(unref(leftLabel)), 1) + ], 2), + createVNode(DateTable, { + "selection-mode": "range", + date: leftDate.value, + "min-date": unref(minDate), + "max-date": unref(maxDate), + "range-state": unref(rangeState), + "disabled-date": unref(disabledDate), + "cell-class-name": unref(cellClassName), + onChangerange: unref(handleChangeRange), + onPick: handleRangePick, + onSelect: unref(onSelect) + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "cell-class-name", "onChangerange", "onSelect"]) + ], 2), + createElementVNode("div", { + class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-right"]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-left"]), + "aria-label": unref(t)(`el.datepicker.prevYear`), + onClick: rightPrevYear + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "aria-label"])) : createCommentVNode("v-if", true), + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 1, + type: "button", + disabled: !unref(enableMonthArrow), + class: normalizeClass([[ + unref(ppNs).e("icon-btn"), + { "is-disabled": !unref(enableMonthArrow) } + ], "arrow-left"]), + "aria-label": unref(t)(`el.datepicker.prevMonth`), + onClick: rightPrevMonth + }, [ + renderSlot(_ctx.$slots, "prev-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "aria-label"])) : createCommentVNode("v-if", true), + createElementVNode("button", { + type: "button", + "aria-label": unref(t)(`el.datepicker.nextYear`), + class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]), + onClick: rightNextYear + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label"]), + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-right"]), + "aria-label": unref(t)(`el.datepicker.nextMonth`), + onClick: rightNextMonth + }, [ + renderSlot(_ctx.$slots, "next-month", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["aria-label"]), + createElementVNode("div", null, toDisplayString(unref(rightLabel)), 1) + ], 2), + createVNode(DateTable, { + "selection-mode": "range", + date: rightDate.value, + "min-date": unref(minDate), + "max-date": unref(maxDate), + "range-state": unref(rangeState), + "disabled-date": unref(disabledDate), + "cell-class-name": unref(cellClassName), + onChangerange: unref(handleChangeRange), + onPick: handleRangePick, + onSelect: unref(onSelect) + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "cell-class-name", "onChangerange", "onSelect"]) + ], 2) + ], 2) + ], 2), + unref(showTime) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ppNs).e("footer")) + }, [ + unref(clearable) ? (openBlock(), createBlock(unref(ElButton), { + key: 0, + text: "", + size: "small", + class: normalizeClass(unref(ppNs).e("link-btn")), + onClick: handleClear + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(unref(t)("el.datepicker.clear")), 1) + ]), + _: 1 + }, 8, ["class"])) : createCommentVNode("v-if", true), + createVNode(unref(ElButton), { + plain: "", + size: "small", + class: normalizeClass(unref(ppNs).e("link-btn")), + disabled: unref(btnDisabled), + onClick: ($event) => unref(handleRangeConfirm)(false) + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(unref(t)("el.datepicker.confirm")), 1) + ]), + _: 1 + }, 8, ["class", "disabled", "onClick"]) + ], 2)) : createCommentVNode("v-if", true) + ], 2); + }; + } +}); +var DateRangePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "panel-date-range.vue"]]); +const panelMonthRangeProps = buildProps({ + ...panelRangeSharedProps +}); +const panelMonthRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" +]; +const useMonthRangeHeader = ({ + unlinkPanels, + leftDate, + rightDate +}) => { + const { t } = useLocale(); + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(1, "year"); + if (!unlinkPanels.value) { + rightDate.value = rightDate.value.subtract(1, "year"); + } + }; + const rightNextYear = () => { + if (!unlinkPanels.value) { + leftDate.value = leftDate.value.add(1, "year"); + } + rightDate.value = rightDate.value.add(1, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(1, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(1, "year"); + }; + const leftLabel = computed(() => { + return `${leftDate.value.year()} ${t("el.datepicker.year")}`; + }); + const rightLabel = computed(() => { + return `${rightDate.value.year()} ${t("el.datepicker.year")}`; + }); + const leftYear = computed(() => { + return leftDate.value.year(); + }); + const rightYear = computed(() => { + return rightDate.value.year() === leftDate.value.year() ? leftDate.value.year() + 1 : rightDate.value.year(); + }); + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel, + rightLabel, + leftYear, + rightYear + }; +}; +const unit$1 = "year"; +const __default__$1 = defineComponent({ + name: "DatePickerMonthRange" +}); +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ + ...__default__$1, + props: panelMonthRangeProps, + emits: panelMonthRangeEmits, + setup(__props, { emit }) { + const props = __props; + const { lang } = useLocale(); + const pickerBase = inject("EP_PICKER_BASE"); + const { shortcuts, disabledDate } = pickerBase.props; + const format = toRef(pickerBase.props, "format"); + const defaultValue = toRef(pickerBase.props, "defaultValue"); + const leftDate = ref(dayjs().locale(lang.value)); + const rightDate = ref(dayjs().locale(lang.value).add(1, unit$1)); + const { + minDate, + maxDate, + rangeState, + ppNs, + drpNs, + handleChangeRange, + handleRangeConfirm, + handleShortcutClick, + onSelect + } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + unit: unit$1, + onParsedValueChanged + }); + const hasShortcuts = computed(() => !!shortcuts.length); + const { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel, + rightLabel, + leftYear, + rightYear + } = useMonthRangeHeader({ + unlinkPanels: toRef(props, "unlinkPanels"), + leftDate, + rightDate + }); + const enableYearArrow = computed(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) { + return; + } + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) + return; + handleRangeConfirm(); + }; + const handleClear = () => { + leftDate.value = getDefaultValue(unref(defaultValue), { + lang: unref(lang), + unit: "year", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "year"); + emit("pick", null); + }; + const formatToString = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => _.format(format.value)) : value.format(format.value); + }; + const parseUserInput = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => dayjs(_, format.value).locale(lang.value)) : dayjs(value, format.value).locale(lang.value); + }; + function onParsedValueChanged(minDate2, maxDate2) { + if (props.unlinkPanels && maxDate2) { + const minDateYear = (minDate2 == null ? void 0 : minDate2.year()) || 0; + const maxDateYear = maxDate2.year(); + rightDate.value = minDateYear === maxDateYear ? maxDate2.add(1, unit$1) : maxDate2; + } else { + rightDate.value = leftDate.value.add(1, unit$1); + } + } + emit("set-picker-option", ["isValidValue", isValidRange]); + emit("set-picker-option", ["formatToString", formatToString]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass([ + unref(ppNs).b(), + unref(drpNs).b(), + { + "has-sidebar": Boolean(_ctx.$slots.sidebar) || unref(hasShortcuts) + } + ]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body-wrapper")) + }, [ + renderSlot(_ctx.$slots, "sidebar", { + class: normalizeClass(unref(ppNs).e("sidebar")) + }), + unref(hasShortcuts) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ppNs).e("sidebar")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => { + return openBlock(), createElementBlock("button", { + key, + type: "button", + class: normalizeClass(unref(ppNs).e("shortcut")), + onClick: ($event) => unref(handleShortcutClick)(shortcut) + }, toDisplayString(shortcut.text), 11, ["onClick"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body")) + }, [ + createElementVNode("div", { + class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-left"]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-left"]), + onClick: unref(leftPrevYear) + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["onClick"]), + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass([[ + unref(ppNs).e("icon-btn"), + { [unref(ppNs).is("disabled")]: !unref(enableYearArrow) } + ], "d-arrow-right"]), + onClick: unref(leftNextYear) + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "onClick"])) : createCommentVNode("v-if", true), + createElementVNode("div", null, toDisplayString(unref(leftLabel)), 1) + ], 2), + createVNode(MonthTable, { + "selection-mode": "range", + date: leftDate.value, + "min-date": unref(minDate), + "max-date": unref(maxDate), + "range-state": unref(rangeState), + "disabled-date": unref(disabledDate), + onChangerange: unref(handleChangeRange), + onPick: handleRangePick, + onSelect: unref(onSelect) + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "onChangerange", "onSelect"]) + ], 2), + createElementVNode("div", { + class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-right"]) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-left"]), + onClick: unref(rightPrevYear) + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "onClick"])) : createCommentVNode("v-if", true), + createElementVNode("button", { + type: "button", + class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]), + onClick: unref(rightNextYear) + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["onClick"]), + createElementVNode("div", null, toDisplayString(unref(rightLabel)), 1) + ], 2), + createVNode(MonthTable, { + "selection-mode": "range", + date: rightDate.value, + "min-date": unref(minDate), + "max-date": unref(maxDate), + "range-state": unref(rangeState), + "disabled-date": unref(disabledDate), + onChangerange: unref(handleChangeRange), + onPick: handleRangePick, + onSelect: unref(onSelect) + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "onChangerange", "onSelect"]) + ], 2) + ], 2) + ], 2) + ], 2); + }; + } +}); +var MonthRangePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__file", "panel-month-range.vue"]]); +const panelYearRangeProps = buildProps({ + ...panelRangeSharedProps +}); +const panelYearRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" +]; +const useYearRangeHeader = ({ + unlinkPanels, + leftDate, + rightDate +}) => { + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(10, "year"); + if (!unlinkPanels.value) { + rightDate.value = rightDate.value.subtract(10, "year"); + } + }; + const rightNextYear = () => { + if (!unlinkPanels.value) { + leftDate.value = leftDate.value.add(10, "year"); + } + rightDate.value = rightDate.value.add(10, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(10, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(10, "year"); + }; + const leftLabel = computed(() => { + const leftStartDate = Math.floor(leftDate.value.year() / 10) * 10; + return `${leftStartDate}-${leftStartDate + 9}`; + }); + const rightLabel = computed(() => { + const rightStartDate = Math.floor(rightDate.value.year() / 10) * 10; + return `${rightStartDate}-${rightStartDate + 9}`; + }); + const leftYear = computed(() => { + const leftEndDate = Math.floor(leftDate.value.year() / 10) * 10 + 9; + return leftEndDate; + }); + const rightYear = computed(() => { + const rightStartDate = Math.floor(rightDate.value.year() / 10) * 10; + return rightStartDate; + }); + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel, + rightLabel, + leftYear, + rightYear + }; +}; +const unit = "year"; +const __default__ = defineComponent({ + name: "DatePickerYearRange" +}); +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + ...__default__, + props: panelYearRangeProps, + emits: panelYearRangeEmits, + setup(__props, { emit }) { + const props = __props; + const { lang } = useLocale(); + const leftDate = ref(dayjs().locale(lang.value)); + const rightDate = ref(leftDate.value.add(10, "year")); + const { pickerNs: ppNs } = inject(ROOT_PICKER_INJECTION_KEY); + const drpNs = useNamespace("date-range-picker"); + const hasShortcuts = computed(() => !!shortcuts.length); + const panelKls = computed(() => [ + ppNs.b(), + drpNs.b(), + { + "has-sidebar": Boolean(useSlots().sidebar) || hasShortcuts.value + } + ]); + const leftPanelKls = computed(() => { + return { + content: [ppNs.e("content"), drpNs.e("content"), "is-left"], + arrowLeftBtn: [ppNs.e("icon-btn"), "d-arrow-left"], + arrowRightBtn: [ + ppNs.e("icon-btn"), + { [ppNs.is("disabled")]: !enableYearArrow.value }, + "d-arrow-right" + ] + }; + }); + const rightPanelKls = computed(() => { + return { + content: [ppNs.e("content"), drpNs.e("content"), "is-right"], + arrowLeftBtn: [ + ppNs.e("icon-btn"), + { "is-disabled": !enableYearArrow.value }, + "d-arrow-left" + ], + arrowRightBtn: [ppNs.e("icon-btn"), "d-arrow-right"] + }; + }); + const handleShortcutClick = useShortcut(lang); + const { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel, + rightLabel, + leftYear, + rightYear + } = useYearRangeHeader({ + unlinkPanels: toRef(props, "unlinkPanels"), + leftDate, + rightDate + }); + const enableYearArrow = computed(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const minDate = ref(); + const maxDate = ref(); + const rangeState = ref({ + endDate: null, + selecting: false + }); + const handleChangeRange = (val) => { + rangeState.value = val; + }; + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) { + return; + } + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) + return; + handleConfirm(); + }; + const handleConfirm = (visible = false) => { + if (isValidRange([minDate.value, maxDate.value])) { + emit("pick", [minDate.value, maxDate.value], visible); + } + }; + const onSelect = (selecting) => { + rangeState.value.selecting = selecting; + if (!selecting) { + rangeState.value.endDate = null; + } + }; + const pickerBase = inject("EP_PICKER_BASE"); + const { shortcuts, disabledDate } = pickerBase.props; + const format = toRef(pickerBase.props, "format"); + const defaultValue = toRef(pickerBase.props, "defaultValue"); + const getDefaultValue2 = () => { + let start; + if (shared_cjs_prodExports.isArray(defaultValue.value)) { + const left = dayjs(defaultValue.value[0]); + let right = dayjs(defaultValue.value[1]); + if (!props.unlinkPanels) { + right = left.add(10, unit); + } + return [left, right]; + } else if (defaultValue.value) { + start = dayjs(defaultValue.value); + } else { + start = dayjs(); + } + start = start.locale(lang.value); + return [start, start.add(10, unit)]; + }; + watch(() => defaultValue.value, (val) => { + if (val) { + const defaultArr = getDefaultValue2(); + leftDate.value = defaultArr[0]; + rightDate.value = defaultArr[1]; + } + }, { immediate: true }); + watch(() => props.parsedValue, (newVal) => { + if (newVal && newVal.length === 2) { + minDate.value = newVal[0]; + maxDate.value = newVal[1]; + leftDate.value = minDate.value; + if (props.unlinkPanels && maxDate.value) { + const minDateYear = minDate.value.year(); + const maxDateYear = maxDate.value.year(); + rightDate.value = minDateYear === maxDateYear ? maxDate.value.add(10, "year") : maxDate.value; + } else { + rightDate.value = leftDate.value.add(10, "year"); + } + } else { + const defaultArr = getDefaultValue2(); + minDate.value = void 0; + maxDate.value = void 0; + leftDate.value = defaultArr[0]; + rightDate.value = defaultArr[1]; + } + }, { immediate: true }); + const parseUserInput = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((_) => dayjs(_, format.value).locale(lang.value)) : dayjs(value, format.value).locale(lang.value); + }; + const formatToString = (value) => { + return shared_cjs_prodExports.isArray(value) ? value.map((day) => day.format(format.value)) : value.format(format.value); + }; + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const handleClear = () => { + const defaultArr = getDefaultValue2(); + leftDate.value = defaultArr[0]; + rightDate.value = defaultArr[1]; + maxDate.value = void 0; + minDate.value = void 0; + emit("pick", null); + }; + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["formatToString", formatToString]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass(unref(panelKls)) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body-wrapper")) + }, [ + renderSlot(_ctx.$slots, "sidebar", { + class: normalizeClass(unref(ppNs).e("sidebar")) + }), + unref(hasShortcuts) ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(unref(ppNs).e("sidebar")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => { + return openBlock(), createElementBlock("button", { + key, + type: "button", + class: normalizeClass(unref(ppNs).e("shortcut")), + onClick: ($event) => unref(handleShortcutClick)(shortcut) + }, toDisplayString(shortcut.text), 11, ["onClick"]); + }), 128)) + ], 2)) : createCommentVNode("v-if", true), + createElementVNode("div", { + class: normalizeClass(unref(ppNs).e("body")) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(leftPanelKls).content) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + createElementVNode("button", { + type: "button", + class: normalizeClass(unref(leftPanelKls).arrowLeftBtn), + onClick: unref(leftPrevYear) + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["onClick"]), + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass(unref(leftPanelKls).arrowRightBtn), + onClick: unref(leftNextYear) + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "onClick"])) : createCommentVNode("v-if", true), + createElementVNode("div", null, toDisplayString(unref(leftLabel)), 1) + ], 2), + createVNode(YearTable, { + "selection-mode": "range", + date: leftDate.value, + "min-date": minDate.value, + "max-date": maxDate.value, + "range-state": rangeState.value, + "disabled-date": unref(disabledDate), + onChangerange: handleChangeRange, + onPick: handleRangePick, + onSelect + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date"]) + ], 2), + createElementVNode("div", { + class: normalizeClass(unref(rightPanelKls).content) + }, [ + createElementVNode("div", { + class: normalizeClass(unref(drpNs).e("header")) + }, [ + _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", { + key: 0, + type: "button", + disabled: !unref(enableYearArrow), + class: normalizeClass(unref(rightPanelKls).arrowLeftBtn), + onClick: unref(rightPrevYear) + }, [ + renderSlot(_ctx.$slots, "prev-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_left_default)) + ]), + _: 1 + }) + ]) + ], 10, ["disabled", "onClick"])) : createCommentVNode("v-if", true), + createElementVNode("button", { + type: "button", + class: normalizeClass(unref(rightPanelKls).arrowRightBtn), + onClick: unref(rightNextYear) + }, [ + renderSlot(_ctx.$slots, "next-year", {}, () => [ + createVNode(unref(ElIcon), null, { + default: withCtx(() => [ + createVNode(unref(d_arrow_right_default)) + ]), + _: 1 + }) + ]) + ], 10, ["onClick"]), + createElementVNode("div", null, toDisplayString(unref(rightLabel)), 1) + ], 2), + createVNode(YearTable, { + "selection-mode": "range", + date: rightDate.value, + "min-date": minDate.value, + "max-date": maxDate.value, + "range-state": rangeState.value, + "disabled-date": unref(disabledDate), + onChangerange: handleChangeRange, + onPick: handleRangePick, + onSelect + }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date"]) + ], 2) + ], 2) + ], 2) + ], 2); + }; + } +}); +var YearRangePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__file", "panel-year-range.vue"]]); +const getPanel = function(type) { + switch (type) { + case "daterange": + case "datetimerange": { + return DateRangePickPanel; + } + case "monthrange": { + return MonthRangePickPanel; + } + case "yearrange": { + return YearRangePickPanel; + } + default: { + return DatePickPanel; + } + } +}; +dayjs.extend(localeData); +dayjs.extend(advancedFormat); +dayjs.extend(customParseFormat); +dayjs.extend(weekOfYear); +dayjs.extend(weekYear); +dayjs.extend(dayOfYear); +dayjs.extend(isSameOrAfter); +dayjs.extend(isSameOrBefore); +var DatePicker = defineComponent({ + name: "ElDatePicker", + install: null, + props: datePickerProps, + emits: ["update:modelValue"], + setup(props, { + expose, + emit, + slots + }) { + const ns = useNamespace("picker-panel"); + provide("ElPopperOptions", reactive(toRef(props, "popperOptions"))); + provide(ROOT_PICKER_INJECTION_KEY, { + slots, + pickerNs: ns + }); + const commonPicker = ref(); + const refProps = { + focus: () => { + var _a; + (_a = commonPicker.value) == null ? void 0 : _a.focus(); + }, + blur: () => { + var _a; + (_a = commonPicker.value) == null ? void 0 : _a.blur(); + }, + handleOpen: () => { + var _a; + (_a = commonPicker.value) == null ? void 0 : _a.handleOpen(); + }, + handleClose: () => { + var _a; + (_a = commonPicker.value) == null ? void 0 : _a.handleClose(); + } + }; + expose(refProps); + const onModelValueUpdated = (val) => { + emit("update:modelValue", val); + }; + return () => { + var _a; + const format = (_a = props.format) != null ? _a : DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE; + const Component = getPanel(props.type); + return createVNode(CommonPicker, mergeProps(props, { + "format": format, + "type": props.type, + "ref": commonPicker, + "onUpdate:modelValue": onModelValueUpdated + }), { + default: (scopedProps) => createVNode(Component, scopedProps, { + "prev-month": slots["prev-month"], + "next-month": slots["next-month"], + "prev-year": slots["prev-year"], + "next-year": slots["next-year"] + }), + "range-separator": slots["range-separator"] + }); + }; + } +}); +const ElDatePicker = withInstall(DatePicker); +const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAyKADAAQAAAABAAAAyAAAAACbWz2VAAAKXElEQVR4Ae2dTWhUVxSAO84ws6mGWCmFFkWoaRepraUu3HRZGtraVeif3YsQGGqxxkgCkYRQSAmEanDRlRRLdm6yctFScGFx09BFpIhCIQU1hOBiJjOZnleVTCaTO+/de99k5p5PGJx595777vnO+WYy5o2TqdVq2Rf4AwEINCWwp+lRDkIAAv8TQBAaAQIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgIIIgBDkMQQBB6AAIGAghigMMQBBCEHoCAgQCCGOAwBAEEoQcgYCCAIAY4DEEAQegBCBgI5AxjDAVEYGFhIbe4uHiwVCodjtIqFAr3+vv7HwwMDFQCStN7KplarZb1vioLdgyB2dnZ/SsrK2elzmfktrd+Y5lMZk1ul3t7e6eHhoYe149x/ykBBAm4EyYnJ98vl8s/S4qvtEhzOZ/Pf3nhwoXfWsxTN4wggZZ8YmLixPr6+k1JLx8zxfKePXs+Hx0dvRFzvoppvEkPsMwzMzN7K5XKNUktrhwRhfzGxsb18fHxkwEisU4JQazRdW7g6upq9J7jkMUOkaQBGoI0AOn2h/Pz83mR47RDHkhSBw9B6mCEcHdpaem45HHAMRckeQYQQRw7qdPCq9XqEU97QhIBiSCeuinQZdRLgiCBdXY2m73rOSXVkiCI527a7eX6+vpuyx4eet6HWkkQxHMn7fZyg4ODZbl8ZC6FfaiUBEFS6KTdXrKnp2daJLmfwj7USYIgKXTRbi9ZLBbXcrncKdlHOYW9qJIEQVLooE5YcmRk5FZ0bRWSuFUDQdz4dXR0dOEhkriVCEHc+HV8NJK4lQhB3Ph1RTSS2JcJQezZdVUkktiVC0HsuHVlFJIkLxuCJGfW1RFIkqx8CJKMVxCzkSR+GREkPqugZiJJvHIiSDxOQc5CktZlRZDWjIKegSTm8iKImY+KUSTZucwIsjMbVSNI0rzcCNKci8qjSLK97AiynYnqI0iytfwIspUHj4QAkmy2AYJssuBeHQEkeQoDQeqagrtbCSAJ/y/W1o7g0TYC2iXhFWRbS3CgkYBmSRCksRt43JSAVkkQpGk7cLAZAY2SIEizTuDYjgS0SYIgO7YCAzsR0CQJguzUBRw3EtAiCYIY24BBEwENkiCIqQMYa0kgdEkQpGULMKEVgZAlQZBW1Wc8FoFQJUGQWOVnUhwCIUqCIHEqz5zYBEKTBEFil56JcQmEJAmCxK068xIRCEUSBElUdiYnIRCCJAiSpOLMTUyg2yXJ1Gq1bOKsYwRcvXr1xeXl5Xdl6n655WKEMCVgAtJn78mtmFIvlKNv0opk9I3QuyBTU1NHS6XSVwLjU9ns6743zHoQaEZAvtW3KrfvRJKZZuO2x7wKMj4+fmpjY+Nb2Uy/7YaIg4AtAXlSrskryezY2Ng3tms0xnkT5Jkc38sJXm48CY8h0C4C8ipSk9ukvJKM+TinF0EuXbr0TrVa/Uk2dNTHplgDAo4EyoVC4YPh4eHfHdd5wcu/Yskr2xeyEeRwrQbxvgjk5X3wlI/FnAWZm5t7Sd53fORjM6wBAV8E5En7+PT09Guu6zkL8ujRoz7ZxJuuGyEeAj4JyPuQ7JMnTz52XdNZEHnv8arrJoiHQBoE5FXkLdd1nQURUzOumyAeAp1KwFmQXC73T6cmx750E5Dn7j9dCTgLks1m/5ZN/OW6EeIh4JlAZd++fQuuazoLcu7cuX/FVOeNuCZCPAQaCPxRLBbvNxxL/NBZkOiM8kuZX0SSO4nPTgAE0iFQlh/9R3ws7UWQ8+fP34mugRFJeD/ioyqsYU1AejC6Hmv64sWLv1ovUhfo5VKT5+vJJSdfyy8Ni/LPa28/P8bfEGgXAem7SI4f5WLF6LJ6L3+8ChLtaGJi4lilUvlM7n4i+33Dyy5ZBAItCMgrR3S5+7BcpPhDi6mJhr0L8vzsV65c2Se/ZT8mryi9cowPTD0Ho/RvebLkA1NKa0/aLQjIRyFOyhPldZmWbzHVZji1TxNGm/HyJt0mK2J0EOhmOaIKIYiOPt2VLLtdDgTZlbbRcdIQ5EAQHb3a9ixDkQNB2t464Z8wJDkQJPx+bWuGocmBIG1tn7BPFqIcCBJ2z7Ytu1DlQJC2tVC4JwpZDgQJt2/bklnociBIW9oozJNokANBwuzd1LPSIgeCpN5K4Z1AkxwIEl7/ppqRNjkQJNV2CmtxjXIgSFg9nFo2WuVAkNRaKpyFNcuBIOH0cSqZaJcDQVJpqzAWRY6ndeQThWH0s9cskGMTJ4JssuCeEECOrW2AIFt5qH6EHNvLjyDbmag8ghzNy44gzbmoOoocO5cbQXZmo2IEOcxlRhAzn6BHkaN1eRGkNaMgZyBHvLIiSDxOQc1CjvjlRJD4rIKYiRzJyoggyXh19WzkSF4+BEnOrCsjkMOubAhix62ropDDvlwIYs+uKyKRw61MCOLGr6OjkcO9PKl9R6H71ljBhYB8meqJ9fX1m7JG133tmUvevmN5BfFNtAPWm5mZ2SvfNHxNtoIcjvVAEEeAnRi+urp6Vr5V9lAKe0v1CzNT2K/zkgjijLCzFpifn8+LHKdT2JU6OSKGCJJCJ+3mkktLS8fl/Ac870GlHBFDBPHcSbu9XLVaPeJ5D2rliDgiiOduCmw51XIgSGDdHKWTzWbvekpLvRwRR15BPHVTpyzT19d3W/by0HE/yPEMIII4dlKnhQ8ODpYzmcycw76Qow4egtTBCOVuT0/PtEhy3yIf5GiAhiANQEJ4WCwW13K53CnJpZwgH+RoAgtBmkAJ4dDIyMitfD7/oeSyHCOf5Wju6OjojRhzVU3hYsXAyz07O7t/ZWUluvTkjNz21qcrP4atye1yb2/v9NDQ0OP6Me4/JYAgSjphYWEht7i4eLBUKh2OUi4UCvf6+/sfDAwMVJQgsEoTQaywEaSFAO9BtFSaPK0IIIgVNoK0EEAQLZUmTysCCGKFjSAtBBBES6XJ04oAglhhI0gLAQTRUmnytCKAIFbYCNJCAEG0VJo8rQggiBU2grQQQBAtlSZPKwIIYoWNIC0EEERLpcnTigCCWGEjSAsBBNFSafK0IoAgVtgI0kIAQbRUmjytCCCIFTaCtBBAEC2VJk8rAghihY0gLQQQREulydOKAIJYYSNICwEE0VJp8rQigCBW2AjSQgBBtFSaPK0IIIgVNoK0EEAQLZUmTysCCGKFjSAtBBBES6XJ04oAglhhI0gLAQTRUmnytCKAIFbYCNJCAEG0VJo8rQggiBU2grQQQBAtlSZPKwIIYoWNIC0EEERLpcnTigCCWGEjSAsBBNFSafK0IoAgVtgI0kLgP02yRT2ww5JTAAAAAElFTkSuQmCC"; +const _imports_2 = "" + buildAssetsURL("calendar-icon.BGBc-vDw.svg"); +const _imports_3 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='18px'%20height='18px'%20viewBox='387%20609%2018%2018'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='387px'%20y='609px'%20width='18px'%20height='18px'%20filterUnits='userSpaceOnUse'%20id='filter1260'%3e%3cfeOffset%20dx='0'%20dy='0'%20in='SourceAlpha'%20result='shadowOffsetInner'%20/%3e%3cfeGaussianBlur%20stdDeviation='1.5'%20in='shadowOffsetInner'%20result='shadowGaussian'%20/%3e%3cfeComposite%20in2='shadowGaussian'%20operator='atop'%20in='SourceAlpha'%20result='shadowComposite'%20/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.117647058823529%200%20'%20in='shadowComposite'%20/%3e%3c/filter%3e%3cg%20id='widget1261'%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20/%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20stroke-width='1'%20stroke='%23797979'%20fill='none'%20/%3e%3c/g%3e%3c/defs%3e%3cuse%20xlink:href='%23widget1261'%20filter='url(%23filter1260)'%20/%3e%3cuse%20xlink:href='%23widget1261'%20/%3e%3c/svg%3e"; +const _imports_4 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='18px'%20height='18px'%20viewBox='387%20609%2018%2018'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cfilter%20x='387px'%20y='609px'%20width='18px'%20height='18px'%20filterUnits='userSpaceOnUse'%20id='filter1262'%3e%3cfeOffset%20dx='0'%20dy='0'%20in='SourceAlpha'%20result='shadowOffsetInner'%20/%3e%3cfeGaussianBlur%20stdDeviation='1.5'%20in='shadowOffsetInner'%20result='shadowGaussian'%20/%3e%3cfeComposite%20in2='shadowGaussian'%20operator='atop'%20in='SourceAlpha'%20result='shadowComposite'%20/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.117647058823529%200%20'%20in='shadowComposite'%20/%3e%3c/filter%3e%3cg%20id='widget1263'%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20fill-rule='nonzero'%20fill='%23ffffff'%20stroke='none'%20/%3e%3cpath%20d='M%20390.5%20612.5%20L%20401.5%20612.5%20L%20401.5%20623.5%20L%20390.5%20623.5%20L%20390.5%20612.5%20Z%20'%20stroke-width='1'%20stroke='%23797979'%20fill='none'%20/%3e%3c/g%3e%3c/defs%3e%3cuse%20xlink:href='%23widget1263'%20filter='url(%23filter1262)'%20/%3e%3cuse%20xlink:href='%23widget1263'%20/%3e%3cpath%20d='M%20392.571428571429%20618%20L%20395.142857142857%20620.571428571429%20L%20399.428571428571%20614.571428571429%20'%20stroke-width='2.57142857142857'%20stroke='%23797979'%20fill='none'%20/%3e%3c/svg%3e"; +/*! Element Plus v2.9.4 */ +var zhCn = { + name: "zh-cn", + el: { + breadcrumb: { + label: "\u9762\u5305\u5C51" + }, + colorpicker: { + confirm: "\u786E\u5B9A", + clear: "\u6E05\u7A7A", + defaultLabel: "\u989C\u8272\u9009\u62E9\u5668", + description: "\u5F53\u524D\u989C\u8272 {color}\uFF0C\u6309 Enter \u952E\u9009\u62E9\u65B0\u989C\u8272", + alphaLabel: "\u9009\u62E9\u900F\u660E\u5EA6\u7684\u503C" + }, + datepicker: { + now: "\u6B64\u523B", + today: "\u4ECA\u5929", + cancel: "\u53D6\u6D88", + clear: "\u6E05\u7A7A", + confirm: "\u786E\u5B9A", + dateTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u65E5\u671F", + monthTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u6708\u4EFD", + yearTablePrompt: "\u4F7F\u7528\u65B9\u5411\u952E\u4E0E Enter \u952E\u53EF\u9009\u62E9\u5E74\u4EFD", + selectedDate: "\u5DF2\u9009\u65E5\u671F", + selectDate: "\u9009\u62E9\u65E5\u671F", + selectTime: "\u9009\u62E9\u65F6\u95F4", + startDate: "\u5F00\u59CB\u65E5\u671F", + startTime: "\u5F00\u59CB\u65F6\u95F4", + endDate: "\u7ED3\u675F\u65E5\u671F", + endTime: "\u7ED3\u675F\u65F6\u95F4", + prevYear: "\u524D\u4E00\u5E74", + nextYear: "\u540E\u4E00\u5E74", + prevMonth: "\u4E0A\u4E2A\u6708", + nextMonth: "\u4E0B\u4E2A\u6708", + year: "\u5E74", + month1: "1 \u6708", + month2: "2 \u6708", + month3: "3 \u6708", + month4: "4 \u6708", + month5: "5 \u6708", + month6: "6 \u6708", + month7: "7 \u6708", + month8: "8 \u6708", + month9: "9 \u6708", + month10: "10 \u6708", + month11: "11 \u6708", + month12: "12 \u6708", + weeks: { + sun: "\u65E5", + mon: "\u4E00", + tue: "\u4E8C", + wed: "\u4E09", + thu: "\u56DB", + fri: "\u4E94", + sat: "\u516D" + }, + weeksFull: { + sun: "\u661F\u671F\u65E5", + mon: "\u661F\u671F\u4E00", + tue: "\u661F\u671F\u4E8C", + wed: "\u661F\u671F\u4E09", + thu: "\u661F\u671F\u56DB", + fri: "\u661F\u671F\u4E94", + sat: "\u661F\u671F\u516D" + }, + months: { + jan: "\u4E00\u6708", + feb: "\u4E8C\u6708", + mar: "\u4E09\u6708", + apr: "\u56DB\u6708", + may: "\u4E94\u6708", + jun: "\u516D\u6708", + jul: "\u4E03\u6708", + aug: "\u516B\u6708", + sep: "\u4E5D\u6708", + oct: "\u5341\u6708", + nov: "\u5341\u4E00\u6708", + dec: "\u5341\u4E8C\u6708" + } + }, + inputNumber: { + decrease: "\u51CF\u5C11\u6570\u503C", + increase: "\u589E\u52A0\u6570\u503C" + }, + select: { + loading: "\u52A0\u8F7D\u4E2D", + noMatch: "\u65E0\u5339\u914D\u6570\u636E", + noData: "\u65E0\u6570\u636E", + placeholder: "\u8BF7\u9009\u62E9" + }, + dropdown: { + toggleDropdown: "\u5207\u6362\u4E0B\u62C9\u9009\u9879" + }, + mention: { + loading: "\u52A0\u8F7D\u4E2D" + }, + cascader: { + noMatch: "\u65E0\u5339\u914D\u6570\u636E", + loading: "\u52A0\u8F7D\u4E2D", + placeholder: "\u8BF7\u9009\u62E9", + noData: "\u6682\u65E0\u6570\u636E" + }, + pagination: { + goto: "\u524D\u5F80", + pagesize: "\u6761/\u9875", + total: "\u5171 {total} \u6761", + pageClassifier: "\u9875", + page: "\u9875", + prev: "\u4E0A\u4E00\u9875", + next: "\u4E0B\u4E00\u9875", + currentPage: "\u7B2C {pager} \u9875", + prevPages: "\u5411\u524D {pager} \u9875", + nextPages: "\u5411\u540E {pager} \u9875", + deprecationWarning: "\u4F60\u4F7F\u7528\u4E86\u4E00\u4E9B\u5DF2\u88AB\u5E9F\u5F03\u7684\u7528\u6CD5\uFF0C\u8BF7\u53C2\u8003 el-pagination \u7684\u5B98\u65B9\u6587\u6863" + }, + dialog: { + close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846" + }, + drawer: { + close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846" + }, + messagebox: { + title: "\u63D0\u793A", + confirm: "\u786E\u5B9A", + cancel: "\u53D6\u6D88", + error: "\u8F93\u5165\u7684\u6570\u636E\u4E0D\u5408\u6CD5!", + close: "\u5173\u95ED\u6B64\u5BF9\u8BDD\u6846" + }, + upload: { + deleteTip: "\u6309 delete \u952E\u53EF\u5220\u9664", + delete: "\u5220\u9664", + preview: "\u67E5\u770B\u56FE\u7247", + continue: "\u7EE7\u7EED\u4E0A\u4F20" + }, + slider: { + defaultLabel: "\u6ED1\u5757\u4ECB\u4E8E {min} \u81F3 {max}", + defaultRangeStartLabel: "\u9009\u62E9\u8D77\u59CB\u503C", + defaultRangeEndLabel: "\u9009\u62E9\u7ED3\u675F\u503C" + }, + table: { + emptyText: "\u6682\u65E0\u6570\u636E", + confirmFilter: "\u7B5B\u9009", + resetFilter: "\u91CD\u7F6E", + clearFilter: "\u5168\u90E8", + sumText: "\u5408\u8BA1" + }, + tour: { + next: "\u4E0B\u4E00\u6B65", + previous: "\u4E0A\u4E00\u6B65", + finish: "\u7ED3\u675F\u5BFC\u89C8" + }, + tree: { + emptyText: "\u6682\u65E0\u6570\u636E" + }, + transfer: { + noMatch: "\u65E0\u5339\u914D\u6570\u636E", + noData: "\u65E0\u6570\u636E", + titles: ["\u5217\u8868 1", "\u5217\u8868 2"], + filterPlaceholder: "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9", + noCheckedFormat: "\u5171 {total} \u9879", + hasCheckedFormat: "\u5DF2\u9009 {checked}/{total} \u9879" + }, + image: { + error: "\u52A0\u8F7D\u5931\u8D25" + }, + pageHeader: { + title: "\u8FD4\u56DE" + }, + popconfirm: { + confirmButtonText: "\u786E\u5B9A", + cancelButtonText: "\u53D6\u6D88" + }, + carousel: { + leftArrow: "\u4E0A\u4E00\u5F20\u5E7B\u706F\u7247", + rightArrow: "\u4E0B\u4E00\u5F20\u5E7B\u706F\u7247", + indicator: "\u5E7B\u706F\u7247\u5207\u6362\u81F3\u7D22\u5F15 {index}" + } + } +}; +const _sfc_main = { + __name: "index", + __ssrInlineRender: true, + setup(__props) { + useRouter(); + useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=footer,popupnotification", body: true }] }); + const setDisabled = (time) => { + return time.getTime() > Date.now(); + }; + ref(""); + let info = ref({ + school: "", + // 学校 + profession: "", + // 专业 + project: "", + // 项目时间 + interviewtime: "", + // 面试时间 + subject: "", + //标题 + isvisiblereply: 0, + // 回复点赞可见 + message: "", + // 过程 + anonymous: 0 + // 匿名状态 + }); + const querySchoolSearch = (queryString, cb) => { + publishSchoolSearchHttp({ keyword: queryString }).then((res) => { + if (res.code != 200) return; + let data = res.data || []; + let isRepetition = false; + data.forEach((element) => { + element["value"] = element["checkname"]; + if (element["checkname"] == queryString) isRepetition = true; + }); + if (!isRepetition) data.push({ value: queryString }); + cb(data); + }); + }; + const handleSchoolSelect = (item) => { + info.value["schoolid"] = item["id"] || 0; + }; + const queryMajorSearch = (queryString, cb) => { + publishProfessionSearchHttp({ keyword: queryString }).then((res) => { + if (res.code != 200) return; + let data = res.data || []; + let isRepetition = false; + data.forEach((element) => { + element["value"] = element["name"]; + if (element["name"] == queryString) isRepetition = true; + }); + if (!isRepetition) data.push({ value: queryString }); + cb(data); + }); + }; + const handleMajorSelect = (item) => { + info.value["profession_id"] = item["id"] || 0; + }; + let loading = ref(false); + return (_ctx, _push, _parent, _attrs) => { + const _component_Head = Head; + const _component_Title = Title; + const _component_Meta = Meta; + const _component_el_autocomplete = ElAutocomplete; + const _component_el_input = ElInput; + const _component_el_config_provider = ElConfigProvider; + const _component_el_date_picker = ElDatePicker; + _push(`<!--[-->`); + _push(ssrRenderComponent(_component_Head, null, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(ssrRenderComponent(_component_Title, null, { + default: withCtx((_2, _push3, _parent3, _scopeId2) => { + if (_push3) { + _push3(`\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03`); + } else { + return [ + createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03") + ]; + } + }), + _: 1 + }, _parent2, _scopeId)); + _push2(ssrRenderComponent(_component_Meta, { + name: "keyword", + content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B" + }, null, _parent2, _scopeId)); + } else { + return [ + createVNode(_component_Title, null, { + default: withCtx(() => [ + createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03") + ]), + _: 1 + }), + createVNode(_component_Meta, { + name: "keyword", + content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B" + }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`<div class="content-box" data-v-0813115a><div class="flexacenter save-box save-left" data-v-0813115a><img class="save-icon"${ssrRenderAttr("src", _imports_0)} data-v-0813115a> \u4FDD\u5B58\u5E76\u9000\u51FA </div><div class="flexacenter save-box save-right" data-v-0813115a> \u653E\u5F03\u4FDD\u5B58 <img class="save-icon"${ssrRenderAttr("src", _imports_1)} data-v-0813115a></div><div class="contentcontent flex1" data-v-0813115a><div class="header flexacenter" data-v-0813115a>\u53D1\u5E03\u9762\u7ECF</div><div class="box flex1 flexflex" data-v-0813115a><div class="box-left" data-v-0813115a><div class="area-box" data-v-0813115a><div class="item" data-v-0813115a><div class="titletitle flexacenter" data-v-0813115a> \u7533\u8BF7\u4FE1\u606F <div class="asterisk" data-v-0813115a>*</div></div><div class="info-box" data-v-0813115a><div class="info-item flexacenter" data-v-0813115a><div class="info-name" data-v-0813115a>\u9662\u6821</div><div class="flex1" data-v-0813115a>`); + _push(ssrRenderComponent(_component_el_autocomplete, { + modelValue: unref(info).school, + "onUpdate:modelValue": ($event) => unref(info).school = $event, + "fetch-suggestions": querySchoolSearch, + clearable: "", + class: "inline-input w-50", + placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\uFF0C\u9009\u62E9\u9662\u6821", + onSelect: handleSchoolSelect, + "trigger-on-focus": false + }, null, _parent)); + _push(`</div></div><div class="info-item flexacenter" data-v-0813115a><div class="info-name" data-v-0813115a>\u4E13\u4E1A</div><div class="flex1" data-v-0813115a>`); + _push(ssrRenderComponent(_component_el_autocomplete, { + modelValue: unref(info).profession, + "onUpdate:modelValue": ($event) => unref(info).profession = $event, + "fetch-suggestions": queryMajorSearch, + clearable: "", + class: "inline-input w-50", + placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\uFF0C\u9009\u62E9\u4E13\u4E1A", + onSelect: handleMajorSelect, + "trigger-on-focus": false + }, null, _parent)); + _push(`</div></div><div class="info-item flexacenter" data-v-0813115a><div class="info-name" data-v-0813115a>\u9879\u76EE</div>`); + _push(ssrRenderComponent(_component_el_input, { + class: "flex1 input", + placeholder: "\u8BF7\u8F93\u5165", + modelValue: unref(info).project, + "onUpdate:modelValue": ($event) => unref(info).project = $event + }, null, _parent)); + _push(`</div></div></div><div class="item" data-v-0813115a><div class="titletitle flexacenter" data-v-0813115a> \u9762\u8BD5\u65F6\u95F4 <div class="asterisk" data-v-0813115a>*</div></div><div class="time-box item-input-box flexacenter" data-v-0813115a>`); + _push(ssrRenderComponent(_component_el_config_provider, { locale: unref(zhCn) }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(ssrRenderComponent(_component_el_date_picker, { + modelValue: unref(info).interviewtime, + "onUpdate:modelValue": ($event) => unref(info).interviewtime = $event, + type: "date", + placeholder: "\u8BF7\u9009\u62E9", + size: "large", + class: "flex1 flexacenter", + "clear-icon": {}, + "value-format": "YYYY-MM-DD", + "disabled-date": setDisabled + }, null, _parent2, _scopeId)); + } else { + return [ + createVNode(_component_el_date_picker, { + modelValue: unref(info).interviewtime, + "onUpdate:modelValue": ($event) => unref(info).interviewtime = $event, + type: "date", + placeholder: "\u8BF7\u9009\u62E9", + size: "large", + class: "flex1 flexacenter", + "clear-icon": {}, + "value-format": "YYYY-MM-DD", + "disabled-date": setDisabled + }, null, 8, ["modelValue", "onUpdate:modelValue"]) + ]; + } + }), + _: 1 + }, _parent)); + _push(`<img class="calendar-icon"${ssrRenderAttr("src", _imports_2)} data-v-0813115a></div></div><div class="item" data-v-0813115a><div class="titletitle flexacenter" data-v-0813115a> \u9762\u7ECF\u5E16\u6807\u9898 <div class="asterisk" data-v-0813115a>*</div></div><div class="title-box item-input-box flexacenter" data-v-0813115a>`); + _push(ssrRenderComponent(_component_el_input, { + modelValue: unref(info).subject, + "onUpdate:modelValue": ($event) => unref(info).subject = $event, + placeholder: "\u7ED9\u4F60\u7684\u9762\u7ECF\u5E16\u8D77\u4E00\u4E2A\u5438\u5F15\u7684\u6807\u9898\u5427", + "show-word-limit": "", + maxlength: "80" + }, null, _parent)); + _push(`</div></div></div><div class="visible-box flexacenter" data-v-0813115a>`); + if (unref(info).isvisiblereply == 0) { + _push(`<img class="visible-icon"${ssrRenderAttr("src", _imports_3)} data-v-0813115a>`); + } else { + _push(`<img class="visible-icon"${ssrRenderAttr("src", _imports_4)} data-v-0813115a>`); + } + _push(` \u56DE\u590D/\u70B9\u8D5E\u53EF\u89C1 </div></div><div class="box-right" data-v-0813115a><div class="area-box" data-v-0813115a><div class="item" data-v-0813115a><div class="titletitle flexacenter" data-v-0813115a> \u9762\u8BD5\u6784\u6210\u53CA\u8FC7\u7A0B <div class="asterisk" data-v-0813115a>*</div></div><div class="course-box" data-v-0813115a>`); + _push(ssrRenderComponent(_component_el_input, { + modelValue: unref(info).message, + "onUpdate:modelValue": ($event) => unref(info).message = $event, + type: "textarea", + autosize: "", + "show-word-limit": "", + maxlength: "2000", + placeholder: "\u4F8B\u5982\uFF1A\u9879\u76EE\u4ECB\u7ECD\u3001\u9762\u8BD5\u65F6\u957F\u3001\u9762\u8BD5\u5B98\u3001\u95EE\u9898QA\u3001\u9700\u8981\u6CE8\u610F\u7684\u5730\u65B9" + }, null, _parent)); + _push(`</div></div></div></div></div><div class="hint-box flexcenter" data-v-0813115a>\u6CE8\uFF1A\u8BF7\u786E\u4FDD\u4EE5\u4E0A\u5185\u5BB9\u5DF2\u6B63\u786E\u586B\u5199\uFF0C\u53D1\u5E03\u540E\u5C06\u4E0D\u80FD\u4FEE\u6539</div></div></div><div class="floor-box" data-v-0813115a><div class="box flexacenter" data-v-0813115a><div class="anonymous-box flexacenter" data-v-0813115a>`); + if (unref(info).anonymous == 0) { + _push(`<img class="anonymous-icon"${ssrRenderAttr("src", _imports_3)} data-v-0813115a>`); + } else { + _push(`<img class="anonymous-icon"${ssrRenderAttr("src", _imports_4)} data-v-0813115a>`); + } + _push(` \u533F\u540D\u53D1\u8868 <div class="text" data-v-0813115a>\uFF08\u53D1\u5E03\u540E\u53EF\u4FEE\u6539\uFF09</div></div><div class="issue-btn flexcenter" data-v-0813115a>\u53D1\u5E03${ssrInterpolate(unref(loading) ? "\u4E2D..." : "")}</div></div></div><!--]-->`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/publish/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0813115a"]]); + +export { index as default }; +//# sourceMappingURL=index-DABfsv71.mjs.map diff --git a/.output/server/chunks/build/index-DABfsv71.mjs.map b/.output/server/chunks/build/index-DABfsv71.mjs.map new file mode 100644 index 0000000..e4147f6 --- /dev/null +++ b/.output/server/chunks/build/index-DABfsv71.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-DABfsv71.mjs","sources":["../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/keys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/stubArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_DataView.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Promise.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Set.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_getTag.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/now.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/debounce.js","../../../../node_modules/.store/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/util.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/thumb.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/thumb2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/bar.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/bar2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/scrollbar.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/src/scrollbar2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/scrollbar/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/autocomplete/src/autocomplete.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/autocomplete/src/autocomplete2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/autocomplete/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/constants/date.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/arrays.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/directives/click-outside/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/config-provider/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/props/shared.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/common/props.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/common/picker-range-trigger.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/common/picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/props/panel-time-picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/composables/use-time-panel.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/composables/use-time-picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/props/basic-time-spinner.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/directives/repeat-click/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/time-picker-com/basic-time-spinner.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/time-picker/src/time-picker-com/panel-time-pick.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/date-picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/shared.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/panel-date-pick.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/basic-date-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/composables/use-basic-date-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/basic-cell.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/basic-date-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/basic-month-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/basic-month-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/basic-year-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/basic-year-table.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/panel-date-pick.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/panel-date-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/composables/use-shortcut.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/composables/use-range-picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/panel-date-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/panel-month-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/composables/use-month-range-header.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/panel-month-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/props/panel-year-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/composables/use-year-range-header.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker-com/panel-year-range.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/panel-utils.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/src/date-picker.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/date-picker/index.mjs","../../../../assets/img/arrow-gray.png","../../../../assets/img/calendar-icon.svg","../../../../assets/img/frame-no.svg","../../../../assets/img/frame-pitch.svg","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/dist/locale/zh-cn.mjs","../../../../pages/publish/index.vue"],"sourcesContent":null,"names":["dataViewTag","mapTag","setTag","__default__","NOOP","useAttrs","useAttrs$1","CircleClose","unit","__buildAssetsURL"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,110]} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs b/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs new file mode 100644 index 0000000..a149971 --- /dev/null +++ b/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs @@ -0,0 +1,4 @@ +const index_vue_vue_type_style_index_0_scoped_3292866c_lang = ".search-result[data-v-3292866c]{margin:0 auto 30px;width:1200px}.search-result .keyword[data-v-3292866c]{color:#fa6b11;cursor:pointer;font-size:14px}.search-result .keyword .keyword-icon[data-v-3292866c]{height:14px;margin-left:9px;width:14px}.search-result .halving-line[data-v-3292866c]{background:#d7d7d7;height:13px;margin:0 20px;width:1px}.search-result .total[data-v-3292866c]{color:#7f7f7f;font-size:13px}.content[data-v-3292866c]{align-items:flex-start;display:flex;flex-wrap:wrap;margin:0 auto 93px;min-height:calc(100vh - 250px);width:1200px}.content .empty-box[data-v-3292866c]{background-color:#fff;border-radius:16px;height:540px;width:1200px}.in-end[data-v-3292866c]{color:#7f7f7f;font-size:12px;margin-bottom:88px;text-align:center}.right-returnTop[data-v-3292866c]{align-items:center;background-color:#323232;border-radius:50%;bottom:85px;cursor:pointer;display:flex;height:50px;justify-content:center;position:fixed;right:calc(50vw - 675px);width:50px;z-index:10}@media screen and (max-width:1360px){.right-returnTop[data-v-3292866c]{right:0!important}}"; + +export { index_vue_vue_type_style_index_0_scoped_3292866c_lang as i }; +//# sourceMappingURL=index-styles-1.mjs-CxRUkVFe.mjs.map diff --git a/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs.map b/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs.map new file mode 100644 index 0000000..0a472ea --- /dev/null +++ b/.output/server/chunks/build/index-styles-1.mjs-CxRUkVFe.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles-1.mjs-CxRUkVFe.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs b/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs new file mode 100644 index 0000000..a5e4618 --- /dev/null +++ b/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs @@ -0,0 +1,4 @@ +const index_vue_vue_type_style_index_0_scoped_0813115a_lang = ".content-box[data-v-0813115a]{display:flex;justify-content:center;padding:0 122px}@media (max-width:920px){.content-box[data-v-0813115a]{display:block;padding:0 10px}}.contentcontent[data-v-0813115a]{background:#fff;border-radius:16px;display:flex;flex-direction:column;margin:30px auto 90px;max-width:1200px;min-height:calc(100vh - 120px);min-width:900px;position:relative}.contentcontent .header[data-v-0813115a]{border-bottom:1px solid #ebebeb;color:#000;font-size:20px;font-weight:650;height:88px;padding-left:30px}.contentcontent .box .titletitle[data-v-0813115a]{color:#666;font-size:14px;margin-bottom:10px}.contentcontent .box .box-left[data-v-0813115a]{border-right:16px solid #f6f6f6;width:44.333%}.contentcontent .box .box-left .area-box[data-v-0813115a]{border-bottom:1px solid #ebebeb;padding:30px 50px 30px 30px}.contentcontent .box .box-left .area-box .item[data-v-0813115a]:not(:last-of-type){margin-bottom:30px}.contentcontent .box .box-left .area-box .info-box[data-v-0813115a]{background-color:#fff0;border:1px solid #d7d7d7;border-radius:5px;display:flex;flex-direction:column;height:158px;justify-content:center;overflow:hidden}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a]{height:50px}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a]:not(:last-of-type){border-bottom:1px solid #d7d7d7}.contentcontent .box .box-left .area-box .info-box .info-item .info-name[data-v-0813115a]{color:#666;font-size:14px;padding:0 14px}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-0813115a]{border:none;box-shadow:none;height:100%;outline:none}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-0813115a] .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a] .el-autocomplete{width:99%}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-0813115a] .el-autocomplete .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a]{border:1px solid #d7d7d7;border-radius:5px;cursor:pointer;height:46px}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a] .el-input{height:100%}.contentcontent .box .box-left .area-box .item-input-box[data-v-0813115a] .el-input .el-input__wrapper{box-shadow:none;height:100%}.contentcontent .box .box-left .area-box .time-box .calendar-icon[data-v-0813115a]{height:16px;margin:0 12px;width:15px}.contentcontent .box .box-left .area-box .time-box[data-v-0813115a] .el-input .el-input__prefix{display:none}.contentcontent .box .box-left .visible-box[data-v-0813115a]{color:#555;cursor:pointer;font-size:14px;margin:30px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.contentcontent .box .box-left .visible-box .visible-icon[data-v-0813115a]{height:18px;margin-right:5px;width:18px}.contentcontent .box .box-right[data-v-0813115a]{width:54.333%}.contentcontent .box .box-right .area-box[data-v-0813115a]{padding:30px 30px 30px 50px}.contentcontent .box .box-right .area-box .course-box[data-v-0813115a]{background-color:#fff0;border:1px solid #d7d7d7;border-radius:5px;min-height:480px}.contentcontent .box .box-right .area-box .course-box[data-v-0813115a] .el-textarea__inner{box-shadow:none;min-height:480px!important;padding:13px}.contentcontent .hint-box[data-v-0813115a]{background-color:#f6f6f6;color:#555;font-size:13px;height:58px}.asterisk[data-v-0813115a]{color:#fa9183;margin-left:5px}.floor-box[data-v-0813115a]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px #00000031;height:90px;min-width:1200px;position:fixed;width:100vw}.floor-box .box[data-v-0813115a]{height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.floor-box .box .anonymous-box[data-v-0813115a]{color:#333;cursor:pointer;font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.floor-box .box .anonymous-box .text[data-v-0813115a]{color:#aaa;font-size:13px}.floor-box .box .anonymous-box .anonymous-icon[data-v-0813115a]{height:18px;width:18px}.floor-box .box .issue-btn[data-v-0813115a]{background-color:#fddf6d;border-radius:190px;color:#000;cursor:pointer;font-size:16px;height:46px;width:200px}.save-box[data-v-0813115a]{color:#666;cursor:pointer;font-size:14px;position:absolute;top:30px;transition:all .3s;z-index:1}.save-box.save-left[data-v-0813115a]{left:0}.save-box.save-right[data-v-0813115a]{right:0}.save-box.save-right .save-icon[data-v-0813115a]{height:16px;margin-left:10px;width:16px}.save-box .save-icon[data-v-0813115a]{height:22px;margin-right:10px;transform:rotate(180deg);width:22px}"; + +export { index_vue_vue_type_style_index_0_scoped_0813115a_lang as i }; +//# sourceMappingURL=index-styles-1.mjs-D0DuIi8f.mjs.map diff --git a/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs.map b/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs.map new file mode 100644 index 0000000..f9d3946 --- /dev/null +++ b/.output/server/chunks/build/index-styles-1.mjs-D0DuIi8f.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles-1.mjs-D0DuIi8f.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles.BJB-vMxW.mjs b/.output/server/chunks/build/index-styles.BJB-vMxW.mjs new file mode 100644 index 0000000..0a177e8 --- /dev/null +++ b/.output/server/chunks/build/index-styles.BJB-vMxW.mjs @@ -0,0 +1,6 @@ +import { i as index_vue_vue_type_style_index_0_scoped_0813115a_lang } from './index-styles-1.mjs-D0DuIi8f.mjs'; + +const indexStyles_BJBVMxW = [index_vue_vue_type_style_index_0_scoped_0813115a_lang, index_vue_vue_type_style_index_0_scoped_0813115a_lang]; + +export { indexStyles_BJBVMxW as default }; +//# sourceMappingURL=index-styles.BJB-vMxW.mjs.map diff --git a/.output/server/chunks/build/index-styles.BJB-vMxW.mjs.map b/.output/server/chunks/build/index-styles.BJB-vMxW.mjs.map new file mode 100644 index 0000000..2182a68 --- /dev/null +++ b/.output/server/chunks/build/index-styles.BJB-vMxW.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles.BJB-vMxW.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-styles.BJB-vMxW.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,4BAAe,CAACA,qDAAO,EAAEC,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles.BOx79sRH.mjs b/.output/server/chunks/build/index-styles.BOx79sRH.mjs new file mode 100644 index 0000000..4488b7c --- /dev/null +++ b/.output/server/chunks/build/index-styles.BOx79sRH.mjs @@ -0,0 +1,6 @@ +import { i as index_vue_vue_type_style_index_0_scoped_3292866c_lang } from './index-styles-1.mjs-CxRUkVFe.mjs'; + +const indexStyles_BOx79sRH = [index_vue_vue_type_style_index_0_scoped_3292866c_lang, index_vue_vue_type_style_index_0_scoped_3292866c_lang]; + +export { indexStyles_BOx79sRH as default }; +//# sourceMappingURL=index-styles.BOx79sRH.mjs.map diff --git a/.output/server/chunks/build/index-styles.BOx79sRH.mjs.map b/.output/server/chunks/build/index-styles.BOx79sRH.mjs.map new file mode 100644 index 0000000..e8be3bc --- /dev/null +++ b/.output/server/chunks/build/index-styles.BOx79sRH.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles.BOx79sRH.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-styles.BOx79sRH.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,6BAAe,CAACA,qDAAO,EAAEC,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles.Cuuhw94G.mjs b/.output/server/chunks/build/index-styles.Cuuhw94G.mjs new file mode 100644 index 0000000..c9c6e9c --- /dev/null +++ b/.output/server/chunks/build/index-styles.Cuuhw94G.mjs @@ -0,0 +1,6 @@ +import { i as index_vue_vue_type_style_index_0_scoped_0813115a_lang } from './index-styles-1.mjs-D0DuIi8f.mjs'; + +const indexStyles_Cuuhw94G = [index_vue_vue_type_style_index_0_scoped_0813115a_lang]; + +export { indexStyles_Cuuhw94G as default }; +//# sourceMappingURL=index-styles.Cuuhw94G.mjs.map diff --git a/.output/server/chunks/build/index-styles.Cuuhw94G.mjs.map b/.output/server/chunks/build/index-styles.Cuuhw94G.mjs.map new file mode 100644 index 0000000..cc2a2c5 --- /dev/null +++ b/.output/server/chunks/build/index-styles.Cuuhw94G.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles.Cuuhw94G.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-styles.Cuuhw94G.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,6BAAe,CAACA,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/index-styles.DI7VZdgf.mjs b/.output/server/chunks/build/index-styles.DI7VZdgf.mjs new file mode 100644 index 0000000..3662a13 --- /dev/null +++ b/.output/server/chunks/build/index-styles.DI7VZdgf.mjs @@ -0,0 +1,6 @@ +import { i as index_vue_vue_type_style_index_0_scoped_3292866c_lang } from './index-styles-1.mjs-CxRUkVFe.mjs'; + +const indexStyles_DI7VZdgf = [index_vue_vue_type_style_index_0_scoped_3292866c_lang]; + +export { indexStyles_DI7VZdgf as default }; +//# sourceMappingURL=index-styles.DI7VZdgf.mjs.map diff --git a/.output/server/chunks/build/index-styles.DI7VZdgf.mjs.map b/.output/server/chunks/build/index-styles.DI7VZdgf.mjs.map new file mode 100644 index 0000000..5c0dbc9 --- /dev/null +++ b/.output/server/chunks/build/index-styles.DI7VZdgf.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-styles.DI7VZdgf.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-styles.DI7VZdgf.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,6BAAe,CAACA,qDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs b/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs new file mode 100644 index 0000000..941367c --- /dev/null +++ b/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs @@ -0,0 +1,176 @@ +import { Z as Zt, Y as Yr } from './server.mjs'; +import 'vue'; +import 'node:http'; +import 'node:https'; +import 'node:zlib'; +import 'node:stream'; +import 'node:buffer'; +import 'node:util'; +import 'node:url'; +import 'node:net'; +import 'node:fs'; +import 'node:path'; +import '../routes/renderer.mjs'; +import 'vue-bundle-renderer/runtime'; +import '../_/nitro.mjs'; +import 'devalue'; +import 'vue/server-renderer'; +import '@unhead/ssr'; +import 'unhead'; +import '@unhead/shared'; +import 'vue-router'; + +var U = Object.defineProperty; +var E = (_, o) => U(_, "name", { value: o, configurable: true }); +let D = 0; +const t = { START_BOUNDARY: D++, HEADER_FIELD_START: D++, HEADER_FIELD: D++, HEADER_VALUE_START: D++, HEADER_VALUE: D++, HEADER_VALUE_ALMOST_DONE: D++, HEADERS_ALMOST_DONE: D++, PART_DATA_START: D++, PART_DATA: D++, END: D++ }; +let F = 1; +const u = { PART_BOUNDARY: F, LAST_BOUNDARY: F *= 2 }, g = 10, N = 13, V = 32, S = 45, Y = 58, x = 97, C = 122, I = E((_) => _ | 32, "lower"), p = E(() => { +}, "noop"); +const _M = class _M2 { + constructor(o) { + this.index = 0, this.flags = 0, this.onHeaderEnd = p, this.onHeaderField = p, this.onHeadersEnd = p, this.onHeaderValue = p, this.onPartBegin = p, this.onPartData = p, this.onPartEnd = p, this.boundaryChars = {}, o = `\r +--` + o; + const n = new Uint8Array(o.length); + for (let r = 0; r < o.length; r++) n[r] = o.charCodeAt(r), this.boundaryChars[n[r]] = true; + this.boundary = n, this.lookbehind = new Uint8Array(this.boundary.length + 8), this.state = t.START_BOUNDARY; + } + write(o) { + let n = 0; + const r = o.length; + let d = this.index, { lookbehind: l, boundary: c, boundaryChars: m, index: e, state: i, flags: A } = this; + const H = this.boundary.length, O = H - 1, y = o.length; + let a, L; + const f = E((h) => { + this[h + "Mark"] = n; + }, "mark"), s = E((h) => { + delete this[h + "Mark"]; + }, "clear"), T = E((h, P, R, k) => { + (P === void 0 || P !== R) && this[h](k && k.subarray(P, R)); + }, "callback"), b = E((h, P) => { + const R = h + "Mark"; + R in this && (P ? (T(h, this[R], n, o), delete this[R]) : (T(h, this[R], o.length, o), this[R] = 0)); + }, "dataCallback"); + for (n = 0; n < r; n++) switch (a = o[n], i) { + case t.START_BOUNDARY: + if (e === c.length - 2) { + if (a === S) A |= u.LAST_BOUNDARY; + else if (a !== N) return; + e++; + break; + } else if (e - 1 === c.length - 2) { + if (A & u.LAST_BOUNDARY && a === S) i = t.END, A = 0; + else if (!(A & u.LAST_BOUNDARY) && a === g) e = 0, T("onPartBegin"), i = t.HEADER_FIELD_START; + else return; + break; + } + a !== c[e + 2] && (e = -2), a === c[e + 2] && e++; + break; + case t.HEADER_FIELD_START: + i = t.HEADER_FIELD, f("onHeaderField"), e = 0; + case t.HEADER_FIELD: + if (a === N) { + s("onHeaderField"), i = t.HEADERS_ALMOST_DONE; + break; + } + if (e++, a === S) break; + if (a === Y) { + if (e === 1) return; + b("onHeaderField", true), i = t.HEADER_VALUE_START; + break; + } + if (L = I(a), L < x || L > C) return; + break; + case t.HEADER_VALUE_START: + if (a === V) break; + f("onHeaderValue"), i = t.HEADER_VALUE; + case t.HEADER_VALUE: + a === N && (b("onHeaderValue", true), T("onHeaderEnd"), i = t.HEADER_VALUE_ALMOST_DONE); + break; + case t.HEADER_VALUE_ALMOST_DONE: + if (a !== g) return; + i = t.HEADER_FIELD_START; + break; + case t.HEADERS_ALMOST_DONE: + if (a !== g) return; + T("onHeadersEnd"), i = t.PART_DATA_START; + break; + case t.PART_DATA_START: + i = t.PART_DATA, f("onPartData"); + case t.PART_DATA: + if (d = e, e === 0) { + for (n += O; n < y && !(o[n] in m); ) n += H; + n -= O, a = o[n]; + } + if (e < c.length) c[e] === a ? (e === 0 && b("onPartData", true), e++) : e = 0; + else if (e === c.length) e++, a === N ? A |= u.PART_BOUNDARY : a === S ? A |= u.LAST_BOUNDARY : e = 0; + else if (e - 1 === c.length) if (A & u.PART_BOUNDARY) { + if (e = 0, a === g) { + A &= ~u.PART_BOUNDARY, T("onPartEnd"), T("onPartBegin"), i = t.HEADER_FIELD_START; + break; + } + } else A & u.LAST_BOUNDARY && a === S ? (T("onPartEnd"), i = t.END, A = 0) : e = 0; + if (e > 0) l[e - 1] = a; + else if (d > 0) { + const h = new Uint8Array(l.buffer, l.byteOffset, l.byteLength); + T("onPartData", 0, d, h), d = 0, f("onPartData"), n--; + } + break; + case t.END: + break; + default: + throw new Error(`Unexpected state entered: ${i}`); + } + b("onHeaderField"), b("onHeaderValue"), b("onPartData"), this.index = e, this.state = i, this.flags = A; + } + end() { + if (this.state === t.HEADER_FIELD_START && this.index === 0 || this.state === t.PART_DATA && this.index === this.boundary.length) this.onPartEnd(); + else if (this.state !== t.END) throw new Error("MultipartParser.end(): stream ended unexpectedly"); + } +}; +E(_M, "MultipartParser"); +let M = _M; +function $(_) { + const o = _.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i); + if (!o) return; + const n = o[2] || o[3] || ""; + let r = n.slice(n.lastIndexOf("\\") + 1); + return r = r.replace(/%22/g, '"'), r = r.replace(/&#(\d{4});/g, (d, l) => String.fromCharCode(l)), r; +} +E($, "_fileName"); +async function v(_, o) { + if (!/multipart/i.test(o)) throw new TypeError("Failed to fetch"); + const n = o.match(/boundary=(?:"([^"]+)"|([^;]+))/i); + if (!n) throw new TypeError("no or bad content-type header, no multipart boundary"); + const r = new M(n[1] || n[2]); + let d, l, c, m, e, i; + const A = [], H = new Zt(), O = E((s) => { + c += f.decode(s, { stream: true }); + }, "onPartData"), y = E((s) => { + A.push(s); + }, "appendToFile"), a = E(() => { + const s = new Yr(A, i, { type: e }); + H.append(m, s); + }, "appendFileToFormData"), L = E(() => { + H.append(m, c); + }, "appendEntryToFormData"), f = new TextDecoder("utf-8"); + f.decode(), r.onPartBegin = function() { + r.onPartData = O, r.onPartEnd = L, d = "", l = "", c = "", m = "", e = "", i = null, A.length = 0; + }, r.onHeaderField = function(s) { + d += f.decode(s, { stream: true }); + }, r.onHeaderValue = function(s) { + l += f.decode(s, { stream: true }); + }, r.onHeaderEnd = function() { + if (l += f.decode(), d = d.toLowerCase(), d === "content-disposition") { + const s = l.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i); + s && (m = s[2] || s[3] || ""), i = $(l), i && (r.onPartData = y, r.onPartEnd = a); + } else d === "content-type" && (e = l); + l = "", d = ""; + }; + for await (const s of _) r.write(s); + return r.end(), H; +} +E(v, "toFormData"); + +export { v as toFormData }; +//# sourceMappingURL=multipart-parser-BGZciX6u.mjs.map diff --git a/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs.map b/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs.map new file mode 100644 index 0000000..89cdfe0 --- /dev/null +++ b/.output/server/chunks/build/multipart-parser-BGZciX6u.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"multipart-parser-BGZciX6u.mjs","sources":["../../../../node_modules/.store/node-fetch-native@1.6.6/node_modules/node-fetch-native/dist/chunks/multipart-parser.mjs"],"sourcesContent":null,"names":["_M","w","B"],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.output/server/chunks/build/server.mjs b/.output/server/chunks/build/server.mjs index b946f46..de07caf 100644 --- a/.output/server/chunks/build/server.mjs +++ b/.output/server/chunks/build/server.mjs @@ -4780,11 +4780,7 @@ const _routes = [ { name: "details-id", path: "/details/:id()", -<<<<<<< HEAD component: () => import('./_id_-xO0bwZ3v.mjs') -======= - component: () => import('./_id_-3cYcmCI2.mjs') ->>>>>>> parent of 1d74a9f (no message) }, { name: "index.html", diff --git a/.output/server/chunks/build/server.mjs.map b/.output/server/chunks/build/server.mjs.map new file mode 100644 index 0000000..b2f6727 --- /dev/null +++ b/.output/server/chunks/build/server.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"server.mjs","sources":["../../../../node_modules/.store/node-fetch-native@1.6.6/node_modules/node-fetch-native/dist/shared/node-fetch-native.DfbY2q-x.mjs","../../../../node_modules/.store/node-fetch-native@1.6.6/node_modules/node-fetch-native/dist/node.mjs","../../../../node_modules/.store/node-fetch-native@1.6.6/node_modules/node-fetch-native/dist/index.mjs","../../../../node_modules/.store/destr@2.0.3/node_modules/destr/dist/index.mjs","../../../../node_modules/.store/ufo@1.5.4/node_modules/ufo/dist/index.mjs","../../../../node_modules/.store/ofetch@1.4.1/node_modules/ofetch/dist/shared/ofetch.03887fc3.mjs","../../../../node_modules/.store/ofetch@1.4.1/node_modules/ofetch/dist/node.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Ffetch.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Fnuxt.config.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/nuxt.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/injections.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/composables/router.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/composables/error.js","../../../../node_modules/.store/@unhead+vue@1.11.19/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Funhead-plugins.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../node_modules/.store/unctx@2.4.1/node_modules/unctx/dist/index.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/pages/runtime/utils.js","../../../../node_modules/.store/defu@6.1.4/node_modules/defu/dist/defu.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/composables/manifest.js","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Froutes.mjs","../../../../node_modules/.store/@vue+shared@3.5.13/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/utils.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Frouter.options.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/pages/runtime/validate.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/middleware/manifest-route-rule.js","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Fmiddleware.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/composables/payload.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Fcomponents.plugin.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Felement-plus-teleports.plugin.mjs","../../../../node_modules/.store/@vueuse+shared@9.13.0/node_modules/@vueuse/shared/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-namespace/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/error.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-id/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/types.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-z-index/index.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Felement-plus-injection.plugin.mjs","../../../../virtual:nuxt:E%3A%2F%E5%B7%A5%E4%BD%9C%E6%96%87%E4%BB%B6%2F%E5%AF%84%E6%89%98%2FSynologyDrive%2F%E5%AF%84%E6%89%98%2FPC%E9%9D%A2%E7%BB%8F%2Fmj%2F.nuxt%2Fplugins.server.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/route-provider.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/pages/runtime/page.js","../../../../app.vue","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js"],"sourcesContent":null,"names":["o","n","h","t","T","r","f","_t","_n","_r","_e","Co","_a","Ya","D","Yt","Gt","Qt","Ka","Za","Ga","Xa","Po","es","Ja","Ge","_b","_d","_c","e","a","m","k","Headers","fetch","AbortController","$fetch","$fetch2","nodeFetch","http","https","Headers$1","AbortController$1","plugin","provide","plugins","createH3Error","resolveUnref","ref","globalKey","ROUTE_KEY_PARENTHESES_RE","ROUTE_KEY_SYMBOLS_RE","ROUTE_KEY_NORMAL_RE","generateRouteKey","createRadixRouter","isString","isPlainObject","_globalThis","global","j","isRef","defaultPageTransition","__executeAsync","createRouter","entry","createError","is","isArray","isObject","router_QrHZLrbiuN","RootComponent"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,9,10,11,12,13,15,16,17,18,19,21,22,23,25,26,28,29,30,33,34,35,36,37,38,41,42,44,45,46]} \ No newline at end of file diff --git a/.output/server/chunks/build/styles.mjs b/.output/server/chunks/build/styles.mjs index 5e6e6d2..842fef1 100644 --- a/.output/server/chunks/build/styles.mjs +++ b/.output/server/chunks/build/styles.mjs @@ -2,40 +2,25 @@ const interopDefault = r => r.default || r || []; const styles = { "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.Djg_djNw.mjs').then(interopDefault), "app.vue": () => import('./app-styles.WPwOYKA8.mjs').then(interopDefault), -<<<<<<< HEAD "app.vue?vue&type=style&index=0&lang.less": () => import('./entry-styles.Djg_djNw.mjs').then(interopDefault), + "pages/index.html/index.vue": () => import('./index-styles.BOx79sRH.mjs').then(interopDefault), "pages/details/[id].vue": () => import('./_id_-styles.CV67lafr.mjs').then(interopDefault), - "pages/index.html/index.vue": () => import('./index-styles.BOx79sRH.mjs').then(interopDefault), "pages/publish/index.vue": () => import('./index-styles.BJB-vMxW.mjs').then(interopDefault), "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BPUCN93s.mjs').then(interopDefault), "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.9rM1FDsT.mjs').then(interopDefault), -======= - "pages/details/[id].vue": () => import('./_id_-styles.DqcWFZUi.mjs').then(interopDefault), - "pages/index.html/index.vue": () => import('./index-styles.BOx79sRH.mjs').then(interopDefault), - "pages/publish/index.vue": () => import('./index-styles.BJB-vMxW.mjs').then(interopDefault), - "app.vue?vue&type=style&index=0&lang.less": () => import('./entry-styles.Djg_djNw.mjs').then(interopDefault), - "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BPUCN93s.mjs').then(interopDefault), - "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.9rM1FDsT.mjs').then(interopDefault), - "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=fd2e3e85&lang.css": () => import('./error-500-styles.CGAgx0q4.mjs').then(interopDefault), ->>>>>>> parent of 1d74a9f (no message) "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=3d4207d3&lang.css": () => import('./error-404-styles.DgVKLL0h.mjs').then(interopDefault), "node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=fd2e3e85&lang.css": () => import('./error-500-styles.CGAgx0q4.mjs').then(interopDefault), "pages/index.html/index.vue?vue&type=style&index=0&scoped=3292866c&lang.less": () => import('./index-styles.DI7VZdgf.mjs').then(interopDefault), - "components/Empty.vue": () => import('./Empty-styles.CmCa51ZE.mjs').then(interopDefault), "components/top-head.vue": () => import('./top-head-styles.DWHl5WOn.mjs').then(interopDefault), + "components/Empty.vue": () => import('./Empty-styles.CmCa51ZE.mjs').then(interopDefault), "components/Item.vue": () => import('./Item-styles.DT-wkhSk.mjs').then(interopDefault), "pages/publish/index.vue?vue&type=style&index=0&scoped=0813115a&lang.less": () => import('./index-styles.Cuuhw94G.mjs').then(interopDefault), - "pages/details/[id].vue?vue&type=style&index=0&scoped=561e8b64&lang.less": () => import('./_id_-styles.x-UxguUs.mjs').then(interopDefault), - "components/RankingBox.vue": () => import('./RankingBox-styles.DhhXPAYo.mjs').then(interopDefault), - "pages/details/[id].vue?vue&type=style&index=0&scoped=ec58218d&lang.less": () => import('./_id_-styles.tAcQtA1l.mjs').then(interopDefault), - "pages/details/[id].vue?vue&type=style&index=1&lang.less": () => import('./_id_-styles.D9A6nlym.mjs').then(interopDefault), -<<<<<<< HEAD -======= "components/Report.vue": () => import('./Report-styles.C_3x-2FH.mjs').then(interopDefault), + "components/RankingBox.vue": () => import('./RankingBox-styles.DhhXPAYo.mjs').then(interopDefault), + "pages/details/[id].vue?vue&type=style&index=1&lang.less": () => import('./_id_-styles.D9A6nlym.mjs').then(interopDefault), + "pages/details/[id].vue?vue&type=style&index=0&scoped=ec58218d&lang.less": () => import('./_id_-styles.tAcQtA1l.mjs').then(interopDefault), "components/top-head.vue?vue&type=style&index=0&scoped=93788f3e&lang.less": () => import('./top-head-styles.8PYpEh7G.mjs').then(interopDefault), ->>>>>>> parent of 1d74a9f (no message) "components/Empty.vue?vue&type=style&index=0&scoped=6c7355f5&lang.less": () => import('./Empty-styles.Bjs_7lfB.mjs').then(interopDefault), - "components/top-head.vue?vue&type=style&index=0&scoped=93788f3e&lang.less": () => import('./top-head-styles.8PYpEh7G.mjs').then(interopDefault), "components/MyPopup.vue": () => import('./MyPopup-styles.BwgCNXXq.mjs').then(interopDefault), "components/Item.vue?vue&type=style&index=0&scoped=f1ba08be&lang.less": () => import('./Item-styles.D6yMrUyf.mjs').then(interopDefault), "components/RankingBox.vue?vue&type=style&index=0&scoped=e0d5b424&lang.less": () => import('./RankingBox-styles.D9VUsQq4.mjs').then(interopDefault), diff --git a/.output/server/chunks/build/styles.mjs.map b/.output/server/chunks/build/styles.mjs.map index 8875c2b..0228f76 100644 --- a/.output/server/chunks/build/styles.mjs.map +++ b/.output/server/chunks/build/styles.mjs.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"styles.mjs","sources":["../../../../.nuxt/dist/server/styles.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI;AAC9C,eAAe;AACf,EAAE,qEAAqE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,SAAS,EAAE,MAAM,OAAO,2BAAiC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjF,EAAE,0CAA0C,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpH,EAAE,wBAAwB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjG,EAAE,4BAA4B,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,yBAAyB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnG,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,6EAA6E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,sBAAsB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAChG,EAAE,yBAAyB,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,qBAAqB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9F,EAAE,0EAA0E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpJ,EAAE,uBAAuB,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClG,EAAE,2BAA2B,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1G,EAAE,yEAAyE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClJ,EAAE,yDAAyD,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClI,EAAE,uEAAuE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjJ,EAAE,0EAA0E,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,wBAAwB,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpG,EAAE,sEAAsE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,4EAA4E,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3J,EAAE,wEAAwE,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnJ,EAAE,yEAAyE,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACrJ,EAAE,yDAAyD,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc;AACpI;;;;"} -======= -{"version":3,"file":"styles.mjs","sources":["../../../../.nuxt/dist/server/styles.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI;AAC9C,eAAe;AACf,EAAE,qEAAqE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,SAAS,EAAE,MAAM,OAAO,2BAAiC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjF,EAAE,wBAAwB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjG,EAAE,4BAA4B,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,yBAAyB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnG,EAAE,0CAA0C,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpH,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,6EAA6E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,yBAAyB,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,sBAAsB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAChG,EAAE,qBAAqB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9F,EAAE,0EAA0E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpJ,EAAE,yEAAyE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClJ,EAAE,2BAA2B,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1G,EAAE,yDAAyD,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClI,EAAE,uBAAuB,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClG,EAAE,0EAA0E,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,uEAAuE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjJ,EAAE,wBAAwB,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpG,EAAE,sEAAsE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,4EAA4E,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3J,EAAE,wEAAwE,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnJ,EAAE,yEAAyE,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACrJ,EAAE,yDAAyD,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc;AACpI;;;;"} ->>>>>>> parent of 1d74a9f (no message) +{"version":3,"file":"styles.mjs","sources":["../../../../.nuxt/dist/server/styles.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI;AAC9C,eAAe;AACf,EAAE,qEAAqE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,SAAS,EAAE,MAAM,OAAO,2BAAiC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjF,EAAE,0CAA0C,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpH,EAAE,4BAA4B,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,wBAAwB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjG,EAAE,yBAAyB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnG,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qFAAqF,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnK,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,qIAAqI,EAAE,MAAM,OAAO,iCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnN,EAAE,6EAA6E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,yBAAyB,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,sBAAsB,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAChG,EAAE,qBAAqB,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9F,EAAE,0EAA0E,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpJ,EAAE,uBAAuB,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClG,EAAE,2BAA2B,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1G,EAAE,yDAAyD,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClI,EAAE,yEAAyE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAClJ,EAAE,0EAA0E,EAAE,MAAM,OAAO,gCAAsC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACvJ,EAAE,uEAAuE,EAAE,MAAM,OAAO,6BAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjJ,EAAE,wBAAwB,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACpG,EAAE,sEAAsE,EAAE,MAAM,OAAO,4BAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/I,EAAE,4EAA4E,EAAE,MAAM,OAAO,kCAAwC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC3J,EAAE,wEAAwE,EAAE,MAAM,OAAO,8BAAoC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnJ,EAAE,yEAAyE,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACrJ,EAAE,yDAAyD,EAAE,MAAM,OAAO,+BAAqC,CAAC,CAAC,IAAI,CAAC,cAAc;AACpI;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/top-head-BW7zJBtJ.mjs b/.output/server/chunks/build/top-head-BW7zJBtJ.mjs new file mode 100644 index 0000000..57f5798 --- /dev/null +++ b/.output/server/chunks/build/top-head-BW7zJBtJ.mjs @@ -0,0 +1,1261 @@ +import { a as buildAssetsURL } from '../routes/renderer.mjs'; +import { inject, ref, provide, watchEffect, unref, mergeProps, isRef, withCtx, createVNode, withDirectives, createBlock, createTextVNode, toDisplayString, openBlock, Fragment, renderList, createCommentVNode, withModifiers, nextTick, defineComponent, useSlots, computed, Transition, createElementVNode, normalizeStyle, normalizeClass, createSlots, renderSlot, vShow, getCurrentInstance, watch, h, createElementBlock, resolveDynamicComponent, useSSRContext, shallowReactive, isVNode } from 'vue'; +import { u as useRouter, f as useRoute$1, s as shared_cjs_prodExports, i as isBoolean, e as useNamespace, g as useZIndex, k as useId, l as defaultNamespace, t as throwError, m as useTimeoutFn, o as isElement, v as isNumber } from './server.mjs'; +import { n as withInstallFunction, c as withInstall, f as _imports_1$3, _ as _export_sfc$1, p as MyUserDeleteCollectHttp, q as changeAnonymousHttp, s as MyUserCollectHttp, t as MyUserPublishHttp, b as buildProps, u as useDeprecated, v as ElTeleport, x as ElFocusTrap, U as UPDATE_MODEL_EVENT, d as definePropType, y as useGlobalConfig, a as addUnit, z as isUndefined, i as iconPropType, A as useLocale, F as FOCUS_TRAP_INJECTION_KEY, B as ElIcon, C as CloseComponents, D as mutable, G as messageConfig } from './config-provider-CA7emI64.mjs'; +import { ssrRenderAttr, ssrRenderList, ssrInterpolate, ssrRenderComponent, ssrRenderAttrs, ssrRenderClass, ssrGetDirectiveProps } from 'vue/server-renderer'; +import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs'; +import { useRoute } from 'vue-router'; + +const useSameTarget = (handleClick) => { + if (!handleClick) { + return { onClick: shared_cjs_prodExports.NOOP, onMousedown: shared_cjs_prodExports.NOOP, onMouseup: shared_cjs_prodExports.NOOP }; + } + let mousedownTarget = false; + let mouseupTarget = false; + const onClick = (e) => { + if (mousedownTarget && mouseupTarget) { + handleClick(e); + } + mousedownTarget = mouseupTarget = false; + }; + const onMousedown = (e) => { + mousedownTarget = e.target === e.currentTarget; + }; + const onMouseup = (e) => { + mouseupTarget = e.target === e.currentTarget; + }; + return { onClick, onMousedown, onMouseup }; +}; +var PatchFlags = /* @__PURE__ */ ((PatchFlags2) => { + PatchFlags2[PatchFlags2["TEXT"] = 1] = "TEXT"; + PatchFlags2[PatchFlags2["CLASS"] = 2] = "CLASS"; + PatchFlags2[PatchFlags2["STYLE"] = 4] = "STYLE"; + PatchFlags2[PatchFlags2["PROPS"] = 8] = "PROPS"; + PatchFlags2[PatchFlags2["FULL_PROPS"] = 16] = "FULL_PROPS"; + PatchFlags2[PatchFlags2["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS"; + PatchFlags2[PatchFlags2["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT"; + PatchFlags2[PatchFlags2["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT"; + PatchFlags2[PatchFlags2["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT"; + PatchFlags2[PatchFlags2["NEED_PATCH"] = 512] = "NEED_PATCH"; + PatchFlags2[PatchFlags2["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS"; + PatchFlags2[PatchFlags2["HOISTED"] = -1] = "HOISTED"; + PatchFlags2[PatchFlags2["BAIL"] = -2] = "BAIL"; + return PatchFlags2; +})(PatchFlags || {}); +const overlayProps = buildProps({ + mask: { + type: Boolean, + default: true + }, + customMaskEvent: Boolean, + overlayClass: { + type: definePropType([ + String, + Array, + Object + ]) + }, + zIndex: { + type: definePropType([String, Number]) + } +}); +const overlayEmits = { + click: (evt) => evt instanceof MouseEvent +}; +const BLOCK = "overlay"; +var Overlay = defineComponent({ + name: "ElOverlay", + props: overlayProps, + emits: overlayEmits, + setup(props, { slots, emit }) { + const ns = useNamespace(BLOCK); + const onMaskClick = (e) => { + emit("click", e); + }; + const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick); + return () => { + return props.mask ? createVNode("div", { + class: [ns.b(), props.overlayClass], + style: { + zIndex: props.zIndex + }, + onClick, + onMousedown, + onMouseup + }, [renderSlot(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, ["onClick", "onMouseup", "onMousedown"]) : h("div", { + class: props.overlayClass, + style: { + zIndex: props.zIndex, + position: "fixed", + top: "0px", + right: "0px", + bottom: "0px", + left: "0px" + } + }, [renderSlot(slots, "default")]); + }; + } +}); +const ElOverlay = Overlay; +const dialogInjectionKey = Symbol("dialogInjectionKey"); +const dialogContentProps = buildProps({ + center: Boolean, + alignCenter: Boolean, + closeIcon: { + type: iconPropType + }, + draggable: Boolean, + overflow: Boolean, + fullscreen: Boolean, + headerClass: String, + bodyClass: String, + footerClass: String, + showClose: { + type: Boolean, + default: true + }, + title: { + type: String, + default: "" + }, + ariaLevel: { + type: String, + default: "2" + } +}); +const dialogContentEmits = { + close: () => true +}; +const useDraggable = (targetRef, dragRef, draggable, overflow) => { + const resetPosition = () => { + if (targetRef.value) { + targetRef.value.style.transform = "none"; + } + }; + return { + resetPosition + }; +}; +const composeRefs = (...refs) => { + return (el) => { + refs.forEach((ref2) => { + if (shared_cjs_prodExports.isFunction(ref2)) { + ref2(el); + } else { + ref2.value = el; + } + }); + }; +}; +const __default__$1 = defineComponent({ name: "ElDialogContent" }); +const _sfc_main$4 = /* @__PURE__ */ defineComponent({ + ...__default__$1, + props: dialogContentProps, + emits: dialogContentEmits, + setup(__props, { expose }) { + const props = __props; + const { t } = useLocale(); + const { Close } = CloseComponents; + const { dialogRef, headerRef, bodyId, ns, style } = inject(dialogInjectionKey); + const { focusTrapRef } = inject(FOCUS_TRAP_INJECTION_KEY); + const dialogKls = computed(() => [ + ns.b(), + ns.is("fullscreen", props.fullscreen), + ns.is("draggable", props.draggable), + ns.is("align-center", props.alignCenter), + { [ns.m("center")]: props.center } + ]); + const composedDialogRef = composeRefs(focusTrapRef, dialogRef); + computed(() => props.draggable); + computed(() => props.overflow); + const { resetPosition } = useDraggable(dialogRef); + expose({ + resetPosition + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + ref: unref(composedDialogRef), + class: normalizeClass(unref(dialogKls)), + style: normalizeStyle(unref(style)), + tabindex: "-1" + }, [ + createElementVNode("header", { + ref_key: "headerRef", + ref: headerRef, + class: normalizeClass([unref(ns).e("header"), _ctx.headerClass, { "show-close": _ctx.showClose }]) + }, [ + renderSlot(_ctx.$slots, "header", {}, () => [ + createElementVNode("span", { + role: "heading", + "aria-level": _ctx.ariaLevel, + class: normalizeClass(unref(ns).e("title")) + }, toDisplayString(_ctx.title), 11, ["aria-level"]) + ]), + _ctx.showClose ? (openBlock(), createElementBlock("button", { + key: 0, + "aria-label": unref(t)("el.dialog.close"), + class: normalizeClass(unref(ns).e("headerbtn")), + type: "button", + onClick: ($event) => _ctx.$emit("close") + }, [ + createVNode(unref(ElIcon), { + class: normalizeClass(unref(ns).e("close")) + }, { + default: withCtx(() => [ + (openBlock(), createBlock(resolveDynamicComponent(_ctx.closeIcon || unref(Close)))) + ]), + _: 1 + }, 8, ["class"]) + ], 10, ["aria-label", "onClick"])) : createCommentVNode("v-if", true) + ], 2), + createElementVNode("div", { + id: unref(bodyId), + class: normalizeClass([unref(ns).e("body"), _ctx.bodyClass]) + }, [ + renderSlot(_ctx.$slots, "default") + ], 10, ["id"]), + _ctx.$slots.footer ? (openBlock(), createElementBlock("footer", { + key: 0, + class: normalizeClass([unref(ns).e("footer"), _ctx.footerClass]) + }, [ + renderSlot(_ctx.$slots, "footer") + ], 2)) : createCommentVNode("v-if", true) + ], 6); + }; + } +}); +var ElDialogContent = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__file", "dialog-content.vue"]]); +const dialogProps = buildProps({ + ...dialogContentProps, + appendToBody: Boolean, + appendTo: { + type: definePropType([String, Object]), + default: "body" + }, + beforeClose: { + type: definePropType(Function) + }, + destroyOnClose: Boolean, + closeOnClickModal: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + lockScroll: { + type: Boolean, + default: true + }, + modal: { + type: Boolean, + default: true + }, + openDelay: { + type: Number, + default: 0 + }, + closeDelay: { + type: Number, + default: 0 + }, + top: { + type: String + }, + modelValue: Boolean, + modalClass: String, + headerClass: String, + bodyClass: String, + footerClass: String, + width: { + type: [String, Number] + }, + zIndex: { + type: Number + }, + trapFocus: Boolean, + headerAriaLevel: { + type: String, + default: "2" + } +}); +const dialogEmits = { + open: () => true, + opened: () => true, + close: () => true, + closed: () => true, + [UPDATE_MODEL_EVENT]: (value) => isBoolean(value), + openAutoFocus: () => true, + closeAutoFocus: () => true +}; +const useLockscreen = (trigger, options = {}) => { + if (!isRef(trigger)) { + throwError("[useLockscreen]", "You need to pass a ref param to this function"); + } + const ns = options.ns || useNamespace("popup"); + computed(() => ns.bm("parent", "hidden")); + { + return; + } +}; +const useDialog = (props, targetRef) => { + var _a; + const instance = getCurrentInstance(); + const emit = instance.emit; + const { nextZIndex } = useZIndex(); + let lastPosition = ""; + const titleId = useId(); + const bodyId = useId(); + const visible = ref(false); + const closed = ref(false); + const rendered = ref(false); + const zIndex = ref((_a = props.zIndex) != null ? _a : nextZIndex()); + let openTimer = void 0; + let closeTimer = void 0; + const namespace = useGlobalConfig("namespace", defaultNamespace); + const style = computed(() => { + const style2 = {}; + const varPrefix = `--${namespace.value}-dialog`; + if (!props.fullscreen) { + if (props.top) { + style2[`${varPrefix}-margin-top`] = props.top; + } + if (props.width) { + style2[`${varPrefix}-width`] = addUnit(props.width); + } + } + return style2; + }); + const overlayDialogStyle = computed(() => { + if (props.alignCenter) { + return { display: "flex" }; + } + return {}; + }); + function afterEnter() { + emit("opened"); + } + function afterLeave() { + emit("closed"); + emit(UPDATE_MODEL_EVENT, false); + if (props.destroyOnClose) { + rendered.value = false; + } + } + function beforeLeave() { + emit("close"); + } + function open() { + closeTimer == null ? void 0 : closeTimer(); + openTimer == null ? void 0 : openTimer(); + if (props.openDelay && props.openDelay > 0) { + ({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay)); + } + } + function close() { + openTimer == null ? void 0 : openTimer(); + closeTimer == null ? void 0 : closeTimer(); + if (props.closeDelay && props.closeDelay > 0) { + ({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay)); + } else { + doClose(); + } + } + function handleClose() { + function hide(shouldCancel) { + if (shouldCancel) + return; + closed.value = true; + visible.value = false; + } + if (props.beforeClose) { + props.beforeClose(hide); + } else { + close(); + } + } + function onModalClick() { + if (props.closeOnClickModal) { + handleClose(); + } + } + function doOpen() { + return; + } + function doClose() { + visible.value = false; + } + function onOpenAutoFocus() { + emit("openAutoFocus"); + } + function onCloseAutoFocus() { + emit("closeAutoFocus"); + } + function onFocusoutPrevented(event) { + var _a2; + if (((_a2 = event.detail) == null ? void 0 : _a2.focusReason) === "pointer") { + event.preventDefault(); + } + } + if (props.lockScroll) { + useLockscreen(visible); + } + function onCloseRequested() { + if (props.closeOnPressEscape) { + handleClose(); + } + } + watch(() => props.modelValue, (val) => { + if (val) { + closed.value = false; + open(); + rendered.value = true; + zIndex.value = isUndefined(props.zIndex) ? nextZIndex() : zIndex.value++; + nextTick(() => { + emit("open"); + if (targetRef.value) { + targetRef.value.parentElement.scrollTop = 0; + targetRef.value.parentElement.scrollLeft = 0; + targetRef.value.scrollTop = 0; + } + }); + } else { + if (visible.value) { + close(); + } + } + }); + watch(() => props.fullscreen, (val) => { + if (!targetRef.value) + return; + if (val) { + lastPosition = targetRef.value.style.transform; + targetRef.value.style.transform = ""; + } else { + targetRef.value.style.transform = lastPosition; + } + }); + return { + afterEnter, + afterLeave, + beforeLeave, + handleClose, + onModalClick, + close, + doClose, + onOpenAutoFocus, + onCloseAutoFocus, + onCloseRequested, + onFocusoutPrevented, + titleId, + bodyId, + closed, + style, + overlayDialogStyle, + rendered, + visible, + zIndex + }; +}; +const __default__ = defineComponent({ + name: "ElDialog", + inheritAttrs: false +}); +const _sfc_main$3 = /* @__PURE__ */ defineComponent({ + ...__default__, + props: dialogProps, + emits: dialogEmits, + setup(__props, { expose }) { + const props = __props; + const slots = useSlots(); + useDeprecated({ + scope: "el-dialog", + from: "the title slot", + replacement: "the header slot", + version: "3.0.0", + ref: "https://element-plus.org/en-US/component/dialog.html#slots" + }, computed(() => !!slots.title)); + const ns = useNamespace("dialog"); + const dialogRef = ref(); + const headerRef = ref(); + const dialogContentRef = ref(); + const { + visible, + titleId, + bodyId, + style, + overlayDialogStyle, + rendered, + zIndex, + afterEnter, + afterLeave, + beforeLeave, + handleClose, + onModalClick, + onOpenAutoFocus, + onCloseAutoFocus, + onCloseRequested, + onFocusoutPrevented + } = useDialog(props, dialogRef); + provide(dialogInjectionKey, { + dialogRef, + headerRef, + bodyId, + ns, + rendered, + style + }); + const overlayEvent = useSameTarget(onModalClick); + const draggable = computed(() => props.draggable && !props.fullscreen); + const resetPosition = () => { + var _a; + (_a = dialogContentRef.value) == null ? void 0 : _a.resetPosition(); + }; + expose({ + visible, + dialogContentRef, + resetPosition + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(ElTeleport), { + to: _ctx.appendTo, + disabled: _ctx.appendTo !== "body" ? false : !_ctx.appendToBody + }, { + default: withCtx(() => [ + createVNode(Transition, { + name: "dialog-fade", + onAfterEnter: unref(afterEnter), + onAfterLeave: unref(afterLeave), + onBeforeLeave: unref(beforeLeave), + persisted: "" + }, { + default: withCtx(() => [ + withDirectives(createVNode(unref(ElOverlay), { + "custom-mask-event": "", + mask: _ctx.modal, + "overlay-class": _ctx.modalClass, + "z-index": unref(zIndex) + }, { + default: withCtx(() => [ + createElementVNode("div", { + role: "dialog", + "aria-modal": "true", + "aria-label": _ctx.title || void 0, + "aria-labelledby": !_ctx.title ? unref(titleId) : void 0, + "aria-describedby": unref(bodyId), + class: normalizeClass(`${unref(ns).namespace.value}-overlay-dialog`), + style: normalizeStyle(unref(overlayDialogStyle)), + onClick: unref(overlayEvent).onClick, + onMousedown: unref(overlayEvent).onMousedown, + onMouseup: unref(overlayEvent).onMouseup + }, [ + createVNode(unref(ElFocusTrap), { + loop: "", + trapped: unref(visible), + "focus-start-el": "container", + onFocusAfterTrapped: unref(onOpenAutoFocus), + onFocusAfterReleased: unref(onCloseAutoFocus), + onFocusoutPrevented: unref(onFocusoutPrevented), + onReleaseRequested: unref(onCloseRequested) + }, { + default: withCtx(() => [ + unref(rendered) ? (openBlock(), createBlock(ElDialogContent, mergeProps({ + key: 0, + ref_key: "dialogContentRef", + ref: dialogContentRef + }, _ctx.$attrs, { + center: _ctx.center, + "align-center": _ctx.alignCenter, + "close-icon": _ctx.closeIcon, + draggable: unref(draggable), + overflow: _ctx.overflow, + fullscreen: _ctx.fullscreen, + "header-class": _ctx.headerClass, + "body-class": _ctx.bodyClass, + "footer-class": _ctx.footerClass, + "show-close": _ctx.showClose, + title: _ctx.title, + "aria-level": _ctx.headerAriaLevel, + onClose: unref(handleClose) + }), createSlots({ + header: withCtx(() => [ + !_ctx.$slots.title ? renderSlot(_ctx.$slots, "header", { + key: 0, + close: unref(handleClose), + titleId: unref(titleId), + titleClass: unref(ns).e("title") + }) : renderSlot(_ctx.$slots, "title", { key: 1 }) + ]), + default: withCtx(() => [ + renderSlot(_ctx.$slots, "default") + ]), + _: 2 + }, [ + _ctx.$slots.footer ? { + name: "footer", + fn: withCtx(() => [ + renderSlot(_ctx.$slots, "footer") + ]) + } : void 0 + ]), 1040, ["center", "align-center", "close-icon", "draggable", "overflow", "fullscreen", "header-class", "body-class", "footer-class", "show-close", "title", "aria-level", "onClose"])) : createCommentVNode("v-if", true) + ]), + _: 3 + }, 8, ["trapped", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusoutPrevented", "onReleaseRequested"]) + ], 46, ["aria-label", "aria-labelledby", "aria-describedby", "onClick", "onMousedown", "onMouseup"]) + ]), + _: 3 + }, 8, ["mask", "overlay-class", "z-index"]), [ + [vShow, unref(visible)] + ]) + ]), + _: 3 + }, 8, ["onAfterEnter", "onAfterLeave", "onBeforeLeave"]) + ]), + _: 3 + }, 8, ["to", "disabled"]); + }; + } +}); +var Dialog = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "dialog.vue"]]); +const ElDialog = withInstall(Dialog); +const _imports_0$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-924%20-6237%20)'%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23fddf6d'%20stroke='none'%20/%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_1$2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-963%20-6237%20)'%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23d7d7d7'%20stroke='none'%20/%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_2$2 = "" + buildAssetsURL("empty-icon.uRjiKTvo.svg"); +const _sfc_main$2 = { + __name: "Empty", + __ssrInlineRender: true, + props: { + hint: String + }, + setup(__props) { + return (_ctx, _push, _parent, _attrs) => { + _push(`<div${ssrRenderAttrs(mergeProps({ class: "empty-box-list flexcenter" }, _attrs))} data-v-6c7355f5><div class="dot-list flexacenter" data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5></div><img class="empty-icon"${ssrRenderAttr("src", _imports_2$2)} data-v-6c7355f5><div class="empty-hint" data-v-6c7355f5>${ssrInterpolate(__props.hint || "\u6682\u65E0\u5185\u5BB9")}</div></div>`); + }; + } +}; +const _sfc_setup$2 = _sfc_main$2.setup; +_sfc_main$2.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Empty.vue"); + return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; +}; +const __nuxt_component_4 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-6c7355f5"]]); +const Loading = function(options = {}) { + return void 0; +}; +const INSTANCE_KEY = Symbol("ElLoading"); +const createInstance = (el, binding) => { + var _a, _b, _c, _d; + const vm = binding.instance; + const getBindingProp = (key) => shared_cjs_prodExports.isObject(binding.value) ? binding.value[key] : void 0; + const resolveExpression = (key) => { + const data = shared_cjs_prodExports.isString(key) && (vm == null ? void 0 : vm[key]) || key; + if (data) + return ref(data); + else + return data; + }; + const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(`element-loading-${shared_cjs_prodExports.hyphenate(name)}`)); + const fullscreen = (_a = getBindingProp("fullscreen")) != null ? _a : binding.modifiers.fullscreen; + const options = { + text: getProp("text"), + svg: getProp("svg"), + svgViewBox: getProp("svgViewBox"), + spinner: getProp("spinner"), + background: getProp("background"), + customClass: getProp("customClass"), + fullscreen, + target: (_b = getBindingProp("target")) != null ? _b : fullscreen ? void 0 : el, + body: (_c = getBindingProp("body")) != null ? _c : binding.modifiers.body, + lock: (_d = getBindingProp("lock")) != null ? _d : binding.modifiers.lock + }; + el[INSTANCE_KEY] = { + options, + instance: Loading(options) + }; +}; +const updateOptions = (newOptions, originalOptions) => { + for (const key of Object.keys(originalOptions)) { + if (isRef(originalOptions[key])) + originalOptions[key].value = newOptions[key]; + } +}; +const vLoading = { + mounted(el, binding) { + if (binding.value) { + createInstance(el, binding); + } + }, + updated(el, binding) { + const instance = el[INSTANCE_KEY]; + if (binding.oldValue !== binding.value) { + if (binding.value && !binding.oldValue) { + createInstance(el, binding); + } else if (binding.value && binding.oldValue) { + if (shared_cjs_prodExports.isObject(binding.value)) + updateOptions(binding.value, instance.options); + } else { + instance == null ? void 0 : instance.instance.close(); + } + } + }, + unmounted(el) { + var _a; + (_a = el[INSTANCE_KEY]) == null ? void 0 : _a.instance.close(); + el[INSTANCE_KEY] = null; + } +}; +const handleDate = (dateTimeStamp = /* @__PURE__ */ new Date()) => { + dateTimeStamp = dateTimeStamp ? dateTimeStamp : null; + var timestamp = new Date(dateTimeStamp); + timestamp = timestamp.getTime(); + var minute = 1e3 * 60; + var hour = minute * 60; + var day = hour * 24; + var now = (/* @__PURE__ */ new Date()).getTime(); + var diffValue = now - timestamp; + var result; + if (diffValue < 0) return; + var dayC = diffValue / day; + var hourC = diffValue / (hour + 1); + var minC = diffValue / minute; + if (dayC >= 7) { + let date = new Date(timestamp); + let Y = date.getFullYear() + "-"; + let M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-"; + let D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " "; + let h2 = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":"; + let m = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); + result = "" + Y + M + D + " " + h2 + m; + } else if (dayC >= 1) result = "" + Math.round(dayC) + "\u5929\u524D"; + else if (hourC >= 1) result = "" + Math.round(hourC) + "\u5C0F\u65F6\u524D"; + else if (minC >= 1) result = "" + Math.round(minC) + "\u5206\u949F\u524D"; + else result = "\u521A\u521A"; + return result; +}; +const goToURL = (url, isblank = true) => { + return; +}; +const numberToEnclosed = (index) => { + let obj = { + 1: "\u2460", + 2: "\u2461", + 3: "\u2462", + 4: "\u2463", + 5: "\u2464" + }; + return obj[index]; +}; +const _imports_1$1 = "" + buildAssetsURL("delete-icon.CnXBlQyp.svg"); +const _imports_2$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='5px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-33%20-8%20)'%3e%3cpath%20d='M%207.91983967935872%200.515463917525773%20C%207.97327989311957%200.572737686139747%208%200.638602520045818%208%200.713058419243986%20C%208%200.787514318442153%207.97327989311957%200.853379152348224%207.91983967935872%200.910652920962199%20L%204.18436873747495%204.91408934707904%20C%204.1309285237141%204.97136311569301%204.06947227788911%205%204%205%20C%203.93052772211089%205%203.86907147628591%204.97136311569301%203.81563126252505%204.91408934707904%20L%200.0801603206412826%200.910652920962199%20C%200.0267201068804276%200.853379152348224%200%200.787514318442153%200%200.713058419243986%20C%200%200.638602520045818%200.0267201068804276%200.572737686139747%200.0801603206412826%200.515463917525773%20L%200.480961923847695%200.0859106529209624%20C%200.534402137608551%200.0286368843069867%200.595858383433534%200%200.665330661322645%200%20C%200.734802939211757%200%200.79625918503674%200.0286368843069867%200.849699398797595%200.0859106529209624%20L%204%203.46219931271478%20L%207.1503006012024%200.0859106529209624%20C%207.20374081496326%200.0286368843069867%207.26519706078824%200%207.33466933867735%200%20C%207.40414161656647%200%207.46559786239145%200.0286368843069867%207.51903807615231%200.0859106529209624%20L%207.91983967935872%200.515463917525773%20Z%20'%20fill-rule='nonzero'%20fill='%23aaaaaa'%20stroke='none'%20transform='matrix(1%200%200%201%2033%208%20)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _imports_3 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='11px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-703%20-4235%20)'%3e%3cpath%20d='M%2010.8012903225806%201.1043771043771%20C%2010.9337634408602%201.2300785634119%2011%201.38271604938272%2011%201.56228956228956%20C%2011%201.74186307519641%2010.9337634408602%201.89450056116723%2010.8012903225806%202.02020202020202%20L%205.66322580645161%206.8956228956229%20L%204.69806451612903%207.81144781144781%20C%204.56559139784946%207.9371492704826%204.4047311827957%208%204.21548387096774%208%20C%204.02623655913979%208%203.86537634408602%207.9371492704826%203.73290322580645%207.81144781144781%20L%202.76774193548387%206.8956228956229%20L%200.198709677419355%204.45791245791246%20C%200.066236559139785%204.33221099887766%200%204.17957351290685%200%204%20C%200%203.82042648709315%200.066236559139785%203.66778900112233%200.198709677419355%203.54208754208754%20L%201.16387096774194%202.62626262626263%20C%201.29634408602151%202.50056116722783%201.45720430107527%202.43771043771044%201.64645161290323%202.43771043771044%20C%201.83569892473118%202.43771043771044%201.99655913978495%202.50056116722783%202.12903225806452%202.62626262626263%20L%204.21548387096774%204.61279461279461%20L%208.87096774193548%200.188552188552189%20C%209.00344086021505%200.0628507295173959%209.16430107526882%200%209.35354838709677%200%20C%209.54279569892473%200%209.7036559139785%200.0628507295173959%209.83612903225806%200.188552188552189%20L%2010.8012903225806%201.1043771043771%20Z%20'%20fill-rule='nonzero'%20fill='%2372db86'%20stroke='none'%20transform='matrix(1%200%200%201%20703%204235%20)'%20/%3e%3c/g%3e%3c/svg%3e"; +const messageTypes = ["success", "info", "warning", "error"]; +const messageDefaults = mutable({ + customClass: "", + center: false, + dangerouslyUseHTMLString: false, + duration: 3e3, + icon: void 0, + id: "", + message: "", + onClose: void 0, + showClose: false, + type: "info", + plain: false, + offset: 16, + zIndex: 0, + grouping: false, + repeatNum: 1, + appendTo: void 0 +}); +buildProps({ + customClass: { + type: String, + default: messageDefaults.customClass + }, + center: { + type: Boolean, + default: messageDefaults.center + }, + dangerouslyUseHTMLString: { + type: Boolean, + default: messageDefaults.dangerouslyUseHTMLString + }, + duration: { + type: Number, + default: messageDefaults.duration + }, + icon: { + type: iconPropType, + default: messageDefaults.icon + }, + id: { + type: String, + default: messageDefaults.id + }, + message: { + type: definePropType([ + String, + Object, + Function + ]), + default: messageDefaults.message + }, + onClose: { + type: definePropType(Function), + default: messageDefaults.onClose + }, + showClose: { + type: Boolean, + default: messageDefaults.showClose + }, + type: { + type: String, + values: messageTypes, + default: messageDefaults.type + }, + plain: { + type: Boolean, + default: messageDefaults.plain + }, + offset: { + type: Number, + default: messageDefaults.offset + }, + zIndex: { + type: Number, + default: messageDefaults.zIndex + }, + grouping: { + type: Boolean, + default: messageDefaults.grouping + }, + repeatNum: { + type: Number, + default: messageDefaults.repeatNum + } +}); +const instances = shallowReactive([]); +const normalizeOptions = (params) => { + const options = !params || shared_cjs_prodExports.isString(params) || isVNode(params) || shared_cjs_prodExports.isFunction(params) ? { message: params } : params; + const normalized = { + ...messageDefaults, + ...options + }; + if (!normalized.appendTo) { + normalized.appendTo = (void 0).body; + } else if (shared_cjs_prodExports.isString(normalized.appendTo)) { + let appendTo = (void 0).querySelector(normalized.appendTo); + if (!isElement(appendTo)) { + appendTo = (void 0).body; + } + normalized.appendTo = appendTo; + } + if (isBoolean(messageConfig.grouping) && !normalized.grouping) { + normalized.grouping = messageConfig.grouping; + } + if (isNumber(messageConfig.duration) && normalized.duration === 3e3) { + normalized.duration = messageConfig.duration; + } + if (isNumber(messageConfig.offset) && normalized.offset === 16) { + normalized.offset = messageConfig.offset; + } + if (isBoolean(messageConfig.showClose) && !normalized.showClose) { + normalized.showClose = messageConfig.showClose; + } + return normalized; +}; +const message = (options = {}, context) => { + return { close: () => void 0 }; +}; +messageTypes.forEach((type) => { + message[type] = (options = {}, appContext) => { + const normalized = normalizeOptions(options); + return message({ ...normalized }); + }; +}); +function closeAll(type) { + for (const instance of instances) { + if (!type || type === instance.props.type) { + instance.handler.close(); + } + } +} +message.closeAll = closeAll; +message._context = null; +const ElMessage = withInstallFunction(message, "$message"); +const _sfc_main$1 = { + __name: "MyPopup", + __ssrInlineRender: true, + setup(__props, { expose: __expose }) { + let count = inject("count"); + let show = ref(false); + useRouter(); + const route = useRoute$1(); + let MyPopupState = ref(""); + let showList = ref([]); + let collectList = []; + let collectPage = 1; + let collectLoading = ref(false); + let collectCount = ref(0); + const getCollect = () => { + if (collectPage == 0 || collectLoading.value) return; + collectLoading.value = true; + MyUserCollectHttp({ page: collectPage }).then((res) => { + if (res.code != 200) return; + let data = res.data; + collectList = collectList.concat(data.data); + showList.value = collectList; + if (collectList.length < data["count"]) collectPage++; + else collectPage = 0; + collectCount.value = data["count"]; + }).finally(() => collectLoading.value = false); + }; + let publishList = []; + let publisPage = 1; + let publisloading = ref(false); + const getPublish = () => { + if (publisPage == 0 && !publisloading.value) return; + publisloading.value = true; + MyUserPublishHttp({ page: publisPage }).then((res) => { + if (res.code != 200) return; + let data = res.data; + publishList = publishList.concat(data.data); + if (publishList.length < data["count"]) publisPage++; + else publisPage = 0; + showList.value = publishList; + }).finally(() => publisloading.value = false); + }; + const cutMy = (key, isEmpty) => { + if (isEmpty) { + collectList = []; + collectPage = 1; + collectCount.value = 0; + } + if (key == "collect" && collectList.length == 0) getCollect(); + else if (key == "mj" && publishList.length == 0) getPublish(); + if (key == "collect") showList.value = collectList; + else if (key == "mj") showList.value = publishList; + MyPopupState.value = key; + if (MyPopupState.value) show.value = true; + }; + const openAnonymousState = (index) => { + publishList.forEach((element) => { + element["anonymousState"] = false; + }); + publishList[index]["anonymousState"] = true; + showList.value = [...publishList]; + }; + const closeAllAnonymousState = () => { + publishList.forEach((element) => { + element["anonymousState"] = false; + }); + showList.value = [...publishList]; + }; + const handleAnonymousState = (token, index, anonymous) => { + changeAnonymousHttp({ token, anonymous }).then((res) => { + if (res.code != 200) return; + publishList[index]["anonymous"] = anonymous; + showList.value = [...publishList]; + closeAllAnonymousState(); + ElMessage.success(res.message); + }); + }; + const handleListScroll = (e) => { + const el = e.target; + if (el.scrollHeight - el.scrollTop !== el.clientHeight) return; + if (MyPopupState.value == "collect") getCollect(); + if (MyPopupState.value == "mj") getPublish(); + }; + let clearAllData = inject("clearAllData") || null; + let getDetails = inject("getDetails") || null; + const goDetails = (uniqid) => { + let path = route["path"] || ""; + if (path.indexOf("/details/") != -1) { + clearAllData(); + nextTick(() => getDetails()); + } + show.value = false; + MyPopupState.value = ""; + }; + __expose({ + cutMy + }); + const closeDialog = () => { + show.value = false; + }; + const unbookmarkSamePage = inject("unbookmarkSamePage"); + const cancelCollection = (token, index, uniqid) => { + const id = route.params["id"]; + MyUserDeleteCollectHttp({ token }).then((res) => { + if (res.code != 200) { + ElMessage.error(res.message); + return; + } + collectList.splice(index, 1); + showList.value = [...collectList]; + count.value.collect--; + collectCount.value--; + if (id == uniqid) unbookmarkSamePage(); + }); + }; + return (_ctx, _push, _parent, _attrs) => { + const _component_el_dialog = ElDialog; + const _component_Empty = __nuxt_component_4; + const _directive_loading = vLoading; + let _temp0; + _push(ssrRenderComponent(_component_el_dialog, mergeProps({ + modelValue: unref(show), + "onUpdate:modelValue": ($event) => isRef(show) ? show.value = $event : show = $event, + width: "750px", + "align-center": "", + class: "dialog-box" + }, _attrs), { + default: withCtx((_, _push2, _parent2, _scopeId) => { + var _a; + if (_push2) { + _push2(`<div class="box flexflex" data-v-a050dcc5${_scopeId}><img class="cross"${ssrRenderAttr("src", _imports_1$3)} alt data-v-a050dcc5${_scopeId}><div class="tba-list flexcenter" data-v-a050dcc5${_scopeId}><div class="${ssrRenderClass([{ pitch: unref(MyPopupState) == "collect" }, "tab-item flexcenter"])}" data-v-a050dcc5${_scopeId}> \u6211\u7684\u6536\u85CF <div class="value" data-v-a050dcc5${_scopeId}>${ssrInterpolate(unref(collectCount) > 0 ? unref(collectCount) : unref(count)["collect"])}</div></div><div class="${ssrRenderClass([{ pitch: unref(MyPopupState) == "mj" }, "tab-item flexcenter"])}" data-v-a050dcc5${_scopeId}> \u6211\u7684\u9762\u7ECF <div class="value" data-v-a050dcc5${_scopeId}>${ssrInterpolate(unref(count)["publish"])}</div></div></div>`); + if (unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "mj" && unref(publisloading)) { + _push2(`<div${ssrRenderAttrs(_temp0 = mergeProps({ class: "empty-box flexcenter" }, ssrGetDirectiveProps(_ctx, _directive_loading, true)))} data-v-a050dcc5${_scopeId}>${"textContent" in _temp0 ? ssrInterpolate(_temp0.textContent) : (_a = _temp0.innerHTML) != null ? _a : ""}</div>`); + } else if (unref(showList).length == 0) { + _push2(`<div class="empty-box flexcenter" data-v-a050dcc5${_scopeId}>`); + _push2(ssrRenderComponent(_component_Empty, null, null, _parent2, _scopeId)); + _push2(`</div>`); + } else { + _push2(`<div class="content" data-v-a050dcc5${_scopeId}><!--[-->`); + ssrRenderList(unref(showList), (item, index) => { + var _a2, _b, _c; + _push2(`<div class="item flexflex" data-v-a050dcc5${_scopeId}><div class="left flexflex" data-v-a050dcc5${_scopeId}><div class="name" data-v-a050dcc5${_scopeId}>${ssrInterpolate(item["school"] || item["data"]["school"])}</div><div class="info-box flexflex" data-v-a050dcc5${_scopeId}>`); + if (item["profession"] || ((_a2 = item == null ? void 0 : item["data"]) == null ? void 0 : _a2["profession"])) { + _push2(`<div class="info-item flexacenter" data-v-a050dcc5${_scopeId}><div class="info-item-name" data-v-a050dcc5${_scopeId}>\u4E13\u4E1A</div><div class="info-item-value" data-v-a050dcc5${_scopeId}>${ssrInterpolate(item["profession"] || item["data"]["profession"])}</div></div>`); + } else { + _push2(`<!---->`); + } + if (item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project)) { + _push2(`<div class="info-item flexacenter" data-v-a050dcc5${_scopeId}><div class="info-item-name" data-v-a050dcc5${_scopeId}>\u9879\u76EE</div><div class="info-item-value" data-v-a050dcc5${_scopeId}>${ssrInterpolate(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project))}</div></div>`); + } else { + _push2(`<!---->`); + } + _push2(`</div><div class="text-box flexacenter" data-v-a050dcc5${_scopeId}>`); + if (item == null ? void 0 : item.releasetime) { + _push2(`<div class="text-time" data-v-a050dcc5${_scopeId}>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime))}\u53D1\u5E03</div>`); + } else { + _push2(`<!---->`); + } + _push2(`<div class="text-message flex1 ellipsis" data-v-a050dcc5${_scopeId}>${ssrInterpolate(item["message"] || item["data"]["message"])}</div></div></div><div class="operate-area flexacenter" data-v-a050dcc5${_scopeId}>`); + if (unref(MyPopupState) == "collect") { + _push2(`<img class="delete-icon"${ssrRenderAttr("src", _imports_1$1)} data-v-a050dcc5${_scopeId}>`); + } else { + _push2(`<div class="anonymous-box flexacenter" data-v-a050dcc5${_scopeId}><div class="text" data-v-a050dcc5${_scopeId}>${ssrInterpolate(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00")}</div><img class="arrow-icon"${ssrRenderAttr("src", _imports_2$1)} data-v-a050dcc5${_scopeId}>`); + if (item["anonymousState"]) { + _push2(`<div class="state-popup flexflex" data-v-a050dcc5${_scopeId}><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 0 }, "state-popup-item flexacenter flex1"])}" data-v-a050dcc5${_scopeId}><div class data-v-a050dcc5${_scopeId}>\u516C\u5F00\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_3)} data-v-a050dcc5${_scopeId}></div><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 1 }, "state-popup-item flexacenter flex1"])}" data-v-a050dcc5${_scopeId}><div class data-v-a050dcc5${_scopeId}>\u533F\u540D\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_3)} data-v-a050dcc5${_scopeId}></div></div>`); + } else { + _push2(`<!---->`); + } + _push2(`</div>`); + } + _push2(`</div></div>`); + }); + _push2(`<!--]--></div>`); + } + _push2(`</div>`); + } else { + return [ + createVNode("div", { class: "box flexflex" }, [ + createVNode("img", { + class: "cross", + src: _imports_1$3, + alt: "", + onClick: ($event) => closeDialog() + }, null, 8, ["onClick"]), + createVNode("div", { class: "tba-list flexcenter" }, [ + createVNode("div", { + class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "collect" }], + onClick: ($event) => cutMy("collect") + }, [ + createTextVNode(" \u6211\u7684\u6536\u85CF "), + createVNode("div", { class: "value" }, toDisplayString(unref(collectCount) > 0 ? unref(collectCount) : unref(count)["collect"]), 1) + ], 10, ["onClick"]), + createVNode("div", { + class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "mj" }], + onClick: ($event) => cutMy("mj") + }, [ + createTextVNode(" \u6211\u7684\u9762\u7ECF "), + createVNode("div", { class: "value" }, toDisplayString(unref(count)["publish"]), 1) + ], 10, ["onClick"]) + ]), + unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "mj" && unref(publisloading) ? withDirectives((openBlock(), createBlock("div", { + key: 0, + class: "empty-box flexcenter" + }, null, 512)), [ + [_directive_loading, true] + ]) : unref(showList).length == 0 ? (openBlock(), createBlock("div", { + key: 1, + class: "empty-box flexcenter" + }, [ + createVNode(_component_Empty) + ])) : (openBlock(), createBlock("div", { + key: 2, + class: "content", + onScroll: handleListScroll + }, [ + (openBlock(true), createBlock(Fragment, null, renderList(unref(showList), (item, index) => { + var _a2, _b, _c; + return openBlock(), createBlock("div", { + class: "item flexflex", + key: index, + onClick: ($event) => { + var _a22; + return goDetails(item["uniqid"] || ((_a22 = item == null ? void 0 : item.data) == null ? void 0 : _a22.uniqid)); + } + }, [ + createVNode("div", { class: "left flexflex" }, [ + createVNode("div", { class: "name" }, toDisplayString(item["school"] || item["data"]["school"]), 1), + createVNode("div", { class: "info-box flexflex" }, [ + item["profession"] || ((_a2 = item == null ? void 0 : item["data"]) == null ? void 0 : _a2["profession"]) ? (openBlock(), createBlock("div", { + key: 0, + class: "info-item flexacenter" + }, [ + createVNode("div", { class: "info-item-name" }, "\u4E13\u4E1A"), + createVNode("div", { class: "info-item-value" }, toDisplayString(item["profession"] || item["data"]["profession"]), 1) + ])) : createCommentVNode("", true), + item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project) ? (openBlock(), createBlock("div", { + key: 1, + class: "info-item flexacenter" + }, [ + createVNode("div", { class: "info-item-name" }, "\u9879\u76EE"), + createVNode("div", { class: "info-item-value" }, toDisplayString(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project)), 1) + ])) : createCommentVNode("", true) + ]), + createVNode("div", { class: "text-box flexacenter" }, [ + (item == null ? void 0 : item.releasetime) ? (openBlock(), createBlock("div", { + key: 0, + class: "text-time" + }, toDisplayString(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime)) + "\u53D1\u5E03", 1)) : createCommentVNode("", true), + createVNode("div", { class: "text-message flex1 ellipsis" }, toDisplayString(item["message"] || item["data"]["message"]), 1) + ]) + ]), + createVNode("div", { class: "operate-area flexacenter" }, [ + unref(MyPopupState) == "collect" ? (openBlock(), createBlock("img", { + key: 0, + class: "delete-icon", + onClick: withModifiers(($event) => { + var _a22; + return cancelCollection(item["token"], index, (_a22 = item == null ? void 0 : item.data) == null ? void 0 : _a22.uniqid); + }, ["stop"]), + src: _imports_1$1 + }, null, 8, ["onClick"])) : (openBlock(), createBlock("div", { + key: 1, + class: "anonymous-box flexacenter", + onClick: withModifiers(($event) => openAnonymousState(index), ["stop"]) + }, [ + createVNode("div", { class: "text" }, toDisplayString(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00"), 1), + createVNode("img", { + class: "arrow-icon", + src: _imports_2$1 + }), + item["anonymousState"] ? (openBlock(), createBlock("div", { + key: 0, + class: "state-popup flexflex", + onClick: withModifiers(() => { + }, ["stop"]) + }, [ + createVNode("div", { + class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 0 }], + onClick: ($event) => handleAnonymousState(item["token"], index, 0) + }, [ + createVNode("div", { class: "" }, "\u516C\u5F00\u53D1\u8868"), + createVNode("img", { + class: "state-popup-icon", + src: _imports_3 + }) + ], 10, ["onClick"]), + createVNode("div", { + class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 1 }], + onClick: ($event) => handleAnonymousState(item["token"], index, 1) + }, [ + createVNode("div", { class: "" }, "\u533F\u540D\u53D1\u8868"), + createVNode("img", { + class: "state-popup-icon", + src: _imports_3 + }) + ], 10, ["onClick"]) + ], 8, ["onClick"])) : createCommentVNode("", true) + ], 8, ["onClick"])) + ]) + ], 8, ["onClick"]); + }), 128)) + ], 32)) + ]) + ]; + } + }), + _: 1 + }, _parent)); + }; + } +}; +const _sfc_setup$1 = _sfc_main$1.setup; +_sfc_main$1.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/MyPopup.vue"); + return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; +}; +const __nuxt_component_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-a050dcc5"]]); +const _imports_0 = "" + buildAssetsURL("logo-icon.C2xYDAoO.png"); +const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAkBQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03KISwAAAL90Uk5TAA9Ne6PBzN3Qxa2GWxwTbMb82oQnIJH3xA2O+9yfdlNENUFMa5PLtSNA49l5EGHA9m4BUgIzr64MA5nybUXbyhXOJaXWkLMJ/sgLYKoEoir1uwZ/4vEZ/TsR5aFYK130FKCNSyRmdLe2czHwMuw2G/oFXteFVLx4YqZlrKtanIcp2M1cGozz5GMiGPmS6+pDOfidX+nTL+Ys4H25HQp13yYImB/UgEJvsrrVeqhpx2ipLTQHEpfeg+cu7j9PVmTFnY/3AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAxFJREFUWMPtV/k7VVEUPc/QMxQqUppkKGWI50bPEBqfR+QpLw00oEGZSjRKESGlVCTNc5rncf1r7Xsf38cdj9dvfe2f7l37rHXO3Wefs/dl7L9pmsnD08t7itnH189/6rRJswMCg6ZjnM2YGTwZesisUChstgcvfU7YXIkxb/6CheGLIiKjohe7VrMkhou/dJk4ODYuZBwWn7BcBBOTLMZ8T3E2n2RBjq9IESVSVxrQrWk0Kj3DqubLXEW+rGxdvuBFY3JWawVnDXnXBugJrKMR6zfofJ8NyLVr+/OIn79Rb4YoGlGg6S3cBBQ59INUTAoJGj4LbdXmAH0+s6QCW0o0P8C5lRlZ6TZgu6rHSruUZshnbAfNs1PNUQaU7+IQYEHAbjXcF9jDw2d7gdB4JVxhg43vsLBYoFKJVgHefHxxK/cp0f3AAU6BgxQtRbpYqoFDnALCYaBGDtYCdfWcAqwIaJBjEcARXj6LBo7KsUbgGLdAk0rKNQMp3AKBwHE5dgI4yS1QCZySY6dV91bDKGfOyDHKzyxugRYgTI6dBaq5BfyADDnmoGLCXQFbgUwFeA44z8lvs8GZrUDb9W7LiUZXV44SDQcu2PkEKJNblKi1A+jk4l90Amp3mj9VVCuPAFW/XDW8K5FvCcHdQLKqpwe4ZFQWXBHwUa/ypb1UGA0bgCTAdlnD10Blq8qAf6UPuKrpLSD1a7r8in5quEya7jnX6WIr0+HfuEnZMqAzoHaQ1nBL0HJH0s3bl8n0rMJMcRi6reobbqf2AncMgtRFhwrlTcqkFhrvSr1e/z0DhfsPxGG9xQ8noKbOR2MN52CtgQLzkKZy+j5+4mokTDVPnyWKUPpzSeGFYbYNv+wdna28wzxYPfrc3ZMtjEhPucan1v7qtaxTbo0TV+4Ykl6GHIYKjMW8GYmtc5E7/KrGSqHdJfxW4FAgqw95936g5MN46KMrmJ/4BNSs7bOk8MV9hZivkgJvM6Fi376LArZm9xV+SP8zdYXuK/yUfml+uS/A8uhY5XAWAXX7bc6P/xv+P2Z/AEq6ab7rDxu3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTA4LTE4VDE1OjIwOjM1KzA4OjAwHpcN9AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wOC0xOFQxNToyMDozNSswODowMG/KtUgAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2kyYzV4MjJydTJsL3NvdXN1by5zdmfTYjJrAAAAAElFTkSuQmCC"; +const _imports_2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='14px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1460%20-103%20)'%3e%3cpath%20d='M%2010.91015625%207.99348958333333%20C%2011.0256076388889%207.87803819444444%2011.0833333333333%207.74131944444444%2011.0833333333333%207.58333333333333%20L%2011.0833333333333%206.41666666666667%20C%2011.0833333333333%206.25868055555555%2011.0256076388889%206.12196180555555%2010.91015625%206.00651041666667%20C%2010.7947048611111%205.89105902777778%2010.6579861111111%205.83333333333333%2010.5%205.83333333333333%20L%208.16666666666667%205.83333333333333%20L%208.16666666666667%203.5%20C%208.16666666666667%203.34201388888889%208.10894097222222%203.20529513888889%207.99348958333333%203.08984375%20C%207.87803819444445%202.97439236111111%207.74131944444445%202.91666666666667%207.58333333333333%202.91666666666667%20L%206.41666666666667%202.91666666666667%20C%206.25868055555556%202.91666666666667%206.12196180555556%202.97439236111111%206.00651041666667%203.08984375%20C%205.89105902777778%203.20529513888889%205.83333333333333%203.34201388888889%205.83333333333333%203.5%20L%205.83333333333333%205.83333333333333%20L%203.5%205.83333333333333%20C%203.34201388888889%205.83333333333333%203.20529513888889%205.89105902777778%203.08984375%206.00651041666667%20C%202.97439236111111%206.12196180555555%202.91666666666667%206.25868055555555%202.91666666666667%206.41666666666667%20L%202.91666666666667%207.58333333333333%20C%202.91666666666667%207.74131944444444%202.97439236111111%207.87803819444444%203.08984375%207.99348958333333%20C%203.20529513888889%208.10894097222222%203.34201388888889%208.16666666666667%203.5%208.16666666666667%20L%205.83333333333333%208.16666666666667%20L%205.83333333333333%2010.5%20C%205.83333333333333%2010.6579861111111%205.89105902777778%2010.7947048611111%206.00651041666667%2010.91015625%20C%206.12196180555556%2011.0256076388889%206.25868055555556%2011.0833333333333%206.41666666666667%2011.0833333333333%20L%207.58333333333333%2011.0833333333333%20C%207.74131944444445%2011.0833333333333%207.87803819444445%2011.0256076388889%207.99348958333333%2010.91015625%20C%208.10894097222222%2010.7947048611111%208.16666666666667%2010.6579861111111%208.16666666666667%2010.5%20L%208.16666666666667%208.16666666666667%20L%2010.5%208.16666666666667%20C%2010.6579861111111%208.16666666666667%2010.7947048611111%208.10894097222222%2010.91015625%207.99348958333333%20Z%20M%2013.0611979166667%203.486328125%20C%2013.6870659722222%204.55881076388889%2014%205.73003472222222%2014%207%20C%2014%208.26996527777778%2013.6870659722222%209.44118923611111%2013.0611979166667%2010.513671875%20C%2012.4353298611111%2011.5861545138889%2011.5861545138889%2012.4353298611111%2010.513671875%2013.0611979166667%20C%209.44118923611111%2013.6870659722222%208.26996527777778%2014%207%2014%20C%205.73003472222222%2014%204.55881076388889%2013.6870659722222%203.486328125%2013.0611979166667%20C%202.41384548611111%2012.4353298611111%201.56467013888889%2011.5861545138889%200.938802083333333%2010.513671875%20C%200.312934027777778%209.44118923611111%200%208.26996527777778%200%207%20C%200%205.73003472222222%200.312934027777778%204.55881076388889%200.938802083333333%203.486328125%20C%201.56467013888889%202.41384548611111%202.41384548611111%201.56467013888889%203.486328125%200.938802083333333%20C%204.55881076388889%200.312934027777777%205.73003472222222%200%207%200%20C%208.26996527777778%200%209.44118923611111%200.312934027777777%2010.513671875%200.938802083333333%20C%2011.5861545138889%201.56467013888889%2012.4353298611111%202.41384548611111%2013.0611979166667%203.486328125%20Z%20'%20fill-rule='nonzero'%20fill='%23000000'%20stroke='none'%20transform='matrix(1%200%200%201%201460%20103%20)'%20/%3e%3c/g%3e%3c/svg%3e"; +const _sfc_main = { + __name: "top-head", + __ssrInlineRender: true, + setup(__props, { expose: __expose }) { + useRouter(); + const route = useRoute(); + inject("isNeedLogin"); + inject("goLogin"); + inject("isGetLoginState"); + let keyword = ref(""); + let count = ref({}); + provide("count", count); + watchEffect(() => { + keyword.value = route.query["keyword"]; + }); + let historicalSearchState = ref(false); + let historicalSearchList = ref([]); + let MyPopupRef = ref(null); + __expose({ + count + }); + return (_ctx, _push, _parent, _attrs) => { + const _component_MyPopup = __nuxt_component_0; + _push(`<!--[--><section class="header flexacenter" data-v-93788f3e><div class="header-box flexacenter" data-v-93788f3e><a href="/index.html" data-v-93788f3e><img class="logo-icon"${ssrRenderAttr("src", _imports_0)} data-v-93788f3e></a><div class="header-right flexacenter" data-v-93788f3e><div class="search-box flexacenter" data-v-93788f3e><input class="flex1" placeholder="\u8F93\u5165\u641C\u7D22\u5173\u952E\u8BCD"${ssrRenderAttr("value", unref(keyword))} data-v-93788f3e><img class="search-icon"${ssrRenderAttr("src", _imports_1)} data-v-93788f3e>`); + if (unref(historicalSearchState)) { + _push(`<div class="history-box" data-v-93788f3e><div class="history-title" data-v-93788f3e>\u5386\u53F2\u641C\u7D22</div><div class="history-list" data-v-93788f3e><!--[-->`); + ssrRenderList(unref(historicalSearchList), (item, index) => { + _push(`<div class="history-item ellipsis" data-v-93788f3e>${ssrInterpolate(item)}</div>`); + }); + _push(`<!--]--></div></div>`); + } else { + _push(`<!---->`); + } + _push(`</div><div class="my-btn-list flexacenter" data-v-93788f3e><div class="my-btn-item flexcenter" data-v-93788f3e>\u6211\u7684\u6536\u85CF</div><div class="my-btn-item flexcenter" data-v-93788f3e>\u6211\u7684\u9762\u7ECF</div></div><div class="sponsor-btn flexcenter" data-v-93788f3e><img class="add-icon"${ssrRenderAttr("src", _imports_2)} data-v-93788f3e> \u53D1\u5E03\u9762\u7ECF </div></div></div></section>`); + _push(ssrRenderComponent(_component_MyPopup, { + ref_key: "MyPopupRef", + ref: MyPopupRef, + count: unref(count) + }, null, _parent)); + _push(`<!--]-->`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/top-head.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const __nuxt_component_3 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-93788f3e"]]); + +export { ElMessage as E, __nuxt_component_3 as _, __nuxt_component_4 as a, ElDialog as b, goToURL as g, handleDate as h, numberToEnclosed as n, vLoading as v }; +//# sourceMappingURL=top-head-BW7zJBtJ.mjs.map diff --git a/.output/server/chunks/build/top-head-BW7zJBtJ.mjs.map b/.output/server/chunks/build/top-head-BW7zJBtJ.mjs.map new file mode 100644 index 0000000..9b7a12a --- /dev/null +++ b/.output/server/chunks/build/top-head-BW7zJBtJ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"top-head-BW7zJBtJ.mjs","sources":["../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-same-target/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/vue/vnode.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/overlay/src/overlay.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/overlay/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/constants.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/dialog-content.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-draggable/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/utils/vue/refs.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/dialog-content2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/dialog2.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/hooks/use-lockscreen/index.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/use-dialog.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/src/dialog.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/dialog/index.mjs","../../../../assets/img/dot-yellow.svg","../../../../assets/img/dot-gray.svg","../../../../assets/img/empty-icon.svg","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/loading/src/service.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/loading/src/directive.mjs","../../../../composables/utils.js","../../../../assets/img/delete-icon.svg","../../../../assets/img/arrow-gray.svg","../../../../assets/img/tick-green.svg","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/message/src/message.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/message/src/instance.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/message/src/method.mjs","../../../../node_modules/.store/element-plus@2.9.4/node_modules/element-plus/es/components/message/index.mjs","../../../../components/MyPopup.vue","../../../../assets/img/logo-icon.png","../../../../assets/img/search-icon.png","../../../../assets/img/add-icon.svg","../../../../components/top-head.vue"],"sourcesContent":null,"names":["__default__","__buildAssetsURL","useRoute","useRoute$1"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,17,18,23,24,25,26]} \ No newline at end of file diff --git a/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs b/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs new file mode 100644 index 0000000..2bf39e2 --- /dev/null +++ b/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs @@ -0,0 +1,4 @@ +const topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang = '.header[data-v-93788f3e]{margin-bottom:40px;min-width:1200px;padding-top:42px}.header .header-box[data-v-93788f3e]{justify-content:space-between;margin:0 auto;width:1200px}.header .header-box .logo-icon[data-v-93788f3e]{cursor:pointer;height:36px}.header .header-box .header-right .search-box[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:104px;height:32px;position:relative;width:320px}.header .header-box .header-right .search-box input[data-v-93788f3e]{border:none;border-radius:104px;font-size:13px;height:100%;outline:none;padding:0 16px}.header .header-box .header-right .search-box .search-icon[data-v-93788f3e]{cursor:pointer;height:20px;margin:0 16px;width:20px}.header .header-box .header-right .search-box .history-box[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:10px;left:0;padding-bottom:14px;padding-top:15px;position:absolute;top:36px;width:320px;z-index:2}.header .header-box .header-right .search-box .history-box .history-title[data-v-93788f3e]{color:#aaa;font-size:13px;margin-bottom:9px;padding-left:16px}.header .header-box .header-right .search-box .history-box .history-list .history-item[data-v-93788f3e]{color:#333;cursor:pointer;font-size:14px;height:30px;line-height:30px;padding:0 16px}.header .header-box .header-right .my-btn-list[data-v-93788f3e]{background-color:#fff;border:1px solid #ebebeb;border-radius:5px;color:#555;font-size:13px;height:32px;margin-left:20px;padding:0 7px}.header .header-box .header-right .my-btn-list .my-btn-item[data-v-93788f3e]{cursor:pointer;height:100%;padding:0 10px;position:relative}.header .header-box .header-right .my-btn-list .my-btn-item[data-v-93788f3e]:not(:last-of-type):after{color:#d7d7d7;content:"|";position:absolute;right:0}.header .header-box .header-right .sponsor-btn[data-v-93788f3e]{background:#fddf6d;border-radius:5px;color:#000;cursor:pointer;font-size:13px;height:32px;margin-left:20px;width:130px}.header .header-box .header-right .sponsor-btn .add-icon[data-v-93788f3e]{height:14px;margin-right:10px;width:14px}'; + +export { topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang as t }; +//# sourceMappingURL=top-head-styles-1.mjs-oFSL9FJs.mjs.map diff --git a/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs.map b/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs.map new file mode 100644 index 0000000..cb0870d --- /dev/null +++ b/.output/server/chunks/build/top-head-styles-1.mjs-oFSL9FJs.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"top-head-styles-1.mjs-oFSL9FJs.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs b/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs new file mode 100644 index 0000000..3d8e24f --- /dev/null +++ b/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs @@ -0,0 +1,6 @@ +import { t as topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang } from './top-head-styles-1.mjs-oFSL9FJs.mjs'; + +const topHeadStyles_8PYpEh7G = [topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang]; + +export { topHeadStyles_8PYpEh7G as default }; +//# sourceMappingURL=top-head-styles.8PYpEh7G.mjs.map diff --git a/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs.map b/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs.map new file mode 100644 index 0000000..a601fed --- /dev/null +++ b/.output/server/chunks/build/top-head-styles.8PYpEh7G.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"top-head-styles.8PYpEh7G.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/top-head-styles.8PYpEh7G.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":";;AACA,+BAAe,CAACA,uDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs b/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs new file mode 100644 index 0000000..b6f6467 --- /dev/null +++ b/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs @@ -0,0 +1,6 @@ +import { t as topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang } from './top-head-styles-1.mjs-oFSL9FJs.mjs'; + +const topHeadStyles_DWHl5WOn = [topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang, topHead_vue_vue_type_style_index_0_scoped_93788f3e_lang]; + +export { topHeadStyles_DWHl5WOn as default }; +//# sourceMappingURL=top-head-styles.DWHl5WOn.mjs.map diff --git a/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs.map b/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs.map new file mode 100644 index 0000000..c275069 --- /dev/null +++ b/.output/server/chunks/build/top-head-styles.DWHl5WOn.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"top-head-styles.DWHl5WOn.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/top-head-styles.DWHl5WOn.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":";;AAEA,+BAAe,CAACA,uDAAO,EAAEC,uDAAO;;;;"} \ No newline at end of file diff --git a/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs b/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs new file mode 100644 index 0000000..6dc7b55 --- /dev/null +++ b/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs @@ -0,0 +1,27 @@ +import { ref, watchEffect, watch, getCurrentInstance } from 'vue'; +import { L as injectHead, M as resolveUnrefHeadInput } from './server.mjs'; + +function useHead(input, options = {}) { + const head = options.head || injectHead(); + if (head) { + if (!head.ssr) + return clientUseHead(head, input, options); + return head.push(input, options); + } +} +function clientUseHead(head, input, options = {}) { + const deactivated = ref(false); + const resolvedInput = ref({}); + watchEffect(() => { + resolvedInput.value = deactivated.value ? {} : resolveUnrefHeadInput(input); + }); + const entry = head.push(resolvedInput.value, options); + watch(resolvedInput, (e) => { + entry.patch(e); + }); + getCurrentInstance(); + return entry; +} + +export { useHead as u }; +//# sourceMappingURL=vue.-sixQ7xP-CqaSk6XG.mjs.map diff --git a/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs.map b/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs.map new file mode 100644 index 0000000..f75a0d6 --- /dev/null +++ b/.output/server/chunks/build/vue.-sixQ7xP-CqaSk6XG.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"vue.-sixQ7xP-CqaSk6XG.mjs","sources":["../../../../node_modules/.store/@unhead+vue@1.11.19/node_modules/@unhead/vue/dist/shared/vue.-sixQ7xP.mjs"],"sourcesContent":null,"names":[],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.output/server/chunks/routes/renderer.mjs b/.output/server/chunks/routes/renderer.mjs new file mode 100644 index 0000000..8fac1c4 --- /dev/null +++ b/.output/server/chunks/routes/renderer.mjs @@ -0,0 +1,402 @@ +import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { getRequestDependencies, getPreloadLinks, getPrefetchLinks, createRenderer } from 'vue-bundle-renderer/runtime'; +import { j as joinRelativeURL, u as useRuntimeConfig, c as defineRenderHandler, g as getQuery, e as createError, f as getRouteRules, b as useNitroApp, h as getResponseStatusText, i as getResponseStatus } from '../_/nitro.mjs'; +import { stringify, uneval } from 'devalue'; +import { renderToString } from 'vue/server-renderer'; +import { propsToString, renderSSRHead } from '@unhead/ssr'; +import { createServerHead as createServerHead$1, CapoPlugin } from 'unhead'; +import { unref, version } from 'vue'; +import { defineHeadPlugin } from '@unhead/shared'; + +const Vue3 = version[0] === "3"; + +function resolveUnref(r) { + return typeof r === "function" ? r() : unref(r); +} +function resolveUnrefHeadInput(ref) { + if (ref instanceof Promise || ref instanceof Date || ref instanceof RegExp) + return ref; + const root = resolveUnref(ref); + if (!ref || !root) + return root; + if (Array.isArray(root)) + return root.map((r) => resolveUnrefHeadInput(r)); + if (typeof root === "object") { + const resolved = {}; + for (const k in root) { + if (!Object.prototype.hasOwnProperty.call(root, k)) { + continue; + } + if (k === "titleTemplate" || k[0] === "o" && k[1] === "n") { + resolved[k] = unref(root[k]); + continue; + } + resolved[k] = resolveUnrefHeadInput(root[k]); + } + return resolved; + } + return root; +} + +const VueReactivityPlugin = defineHeadPlugin({ + hooks: { + "entries:resolve": (ctx) => { + for (const entry of ctx.entries) + entry.resolvedInput = resolveUnrefHeadInput(entry.input); + } + } +}); + +const headSymbol = "usehead"; +function vueInstall(head) { + const plugin = { + install(app) { + if (Vue3) { + app.config.globalProperties.$unhead = head; + app.config.globalProperties.$head = head; + app.provide(headSymbol, head); + } + } + }; + return plugin.install; +} +function createServerHead(options = {}) { + const head = createServerHead$1(options); + head.use(VueReactivityPlugin); + head.install = vueInstall(head); + return head; +} + +const unheadPlugins = true ? [CapoPlugin({ track: true })] : []; + +const renderSSRHeadOptions = {"omitLineBreaks":false}; + +const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[{"rel":"stylesheet","href":"//bbs.gter.net/data/cache/style_2_common.css?Z62"}],"style":[],"script":[{"src":"//bbs.gter.net/static/js/common.js","body":true,"charset":"gb2312"},{"innerHTML":"\n window.userInfoWin = {}\n STYLEID = \"2\";\n STATICURL = \"static/\";\n IMGDIR = \"https://bbs.gter.net/template/archy_plt8/image\";\n VERHASH = \"Z62\";\n charset = \"gbk\";\n discuz_uid = \"0\";\n cookiepre = \"4B5x_c0ae_\";\n cookiedomain = \"gter.net\";\n cookiepath = \"/\";\n showusercard = \"1\";\n attackevasive = \"0\";\n disallowfloat = \"\";\n creditnotice = \",\";\n defaultstyle = \"\";\n REPORTURL = \"aHR0cDovL2Jicy5ndGVyLm5ldC9mb3J1bS5waHA/dGlkPTI0MDYzNTYmZ290bz1sYXN0cG9zdA==\";\n SITEURL = \"https://ask.gter.net/\";\n JSPATH = \"static/js/\";","type":"text/javascript","charset":"utf-8"}],"noscript":[]}; + +const appRootTag = "div"; + +const appRootAttrs = {"id":"__nuxt"}; + +const appTeleportTag = "div"; + +const appTeleportAttrs = {"id":"teleports"}; + +const componentIslands = false; + +const appId = "nuxt-app"; + +function baseURL() { + return useRuntimeConfig().app.baseURL; +} +function buildAssetsDir() { + return useRuntimeConfig().app.buildAssetsDir; +} +function buildAssetsURL(...path) { + return joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path); +} +function publicAssetsURL(...path) { + const app = useRuntimeConfig().app; + const publicBase = app.cdnURL || app.baseURL; + return path.length ? joinRelativeURL(publicBase, ...path) : publicBase; +} + +globalThis.__buildAssetsURL = buildAssetsURL; +globalThis.__publicAssetsURL = publicAssetsURL; +const getClientManifest = () => import('../build/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r); +const getEntryIds = () => getClientManifest().then((r) => Object.values(r).filter( + (r2) => ( + // @ts-expect-error internal key set by CSS inlining configuration + r2._globalCSS + ) +).map((r2) => r2.src)); +const getServerEntry = () => import('../build/server.mjs').then((r) => r.default || r); +const getSSRStyles = lazyCachedFunction(() => import('../build/styles.mjs').then((r) => r.default || r)); +const getSSRRenderer = lazyCachedFunction(async () => { + const manifest = await getClientManifest(); + if (!manifest) { + throw new Error("client.manifest is not available"); + } + const createSSRApp = await getServerEntry(); + if (!createSSRApp) { + throw new Error("Server bundle is not available"); + } + const options = { + manifest, + renderToString: renderToString$1, + buildAssetsURL + }; + const renderer = createRenderer(createSSRApp, options); + async function renderToString$1(input, context) { + const html = await renderToString(input, context); + return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG; + } + return renderer; +}); +const getSPARenderer = lazyCachedFunction(async () => { + const manifest = await getClientManifest(); + const spaTemplate = await import('../virtual/_virtual_spa-template.mjs').then((r) => r.template).catch(() => "").then((r) => { + { + return APP_ROOT_OPEN_TAG + r + APP_ROOT_CLOSE_TAG; + } + }); + const options = { + manifest, + renderToString: () => spaTemplate, + buildAssetsURL + }; + const renderer = createRenderer(() => () => { + }, options); + const result = await renderer.renderToString({}); + const renderToString = (ssrContext) => { + const config = useRuntimeConfig(ssrContext.event); + ssrContext.modules = ssrContext.modules || /* @__PURE__ */ new Set(); + ssrContext.payload.serverRendered = false; + ssrContext.config = { + public: config.public, + app: config.app + }; + return Promise.resolve(result); + }; + return { + rendererContext: renderer.rendererContext, + renderToString + }; +}); +const HAS_APP_TELEPORTS = !!(appTeleportAttrs.id); +const APP_TELEPORT_OPEN_TAG = HAS_APP_TELEPORTS ? `<${appTeleportTag}${propsToString(appTeleportAttrs)}>` : ""; +const APP_TELEPORT_CLOSE_TAG = HAS_APP_TELEPORTS ? `</${appTeleportTag}>` : ""; +const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`; +const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`; +const PAYLOAD_URL_RE = /\/_payload.json(\?.*)?$/ ; +const renderer = defineRenderHandler(async (event) => { + const nitroApp = useNitroApp(); + const ssrError = event.path.startsWith("/__nuxt_error") ? getQuery(event) : null; + if (ssrError && ssrError.statusCode) { + ssrError.statusCode = Number.parseInt(ssrError.statusCode); + } + if (ssrError && !("__unenv__" in event.node.req)) { + throw createError({ + statusCode: 404, + statusMessage: "Page Not Found: /__nuxt_error" + }); + } + const isRenderingIsland = componentIslands; + const islandContext = void 0; + let url = ssrError?.url || islandContext?.url || event.path; + const isRenderingPayload = PAYLOAD_URL_RE.test(url) && true; + if (isRenderingPayload) { + url = url.substring(0, url.lastIndexOf("/")) || "/"; + event._path = url; + event.node.req.url = url; + } + const routeOptions = getRouteRules(event); + const head = createServerHead({ + plugins: unheadPlugins + }); + const headEntryOptions = { mode: "server" }; + { + head.push(appHead, headEntryOptions); + } + const ssrContext = { + url, + event, + runtimeConfig: useRuntimeConfig(event), + noSSR: event.context.nuxt?.noSSR || routeOptions.ssr === false && true || (false), + head, + error: !!ssrError, + nuxt: void 0, + /* NuxtApp */ + payload: ssrError ? { error: ssrError } : {}, + _payloadReducers: /* @__PURE__ */ Object.create(null), + modules: /* @__PURE__ */ new Set(), + islandContext + }; + const renderer = ssrContext.noSSR ? await getSPARenderer() : await getSSRRenderer(); + { + for (const id of await getEntryIds()) { + ssrContext.modules.add(id); + } + } + const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => { + if (ssrContext._renderResponse && error.message === "skipping render") { + return {}; + } + const _err = !ssrError && ssrContext.payload?.error || error; + await ssrContext.nuxt?.hooks.callHook("app:error", _err); + throw _err; + }); + await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult: _rendered }); + if (ssrContext._renderResponse) { + return ssrContext._renderResponse; + } + if (ssrContext.payload?.error && !ssrError) { + throw ssrContext.payload.error; + } + if (isRenderingPayload) { + const response2 = renderPayloadResponse(ssrContext); + return response2; + } + const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []) ; + const NO_SCRIPTS = routeOptions.experimentalNoScripts; + const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext); + if (ssrContext._preloadManifest) { + head.push({ + link: [ + { rel: "preload", as: "fetch", fetchpriority: "low", crossorigin: "anonymous", href: buildAssetsURL(`builds/meta/${ssrContext.runtimeConfig.app.buildId}.json`) } + ] + }, { ...headEntryOptions, tagPriority: "low" }); + } + if (inlinedStyles.length) { + head.push({ style: inlinedStyles }); + } + { + const link = []; + for (const resource of Object.values(styles)) { + { + link.push({ rel: "stylesheet", href: renderer.rendererContext.buildAssetsURL(resource.file), crossorigin: "" }); + } + } + if (link.length) { + head.push({ link }, headEntryOptions); + } + } + if (!NO_SCRIPTS && true) { + head.push({ + link: getPreloadLinks(ssrContext, renderer.rendererContext) + }, headEntryOptions); + head.push({ + link: getPrefetchLinks(ssrContext, renderer.rendererContext) + }, headEntryOptions); + head.push({ + script: renderPayloadJsonScript({ ssrContext, data: ssrContext.payload }) + }, { + ...headEntryOptions, + // this should come before another end of body scripts + tagPosition: "bodyClose", + tagPriority: "high" + }); + } + if (!routeOptions.experimentalNoScripts && true) { + head.push({ + script: Object.values(scripts).map((resource) => ({ + type: resource.module ? "module" : null, + src: renderer.rendererContext.buildAssetsURL(resource.file), + defer: resource.module ? null : true, + // if we are rendering script tag payloads that import an async payload + // we need to ensure this resolves before executing the Nuxt entry + tagPosition: "head", + crossorigin: "" + })) + }, headEntryOptions); + } + const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = await renderSSRHead(head, renderSSRHeadOptions); + const htmlContext = { + island: isRenderingIsland, + htmlAttrs: htmlAttrs ? [htmlAttrs] : [], + head: normalizeChunks([headTags]), + bodyAttrs: bodyAttrs ? [bodyAttrs] : [], + bodyPrepend: normalizeChunks([bodyTagsOpen, ssrContext.teleports?.body]), + body: [ + _rendered.html, + APP_TELEPORT_OPEN_TAG + (HAS_APP_TELEPORTS ? joinTags([ssrContext.teleports?.[`#${appTeleportAttrs.id}`]]) : "") + APP_TELEPORT_CLOSE_TAG + ], + bodyAppend: [bodyTags] + }; + await nitroApp.hooks.callHook("render:html", htmlContext, { event }); + const response = { + body: renderHTMLDocument(htmlContext), + statusCode: getResponseStatus(event), + statusMessage: getResponseStatusText(event), + headers: { + "content-type": "text/html;charset=utf-8", + "x-powered-by": "Nuxt" + } + }; + return response; +}); +function lazyCachedFunction(fn) { + let res = null; + return () => { + if (res === null) { + res = fn().catch((err) => { + res = null; + throw err; + }); + } + return res; + }; +} +function normalizeChunks(chunks) { + return chunks.filter(Boolean).map((i) => i.trim()); +} +function joinTags(tags) { + return tags.join(""); +} +function joinAttrs(chunks) { + if (chunks.length === 0) { + return ""; + } + return " " + chunks.join(" "); +} +function renderHTMLDocument(html) { + return `<!DOCTYPE html><html${joinAttrs(html.htmlAttrs)}><head>${joinTags(html.head)}</head><body${joinAttrs(html.bodyAttrs)}>${joinTags(html.bodyPrepend)}${joinTags(html.body)}${joinTags(html.bodyAppend)}</body></html>`; +} +async function renderInlineStyles(usedModules) { + const styleMap = await getSSRStyles(); + const inlinedStyles = /* @__PURE__ */ new Set(); + for (const mod of usedModules) { + if (mod in styleMap && styleMap[mod]) { + for (const style of await styleMap[mod]()) { + inlinedStyles.add(style); + } + } + } + return Array.from(inlinedStyles).map((style) => ({ innerHTML: style })); +} +function renderPayloadResponse(ssrContext) { + return { + body: stringify(splitPayload(ssrContext).payload, ssrContext._payloadReducers) , + statusCode: getResponseStatus(ssrContext.event), + statusMessage: getResponseStatusText(ssrContext.event), + headers: { + "content-type": "application/json;charset=utf-8" , + "x-powered-by": "Nuxt" + } + }; +} +function renderPayloadJsonScript(opts) { + const contents = opts.data ? stringify(opts.data, opts.ssrContext._payloadReducers) : ""; + const payload = { + "type": "application/json", + "innerHTML": contents, + "data-nuxt-data": appId, + "data-ssr": !(opts.ssrContext.noSSR) + }; + { + payload.id = "__NUXT_DATA__"; + } + if (opts.src) { + payload["data-src"] = opts.src; + } + const config = uneval(opts.ssrContext.config); + return [ + payload, + { + innerHTML: `window.__NUXT__={};window.__NUXT__.config=${config}` + } + ]; +} +function splitPayload(ssrContext) { + const { data, prerenderedAt, ...initial } = ssrContext.payload; + return { + initial: { ...initial, prerenderedAt }, + payload: { data, prerenderedAt } + }; +} + +const renderer$1 = /*#__PURE__*/Object.freeze({ + __proto__: null, + default: renderer +}); + +export { buildAssetsURL as a, baseURL as b, renderer$1 as r }; +//# sourceMappingURL=renderer.mjs.map diff --git a/.output/server/chunks/routes/renderer.mjs.map b/.output/server/chunks/routes/renderer.mjs.map new file mode 100644 index 0000000..398d9a9 --- /dev/null +++ b/.output/server/chunks/routes/renderer.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"renderer.mjs","sources":["../../../../node_modules/.store/@unhead+vue@1.11.19/node_modules/@unhead/vue/dist/shared/vue.ziyDaVMR.mjs","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/core/runtime/nitro/paths.js","../../../../node_modules/.store/nuxt@3.15.4/node_modules/nuxt/dist/core/runtime/nitro/renderer.js"],"sourcesContent":null,"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/.output/server/chunks/virtual/_virtual_spa-template.mjs b/.output/server/chunks/virtual/_virtual_spa-template.mjs new file mode 100644 index 0000000..7ade71c --- /dev/null +++ b/.output/server/chunks/virtual/_virtual_spa-template.mjs @@ -0,0 +1,4 @@ +const template = ""; + +export { template }; +//# sourceMappingURL=_virtual_spa-template.mjs.map diff --git a/.output/server/chunks/virtual/_virtual_spa-template.mjs.map b/.output/server/chunks/virtual/_virtual_spa-template.mjs.map new file mode 100644 index 0000000..4ab708b --- /dev/null +++ b/.output/server/chunks/virtual/_virtual_spa-template.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"_virtual_spa-template.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"} \ No newline at end of file diff --git a/.output/server/index.mjs b/.output/server/index.mjs new file mode 100644 index 0000000..5365aeb --- /dev/null +++ b/.output/server/index.mjs @@ -0,0 +1,35 @@ +import process from 'node:process';globalThis._importMeta_={url:import.meta.url,env:process.env};import { Server as Server$1 } from 'node:http'; +import { Server } from 'node:https'; +import { t as toNodeListener, d as destr, u as useRuntimeConfig, a as trapUnhandledNodeErrors, s as setupGracefulShutdown, b as useNitroApp } from './chunks/_/nitro.mjs'; +import 'node:fs'; +import 'node:url'; +import 'node:path'; + +const cert = process.env.NITRO_SSL_CERT; +const key = process.env.NITRO_SSL_KEY; +const nitroApp = useNitroApp(); +const server = cert && key ? new Server({ key, cert }, toNodeListener(nitroApp.h3App)) : new Server$1(toNodeListener(nitroApp.h3App)); +const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3e3; +const host = process.env.NITRO_HOST || process.env.HOST; +const path = process.env.NITRO_UNIX_SOCKET; +const listener = server.listen(path ? { path } : { port, host }, (err) => { + if (err) { + console.error(err); + process.exit(1); + } + const protocol = cert && key ? "https" : "http"; + const addressInfo = listener.address(); + if (typeof addressInfo === "string") { + console.log(`Listening on unix socket ${addressInfo}`); + return; + } + const baseURL = (useRuntimeConfig().app.baseURL || "").replace(/\/$/, ""); + const url = `${protocol}://${addressInfo.family === "IPv6" ? `[${addressInfo.address}]` : addressInfo.address}:${addressInfo.port}${baseURL}`; + console.log(`Listening on ${url}`); +}); +trapUnhandledNodeErrors(); +setupGracefulShutdown(listener, nitroApp); +const nodeServer = {}; + +export { nodeServer as default }; +//# sourceMappingURL=index.mjs.map diff --git a/.output/server/index.mjs.map b/.output/server/index.mjs.map new file mode 100644 index 0000000..4097840 --- /dev/null +++ b/.output/server/index.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.mjs","sources":["../../node_modules/.store/nitropack@2.10.4/node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"sourcesContent":null,"names":["HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.output/server/node_modules/@babel/parser/lib/index.js b/.output/server/node_modules/@babel/parser/lib/index.js new file mode 100644 index 0000000..1b0c6a6 --- /dev/null +++ b/.output/server/node_modules/@babel/parser/lib/index.js @@ -0,0 +1,14214 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (e.includes(n)) continue; + t[n] = r[n]; + } + return t; +} +class Position { + constructor(line, col, index) { + this.line = void 0; + this.column = void 0; + this.index = void 0; + this.line = line; + this.column = col; + this.index = index; + } +} +class SourceLocation { + constructor(start, end) { + this.start = void 0; + this.end = void 0; + this.filename = void 0; + this.identifierName = void 0; + this.start = start; + this.end = end; + } +} +function createPositionWithColumnOffset(position, columnOffset) { + const { + line, + column, + index + } = position; + return new Position(line, column + columnOffset, index + columnOffset); +} +const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"; +var ModuleErrors = { + ImportMetaOutsideModule: { + message: `import.meta may appear only with 'sourceType: "module"'`, + code + }, + ImportOutsideModule: { + message: `'import' and 'export' may appear only with 'sourceType: "module"'`, + code + } +}; +const NodeDescriptions = { + ArrayPattern: "array destructuring pattern", + AssignmentExpression: "assignment expression", + AssignmentPattern: "assignment expression", + ArrowFunctionExpression: "arrow function expression", + ConditionalExpression: "conditional expression", + CatchClause: "catch clause", + ForOfStatement: "for-of statement", + ForInStatement: "for-in statement", + ForStatement: "for-loop", + FormalParameters: "function parameter list", + Identifier: "identifier", + ImportSpecifier: "import specifier", + ImportDefaultSpecifier: "import default specifier", + ImportNamespaceSpecifier: "import namespace specifier", + ObjectPattern: "object destructuring pattern", + ParenthesizedExpression: "parenthesized expression", + RestElement: "rest element", + UpdateExpression: { + true: "prefix operation", + false: "postfix operation" + }, + VariableDeclarator: "variable declaration", + YieldExpression: "yield expression" +}; +const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; +var StandardErrors = { + AccessorIsGenerator: ({ + kind + }) => `A ${kind}ter cannot be a generator.`, + ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", + AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", + AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", + AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", + AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", + AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", + AwaitNotInAsyncFunction: "'await' is only allowed within async functions.", + BadGetterArity: "A 'get' accessor must not have any formal parameters.", + BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", + BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", + ConstructorClassField: "Classes may not have a field named 'constructor'.", + ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", + ConstructorIsAccessor: "Class constructor may not be an accessor.", + ConstructorIsAsync: "Constructor can't be an async function.", + ConstructorIsGenerator: "Constructor can't be a generator.", + DeclarationMissingInitializer: ({ + kind + }) => `Missing initializer in ${kind} declaration.`, + DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.", + DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.", + DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.", + DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", + DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.", + DecoratorSemicolon: "Decorators must not be followed by a semicolon.", + DecoratorStaticBlock: "Decorators can't be used with a static block.", + DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.', + DeletePrivateField: "Deleting a private field is not allowed.", + DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", + DuplicateConstructor: "Duplicate constructor in the same class.", + DuplicateDefaultExport: "Only one default export allowed per module.", + DuplicateExport: ({ + exportName + }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, + DuplicateProto: "Redefinition of __proto__ property.", + DuplicateRegExpFlags: "Duplicate regular expression flag.", + DynamicImportPhaseRequiresImportExpressions: ({ + phase + }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`, + ElementAfterRest: "Rest element must be last element.", + EscapedCharNotAnIdentifier: "Invalid Unicode escape.", + ExportBindingIsString: ({ + localName, + exportName + }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`, + ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", + ForInOfLoopInitializer: ({ + type + }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`, + ForInUsing: "For-in loop may not start with 'using' declaration.", + ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", + ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", + GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", + IllegalBreakContinue: ({ + type + }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, + IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", + IllegalReturn: "'return' outside of function.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.", + ImportBindingIsString: ({ + importName + }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, + ImportCallArity: `\`import()\` requires exactly one or two arguments.`, + ImportCallNotNewExpression: "Cannot use new with import(...).", + ImportCallSpreadArgument: "`...` is not allowed in `import()`.", + ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", + ImportReflectionHasAssertion: "`import module x` cannot have assertions.", + ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.', + IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", + InvalidBigIntLiteral: "Invalid BigIntLiteral.", + InvalidCodePoint: "Code point out of bounds.", + InvalidCoverInitializedName: "Invalid shorthand property initializer.", + InvalidDecimal: "Invalid decimal.", + InvalidDigit: ({ + radix + }) => `Expected number in radix ${radix}.`, + InvalidEscapeSequence: "Bad character escape sequence.", + InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", + InvalidEscapedReservedWord: ({ + reservedWord + }) => `Escape sequence in keyword ${reservedWord}.`, + InvalidIdentifier: ({ + identifierName + }) => `Invalid identifier ${identifierName}.`, + InvalidLhs: ({ + ancestor + }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsBinding: ({ + ancestor + }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`, + InvalidLhsOptionalChaining: ({ + ancestor + }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`, + InvalidNumber: "Invalid number.", + InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", + InvalidOrUnexpectedToken: ({ + unexpected + }) => `Unexpected character '${unexpected}'.`, + InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", + InvalidPrivateFieldResolution: ({ + identifierName + }) => `Private name #${identifierName} is not defined.`, + InvalidPropertyBindingPattern: "Binding member expression.", + InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", + InvalidRestAssignmentPattern: "Invalid rest operator's argument.", + LabelRedeclaration: ({ + labelName + }) => `Label '${labelName}' is already declared.`, + LetInLexicalBinding: "'let' is disallowed as a lexically bound name.", + LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", + MalformedRegExpFlags: "Invalid regular expression flag.", + MissingClassName: "A class name is required.", + MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", + MissingSemicolon: "Missing semicolon.", + MissingPlugin: ({ + missingPlugin + }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingOneOfPlugins: ({ + missingPlugin + }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`, + MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", + MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", + ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", + ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", + ModuleAttributesWithDuplicateKeys: ({ + key + }) => `Duplicate key "${key}" is not allowed in module attributes.`, + ModuleExportNameHasLoneSurrogate: ({ + surrogateCharCode + }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`, + ModuleExportUndefined: ({ + localName + }) => `Export '${localName}' is not defined.`, + MultipleDefaultsInSwitch: "Multiple default clauses.", + NewlineAfterThrow: "Illegal newline after throw.", + NoCatchOrFinally: "Missing catch or finally clause.", + NumberIdentifier: "Identifier directly after number.", + NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", + ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", + OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", + OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", + OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", + ParamDupe: "Argument name clash.", + PatternHasAccessor: "Object pattern can't contain getter or setter.", + PatternHasMethod: "Object pattern can't contain methods.", + PrivateInExpectedIn: ({ + identifierName + }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`, + PrivateNameRedeclaration: ({ + identifierName + }) => `Duplicate private name #${identifierName}.`, + RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + RecordNoProto: "'__proto__' is not allowed in Record expressions.", + RestTrailingComma: "Unexpected trailing comma after rest element.", + SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.", + SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", + SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.', + StaticPrototype: "Classes may not have static property named prototype.", + SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", + SuperPrivateField: "Private fields can't be accessed on super.", + TrailingDecorator: "Decorators must be attached to a class element.", + TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", + TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", + UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", + UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', + UnexpectedDigitAfterHash: "Unexpected digit after hash token.", + UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", + UnexpectedKeyword: ({ + keyword + }) => `Unexpected keyword '${keyword}'.`, + UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", + UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", + UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", + UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", + UnexpectedPrivateField: "Unexpected private name.", + UnexpectedReservedWord: ({ + reservedWord + }) => `Unexpected reserved word '${reservedWord}'.`, + UnexpectedSuper: "'super' is only allowed in object methods and classes.", + UnexpectedToken: ({ + expected, + unexpected + }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, + UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.", + UnsupportedBind: "Binding should be performed on object property.", + UnsupportedDecoratorExport: "A decorated export must export a class declaration.", + UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", + UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", + UnsupportedMetaProperty: ({ + target, + onlyValidPropertyName + }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`, + UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", + UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", + UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", + UnterminatedComment: "Unterminated comment.", + UnterminatedRegExp: "Unterminated regular expression.", + UnterminatedString: "Unterminated string constant.", + UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", + UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", + VarRedeclaration: ({ + identifierName + }) => `Identifier '${identifierName}' has already been declared.`, + YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", + YieldInParameter: "Yield expression is not allowed in formal parameters.", + ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." +}; +var StrictModeErrors = { + StrictDelete: "Deleting local variable in strict mode.", + StrictEvalArguments: ({ + referenceName + }) => `Assigning to '${referenceName}' in strict mode.`, + StrictEvalArgumentsBinding: ({ + bindingName + }) => `Binding '${bindingName}' in strict mode.`, + StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", + StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", + StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", + StrictWith: "'with' in strict mode." +}; +const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); +var PipelineOperatorErrors = Object.assign({ + PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", + PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', + PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", + PipeTopicUnconfiguredToken: ({ + token + }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`, + PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", + PipeUnparenthesizedBody: ({ + type + }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ + type + })}; please wrap it in parentheses.` +}, { + PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', + PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", + PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", + PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", + PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", + PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' +}); +const _excluded = ["message"]; +function defineHidden(obj, key, value) { + Object.defineProperty(obj, key, { + enumerable: false, + configurable: true, + value + }); +} +function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin +}) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + { + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } + } + return function constructor(loc, details) { + const error = new SyntaxError(); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; + } + defineHidden(error, "clone", function clone(overrides = {}) { + var _overrides$loc; + const { + line, + column, + index + } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc; + return constructor(new Position(line, column, index), Object.assign({}, details, overrides.details)); + }); + defineHidden(error, "details", details); + Object.defineProperty(error, "message", { + configurable: true, + get() { + const message = `${toMessage(details)} (${loc.line}:${loc.column})`; + this.message = message; + return message; + }, + set(value) { + Object.defineProperty(this, "message", { + value, + writable: true + }); + } + }); + return error; + }; +} +function ParseErrorEnum(argument, syntaxPlugin) { + if (Array.isArray(argument)) { + return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]); + } + const ParseErrorConstructors = {}; + for (const reasonCode of Object.keys(argument)) { + const template = argument[reasonCode]; + const _ref = typeof template === "string" ? { + message: () => template + } : typeof template === "function" ? { + message: template + } : template, + { + message + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); + const toMessage = typeof message === "string" ? () => message : message; + ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ + code: "BABEL_PARSER_SYNTAX_ERROR", + reasonCode, + toMessage + }, syntaxPlugin ? { + syntaxPlugin + } : {}, rest)); + } + return ParseErrorConstructors; +} +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +function createDefaultOptions() { + return { + sourceType: "script", + sourceFilename: undefined, + startIndex: 0, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + plugins: [], + strictMode: null, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true + }; +} +function getOptions(opts) { + const options = createDefaultOptions(); + if (opts == null) { + return options; + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + for (const key of Object.keys(options)) { + if (opts[key] != null) options[key] = opts[key]; + } + if (options.startLine === 1) { + if (opts.startIndex == null && options.startColumn > 0) { + options.startIndex = options.startColumn; + } else if (opts.startColumn == null && options.startIndex > 0) { + options.startColumn = options.startIndex; + } + } else if (opts.startColumn == null || opts.startIndex == null) { + if (opts.startIndex != null) { + throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`."); + } + } + return options; +} +const { + defineProperty +} = Object; +const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } +}; +function toESTreeLocation(node) { + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); + return node; +} +var estree = superClass => class ESTreeParserMixin extends superClass { + parse() { + const file = toESTreeLocation(super.parse()); + if (this.optionFlags & 128) { + file.tokens = file.tokens.map(toESTreeLocation); + } + return file; + } + parseRegExpLiteral({ + pattern, + flags + }) { + let regex = null; + try { + regex = new RegExp(pattern, flags); + } catch (_) {} + const node = this.estreeParseLiteral(regex); + node.regex = { + pattern, + flags + }; + return node; + } + parseBigIntLiteral(value) { + let bigInt; + try { + bigInt = BigInt(value); + } catch (_unused) { + bigInt = null; + } + const node = this.estreeParseLiteral(bigInt); + node.bigint = String(node.value || value); + return node; + } + parseDecimalLiteral(value) { + const decimal = null; + const node = this.estreeParseLiteral(decimal); + node.decimal = String(node.value || value); + return node; + } + estreeParseLiteral(value) { + return this.parseLiteral(value, "Literal"); + } + parseStringLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNumericLiteral(value) { + return this.estreeParseLiteral(value); + } + parseNullLiteral() { + return this.estreeParseLiteral(null); + } + parseBooleanLiteral(value) { + return this.estreeParseLiteral(value); + } + directiveToStmt(directive) { + const expression = directive.value; + delete directive.value; + expression.type = "Literal"; + expression.raw = expression.extra.raw; + expression.value = expression.extra.expressionValue; + const stmt = directive; + stmt.type = "ExpressionStatement"; + stmt.expression = expression; + stmt.directive = expression.extra.rawValue; + delete expression.extra; + return stmt; + } + initFunction(node, isAsync) { + super.initFunction(node, isAsync); + node.expression = false; + } + checkDeclaration(node) { + if (node != null && this.isObjectProperty(node)) { + this.checkDeclaration(node.value); + } else { + super.checkDeclaration(node); + } + } + getObjectOrClassMethodParams(method) { + return method.value.params; + } + isValidDirective(stmt) { + var _stmt$expression$extr; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse); + const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); + node.body = directiveStatements.concat(node.body); + delete node.directives; + } + parsePrivateName() { + const node = super.parsePrivateName(); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } + } + return this.convertPrivateNameToPrivateIdentifier(node); + } + convertPrivateNameToPrivateIdentifier(node) { + const name = super.getPrivateNameSV(node); + node = node; + delete node.id; + node.name = name; + node.type = "PrivateIdentifier"; + return node; + } + isPrivateName(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } + } + return node.type === "PrivateIdentifier"; + } + getPrivateNameSV(node) { + { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } + } + return node.name; + } + parseLiteral(value, type) { + const node = super.parseLiteral(value, type); + node.raw = node.extra.raw; + delete node.extra; + return node; + } + parseFunctionBody(node, allowExpression, isMethod = false) { + super.parseFunctionBody(node, allowExpression, isMethod); + node.expression = node.body.type !== "BlockStatement"; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + let funcNode = this.startNode(); + funcNode.kind = node.kind; + funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + funcNode.type = "FunctionExpression"; + delete funcNode.kind; + node.value = funcNode; + const { + typeParameters + } = node; + if (typeParameters) { + delete node.typeParameters; + funcNode.typeParameters = typeParameters; + this.resetStartLocationFromNode(funcNode, typeParameters); + } + if (type === "ClassPrivateMethod") { + node.computed = false; + } + return this.finishNode(node, "MethodDefinition"); + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + { + propertyNode.type = "PropertyDefinition"; + } + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + { + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + } + { + propertyNode.type = "PropertyDefinition"; + } + propertyNode.computed = false; + return propertyNode; + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); + if (node) { + node.type = "Property"; + if (node.kind === "method") { + node.kind = "init"; + } + node.shorthand = false; + } + return node; + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (node) { + node.kind = "init"; + node.type = "Property"; + } + return node; + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + isAssignable(node, isBinding) { + if (node != null && this.isObjectProperty(node)) { + return this.isAssignable(node.value, isBinding); + } + return super.isAssignable(node, isBinding); + } + toAssignable(node, isLHS = false) { + if (node != null && this.isObjectProperty(node)) { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + } else { + super.toAssignable(node, isLHS); + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { + this.raise(Errors.PatternHasAccessor, prop.key); + } else if (prop.type === "Property" && prop.method) { + this.raise(Errors.PatternHasMethod, prop.key); + } else { + super.toAssignableObjectExpressionProp(prop, isLast, isLHS); + } + } + finishCallExpression(unfinished, optional) { + const node = super.finishCallExpression(unfinished, optional); + if (node.callee.type === "Import") { + var _ref, _ref2; + node.type = "ImportExpression"; + node.source = node.arguments[0]; + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; + delete node.arguments; + delete node.callee; + } + return node; + } + toReferencedArguments(node) { + if (node.type === "ImportExpression") { + return; + } + super.toReferencedArguments(node); + } + parseExport(unfinished, decorators) { + const exportStartLoc = this.state.lastTokStartLoc; + const node = super.parseExport(unfinished, decorators); + switch (node.type) { + case "ExportAllDeclaration": + node.exported = null; + break; + case "ExportNamedDeclaration": + if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { + node.type = "ExportAllDeclaration"; + node.exported = node.specifiers[0].exported; + delete node.specifiers; + } + case "ExportDefaultDeclaration": + { + var _declaration$decorato; + const { + declaration + } = node; + if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) { + this.resetStartLocation(node, exportStartLoc); + } + } + break; + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + const node = super.parseSubscript(base, startLoc, noCalls, state); + if (state.optionalChainMember) { + if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { + node.type = node.type.substring(8); + } + if (state.stop) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNode(chain, "ChainExpression"); + } + } else if (node.type === "MemberExpression" || node.type === "CallExpression") { + node.optional = false; + } + return node; + } + isOptionalMemberExpression(node) { + if (node.type === "ChainExpression") { + return node.expression.type === "MemberExpression"; + } + return super.isOptionalMemberExpression(node); + } + hasPropertyAsPrivateName(node) { + if (node.type === "ChainExpression") { + node = node.expression; + } + return super.hasPropertyAsPrivateName(node); + } + isObjectProperty(node) { + return node.type === "Property" && node.kind === "init" && !node.method; + } + isObjectMethod(node) { + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + finishNodeAt(node, type, endLoc) { + return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); + } + resetStartLocation(node, startLoc) { + super.resetStartLocation(node, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + super.resetEndLocation(node, endLoc); + toESTreeLocation(node); + } +}; +class TokContext { + constructor(token, preserveSpace) { + this.token = void 0; + this.preserveSpace = void 0; + this.token = token; + this.preserveSpace = !!preserveSpace; + } +} +const types = { + brace: new TokContext("{"), + j_oTag: new TokContext("<tag"), + j_cTag: new TokContext("</tag"), + j_expr: new TokContext("<tag>...</tag>", true) +}; +{ + types.template = new TokContext("`", true); +} +const beforeExpr = true; +const startsExpr = true; +const isLoop = true; +const isAssign = true; +const prefix = true; +const postfix = true; +class ExportedTokenType { + constructor(label, conf = {}) { + this.label = void 0; + this.keyword = void 0; + this.beforeExpr = void 0; + this.startsExpr = void 0; + this.rightAssociative = void 0; + this.isLoop = void 0; + this.isAssign = void 0; + this.prefix = void 0; + this.postfix = void 0; + this.binop = void 0; + this.label = label; + this.keyword = conf.keyword; + this.beforeExpr = !!conf.beforeExpr; + this.startsExpr = !!conf.startsExpr; + this.rightAssociative = !!conf.rightAssociative; + this.isLoop = !!conf.isLoop; + this.isAssign = !!conf.isAssign; + this.prefix = !!conf.prefix; + this.postfix = !!conf.postfix; + this.binop = conf.binop != null ? conf.binop : null; + { + this.updateContext = null; + } + } +} +const keywords$1 = new Map(); +function createKeyword(name, options = {}) { + options.keyword = name; + const token = createToken(name, options); + keywords$1.set(name, token); + return token; +} +function createBinop(name, binop) { + return createToken(name, { + beforeExpr, + binop + }); +} +let tokenTypeCounter = -1; +const tokenTypes = []; +const tokenLabels = []; +const tokenBinops = []; +const tokenBeforeExprs = []; +const tokenStartsExprs = []; +const tokenPrefixes = []; +function createToken(name, options = {}) { + var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; + ++tokenTypeCounter; + tokenLabels.push(name); + tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); + tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); + tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); + tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); + tokenTypes.push(new ExportedTokenType(name, options)); + return tokenTypeCounter; +} +function createKeywordLike(name, options = {}) { + var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; + ++tokenTypeCounter; + keywords$1.set(name, tokenTypeCounter); + tokenLabels.push(name); + tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); + tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); + tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); + tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); + tokenTypes.push(new ExportedTokenType("name", options)); + return tokenTypeCounter; +} +const tt = { + bracketL: createToken("[", { + beforeExpr, + startsExpr + }), + bracketHashL: createToken("#[", { + beforeExpr, + startsExpr + }), + bracketBarL: createToken("[|", { + beforeExpr, + startsExpr + }), + bracketR: createToken("]"), + bracketBarR: createToken("|]"), + braceL: createToken("{", { + beforeExpr, + startsExpr + }), + braceBarL: createToken("{|", { + beforeExpr, + startsExpr + }), + braceHashL: createToken("#{", { + beforeExpr, + startsExpr + }), + braceR: createToken("}"), + braceBarR: createToken("|}"), + parenL: createToken("(", { + beforeExpr, + startsExpr + }), + parenR: createToken(")"), + comma: createToken(",", { + beforeExpr + }), + semi: createToken(";", { + beforeExpr + }), + colon: createToken(":", { + beforeExpr + }), + doubleColon: createToken("::", { + beforeExpr + }), + dot: createToken("."), + question: createToken("?", { + beforeExpr + }), + questionDot: createToken("?."), + arrow: createToken("=>", { + beforeExpr + }), + template: createToken("template"), + ellipsis: createToken("...", { + beforeExpr + }), + backQuote: createToken("`", { + startsExpr + }), + dollarBraceL: createToken("${", { + beforeExpr, + startsExpr + }), + templateTail: createToken("...`", { + startsExpr + }), + templateNonTail: createToken("...${", { + beforeExpr, + startsExpr + }), + at: createToken("@"), + hash: createToken("#", { + startsExpr + }), + interpreterDirective: createToken("#!..."), + eq: createToken("=", { + beforeExpr, + isAssign + }), + assign: createToken("_=", { + beforeExpr, + isAssign + }), + slashAssign: createToken("_=", { + beforeExpr, + isAssign + }), + xorAssign: createToken("_=", { + beforeExpr, + isAssign + }), + moduloAssign: createToken("_=", { + beforeExpr, + isAssign + }), + incDec: createToken("++/--", { + prefix, + postfix, + startsExpr + }), + bang: createToken("!", { + beforeExpr, + prefix, + startsExpr + }), + tilde: createToken("~", { + beforeExpr, + prefix, + startsExpr + }), + doubleCaret: createToken("^^", { + startsExpr + }), + doubleAt: createToken("@@", { + startsExpr + }), + pipeline: createBinop("|>", 0), + nullishCoalescing: createBinop("??", 1), + logicalOR: createBinop("||", 1), + logicalAND: createBinop("&&", 2), + bitwiseOR: createBinop("|", 3), + bitwiseXOR: createBinop("^", 4), + bitwiseAND: createBinop("&", 5), + equality: createBinop("==/!=/===/!==", 6), + lt: createBinop("</>/<=/>=", 7), + gt: createBinop("</>/<=/>=", 7), + relational: createBinop("</>/<=/>=", 7), + bitShift: createBinop("<</>>/>>>", 8), + bitShiftL: createBinop("<</>>/>>>", 8), + bitShiftR: createBinop("<</>>/>>>", 8), + plusMin: createToken("+/-", { + beforeExpr, + binop: 9, + prefix, + startsExpr + }), + modulo: createToken("%", { + binop: 10, + startsExpr + }), + star: createToken("*", { + binop: 10 + }), + slash: createBinop("/", 10), + exponent: createToken("**", { + beforeExpr, + binop: 11, + rightAssociative: true + }), + _in: createKeyword("in", { + beforeExpr, + binop: 7 + }), + _instanceof: createKeyword("instanceof", { + beforeExpr, + binop: 7 + }), + _break: createKeyword("break"), + _case: createKeyword("case", { + beforeExpr + }), + _catch: createKeyword("catch"), + _continue: createKeyword("continue"), + _debugger: createKeyword("debugger"), + _default: createKeyword("default", { + beforeExpr + }), + _else: createKeyword("else", { + beforeExpr + }), + _finally: createKeyword("finally"), + _function: createKeyword("function", { + startsExpr + }), + _if: createKeyword("if"), + _return: createKeyword("return", { + beforeExpr + }), + _switch: createKeyword("switch"), + _throw: createKeyword("throw", { + beforeExpr, + prefix, + startsExpr + }), + _try: createKeyword("try"), + _var: createKeyword("var"), + _const: createKeyword("const"), + _with: createKeyword("with"), + _new: createKeyword("new", { + beforeExpr, + startsExpr + }), + _this: createKeyword("this", { + startsExpr + }), + _super: createKeyword("super", { + startsExpr + }), + _class: createKeyword("class", { + startsExpr + }), + _extends: createKeyword("extends", { + beforeExpr + }), + _export: createKeyword("export"), + _import: createKeyword("import", { + startsExpr + }), + _null: createKeyword("null", { + startsExpr + }), + _true: createKeyword("true", { + startsExpr + }), + _false: createKeyword("false", { + startsExpr + }), + _typeof: createKeyword("typeof", { + beforeExpr, + prefix, + startsExpr + }), + _void: createKeyword("void", { + beforeExpr, + prefix, + startsExpr + }), + _delete: createKeyword("delete", { + beforeExpr, + prefix, + startsExpr + }), + _do: createKeyword("do", { + isLoop, + beforeExpr + }), + _for: createKeyword("for", { + isLoop + }), + _while: createKeyword("while", { + isLoop + }), + _as: createKeywordLike("as", { + startsExpr + }), + _assert: createKeywordLike("assert", { + startsExpr + }), + _async: createKeywordLike("async", { + startsExpr + }), + _await: createKeywordLike("await", { + startsExpr + }), + _defer: createKeywordLike("defer", { + startsExpr + }), + _from: createKeywordLike("from", { + startsExpr + }), + _get: createKeywordLike("get", { + startsExpr + }), + _let: createKeywordLike("let", { + startsExpr + }), + _meta: createKeywordLike("meta", { + startsExpr + }), + _of: createKeywordLike("of", { + startsExpr + }), + _sent: createKeywordLike("sent", { + startsExpr + }), + _set: createKeywordLike("set", { + startsExpr + }), + _source: createKeywordLike("source", { + startsExpr + }), + _static: createKeywordLike("static", { + startsExpr + }), + _using: createKeywordLike("using", { + startsExpr + }), + _yield: createKeywordLike("yield", { + startsExpr + }), + _asserts: createKeywordLike("asserts", { + startsExpr + }), + _checks: createKeywordLike("checks", { + startsExpr + }), + _exports: createKeywordLike("exports", { + startsExpr + }), + _global: createKeywordLike("global", { + startsExpr + }), + _implements: createKeywordLike("implements", { + startsExpr + }), + _intrinsic: createKeywordLike("intrinsic", { + startsExpr + }), + _infer: createKeywordLike("infer", { + startsExpr + }), + _is: createKeywordLike("is", { + startsExpr + }), + _mixins: createKeywordLike("mixins", { + startsExpr + }), + _proto: createKeywordLike("proto", { + startsExpr + }), + _require: createKeywordLike("require", { + startsExpr + }), + _satisfies: createKeywordLike("satisfies", { + startsExpr + }), + _keyof: createKeywordLike("keyof", { + startsExpr + }), + _readonly: createKeywordLike("readonly", { + startsExpr + }), + _unique: createKeywordLike("unique", { + startsExpr + }), + _abstract: createKeywordLike("abstract", { + startsExpr + }), + _declare: createKeywordLike("declare", { + startsExpr + }), + _enum: createKeywordLike("enum", { + startsExpr + }), + _module: createKeywordLike("module", { + startsExpr + }), + _namespace: createKeywordLike("namespace", { + startsExpr + }), + _interface: createKeywordLike("interface", { + startsExpr + }), + _type: createKeywordLike("type", { + startsExpr + }), + _opaque: createKeywordLike("opaque", { + startsExpr + }), + name: createToken("name", { + startsExpr + }), + placeholder: createToken("%%", { + startsExpr: true + }), + string: createToken("string", { + startsExpr + }), + num: createToken("num", { + startsExpr + }), + bigint: createToken("bigint", { + startsExpr + }), + decimal: createToken("decimal", { + startsExpr + }), + regexp: createToken("regexp", { + startsExpr + }), + privateName: createToken("#name", { + startsExpr + }), + eof: createToken("eof"), + jsxName: createToken("jsxName"), + jsxText: createToken("jsxText", { + beforeExpr: true + }), + jsxTagStart: createToken("jsxTagStart", { + startsExpr: true + }), + jsxTagEnd: createToken("jsxTagEnd") +}; +function tokenIsIdentifier(token) { + return token >= 93 && token <= 133; +} +function tokenKeywordOrIdentifierIsKeyword(token) { + return token <= 92; +} +function tokenIsKeywordOrIdentifier(token) { + return token >= 58 && token <= 133; +} +function tokenIsLiteralPropertyName(token) { + return token >= 58 && token <= 137; +} +function tokenComesBeforeExpression(token) { + return tokenBeforeExprs[token]; +} +function tokenCanStartExpression(token) { + return tokenStartsExprs[token]; +} +function tokenIsAssignment(token) { + return token >= 29 && token <= 33; +} +function tokenIsFlowInterfaceOrTypeOrOpaque(token) { + return token >= 129 && token <= 131; +} +function tokenIsLoop(token) { + return token >= 90 && token <= 92; +} +function tokenIsKeyword(token) { + return token >= 58 && token <= 92; +} +function tokenIsOperator(token) { + return token >= 39 && token <= 59; +} +function tokenIsPostfix(token) { + return token === 34; +} +function tokenIsPrefix(token) { + return tokenPrefixes[token]; +} +function tokenIsTSTypeOperator(token) { + return token >= 121 && token <= 123; +} +function tokenIsTSDeclarationStart(token) { + return token >= 124 && token <= 130; +} +function tokenLabelName(token) { + return tokenLabels[token]; +} +function tokenOperatorPrecedence(token) { + return tokenBinops[token]; +} +function tokenIsRightAssociative(token) { + return token === 57; +} +function tokenIsTemplate(token) { + return token >= 24 && token <= 25; +} +function getExportedToken(token) { + return tokenTypes[token]; +} +{ + tokenTypes[8].updateContext = context => { + context.pop(); + }; + tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); + }; + tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { + context.pop(); + } else { + context.push(types.template); + } + }; + tokenTypes[143].updateContext = context => { + context.push(types.j_expr, types.j_oTag); + }; +} +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; +const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); +const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); +nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +function isInAstralSet(code, set) { + let pos = 0x10000; + for (let i = 0, length = set.length; i < length; i += 2) { + pos += set[i]; + if (pos > code) return false; + pos += set[i + 1]; + if (pos >= code) return true; + } + return false; +} +function isIdentifierStart(code) { + if (code < 65) return code === 36; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes); +} +function isIdentifierChar(code) { + if (code < 48) return code === 36; + if (code < 58) return true; + if (code < 65) return false; + if (code <= 90) return true; + if (code < 97) return code === 95; + if (code <= 122) return true; + if (code <= 0xffff) { + return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); + } + return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); +} +const reservedWords = { + keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], + strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], + strictBind: ["eval", "arguments"] +}; +const keywords = new Set(reservedWords.keyword); +const reservedWordsStrictSet = new Set(reservedWords.strict); +const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); +function isReservedWord(word, inModule) { + return inModule && word === "await" || word === "enum"; +} +function isStrictReservedWord(word, inModule) { + return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); +} +function isStrictBindOnlyReservedWord(word) { + return reservedWordsStrictBindSet.has(word); +} +function isStrictBindReservedWord(word, inModule) { + return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); +} +function isKeyword(word) { + return keywords.has(word); +} +function isIteratorStart(current, next, next2) { + return current === 64 && next === 64 && isIdentifierStart(next2); +} +const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); +function canBeReservedWord(word) { + return reservedWordLikeSet.has(word); +} +class Scope { + constructor(flags) { + this.flags = 0; + this.names = new Map(); + this.firstLexicalName = ""; + this.flags = flags; + } +} +class ScopeHandler { + constructor(parser, inModule) { + this.parser = void 0; + this.scopeStack = []; + this.inModule = void 0; + this.undefinedExports = new Map(); + this.parser = parser; + this.inModule = inModule; + } + get inTopLevel() { + return (this.currentScope().flags & 1) > 0; + } + get inFunction() { + return (this.currentVarScopeFlags() & 2) > 0; + } + get allowSuper() { + return (this.currentThisScopeFlags() & 16) > 0; + } + get allowDirectSuper() { + return (this.currentThisScopeFlags() & 32) > 0; + } + get inClass() { + return (this.currentThisScopeFlags() & 64) > 0; + } + get inClassAndNotInNonArrowFunction() { + const flags = this.currentThisScopeFlags(); + return (flags & 64) > 0 && (flags & 2) === 0; + } + get inStaticBlock() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 128) { + return true; + } + if (flags & (387 | 64)) { + return false; + } + } + } + get inNonArrowFunction() { + return (this.currentThisScopeFlags() & 2) > 0; + } + get treatFunctionsAsVar() { + return this.treatFunctionsAsVarInScope(this.currentScope()); + } + createScope(flags) { + return new Scope(flags); + } + enter(flags) { + this.scopeStack.push(this.createScope(flags)); + } + exit() { + const scope = this.scopeStack.pop(); + return scope.flags; + } + treatFunctionsAsVarInScope(scope) { + return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1); + } + declareName(name, bindingType, loc) { + let scope = this.currentScope(); + if (bindingType & 8 || bindingType & 16) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + let type = scope.names.get(name) || 0; + if (bindingType & 16) { + type = type | 4; + } else { + if (!scope.firstLexicalName) { + scope.firstLexicalName = name; + } + type = type | 2; + } + scope.names.set(name, type); + if (bindingType & 8) { + this.maybeExportDefined(scope, name); + } + } else if (bindingType & 4) { + for (let i = this.scopeStack.length - 1; i >= 0; --i) { + scope = this.scopeStack[i]; + this.checkRedeclarationInScope(scope, name, bindingType, loc); + scope.names.set(name, (scope.names.get(name) || 0) | 1); + this.maybeExportDefined(scope, name); + if (scope.flags & 387) break; + } + } + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + maybeExportDefined(scope, name) { + if (this.parser.inModule && scope.flags & 1) { + this.undefinedExports.delete(name); + } + } + checkRedeclarationInScope(scope, name, bindingType, loc) { + if (this.isRedeclaredInScope(scope, name, bindingType)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + } + isRedeclaredInScope(scope, name, bindingType) { + if (!(bindingType & 1)) return false; + if (bindingType & 8) { + return scope.names.has(name); + } + const type = scope.names.get(name); + if (bindingType & 16) { + return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; + } + return (type & 2) > 0 && !(scope.flags & 8 && scope.firstLexicalName === name) || !this.treatFunctionsAsVarInScope(scope) && (type & 4) > 0; + } + checkLocalExport(id) { + const { + name + } = id; + const topLevelScope = this.scopeStack[0]; + if (!topLevelScope.names.has(name)) { + this.undefinedExports.set(name, id.loc.start); + } + } + currentScope() { + return this.scopeStack[this.scopeStack.length - 1]; + } + currentVarScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & 387) { + return flags; + } + } + } + currentThisScopeFlags() { + for (let i = this.scopeStack.length - 1;; i--) { + const { + flags + } = this.scopeStack[i]; + if (flags & (387 | 64) && !(flags & 4)) { + return flags; + } + } + } +} +class FlowScope extends Scope { + constructor(...args) { + super(...args); + this.declareFunctions = new Set(); + } +} +class FlowScopeHandler extends ScopeHandler { + createScope(flags) { + return new FlowScope(flags); + } + declareName(name, bindingType, loc) { + const scope = this.currentScope(); + if (bindingType & 2048) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + scope.declareFunctions.add(name); + return; + } + super.declareName(name, bindingType, loc); + } + isRedeclaredInScope(scope, name, bindingType) { + if (super.isRedeclaredInScope(scope, name, bindingType)) return true; + if (bindingType & 2048 && !scope.declareFunctions.has(name)) { + const type = scope.names.get(name); + return (type & 4) > 0 || (type & 2) > 0; + } + return false; + } + checkLocalExport(id) { + if (!this.scopeStack[0].declareFunctions.has(id.name)) { + super.checkLocalExport(id); + } + } +} +class BaseParser { + constructor() { + this.sawUnambiguousESM = false; + this.ambiguousScriptDifferentAst = false; + } + sourceToOffsetPos(sourcePos) { + return sourcePos + this.startIndex; + } + offsetToSourcePos(offsetPos) { + return offsetPos - this.startIndex; + } + hasPlugin(pluginConfig) { + if (typeof pluginConfig === "string") { + return this.plugins.has(pluginConfig); + } else { + const [pluginName, pluginOptions] = pluginConfig; + if (!this.hasPlugin(pluginName)) { + return false; + } + const actualOptions = this.plugins.get(pluginName); + for (const key of Object.keys(pluginOptions)) { + if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) { + return false; + } + } + return true; + } + } + getPluginOption(plugin, name) { + var _this$plugins$get; + return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name]; + } +} +function setTrailingComments(node, comments) { + if (node.trailingComments === undefined) { + node.trailingComments = comments; + } else { + node.trailingComments.unshift(...comments); + } +} +function setLeadingComments(node, comments) { + if (node.leadingComments === undefined) { + node.leadingComments = comments; + } else { + node.leadingComments.unshift(...comments); + } +} +function setInnerComments(node, comments) { + if (node.innerComments === undefined) { + node.innerComments = comments; + } else { + node.innerComments.unshift(...comments); + } +} +function adjustInnerComments(node, elements, commentWS) { + let lastElement = null; + let i = elements.length; + while (lastElement === null && i > 0) { + lastElement = elements[--i]; + } + if (lastElement === null || lastElement.start > commentWS.start) { + setInnerComments(node, commentWS.comments); + } else { + setTrailingComments(lastElement, commentWS.comments); + } +} +class CommentsParser extends BaseParser { + addComment(comment) { + if (this.filename) comment.loc.filename = this.filename; + const { + commentsLen + } = this.state; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } + this.comments.push(comment); + this.state.commentsLen++; + } + processComment(node) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + const lastCommentWS = commentStack[i]; + if (lastCommentWS.start === node.end) { + lastCommentWS.leadingNode = node; + i--; + } + const { + start: nodeStart + } = node; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + if (commentEnd > nodeStart) { + commentWS.containingNode = node; + this.finalizeComment(commentWS); + commentStack.splice(i, 1); + } else { + if (commentEnd === nodeStart) { + commentWS.trailingNode = node; + } + break; + } + } + } + finalizeComment(commentWS) { + const { + comments + } = commentWS; + if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { + if (commentWS.leadingNode !== null) { + setTrailingComments(commentWS.leadingNode, comments); + } + if (commentWS.trailingNode !== null) { + setLeadingComments(commentWS.trailingNode, comments); + } + } else { + const { + containingNode: node, + start: commentStart + } = commentWS; + if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) { + switch (node.type) { + case "ObjectExpression": + case "ObjectPattern": + case "RecordExpression": + adjustInnerComments(node, node.properties, commentWS); + break; + case "CallExpression": + case "OptionalCallExpression": + adjustInnerComments(node, node.arguments, commentWS); + break; + case "FunctionDeclaration": + case "FunctionExpression": + case "ArrowFunctionExpression": + case "ObjectMethod": + case "ClassMethod": + case "ClassPrivateMethod": + adjustInnerComments(node, node.params, commentWS); + break; + case "ArrayExpression": + case "ArrayPattern": + case "TupleExpression": + adjustInnerComments(node, node.elements, commentWS); + break; + case "ExportNamedDeclaration": + case "ImportDeclaration": + adjustInnerComments(node, node.specifiers, commentWS); + break; + case "TSEnumDeclaration": + { + adjustInnerComments(node, node.members, commentWS); + } + break; + case "TSEnumBody": + adjustInnerComments(node, node.members, commentWS); + break; + default: + { + setInnerComments(node, comments); + } + } + } else { + setInnerComments(node, comments); + } + } + } + finalizeRemainingComments() { + const { + commentStack + } = this.state; + for (let i = commentStack.length - 1; i >= 0; i--) { + this.finalizeComment(commentStack[i]); + } + this.state.commentStack = []; + } + resetPreviousNodeTrailingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + const commentWS = commentStack[length - 1]; + if (commentWS.leadingNode === node) { + commentWS.leadingNode = null; + } + } + resetPreviousIdentifierLeadingComments(node) { + const { + commentStack + } = this.state; + const { + length + } = commentStack; + if (length === 0) return; + if (commentStack[length - 1].trailingNode === node) { + commentStack[length - 1].trailingNode = null; + } else if (length >= 2 && commentStack[length - 2].trailingNode === node) { + commentStack[length - 2].trailingNode = null; + } + } + takeSurroundingComments(node, start, end) { + const { + commentStack + } = this.state; + const commentStackLength = commentStack.length; + if (commentStackLength === 0) return; + let i = commentStackLength - 1; + for (; i >= 0; i--) { + const commentWS = commentStack[i]; + const commentEnd = commentWS.end; + const commentStart = commentWS.start; + if (commentStart === end) { + commentWS.leadingNode = node; + } else if (commentEnd === start) { + commentWS.trailingNode = node; + } else if (commentEnd < start) { + break; + } + } + } +} +const lineBreak = /\r\n|[\r\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; +function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} +class State { + constructor() { + this.flags = 1024; + this.startIndex = void 0; + this.curLine = void 0; + this.lineStart = void 0; + this.startLoc = void 0; + this.endLoc = void 0; + this.errors = []; + this.potentialArrowAt = -1; + this.noArrowAt = []; + this.noArrowParamsConversionAt = []; + this.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + this.labels = []; + this.commentsLen = 0; + this.commentStack = []; + this.pos = 0; + this.type = 140; + this.value = null; + this.start = 0; + this.end = 0; + this.lastTokEndLoc = null; + this.lastTokStartLoc = null; + this.context = [types.brace]; + this.firstInvalidTemplateEscapePos = null; + this.strictErrors = new Map(); + this.tokensLength = 0; + } + get strict() { + return (this.flags & 1) > 0; + } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; + } + init({ + strictMode, + sourceType, + startIndex, + startLine, + startColumn + }) { + this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.startIndex = startIndex; + this.curLine = startLine; + this.lineStart = -startColumn; + this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex); + } + get maybeInArrowParameters() { + return (this.flags & 2) > 0; + } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; + } + get inType() { + return (this.flags & 4) > 0; + } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; + } + get noAnonFunctionType() { + return (this.flags & 8) > 0; + } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; + } + get hasFlowComment() { + return (this.flags & 16) > 0; + } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; + } + get isAmbientContext() { + return (this.flags & 32) > 0; + } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; + } + get inAbstractClass() { + return (this.flags & 64) > 0; + } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; + } + get inDisallowConditionalTypesContext() { + return (this.flags & 128) > 0; + } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; + } + get soloAwait() { + return (this.flags & 256) > 0; + } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; + } + get inFSharpPipelineDirectBody() { + return (this.flags & 512) > 0; + } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; + } + get canStartJSXElement() { + return (this.flags & 1024) > 0; + } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; + } + get containsEsc() { + return (this.flags & 2048) > 0; + } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; + } + curPosition() { + return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex); + } + clone() { + const state = new State(); + state.flags = this.flags; + state.startIndex = this.startIndex; + state.curLine = this.curLine; + state.lineStart = this.lineStart; + state.startLoc = this.startLoc; + state.endLoc = this.endLoc; + state.errors = this.errors.slice(); + state.potentialArrowAt = this.potentialArrowAt; + state.noArrowAt = this.noArrowAt.slice(); + state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice(); + state.topicContext = this.topicContext; + state.labels = this.labels.slice(); + state.commentsLen = this.commentsLen; + state.commentStack = this.commentStack.slice(); + state.pos = this.pos; + state.type = this.type; + state.value = this.value; + state.start = this.start; + state.end = this.end; + state.lastTokEndLoc = this.lastTokEndLoc; + state.lastTokStartLoc = this.lastTokStartLoc; + state.context = this.context.slice(); + state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos; + state.strictErrors = this.strictErrors; + state.tokensLength = this.tokensLength; + return state; + } +} +var _isDigit = function isDigit(code) { + return code >= 48 && code <= 57; +}; +const forbiddenNumericSeparatorSiblings = { + decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]), + hex: new Set([46, 88, 95, 120]) +}; +const isAllowedNumericSeparatorSibling = { + bin: ch => ch === 48 || ch === 49, + oct: ch => ch >= 48 && ch <= 55, + dec: ch => ch >= 48 && ch <= 57, + hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102 +}; +function readStringContents(type, input, pos, lineStart, curLine, errors) { + const initialPos = pos; + const initialLineStart = lineStart; + const initialCurLine = curLine; + let out = ""; + let firstInvalidLoc = null; + let chunkStart = pos; + const { + length + } = input; + for (;;) { + if (pos >= length) { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + out += input.slice(chunkStart, pos); + break; + } + const ch = input.charCodeAt(pos); + if (isStringEnd(type, ch, input, pos)) { + out += input.slice(chunkStart, pos); + break; + } + if (ch === 92) { + out += input.slice(chunkStart, pos); + const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors); + if (res.ch === null && !firstInvalidLoc) { + firstInvalidLoc = { + pos, + lineStart, + curLine + }; + } else { + out += res.ch; + } + ({ + pos, + lineStart, + curLine + } = res); + chunkStart = pos; + } else if (ch === 8232 || ch === 8233) { + ++pos; + ++curLine; + lineStart = pos; + } else if (ch === 10 || ch === 13) { + if (type === "template") { + out += input.slice(chunkStart, pos) + "\n"; + ++pos; + if (ch === 13 && input.charCodeAt(pos) === 10) { + ++pos; + } + ++curLine; + chunkStart = lineStart = pos; + } else { + errors.unterminated(initialPos, initialLineStart, initialCurLine); + } + } else { + ++pos; + } + } + return { + pos, + str: out, + firstInvalidLoc, + lineStart, + curLine, + containsInvalid: !!firstInvalidLoc + }; +} +function isStringEnd(type, ch, input, pos) { + if (type === "template") { + return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123; + } + return ch === (type === "double" ? 34 : 39); +} +function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { + const throwOnInvalid = !inTemplate; + pos++; + const res = ch => ({ + pos, + ch, + lineStart, + curLine + }); + const ch = input.charCodeAt(pos++); + switch (ch) { + case 110: + return res("\n"); + case 114: + return res("\r"); + case 120: + { + let code; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCharCode(code)); + } + case 117: + { + let code; + ({ + code, + pos + } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors)); + return res(code === null ? null : String.fromCodePoint(code)); + } + case 116: + return res("\t"); + case 98: + return res("\b"); + case 118: + return res("\u000b"); + case 102: + return res("\f"); + case 13: + if (input.charCodeAt(pos) === 10) { + ++pos; + } + case 10: + lineStart = pos; + ++curLine; + case 8232: + case 8233: + return res(""); + case 56: + case 57: + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(pos - 1, lineStart, curLine); + } + default: + if (ch >= 48 && ch <= 55) { + const startPos = pos - 1; + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); + let octalStr = match[0]; + let octal = parseInt(octalStr, 8); + if (octal > 255) { + octalStr = octalStr.slice(0, -1); + octal = parseInt(octalStr, 8); + } + pos += octalStr.length - 1; + const next = input.charCodeAt(pos); + if (octalStr !== "0" || next === 56 || next === 57) { + if (inTemplate) { + return res(null); + } else { + errors.strictNumericEscape(startPos, lineStart, curLine); + } + } + return res(String.fromCharCode(octal)); + } + return res(String.fromCharCode(ch)); + } +} +function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) { + const initialPos = pos; + let n; + ({ + n, + pos + } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid)); + if (n === null) { + if (throwOnInvalid) { + errors.invalidEscapeSequence(initialPos, lineStart, curLine); + } else { + pos = initialPos - 1; + } + } + return { + code: n, + pos + }; +} +function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) { + const start = pos; + const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; + const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin; + let invalid = false; + let total = 0; + for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { + const code = input.charCodeAt(pos); + let val; + if (code === 95 && allowNumSeparator !== "bail") { + const prev = input.charCodeAt(pos - 1); + const next = input.charCodeAt(pos + 1); + if (!allowNumSeparator) { + if (bailOnError) return { + n: null, + pos + }; + errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine); + } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) { + if (bailOnError) return { + n: null, + pos + }; + errors.unexpectedNumericSeparator(pos, lineStart, curLine); + } + ++pos; + continue; + } + if (code >= 97) { + val = code - 97 + 10; + } else if (code >= 65) { + val = code - 65 + 10; + } else if (_isDigit(code)) { + val = code - 48; + } else { + val = Infinity; + } + if (val >= radix) { + if (val <= 9 && bailOnError) { + return { + n: null, + pos + }; + } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) { + val = 0; + } else if (forceLen) { + val = 0; + invalid = true; + } else { + break; + } + } + ++pos; + total = total * radix + val; + } + if (pos === start || len != null && pos - start !== len || invalid) { + return { + n: null, + pos + }; + } + return { + n: total, + pos + }; +} +function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) { + const ch = input.charCodeAt(pos); + let code; + if (ch === 123) { + ++pos; + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors)); + ++pos; + if (code !== null && code > 0x10ffff) { + if (throwOnInvalid) { + errors.invalidCodePoint(pos, lineStart, curLine); + } else { + return { + code: null, + pos + }; + } + } + } else { + ({ + code, + pos + } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors)); + } + return { + code, + pos + }; +} +function buildPosition(pos, lineStart, curLine) { + return new Position(curLine, pos - lineStart, pos); +} +const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); +class Token { + constructor(state) { + const startIndex = state.startIndex || 0; + this.type = state.type; + this.value = state.value; + this.start = startIndex + state.start; + this.end = startIndex + state.end; + this.loc = new SourceLocation(state.startLoc, state.endLoc); + } +} +class Tokenizer extends CommentsParser { + constructor(options, input) { + super(); + this.isLookahead = void 0; + this.tokens = []; + this.errorHandlers_readInt = { + invalidDigit: (pos, lineStart, curLine, radix) => { + if (!(this.optionFlags & 1024)) return false; + this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { + radix + }); + return true; + }, + numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence), + unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator) + }; + this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, { + invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence), + invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint) + }); + this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: (pos, lineStart, curLine) => { + this.recordStrictModeErrors(Errors.StrictNumericEscape, buildPosition(pos, lineStart, curLine)); + }, + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedString, buildPosition(pos - 1, lineStart, curLine)); + } + }); + this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, { + strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape), + unterminated: (pos, lineStart, curLine) => { + throw this.raise(Errors.UnterminatedTemplate, buildPosition(pos, lineStart, curLine)); + } + }); + this.state = new State(); + this.state.init(options); + this.input = input; + this.length = input.length; + this.comments = []; + this.isLookahead = false; + } + pushToken(token) { + this.tokens.length = this.state.tokensLength; + this.tokens.push(token); + ++this.state.tokensLength; + } + next() { + this.checkKeywordEscapes(); + if (this.optionFlags & 128) { + this.pushToken(new Token(this.state)); + } + this.state.lastTokEndLoc = this.state.endLoc; + this.state.lastTokStartLoc = this.state.startLoc; + this.nextToken(); + } + eat(type) { + if (this.match(type)) { + this.next(); + return true; + } else { + return false; + } + } + match(type) { + return this.state.type === type; + } + createLookaheadState(state) { + return { + pos: state.pos, + value: null, + type: state.type, + start: state.start, + end: state.end, + context: [this.curContext()], + inType: state.inType, + startLoc: state.startLoc, + lastTokEndLoc: state.lastTokEndLoc, + curLine: state.curLine, + lineStart: state.lineStart, + curPosition: state.curPosition + }; + } + lookahead() { + const old = this.state; + this.state = this.createLookaheadState(old); + this.isLookahead = true; + this.nextToken(); + this.isLookahead = false; + const curr = this.state; + this.state = old; + return curr; + } + nextTokenStart() { + return this.nextTokenStartSince(this.state.pos); + } + nextTokenStartSince(pos) { + skipWhiteSpace.lastIndex = pos; + return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; + } + lookaheadCharCode() { + return this.input.charCodeAt(this.nextTokenStart()); + } + nextTokenInLineStart() { + return this.nextTokenInLineStartSince(this.state.pos); + } + nextTokenInLineStartSince(pos) { + skipWhiteSpaceInLine.lastIndex = pos; + return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos; + } + lookaheadInLineCharCode() { + return this.input.charCodeAt(this.nextTokenInLineStart()); + } + codePointAtPos(pos) { + let cp = this.input.charCodeAt(pos); + if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { + const trail = this.input.charCodeAt(pos); + if ((trail & 0xfc00) === 0xdc00) { + cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); + } + } + return cp; + } + setStrict(strict) { + this.state.strict = strict; + if (strict) { + this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, at)); + this.state.strictErrors.clear(); + } + } + curContext() { + return this.state.context[this.state.context.length - 1]; + } + nextToken() { + this.skipSpace(); + this.state.start = this.state.pos; + if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); + if (this.state.pos >= this.length) { + this.finishToken(140); + return; + } + this.getTokenFromCode(this.codePointAtPos(this.state.pos)); + } + skipBlockComment(commentEnd) { + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + const start = this.state.pos; + const end = this.input.indexOf(commentEnd, start + 2); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + this.state.pos = end + commentEnd.length; + lineBreakG.lastIndex = start + 2; + while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { + ++this.state.curLine; + this.state.lineStart = lineBreakG.lastIndex; + } + if (this.isLookahead) return; + const comment = { + type: "CommentBlock", + value: this.input.slice(start + 2, end), + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end + commentEnd.length), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 128) this.pushToken(comment); + return comment; + } + skipLineComment(startSkip) { + const start = this.state.pos; + let startLoc; + if (!this.isLookahead) startLoc = this.state.curPosition(); + let ch = this.input.charCodeAt(this.state.pos += startSkip); + if (this.state.pos < this.length) { + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + } + if (this.isLookahead) return; + const end = this.state.pos; + const value = this.input.slice(start + startSkip, end); + const comment = { + type: "CommentLine", + value, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end), + loc: new SourceLocation(startLoc, this.state.curPosition()) + }; + if (this.optionFlags & 128) this.pushToken(comment); + return comment; + } + skipSpace() { + const spaceStart = this.state.pos; + const comments = this.optionFlags & 2048 ? [] : null; + loop: while (this.state.pos < this.length) { + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 32: + case 160: + case 9: + ++this.state.pos; + break; + case 13: + if (this.input.charCodeAt(this.state.pos + 1) === 10) { + ++this.state.pos; + } + case 10: + case 8232: + case 8233: + ++this.state.pos; + ++this.state.curLine; + this.state.lineStart = this.state.pos; + break; + case 47: + switch (this.input.charCodeAt(this.state.pos + 1)) { + case 42: + { + const comment = this.skipBlockComment("*/"); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + case 47: + { + const comment = this.skipLineComment(2); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + break; + } + default: + break loop; + } + break; + default: + if (isWhitespace(ch)) { + ++this.state.pos; + } else if (ch === 45 && !this.inModule && this.optionFlags & 4096) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { + const comment = this.skipLineComment(3); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else if (ch === 60 && !this.inModule && this.optionFlags & 4096) { + const pos = this.state.pos; + if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { + const comment = this.skipLineComment(4); + if (comment !== undefined) { + this.addComment(comment); + comments == null || comments.push(comment); + } + } else { + break loop; + } + } else { + break loop; + } + } + } + if ((comments == null ? void 0 : comments.length) > 0) { + const end = this.state.pos; + const commentWhitespace = { + start: this.sourceToOffsetPos(spaceStart), + end: this.sourceToOffsetPos(end), + comments, + leadingNode: null, + trailingNode: null, + containingNode: null + }; + this.state.commentStack.push(commentWhitespace); + } + } + finishToken(type, val) { + this.state.end = this.state.pos; + this.state.endLoc = this.state.curPosition(); + const prevType = this.state.type; + this.state.type = type; + this.state.value = val; + if (!this.isLookahead) { + this.updateContext(prevType); + } + } + replaceToken(type) { + this.state.type = type; + this.updateContext(); + } + readToken_numberSign() { + if (this.state.pos === 0 && this.readToken_interpreter()) { + return; + } + const nextPos = this.state.pos + 1; + const next = this.codePointAtPos(nextPos); + if (next >= 48 && next <= 57) { + throw this.raise(Errors.UnexpectedDigitAfterHash, this.state.curPosition()); + } + if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { + this.expectPlugin("recordAndTuple"); + if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") { + throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + if (next === 123) { + this.finishToken(7); + } else { + this.finishToken(1); + } + } else if (isIdentifierStart(next)) { + ++this.state.pos; + this.finishToken(139, this.readWord1(next)); + } else if (next === 92) { + ++this.state.pos; + this.finishToken(139, this.readWord1()); + } else { + this.finishOp(27, 1); + } + } + readToken_dot() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next >= 48 && next <= 57) { + this.readNumber(true); + return; + } + if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { + this.state.pos += 3; + this.finishToken(21); + } else { + ++this.state.pos; + this.finishToken(16); + } + } + readToken_slash() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(31, 2); + } else { + this.finishOp(56, 1); + } + } + readToken_interpreter() { + if (this.state.pos !== 0 || this.length < 2) return false; + let ch = this.input.charCodeAt(this.state.pos + 1); + if (ch !== 33) return false; + const start = this.state.pos; + this.state.pos += 1; + while (!isNewLine(ch) && ++this.state.pos < this.length) { + ch = this.input.charCodeAt(this.state.pos); + } + const value = this.input.slice(start + 2, this.state.pos); + this.finishToken(28, value); + return true; + } + readToken_mult_modulo(code) { + let type = code === 42 ? 55 : 54; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 42) { + width++; + next = this.input.charCodeAt(this.state.pos + 2); + type = 57; + } + if (next === 61 && !this.state.inType) { + width++; + type = code === 37 ? 33 : 30; + } + this.finishOp(type, width); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + if (this.input.charCodeAt(this.state.pos + 2) === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(code === 124 ? 41 : 42, 2); + } + return; + } + if (code === 124) { + if (next === 62) { + this.finishOp(39, 2); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 125) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(9); + return; + } + if (this.hasPlugin("recordAndTuple") && next === 93) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(4); + return; + } + } + if (next === 61) { + this.finishOp(30, 2); + return; + } + this.finishOp(code === 124 ? 43 : 45, 1); + } + readToken_caret() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61 && !this.state.inType) { + this.finishOp(32, 2); + } else if (next === 94 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "^^" + }])) { + this.finishOp(37, 2); + const lookaheadCh = this.input.codePointAt(this.state.pos); + if (lookaheadCh === 94) { + this.unexpected(); + } + } else { + this.finishOp(44, 1); + } + } + readToken_atSign() { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 64 && this.hasPlugin(["pipelineOperator", { + proposal: "hack", + topicToken: "@@" + }])) { + this.finishOp(38, 2); + } else { + this.finishOp(26, 1); + } + } + readToken_plus_min(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === code) { + this.finishOp(34, 2); + return; + } + if (next === 61) { + this.finishOp(30, 2); + } else { + this.finishOp(53, 1); + } + } + readToken_lt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 60) { + if (this.input.charCodeAt(pos + 2) === 61) { + this.finishOp(30, 3); + return; + } + this.finishOp(51, 2); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(47, 1); + } + readToken_gt() { + const { + pos + } = this.state; + const next = this.input.charCodeAt(pos + 1); + if (next === 62) { + const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2; + if (this.input.charCodeAt(pos + size) === 61) { + this.finishOp(30, size + 1); + return; + } + this.finishOp(52, size); + return; + } + if (next === 61) { + this.finishOp(49, 2); + return; + } + this.finishOp(48, 1); + } + readToken_eq_excl(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 61) { + this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); + return; + } + if (code === 61 && next === 62) { + this.state.pos += 2; + this.finishToken(19); + return; + } + this.finishOp(code === 61 ? 29 : 35, 1); + } + readToken_question() { + const next = this.input.charCodeAt(this.state.pos + 1); + const next2 = this.input.charCodeAt(this.state.pos + 2); + if (next === 63) { + if (next2 === 61) { + this.finishOp(30, 3); + } else { + this.finishOp(40, 2); + } + } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { + this.state.pos += 2; + this.finishToken(18); + } else { + ++this.state.pos; + this.finishToken(17); + } + } + getTokenFromCode(code) { + switch (code) { + case 46: + this.readToken_dot(); + return; + case 40: + ++this.state.pos; + this.finishToken(10); + return; + case 41: + ++this.state.pos; + this.finishToken(11); + return; + case 59: + ++this.state.pos; + this.finishToken(13); + return; + case 44: + ++this.state.pos; + this.finishToken(12); + return; + case 91: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(2); + } else { + ++this.state.pos; + this.finishToken(0); + } + return; + case 93: + ++this.state.pos; + this.finishToken(3); + return; + case 123: + if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { + if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { + throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, this.state.curPosition()); + } + this.state.pos += 2; + this.finishToken(6); + } else { + ++this.state.pos; + this.finishToken(5); + } + return; + case 125: + ++this.state.pos; + this.finishToken(8); + return; + case 58: + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + this.finishOp(15, 2); + } else { + ++this.state.pos; + this.finishToken(14); + } + return; + case 63: + this.readToken_question(); + return; + case 96: + this.readTemplateToken(); + return; + case 48: + { + const next = this.input.charCodeAt(this.state.pos + 1); + if (next === 120 || next === 88) { + this.readRadixNumber(16); + return; + } + if (next === 111 || next === 79) { + this.readRadixNumber(8); + return; + } + if (next === 98 || next === 66) { + this.readRadixNumber(2); + return; + } + } + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + this.readNumber(false); + return; + case 34: + case 39: + this.readString(code); + return; + case 47: + this.readToken_slash(); + return; + case 37: + case 42: + this.readToken_mult_modulo(code); + return; + case 124: + case 38: + this.readToken_pipe_amp(code); + return; + case 94: + this.readToken_caret(); + return; + case 43: + case 45: + this.readToken_plus_min(code); + return; + case 60: + this.readToken_lt(); + return; + case 62: + this.readToken_gt(); + return; + case 61: + case 33: + this.readToken_eq_excl(code); + return; + case 126: + this.finishOp(36, 1); + return; + case 64: + this.readToken_atSign(); + return; + case 35: + this.readToken_numberSign(); + return; + case 92: + this.readWord(); + return; + default: + if (isIdentifierStart(code)) { + this.readWord(code); + return; + } + } + throw this.raise(Errors.InvalidOrUnexpectedToken, this.state.curPosition(), { + unexpected: String.fromCodePoint(code) + }); + } + finishOp(type, size) { + const str = this.input.slice(this.state.pos, this.state.pos + size); + this.state.pos += size; + this.finishToken(type, str); + } + readRegexp() { + const startLoc = this.state.startLoc; + const start = this.state.start + 1; + let escaped, inClass; + let { + pos + } = this.state; + for (;; ++pos) { + if (pos >= this.length) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + const ch = this.input.charCodeAt(pos); + if (isNewLine(ch)) { + throw this.raise(Errors.UnterminatedRegExp, createPositionWithColumnOffset(startLoc, 1)); + } + if (escaped) { + escaped = false; + } else { + if (ch === 91) { + inClass = true; + } else if (ch === 93 && inClass) { + inClass = false; + } else if (ch === 47 && !inClass) { + break; + } + escaped = ch === 92; + } + } + const content = this.input.slice(start, pos); + ++pos; + let mods = ""; + const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start); + while (pos < this.length) { + const cp = this.codePointAtPos(pos); + const char = String.fromCharCode(cp); + if (VALID_REGEX_FLAGS.has(cp)) { + if (cp === 118) { + if (mods.includes("u")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } else if (cp === 117) { + if (mods.includes("v")) { + this.raise(Errors.IncompatibleRegExpUVFlags, nextPos()); + } + } + if (mods.includes(char)) { + this.raise(Errors.DuplicateRegExpFlags, nextPos()); + } + } else if (isIdentifierChar(cp) || cp === 92) { + this.raise(Errors.MalformedRegExpFlags, nextPos()); + } else { + break; + } + ++pos; + mods += char; + } + this.state.pos = pos; + this.finishToken(138, { + pattern: content, + flags: mods + }); + } + readInt(radix, len, forceLen = false, allowNumSeparator = true) { + const { + n, + pos + } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false); + this.state.pos = pos; + return n; + } + readRadixNumber(radix) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isBigInt = false; + this.state.pos += 2; + const val = this.readInt(radix); + if (val == null) { + this.raise(Errors.InvalidDigit, createPositionWithColumnOffset(startLoc, 2), { + radix + }); + } + const next = this.input.charCodeAt(this.state.pos); + if (next === 110) { + ++this.state.pos; + isBigInt = true; + } else if (next === 109) { + throw this.raise(Errors.InvalidDecimal, startLoc); + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + if (isBigInt) { + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(136, str); + return; + } + this.finishToken(135, val); + } + readNumber(startsWithDot) { + const start = this.state.pos; + const startLoc = this.state.curPosition(); + let isFloat = false; + let isBigInt = false; + let hasExponent = false; + let isOctal = false; + if (!startsWithDot && this.readInt(10) === null) { + this.raise(Errors.InvalidNumber, this.state.curPosition()); + } + const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; + if (hasLeadingZero) { + const integer = this.input.slice(start, this.state.pos); + this.recordStrictModeErrors(Errors.StrictOctalLiteral, startLoc); + if (!this.state.strict) { + const underscorePos = integer.indexOf("_"); + if (underscorePos > 0) { + this.raise(Errors.ZeroDigitNumericSeparator, createPositionWithColumnOffset(startLoc, underscorePos)); + } + } + isOctal = hasLeadingZero && !/[89]/.test(integer); + } + let next = this.input.charCodeAt(this.state.pos); + if (next === 46 && !isOctal) { + ++this.state.pos; + this.readInt(10); + isFloat = true; + next = this.input.charCodeAt(this.state.pos); + } + if ((next === 69 || next === 101) && !isOctal) { + next = this.input.charCodeAt(++this.state.pos); + if (next === 43 || next === 45) { + ++this.state.pos; + } + if (this.readInt(10) === null) { + this.raise(Errors.InvalidOrMissingExponent, startLoc); + } + isFloat = true; + hasExponent = true; + next = this.input.charCodeAt(this.state.pos); + } + if (next === 110) { + if (isFloat || hasLeadingZero) { + this.raise(Errors.InvalidBigIntLiteral, startLoc); + } + ++this.state.pos; + isBigInt = true; + } + if (next === 109) { + this.expectPlugin("decimal", this.state.curPosition()); + if (hasExponent || hasLeadingZero) { + this.raise(Errors.InvalidDecimal, startLoc); + } + ++this.state.pos; + var isDecimal = true; + } + if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { + throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); + } + const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); + if (isBigInt) { + this.finishToken(136, str); + return; + } + if (isDecimal) { + this.finishToken(137, str); + return; + } + const val = isOctal ? parseInt(str, 8) : parseFloat(str); + this.finishToken(135, val); + } + readCodePoint(throwOnInvalid) { + const { + code, + pos + } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint); + this.state.pos = pos; + return code; + } + readString(quote) { + const { + str, + pos, + curLine, + lineStart + } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + this.finishToken(134, str); + } + readTemplateContinuation() { + if (!this.match(8)) { + this.unexpected(null, 8); + } + this.state.pos--; + this.readTemplateToken(); + } + readTemplateToken() { + const opening = this.input[this.state.pos]; + const { + str, + firstInvalidLoc, + pos, + curLine, + lineStart + } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template); + this.state.pos = pos + 1; + this.state.lineStart = lineStart; + this.state.curLine = curLine; + if (firstInvalidLoc) { + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos)); + } + if (this.input.codePointAt(pos) === 96) { + this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); + } else { + this.state.pos++; + this.finishToken(25, firstInvalidLoc ? null : opening + str + "${"); + } + } + recordStrictModeErrors(toParseError, at) { + const index = at.index; + if (this.state.strict && !this.state.strictErrors.has(index)) { + this.raise(toParseError, at); + } else { + this.state.strictErrors.set(index, [toParseError, at]); + } + } + readWord1(firstCode) { + this.state.containsEsc = false; + let word = ""; + const start = this.state.pos; + let chunkStart = this.state.pos; + if (firstCode !== undefined) { + this.state.pos += firstCode <= 0xffff ? 1 : 2; + } + while (this.state.pos < this.length) { + const ch = this.codePointAtPos(this.state.pos); + if (isIdentifierChar(ch)) { + this.state.pos += ch <= 0xffff ? 1 : 2; + } else if (ch === 92) { + this.state.containsEsc = true; + word += this.input.slice(chunkStart, this.state.pos); + const escStart = this.state.curPosition(); + const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; + if (this.input.charCodeAt(++this.state.pos) !== 117) { + this.raise(Errors.MissingUnicodeEscape, this.state.curPosition()); + chunkStart = this.state.pos - 1; + continue; + } + ++this.state.pos; + const esc = this.readCodePoint(true); + if (esc !== null) { + if (!identifierCheck(esc)) { + this.raise(Errors.EscapedCharNotAnIdentifier, escStart); + } + word += String.fromCodePoint(esc); + } + chunkStart = this.state.pos; + } else { + break; + } + } + return word + this.input.slice(chunkStart, this.state.pos); + } + readWord(firstCode) { + const word = this.readWord1(firstCode); + const type = keywords$1.get(word); + if (type !== undefined) { + this.finishToken(type, tokenLabelName(type)); + } else { + this.finishToken(132, word); + } + } + checkKeywordEscapes() { + const { + type + } = this.state; + if (tokenIsKeyword(type) && this.state.containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.startLoc, { + reservedWord: tokenLabelName(type) + }); + } + } + raise(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const error = toParseError(loc, details); + if (!(this.optionFlags & 1024)) throw error; + if (!this.isLookahead) this.state.errors.push(error); + return error; + } + raiseOverwrite(toParseError, at, details = {}) { + const loc = at instanceof Position ? at : at.loc.start; + const pos = loc.index; + const errors = this.state.errors; + for (let i = errors.length - 1; i >= 0; i--) { + const error = errors[i]; + if (error.loc.index === pos) { + return errors[i] = toParseError(loc, details); + } + if (error.loc.index < pos) break; + } + return this.raise(toParseError, at, details); + } + updateContext(prevType) {} + unexpected(loc, type) { + throw this.raise(Errors.UnexpectedToken, loc != null ? loc : this.state.startLoc, { + expected: type ? tokenLabelName(type) : null + }); + } + expectPlugin(pluginName, loc) { + if (this.hasPlugin(pluginName)) { + return true; + } + throw this.raise(Errors.MissingPlugin, loc != null ? loc : this.state.startLoc, { + missingPlugin: [pluginName] + }); + } + expectOnePlugin(pluginNames) { + if (!pluginNames.some(name => this.hasPlugin(name))) { + throw this.raise(Errors.MissingOneOfPlugins, this.state.startLoc, { + missingPlugin: pluginNames + }); + } + } + errorBuilder(error) { + return (pos, lineStart, curLine) => { + this.raise(error, buildPosition(pos, lineStart, curLine)); + }; + } +} +class ClassScope { + constructor() { + this.privateNames = new Set(); + this.loneAccessors = new Map(); + this.undefinedPrivateNames = new Map(); + } +} +class ClassScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = []; + this.undefinedPrivateNames = new Map(); + this.parser = parser; + } + current() { + return this.stack[this.stack.length - 1]; + } + enter() { + this.stack.push(new ClassScope()); + } + exit() { + const oldClassScope = this.stack.pop(); + const current = this.current(); + for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) { + if (current) { + if (!current.undefinedPrivateNames.has(name)) { + current.undefinedPrivateNames.set(name, loc); + } + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } + } + declarePrivateName(name, elementType, loc) { + const { + privateNames, + loneAccessors, + undefinedPrivateNames + } = this.current(); + let redefined = privateNames.has(name); + if (elementType & 3) { + const accessor = redefined && loneAccessors.get(name); + if (accessor) { + const oldStatic = accessor & 4; + const newStatic = elementType & 4; + const oldKind = accessor & 3; + const newKind = elementType & 3; + redefined = oldKind === newKind || oldStatic !== newStatic; + if (!redefined) loneAccessors.delete(name); + } else if (!redefined) { + loneAccessors.set(name, elementType); + } + } + if (redefined) { + this.parser.raise(Errors.PrivateNameRedeclaration, loc, { + identifierName: name + }); + } + privateNames.add(name); + undefinedPrivateNames.delete(name); + } + usePrivateName(name, loc) { + let classScope; + for (classScope of this.stack) { + if (classScope.privateNames.has(name)) return; + } + if (classScope) { + classScope.undefinedPrivateNames.set(name, loc); + } else { + this.parser.raise(Errors.InvalidPrivateFieldResolution, loc, { + identifierName: name + }); + } + } +} +class ExpressionScope { + constructor(type = 0) { + this.type = type; + } + canBeArrowParameterDeclaration() { + return this.type === 2 || this.type === 1; + } + isCertainlyParameterDeclaration() { + return this.type === 3; + } +} +class ArrowHeadParsingScope extends ExpressionScope { + constructor(type) { + super(type); + this.declarationErrors = new Map(); + } + recordDeclarationError(ParsingErrorClass, at) { + const index = at.index; + this.declarationErrors.set(index, [ParsingErrorClass, at]); + } + clearDeclarationError(index) { + this.declarationErrors.delete(index); + } + iterateErrors(iterator) { + this.declarationErrors.forEach(iterator); + } +} +class ExpressionScopeHandler { + constructor(parser) { + this.parser = void 0; + this.stack = [new ExpressionScope()]; + this.parser = parser; + } + enter(scope) { + this.stack.push(scope); + } + exit() { + this.stack.pop(); + } + recordParameterInitializerError(toParseError, node) { + const origin = node.loc.start; + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (!scope.isCertainlyParameterDeclaration()) { + if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(toParseError, origin); + } else { + return; + } + scope = stack[--i]; + } + this.parser.raise(toParseError, origin); + } + recordArrowParameterBindingError(error, node) { + const { + stack + } = this; + const scope = stack[stack.length - 1]; + const origin = node.loc.start; + if (scope.isCertainlyParameterDeclaration()) { + this.parser.raise(error, origin); + } else if (scope.canBeArrowParameterDeclaration()) { + scope.recordDeclarationError(error, origin); + } else { + return; + } + } + recordAsyncArrowParametersError(at) { + const { + stack + } = this; + let i = stack.length - 1; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + if (scope.type === 2) { + scope.recordDeclarationError(Errors.AwaitBindingIdentifier, at); + } + scope = stack[--i]; + } + } + validateAsPattern() { + const { + stack + } = this; + const currentScope = stack[stack.length - 1]; + if (!currentScope.canBeArrowParameterDeclaration()) return; + currentScope.iterateErrors(([toParseError, loc]) => { + this.parser.raise(toParseError, loc); + let i = stack.length - 2; + let scope = stack[i]; + while (scope.canBeArrowParameterDeclaration()) { + scope.clearDeclarationError(loc.index); + scope = stack[--i]; + } + }); + } +} +function newParameterDeclarationScope() { + return new ExpressionScope(3); +} +function newArrowHeadScope() { + return new ArrowHeadParsingScope(1); +} +function newAsyncArrowScope() { + return new ArrowHeadParsingScope(2); +} +function newExpressionScope() { + return new ExpressionScope(); +} +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); +} +class UtilParser extends Tokenizer { + addExtra(node, key, value, enumerable = true) { + if (!node) return; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } + if (enumerable) { + extra[key] = value; + } else { + Object.defineProperty(extra, key, { + enumerable, + value + }); + } + } + isContextual(token) { + return this.state.type === token && !this.state.containsEsc; + } + isUnparsedContextual(nameStart, name) { + const nameEnd = nameStart + name.length; + if (this.input.slice(nameStart, nameEnd) === name) { + const nextCh = this.input.charCodeAt(nameEnd); + return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); + } + return false; + } + isLookaheadContextual(name) { + const next = this.nextTokenStart(); + return this.isUnparsedContextual(next, name); + } + eatContextual(token) { + if (this.isContextual(token)) { + this.next(); + return true; + } + return false; + } + expectContextual(token, toParseError) { + if (!this.eatContextual(token)) { + if (toParseError != null) { + throw this.raise(toParseError, this.state.startLoc); + } + this.unexpected(null, token); + } + } + canInsertSemicolon() { + return this.match(140) || this.match(8) || this.hasPrecedingLineBreak(); + } + hasPrecedingLineBreak() { + return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start); + } + hasFollowingLineBreak() { + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); + } + isLineTerminator() { + return this.eat(13) || this.canInsertSemicolon(); + } + semicolon(allowAsi = true) { + if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; + this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); + } + expect(type, loc) { + if (!this.eat(type)) { + this.unexpected(loc, type); + } + } + tryParse(fn, oldState = this.state.clone()) { + const abortSignal = { + node: null + }; + try { + const node = fn((node = null) => { + abortSignal.node = node; + throw abortSignal; + }); + if (this.state.errors.length > oldState.errors.length) { + const failState = this.state; + this.state = oldState; + this.state.tokensLength = failState.tokensLength; + return { + node, + error: failState.errors[oldState.errors.length], + thrown: false, + aborted: false, + failState + }; + } + return { + node, + error: null, + thrown: false, + aborted: false, + failState: null + }; + } catch (error) { + const failState = this.state; + this.state = oldState; + if (error instanceof SyntaxError) { + return { + node: null, + error, + thrown: true, + aborted: false, + failState + }; + } + if (error === abortSignal) { + return { + node: abortSignal.node, + error: null, + thrown: false, + aborted: true, + failState + }; + } + throw error; + } + } + checkExpressionErrors(refExpressionErrors, andThrow) { + if (!refExpressionErrors) return false; + const { + shorthandAssignLoc, + doubleProtoLoc, + privateKeyLoc, + optionalParametersLoc + } = refExpressionErrors; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc; + if (!andThrow) { + return hasErrors; + } + if (shorthandAssignLoc != null) { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + if (doubleProtoLoc != null) { + this.raise(Errors.DuplicateProto, doubleProtoLoc); + } + if (privateKeyLoc != null) { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + if (optionalParametersLoc != null) { + this.unexpected(optionalParametersLoc); + } + } + isLiteralPropertyName() { + return tokenIsLiteralPropertyName(this.state.type); + } + isPrivateName(node) { + return node.type === "PrivateName"; + } + getPrivateNameSV(node) { + return node.id.name; + } + hasPropertyAsPrivateName(node) { + return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); + } + isObjectProperty(node) { + return node.type === "ObjectProperty"; + } + isObjectMethod(node) { + return node.type === "ObjectMethod"; + } + initializeScopes(inModule = this.options.sourceType === "module") { + const oldLabels = this.state.labels; + this.state.labels = []; + const oldExportedIdentifiers = this.exportedIdentifiers; + this.exportedIdentifiers = new Set(); + const oldInModule = this.inModule; + this.inModule = inModule; + const oldScope = this.scope; + const ScopeHandler = this.getScopeHandler(); + this.scope = new ScopeHandler(this, inModule); + const oldProdParam = this.prodParam; + this.prodParam = new ProductionParameterHandler(); + const oldClassScope = this.classScope; + this.classScope = new ClassScopeHandler(this); + const oldExpressionScope = this.expressionScope; + this.expressionScope = new ExpressionScopeHandler(this); + return () => { + this.state.labels = oldLabels; + this.exportedIdentifiers = oldExportedIdentifiers; + this.inModule = oldInModule; + this.scope = oldScope; + this.prodParam = oldProdParam; + this.classScope = oldClassScope; + this.expressionScope = oldExpressionScope; + }; + } + enterInitialScopes() { + let paramFlags = 0; + if (this.inModule) { + paramFlags |= 2; + } + this.scope.enter(1); + this.prodParam.enter(paramFlags); + } + checkDestructuringPrivate(refExpressionErrors) { + const { + privateKeyLoc + } = refExpressionErrors; + if (privateKeyLoc !== null) { + this.expectPlugin("destructuringPrivate", privateKeyLoc); + } + } +} +class ExpressionErrors { + constructor() { + this.shorthandAssignLoc = null; + this.doubleProtoLoc = null; + this.privateKeyLoc = null; + this.optionalParametersLoc = null; + } +} +class Node { + constructor(parser, pos, loc) { + this.type = ""; + this.start = pos; + this.end = 0; + this.loc = new SourceLocation(loc); + if ((parser == null ? void 0 : parser.optionFlags) & 64) this.range = [pos, 0]; + if (parser != null && parser.filename) this.loc.filename = parser.filename; + } +} +const NodePrototype = Node.prototype; +{ + NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; + } + } + return newNode; + }; +} +function clonePlaceholder(node) { + return cloneIdentifier(node); +} +function cloneIdentifier(node) { + const { + type, + start, + end, + loc, + range, + extra, + name + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.name = name; + if (type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; +} +function cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + if (type === "Placeholder") { + return clonePlaceholder(node); + } + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + if (node.raw !== undefined) { + cloned.raw = node.raw; + } else { + cloned.extra = extra; + } + cloned.value = node.value; + return cloned; +} +class NodeUtils extends UtilParser { + startNode() { + const loc = this.state.startLoc; + return new Node(this, loc.index, loc); + } + startNodeAt(loc) { + return new Node(this, loc.index, loc); + } + startNodeAtNode(type) { + return this.startNodeAt(type.loc.start); + } + finishNode(node, type) { + return this.finishNodeAt(node, type, this.state.lastTokEndLoc); + } + finishNodeAt(node, type, endLoc) { + node.type = type; + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 64) node.range[1] = endLoc.index; + if (this.optionFlags & 2048) { + this.processComment(node); + } + return node; + } + resetStartLocation(node, startLoc) { + node.start = startLoc.index; + node.loc.start = startLoc; + if (this.optionFlags & 64) node.range[0] = startLoc.index; + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { + node.end = endLoc.index; + node.loc.end = endLoc; + if (this.optionFlags & 64) node.range[1] = endLoc.index; + } + resetStartLocationFromNode(node, locationNode) { + this.resetStartLocation(node, locationNode.loc.start); + } +} +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + finishToken(type, val) { + if (type !== 134 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } else { + this.unexpected(); + } + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(134)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + let bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + super.parseImport(bodyNode); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + bodyNode = this.flowParseDeclare(bodyNode, true); + } + body.push(bodyNode); + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.type = "ExportDeclaration"; + node.default = false; + delete node.exportKind; + } + node.type = "Declare" + node.type; + return node; + } + } + this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + finished.type = "DeclareTypeAlias"; + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + finished.type = "DeclareOpaqueType"; + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + flowParseTypeParameterInstantiationInExpression() { + if (this.reScan_lt() !== 47) return; + return this.flowParseTypeParameterInstantiation(); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + this.state.inType = true; + node.params = []; + this.flowInTopLevelContext(() => { + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + }); + this.state.inType = oldInType; + if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + if (this.reScan_lt() !== 47) return; + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + var _startLoc; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 134: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(136)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + this.unexpected(); + return; + case 135: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 136: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(2 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + if (canBePattern && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + { + node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression(); + } + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseFunctionParamType(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start))); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(11); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(11); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(11); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 135: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 134: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + jsxParseOpeningElementAfterName(node) { + if (this.shouldParseTypes()) { + if (this.match(47) || this.match(51)) { + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + } + } + return super.jsxParseOpeningElementAfterName(node); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}; +const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?" +}); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(143); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(142, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(134, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(141, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(141)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 143: + case 134: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(144)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(144); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(144); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 143: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 142: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(143)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(143); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(144); + return; + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(143); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 143) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 143) { + context.push(types.j_oTag); + } else if (type === 144) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}; +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } +} +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 256) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 256) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } +} +const unwrapParenthesizedExpression = node => { + return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; +}; +class LValParser extends NodeUtils { + toAssignable(node, isLHS = false) { + var _node$extra, _node$extra3; + let parenthesized = undefined; + if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { + parenthesized = unwrapParenthesizedExpression(node); + if (isLHS) { + if (parenthesized.type === "Identifier") { + this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); + } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } else { + this.raise(Errors.InvalidParenthesizedAssignment, node); + } + } + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + break; + case "ObjectExpression": + node.type = "ObjectPattern"; + for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { + var _node$extra2; + const prop = node.properties[i]; + const isLast = i === last; + this.toAssignableObjectExpressionProp(prop, isLast, isLHS); + if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, node.extra.trailingCommaLoc); + } + } + break; + case "ObjectProperty": + { + const { + key, + value + } = node; + if (this.isPrivateName(key)) { + this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start); + } + this.toAssignable(value, isLHS); + break; + } + case "SpreadElement": + { + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); + } + case "ArrayExpression": + node.type = "ArrayPattern"; + this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); + break; + case "AssignmentExpression": + if (node.operator !== "=") { + this.raise(Errors.MissingEqInAssignment, node.left.loc.end); + } + node.type = "AssignmentPattern"; + delete node.operator; + this.toAssignable(node.left, isLHS); + break; + case "ParenthesizedExpression": + this.toAssignable(parenthesized, isLHS); + break; + } + } + toAssignableObjectExpressionProp(prop, isLast, isLHS) { + if (prop.type === "ObjectMethod") { + this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); + } else if (prop.type === "SpreadElement") { + prop.type = "RestElement"; + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + if (!isLast) { + this.raise(Errors.RestTrailingComma, prop); + } + } else { + this.toAssignable(prop, isLHS); + } + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + const end = exprList.length - 1; + for (let i = 0; i <= end; i++) { + const elt = exprList[i]; + if (!elt) continue; + if (elt.type === "SpreadElement") { + elt.type = "RestElement"; + const arg = elt.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(elt, isLHS); + } + if (elt.type === "RestElement") { + if (i < end) { + this.raise(Errors.RestTrailingComma, elt); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, trailingCommaLoc); + } + } + } + } + isAssignable(node, isBinding) { + switch (node.type) { + case "Identifier": + case "ObjectPattern": + case "ArrayPattern": + case "AssignmentPattern": + case "RestElement": + return true; + case "ObjectExpression": + { + const last = node.properties.length - 1; + return node.properties.every((prop, i) => { + return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); + }); + } + case "ObjectProperty": + return this.isAssignable(node.value); + case "SpreadElement": + return this.isAssignable(node.argument); + case "ArrayExpression": + return node.elements.every(element => element === null || this.isAssignable(element)); + case "AssignmentExpression": + return node.operator === "="; + case "ParenthesizedExpression": + return this.isAssignable(node.expression); + case "MemberExpression": + case "OptionalMemberExpression": + return !isBinding; + default: + return false; + } + } + toReferencedList(exprList, isParenthesizedExpr) { + return exprList; + } + toReferencedListDeep(exprList, isParenthesizedExpr) { + this.toReferencedList(exprList, isParenthesizedExpr); + for (const expr of exprList) { + if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { + this.toReferencedListDeep(expr.elements); + } + } + } + parseSpread(refExpressionErrors) { + const node = this.startNode(); + this.next(); + node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined); + return this.finishNode(node, "SpreadElement"); + } + parseRestBinding() { + const node = this.startNode(); + this.next(); + node.argument = this.parseBindingAtom(); + return this.finishNode(node, "RestElement"); + } + parseBindingAtom() { + switch (this.state.type) { + case 0: + { + const node = this.startNode(); + this.next(); + node.elements = this.parseBindingList(3, 93, 1); + return this.finishNode(node, "ArrayPattern"); + } + case 5: + return this.parseObjectLike(8, true); + } + return this.parseIdentifier(); + } + parseBindingList(close, closeCharCode, flags) { + const allowEmpty = flags & 1; + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + } + if (allowEmpty && this.match(12)) { + elts.push(null); + } else if (this.eat(close)) { + break; + } else if (this.match(21)) { + let rest = this.parseRestBinding(); + if (this.hasPlugin("flow") || flags & 2) { + rest = this.parseFunctionParamType(rest); + } + elts.push(rest); + if (!this.checkCommaAfterRest(closeCharCode)) { + this.expect(close); + break; + } + } else { + const decorators = []; + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + elts.push(this.parseAssignableListItem(flags, decorators)); + } + } + return elts; + } + parseBindingRestProperty(prop) { + this.next(); + prop.argument = this.parseIdentifier(); + this.checkCommaAfterRest(125); + return this.finishNode(prop, "RestElement"); + } + parseBindingProperty() { + const { + type, + startLoc + } = this.state; + if (type === 21) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 139) { + this.expectPlugin("destructuringPrivate", startLoc); + this.classScope.usePrivateName(this.state.value, startLoc); + prop.key = this.parsePrivateName(); + } else { + this.parsePropertyName(prop); + } + prop.method = false; + return this.parseObjPropValue(prop, startLoc, false, false, true, false); + } + parseAssignableListItem(flags, decorators) { + const left = this.parseMaybeDefault(); + if (this.hasPlugin("flow") || flags & 2) { + this.parseFunctionParamType(left); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + parseFunctionParamType(param) { + return param; + } + parseMaybeDefault(startLoc, left) { + var _startLoc, _left; + (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; + left = (_left = left) != null ? _left : this.parseBindingAtom(); + if (!this.eat(29)) return left; + const node = this.startNodeAt(startLoc); + node.left = left; + node.right = this.parseMaybeAssignAllowIn(); + return this.finishNode(node, "AssignmentPattern"); + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + } + return false; + } + isOptionalMemberExpression(expression) { + return expression.type === "OptionalMemberExpression"; + } + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false) { + var _expression$extra; + const type = expression.type; + if (this.isObjectMethod(expression)) return; + const isOptionalMemberExpression = this.isOptionalMemberExpression(expression); + if (isOptionalMemberExpression || type === "MemberExpression") { + if (isOptionalMemberExpression) { + this.expectPlugin("optionalChainingAssign", expression.loc.start); + if (ancestor.type !== "AssignmentExpression") { + this.raise(Errors.InvalidLhsOptionalChaining, expression, { + ancestor + }); + } + } + if (binding !== 64) { + this.raise(Errors.InvalidPropertyBindingPattern, expression); + } + return; + } + if (type === "Identifier") { + this.checkIdentifier(expression, binding, strictModeChanged); + const { + name + } = expression; + if (checkClashes) { + if (checkClashes.has(name)) { + this.raise(Errors.ParamDupe, expression); + } else { + checkClashes.add(name); + } + } + return; + } + const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + if (validity === true) return; + if (validity === false) { + const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; + this.raise(ParseErrorClass, expression, { + ancestor + }); + return; + } + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } + const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { + type + } : ancestor; + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression); + } + } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression); + } + } + checkIdentifier(at, bindingType, strictModeChanged = false) { + if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) { + if (bindingType === 64) { + this.raise(Errors.StrictEvalArguments, at, { + referenceName: at.name + }); + } else { + this.raise(Errors.StrictEvalArgumentsBinding, at, { + bindingName: at.name + }); + } + } + if (bindingType & 8192 && at.name === "let") { + this.raise(Errors.LetInLexicalBinding, at); + } + if (!(bindingType & 64)) { + this.declareNameFromIdentifier(at, bindingType); + } + } + declareNameFromIdentifier(identifier, binding) { + this.scope.declareName(identifier.name, binding, identifier.loc.start); + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + case "Identifier": + case "MemberExpression": + break; + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + default: + this.raise(Errors.InvalidRestAssignmentPattern, node); + } + } + checkCommaAfterRest(close) { + if (!this.match(12)) { + return false; + } + this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, this.state.startLoc); + return true; + } +} +function nonNull(x) { + if (x == null) { + throw new Error(`Unexpected ${x} value.`); + } + return x; +} +function assert(x) { + if (!x) { + throw new Error("Assert fail"); + } +} +const TSErrors = ParseErrorEnum`typescript`({ + AbstractMethodHasImplementation: ({ + methodName + }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`, + AbstractPropertyHasInitializer: ({ + propertyName + }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, + AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", + ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", + ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", + DeclareAccessor: ({ + kind + }) => `'declare' is not allowed in ${kind}ters.`, + DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", + DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", + DuplicateAccessibilityModifier: ({ + modifier + }) => `Accessibility modifier already seen.`, + DuplicateModifier: ({ + modifier + }) => `Duplicate modifier: '${modifier}'.`, + EmptyHeritageClauseType: ({ + token + }) => `'${token}' list cannot be empty.`, + EmptyTypeArguments: "Type argument list cannot be empty.", + EmptyTypeParameters: "Type parameter list cannot be empty.", + ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", + ImportAliasHasImportType: "An import alias can not use 'import type'.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier", + IncompatibleModifiers: ({ + modifiers + }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`, + IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", + IndexSignatureHasAccessibility: ({ + modifier + }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`, + IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", + IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", + IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", + InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidModifierOnTypeMember: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type member.`, + InvalidModifierOnTypeParameter: ({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`, + InvalidModifierOnTypeParameterPositions: ({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifiersOrder: ({ + orderedModifiers + }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, + InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.", + InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", + MissingInterfaceName: "'interface' declarations must be followed by an identifier.", + NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", + NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", + OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", + OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", + PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", + PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", + PrivateElementHasAccessibility: ({ + modifier + }) => `Private elements cannot have an accessibility modifier ('${modifier}').`, + ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", + ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.", + ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SingleTypeParameterWithoutTrailingComma: ({ + typeParameterName + }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, + StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", + TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).", + TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", + TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.", + TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.", + UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", + UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", + UnexpectedTypeAnnotation: "Did not expect a type annotation here.", + UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", + UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", + UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", + UnsupportedSignatureParameterKind: ({ + type + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.` +}); +function keywordTypeFromName(value) { + switch (value) { + case "any": + return "TSAnyKeyword"; + case "boolean": + return "TSBooleanKeyword"; + case "bigint": + return "TSBigIntKeyword"; + case "never": + return "TSNeverKeyword"; + case "number": + return "TSNumberKeyword"; + case "object": + return "TSObjectKeyword"; + case "string": + return "TSStringKeyword"; + case "symbol": + return "TSSymbolKeyword"; + case "undefined": + return "TSUndefinedKeyword"; + case "unknown": + return "TSUnknownKeyword"; + default: + return undefined; + } +} +function tsIsAccessModifier(modifier) { + return modifier === "private" || modifier === "public" || modifier === "protected"; +} +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} +var typescript = superClass => class TypeScriptParserMixin extends superClass { + constructor(...args) { + super(...args); + this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out"], + disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + this.tsParseConstModifier = this.tsParseModifiers.bind(this, { + allowedModifiers: ["const"], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, { + allowedModifiers: ["in", "out", "const"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + getScopeHandler() { + return TypeScriptScopeHandler; + } + tsIsIdentifier() { + return tokenIsIdentifier(this.state.type); + } + tsTokenCanFollowModifier() { + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName(); + } + tsNextTokenOnSameLineAndCanFollowModifier() { + this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } + return this.tsTokenCanFollowModifier(); + } + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { + return undefined; + } + const modifier = this.state.value; + if (allowedModifiers.includes(modifier)) { + if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { + return undefined; + } + if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { + return modifier; + } + } + return undefined; + } + tsParseModifiers({ + allowedModifiers, + disallowedModifiers, + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember + }, modified) { + const enforceOrder = (loc, modifier, before, after) => { + if (modifier === before && modified[after]) { + this.raise(TSErrors.InvalidModifiersOrder, loc, { + orderedModifiers: [before, after] + }); + } + }; + const incompatible = (loc, modifier, mod1, mod2) => { + if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { + this.raise(TSErrors.IncompatibleModifiers, loc, { + modifiers: [mod1, mod2] + }); + } + }; + for (;;) { + const { + startLoc + } = this.state; + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock); + if (!modifier) break; + if (tsIsAccessModifier(modifier)) { + if (modified.accessibility) { + this.raise(TSErrors.DuplicateAccessibilityModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, modifier, "override"); + enforceOrder(startLoc, modifier, modifier, "static"); + enforceOrder(startLoc, modifier, modifier, "readonly"); + modified.accessibility = modifier; + } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); + } else { + if (hasOwnProperty.call(modified, modifier)) { + this.raise(TSErrors.DuplicateModifier, startLoc, { + modifier + }); + } else { + enforceOrder(startLoc, modifier, "static", "readonly"); + enforceOrder(startLoc, modifier, "static", "override"); + enforceOrder(startLoc, modifier, "override", "readonly"); + enforceOrder(startLoc, modifier, "abstract", "override"); + incompatible(startLoc, modifier, "declare", "override"); + incompatible(startLoc, modifier, "static", "abstract"); + } + modified[modifier] = true; + } + if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { + this.raise(errorTemplate, startLoc, { + modifier + }); + } + } + } + tsIsListTerminator(kind) { + switch (kind) { + case "EnumMembers": + case "TypeMembers": + return this.match(8); + case "HeritageClauseElement": + return this.match(5); + case "TupleElementTypes": + return this.match(3); + case "TypeParametersOrArguments": + return this.match(48); + } + } + tsParseList(kind, parseElement) { + const result = []; + while (!this.tsIsListTerminator(kind)) { + result.push(parseElement()); + } + return result; + } + tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) { + return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos)); + } + tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) { + const result = []; + let trailingCommaPos = -1; + for (;;) { + if (this.tsIsListTerminator(kind)) { + break; + } + trailingCommaPos = -1; + const element = parseElement(); + if (element == null) { + return undefined; + } + result.push(element); + if (this.eat(12)) { + trailingCommaPos = this.state.lastTokStartLoc.index; + continue; + } + if (this.tsIsListTerminator(kind)) { + break; + } + if (expectSuccess) { + this.expect(12); + } + return undefined; + } + if (refTrailingCommaPos) { + refTrailingCommaPos.value = trailingCommaPos; + } + return result; + } + tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) { + if (!skipFirstToken) { + if (bracket) { + this.expect(0); + } else { + this.expect(47); + } + } + const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos); + if (bracket) { + this.expect(3); + } else { + this.expect(48); + } + return result; + } + tsParseImportType() { + const node = this.startNode(); + this.expect(83); + this.expect(10); + if (!this.match(134)) { + this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + { + node.argument = super.parseExprAtom(); + } + } else { + { + node.argument = this.parseStringLiteral(this.state.value); + } + } + if (this.eat(12) && !this.match(11)) { + node.options = super.parseMaybeAssignAllowIn(); + this.eat(12); + } else { + node.options = null; + } + this.expect(11); + if (this.eat(16)) { + node.qualifier = this.tsParseEntityName(1 | 2); + } + if (this.match(47)) { + { + node.typeParameters = this.tsParseTypeArguments(); + } + } + return this.finishNode(node, "TSImportType"); + } + tsParseEntityName(flags) { + let entity; + if (flags & 1 && this.match(78)) { + if (flags & 2) { + entity = this.parseIdentifier(true); + } else { + const node = this.startNode(); + this.next(); + entity = this.finishNode(node, "ThisExpression"); + } + } else { + entity = this.parseIdentifier(!!(flags & 1)); + } + while (this.eat(16)) { + const node = this.startNodeAtNode(entity); + node.left = entity; + node.right = this.parseIdentifier(!!(flags & 1)); + entity = this.finishNode(node, "TSQualifiedName"); + } + return entity; + } + tsParseTypeReference() { + const node = this.startNode(); + node.typeName = this.tsParseEntityName(1); + if (!this.hasPrecedingLineBreak() && this.match(47)) { + { + node.typeParameters = this.tsParseTypeArguments(); + } + } + return this.finishNode(node, "TSTypeReference"); + } + tsParseThisTypePredicate(lhs) { + this.next(); + const node = this.startNodeAtNode(lhs); + node.parameterName = lhs; + node.typeAnnotation = this.tsParseTypeAnnotation(false); + node.asserts = false; + return this.finishNode(node, "TSTypePredicate"); + } + tsParseThisTypeNode() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSThisType"); + } + tsParseTypeQuery() { + const node = this.startNode(); + this.expect(87); + if (this.match(83)) { + node.exprName = this.tsParseImportType(); + } else { + { + node.exprName = this.tsParseEntityName(1 | 2); + } + } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + { + node.typeParameters = this.tsParseTypeArguments(); + } + } + return this.finishNode(node, "TSTypeQuery"); + } + tsParseTypeParameter(parseModifiers) { + const node = this.startNode(); + parseModifiers(node); + node.name = this.tsParseTypeParameterName(); + node.constraint = this.tsEatThenParseType(81); + node.default = this.tsEatThenParseType(29); + return this.finishNode(node, "TSTypeParameter"); + } + tsTryParseTypeParameters(parseModifiers) { + if (this.match(47)) { + return this.tsParseTypeParameters(parseModifiers); + } + } + tsParseTypeParameters(parseModifiers) { + const node = this.startNode(); + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + const refTrailingCommaPos = { + value: -1 + }; + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeParameters, node); + } + if (refTrailingCommaPos.value !== -1) { + this.addExtra(node, "trailingComma", refTrailingCommaPos.value); + } + return this.finishNode(node, "TSTypeParameterDeclaration"); + } + tsFillSignature(returnToken, signature) { + const returnTokenRequired = returnToken === 19; + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + this.expect(10); + signature[paramsKey] = this.tsParseBindingListForSignature(); + if (returnTokenRequired) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } else if (this.match(returnToken)) { + signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken); + } + } + tsParseBindingListForSignature() { + const list = super.parseBindingList(11, 41, 2); + for (const pattern of list) { + const { + type + } = pattern; + if (type === "AssignmentPattern" || type === "TSParameterProperty") { + this.raise(TSErrors.UnsupportedSignatureParameterKind, pattern, { + type + }); + } + } + return list; + } + tsParseTypeMemberSemicolon() { + if (!this.eat(12) && !this.isLineTerminator()) { + this.expect(13); + } + } + tsParseSignatureMember(kind, node) { + this.tsFillSignature(14, node); + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, kind); + } + tsIsUnambiguouslyIndexSignature() { + this.next(); + if (tokenIsIdentifier(this.state.type)) { + this.next(); + return this.match(14); + } + return false; + } + tsTryParseIndexSignature(node) { + if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { + return; + } + this.expect(0); + const id = this.parseIdentifier(); + id.typeAnnotation = this.tsParseTypeAnnotation(); + this.resetEndLocation(id); + this.expect(3); + node.parameters = [id]; + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(node, "TSIndexSignature"); + } + tsParsePropertyOrMethodSignature(node, readonly) { + if (this.eat(17)) node.optional = true; + const nodeAny = node; + if (this.match(10) || this.match(47)) { + if (readonly) { + this.raise(TSErrors.ReadonlyForMethodSignature, node); + } + const method = nodeAny; + if (method.kind && this.match(47)) { + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); + } + this.tsFillSignature(14, method); + this.tsParseTypeMemberSemicolon(); + const paramsKey = "parameters"; + const returnTypeKey = "typeAnnotation"; + if (method.kind === "get") { + if (method[paramsKey].length > 0) { + this.raise(Errors.BadGetterArity, this.state.curPosition()); + if (this.isThisParam(method[paramsKey][0])) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + } + } else if (method.kind === "set") { + if (method[paramsKey].length !== 1) { + this.raise(Errors.BadSetterArity, this.state.curPosition()); + } else { + const firstParameter = method[paramsKey][0]; + if (this.isThisParam(firstParameter)) { + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); + } + if (firstParameter.type === "Identifier" && firstParameter.optional) { + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); + } + if (firstParameter.type === "RestElement") { + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); + } + } + if (method[returnTypeKey]) { + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); + } + } else { + method.kind = "method"; + } + return this.finishNode(method, "TSMethodSignature"); + } else { + const property = nodeAny; + if (readonly) property.readonly = true; + const type = this.tsTryParseTypeAnnotation(); + if (type) property.typeAnnotation = type; + this.tsParseTypeMemberSemicolon(); + return this.finishNode(property, "TSPropertySignature"); + } + } + tsParseTypeMember() { + const node = this.startNode(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); + } + if (this.match(77)) { + const id = this.startNode(); + this.next(); + if (this.match(10) || this.match(47)) { + return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); + } else { + node.key = this.createIdentifier(id, "new"); + return this.tsParsePropertyOrMethodSignature(node, false); + } + } + this.tsParseModifiers({ + allowedModifiers: ["readonly"], + disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"] + }, node); + const idx = this.tsTryParseIndexSignature(node); + if (idx) { + return idx; + } + super.parsePropertyName(node); + if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { + node.kind = node.key.name; + super.parsePropertyName(node); + } + return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); + } + tsParseTypeLiteral() { + const node = this.startNode(); + node.members = this.tsParseObjectTypeMembers(); + return this.finishNode(node, "TSTypeLiteral"); + } + tsParseObjectTypeMembers() { + this.expect(5); + const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); + this.expect(8); + return members; + } + tsIsStartOfMappedType() { + this.next(); + if (this.eat(53)) { + return this.isContextual(122); + } + if (this.isContextual(122)) { + this.next(); + } + if (!this.match(0)) { + return false; + } + this.next(); + if (!this.tsIsIdentifier()) { + return false; + } + this.next(); + return this.match(58); + } + tsParseMappedType() { + const node = this.startNode(); + this.expect(5); + if (this.match(53)) { + node.readonly = this.state.value; + this.next(); + this.expectContextual(122); + } else if (this.eatContextual(122)) { + node.readonly = true; + } + this.expect(0); + { + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + } + node.nameType = this.eatContextual(93) ? this.tsParseType() : null; + this.expect(3); + if (this.match(53)) { + node.optional = this.state.value; + this.next(); + this.expect(17); + } else if (this.eat(17)) { + node.optional = true; + } + node.typeAnnotation = this.tsTryParseType(); + this.semicolon(); + this.expect(8); + return this.finishNode(node, "TSMappedType"); + } + tsParseTupleType() { + const node = this.startNode(); + node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); + let seenOptionalElement = false; + node.elementTypes.forEach(elementNode => { + const { + type + } = elementNode; + if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { + this.raise(TSErrors.OptionalTypeBeforeRequired, elementNode); + } + seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"); + }); + return this.finishNode(node, "TSTupleType"); + } + tsParseTupleElementType() { + const restStartLoc = this.state.startLoc; + const rest = this.eat(21); + const { + startLoc + } = this.state; + let labeled; + let label; + let optional; + let type; + const isWord = tokenIsKeywordOrIdentifier(this.state.type); + const chAfterWord = isWord ? this.lookaheadCharCode() : null; + if (chAfterWord === 58) { + labeled = true; + optional = false; + label = this.parseIdentifier(true); + this.expect(14); + type = this.tsParseType(); + } else if (chAfterWord === 63) { + optional = true; + const wordName = this.state.value; + const typeOrLabel = this.tsParseNonArrayType(); + if (this.lookaheadCharCode() === 58) { + labeled = true; + label = this.createIdentifier(this.startNodeAt(startLoc), wordName); + this.expect(17); + this.expect(14); + type = this.tsParseType(); + } else { + labeled = false; + type = typeOrLabel; + this.expect(17); + } + } else { + type = this.tsParseType(); + optional = this.eat(17); + labeled = this.eat(14); + } + if (labeled) { + let labeledNode; + if (label) { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + labeledNode.label = label; + labeledNode.elementType = type; + if (this.eat(17)) { + labeledNode.optional = true; + this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); + } + } else { + labeledNode = this.startNodeAt(startLoc); + labeledNode.optional = optional; + this.raise(TSErrors.InvalidTupleMemberLabel, type); + labeledNode.label = type; + labeledNode.elementType = this.tsParseType(); + } + type = this.finishNode(labeledNode, "TSNamedTupleMember"); + } else if (optional) { + const optionalTypeNode = this.startNodeAt(startLoc); + optionalTypeNode.typeAnnotation = type; + type = this.finishNode(optionalTypeNode, "TSOptionalType"); + } + if (rest) { + const restNode = this.startNodeAt(restStartLoc); + restNode.typeAnnotation = type; + type = this.finishNode(restNode, "TSRestType"); + } + return type; + } + tsParseParenthesizedType() { + const node = this.startNode(); + this.expect(10); + node.typeAnnotation = this.tsParseType(); + this.expect(11); + return this.finishNode(node, "TSParenthesizedType"); + } + tsParseFunctionOrConstructorType(type, abstract) { + const node = this.startNode(); + if (type === "TSConstructorType") { + node.abstract = !!abstract; + if (abstract) this.next(); + this.next(); + } + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); + return this.finishNode(node, type); + } + tsParseLiteralTypeNode() { + const node = this.startNode(); + switch (this.state.type) { + case 135: + case 136: + case 134: + case 85: + case 86: + node.literal = super.parseExprAtom(); + break; + default: + this.unexpected(); + } + return this.finishNode(node, "TSLiteralType"); + } + tsParseTemplateLiteralType() { + { + const node = this.startNode(); + node.literal = super.parseTemplate(false); + return this.finishNode(node, "TSLiteralType"); + } + } + parseTemplateSubstitution() { + if (this.state.inType) return this.tsParseType(); + return super.parseTemplateSubstitution(); + } + tsParseThisTypeOrThisTypePredicate() { + const thisKeyword = this.tsParseThisTypeNode(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + return this.tsParseThisTypePredicate(thisKeyword); + } else { + return thisKeyword; + } + } + tsParseNonArrayType() { + switch (this.state.type) { + case 134: + case 135: + case 136: + case 85: + case 86: + return this.tsParseLiteralTypeNode(); + case 53: + if (this.state.value === "-") { + const node = this.startNode(); + const nextToken = this.lookahead(); + if (nextToken.type !== 135 && nextToken.type !== 136) { + this.unexpected(); + } + node.literal = this.parseMaybeUnary(); + return this.finishNode(node, "TSLiteralType"); + } + break; + case 78: + return this.tsParseThisTypeOrThisTypePredicate(); + case 87: + return this.tsParseTypeQuery(); + case 83: + return this.tsParseImportType(); + case 5: + return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); + case 0: + return this.tsParseTupleType(); + case 10: + return this.tsParseParenthesizedType(); + case 25: + case 24: + return this.tsParseTemplateLiteralType(); + default: + { + const { + type + } = this.state; + if (tokenIsIdentifier(type) || type === 88 || type === 84) { + const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); + if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, nodeType); + } + return this.tsParseTypeReference(); + } + } + } + this.unexpected(); + } + tsParseArrayTypeOrHigher() { + const { + startLoc + } = this.state; + let type = this.tsParseNonArrayType(); + while (!this.hasPrecedingLineBreak() && this.eat(0)) { + if (this.match(3)) { + const node = this.startNodeAt(startLoc); + node.elementType = type; + this.expect(3); + type = this.finishNode(node, "TSArrayType"); + } else { + const node = this.startNodeAt(startLoc); + node.objectType = type; + node.indexType = this.tsParseType(); + this.expect(3); + type = this.finishNode(node, "TSIndexedAccessType"); + } + } + return type; + } + tsParseTypeOperator() { + const node = this.startNode(); + const operator = this.state.value; + this.next(); + node.operator = operator; + node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); + if (operator === "readonly") { + this.tsCheckTypeAnnotationForReadOnly(node); + } + return this.finishNode(node, "TSTypeOperator"); + } + tsCheckTypeAnnotationForReadOnly(node) { + switch (node.typeAnnotation.type) { + case "TSTupleType": + case "TSArrayType": + return; + default: + this.raise(TSErrors.UnexpectedReadonly, node); + } + } + tsParseInferType() { + const node = this.startNode(); + this.expectContextual(115); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); + return this.finishNode(node, "TSInferType"); + } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { + const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); + } + tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { + const node = this.startNode(); + const hasLeadingOperator = this.eat(operator); + const types = []; + do { + types.push(parseConstituentType()); + } while (this.eat(operator)); + if (types.length === 1 && !hasLeadingOperator) { + return types[0]; + } + node.types = types; + return this.finishNode(node, kind); + } + tsParseIntersectionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45); + } + tsParseUnionTypeOrHigher() { + return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43); + } + tsIsStartOfFunctionType() { + if (this.match(47)) { + return true; + } + return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); + } + tsSkipParameterStart() { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + this.next(); + return true; + } + if (this.match(5)) { + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + this.parseObjectLike(8, true); + return errors.length === previousErrorCount; + } catch (_unused) { + return false; + } + } + if (this.match(0)) { + this.next(); + const { + errors + } = this.state; + const previousErrorCount = errors.length; + try { + super.parseBindingList(3, 93, 1); + return errors.length === previousErrorCount; + } catch (_unused2) { + return false; + } + } + return false; + } + tsIsUnambiguouslyStartOfFunctionType() { + this.next(); + if (this.match(11) || this.match(21)) { + return true; + } + if (this.tsSkipParameterStart()) { + if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) { + return true; + } + if (this.match(11)) { + this.next(); + if (this.match(19)) { + return true; + } + } + } + return false; + } + tsParseTypeOrTypePredicateAnnotation(returnToken) { + return this.tsInType(() => { + const t = this.startNode(); + this.expect(returnToken); + const node = this.startNode(); + const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); + if (asserts && this.match(78)) { + let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); + if (thisTypePredicate.type === "TSThisType") { + node.parameterName = thisTypePredicate; + node.asserts = true; + node.typeAnnotation = null; + thisTypePredicate = this.finishNode(node, "TSTypePredicate"); + } else { + this.resetStartLocationFromNode(thisTypePredicate, node); + thisTypePredicate.asserts = true; + } + t.typeAnnotation = thisTypePredicate; + return this.finishNode(t, "TSTypeAnnotation"); + } + const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); + if (!typePredicateVariable) { + if (!asserts) { + return this.tsParseTypeAnnotation(false, t); + } + node.parameterName = this.parseIdentifier(); + node.asserts = asserts; + node.typeAnnotation = null; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + } + const type = this.tsParseTypeAnnotation(false); + node.parameterName = typePredicateVariable; + node.typeAnnotation = type; + node.asserts = asserts; + t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); + return this.finishNode(t, "TSTypeAnnotation"); + }); + } + tsTryParseTypeOrTypePredicateAnnotation() { + if (this.match(14)) { + return this.tsParseTypeOrTypePredicateAnnotation(14); + } + } + tsTryParseTypeAnnotation() { + if (this.match(14)) { + return this.tsParseTypeAnnotation(); + } + } + tsTryParseType() { + return this.tsEatThenParseType(14); + } + tsParseTypePredicatePrefix() { + const id = this.parseIdentifier(); + if (this.isContextual(116) && !this.hasPrecedingLineBreak()) { + this.next(); + return id; + } + } + tsParseTypePredicateAsserts() { + if (this.state.type !== 109) { + return false; + } + const containsEsc = this.state.containsEsc; + this.next(); + if (!tokenIsIdentifier(this.state.type) && !this.match(78)) { + return false; + } + if (containsEsc) { + this.raise(Errors.InvalidEscapedReservedWord, this.state.lastTokStartLoc, { + reservedWord: "asserts" + }); + } + return true; + } + tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { + this.tsInType(() => { + if (eatColon) this.expect(14); + t.typeAnnotation = this.tsParseType(); + }); + return this.finishNode(t, "TSTypeAnnotation"); + } + tsParseType() { + assert(this.state.inType); + const type = this.tsParseNonConditionalType(); + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { + return type; + } + const node = this.startNodeAtNode(type); + node.checkType = type; + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); + this.expect(17); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + this.expect(14); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); + return this.finishNode(node, "TSConditionalType"); + } + isAbstractConstructorSignature() { + return this.isContextual(124) && this.lookahead().type === 77; + } + tsParseNonConditionalType() { + if (this.tsIsStartOfFunctionType()) { + return this.tsParseFunctionOrConstructorType("TSFunctionType"); + } + if (this.match(77)) { + return this.tsParseFunctionOrConstructorType("TSConstructorType"); + } else if (this.isAbstractConstructorSignature()) { + return this.tsParseFunctionOrConstructorType("TSConstructorType", true); + } + return this.tsParseUnionTypeOrHigher(); + } + tsParseTypeAssertion() { + if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedTypeAssertion, this.state.startLoc); + } + const node = this.startNode(); + node.typeAnnotation = this.tsInType(() => { + this.next(); + return this.match(75) ? this.tsParseTypeReference() : this.tsParseType(); + }); + this.expect(48); + node.expression = this.parseMaybeUnary(); + return this.finishNode(node, "TSTypeAssertion"); + } + tsParseHeritageClause(token) { + const originalStartLoc = this.state.startLoc; + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + { + node.expression = this.tsParseEntityName(1 | 2); + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSExpressionWithTypeArguments"); + } + }); + if (!delimitedList.length) { + this.raise(TSErrors.EmptyHeritageClauseType, originalStartLoc, { + token + }); + } + return delimitedList; + } + tsParseInterfaceDeclaration(node, properties = {}) { + if (this.hasFollowingLineBreak()) return null; + this.expectContextual(129); + if (properties.declare) node.declare = true; + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 130); + } else { + node.id = null; + this.raise(TSErrors.MissingInterfaceName, this.state.startLoc); + } + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (this.eat(81)) { + node.extends = this.tsParseHeritageClause("extends"); + } + const body = this.startNode(); + body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); + node.body = this.finishNode(body, "TSInterfaceBody"); + return this.finishNode(node, "TSInterfaceDeclaration"); + } + tsParseTypeAliasDeclaration(node) { + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, 2); + node.typeAnnotation = this.tsInType(() => { + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); + this.expect(29); + if (this.isContextual(114) && this.lookahead().type !== 16) { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "TSIntrinsicKeyword"); + } + return this.tsParseType(); + }); + this.semicolon(); + return this.finishNode(node, "TSTypeAliasDeclaration"); + } + tsInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + tsInType(cb) { + const oldInType = this.state.inType; + this.state.inType = true; + try { + return cb(); + } finally { + this.state.inType = oldInType; + } + } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { + if (this.match(token)) { + return this.tsNextThenParseType(); + } + } + tsExpectThenParseType(token) { + return this.tsInType(() => { + this.expect(token); + return this.tsParseType(); + }); + } + tsNextThenParseType() { + return this.tsInType(() => { + this.next(); + return this.tsParseType(); + }); + } + tsParseEnumMember() { + const node = this.startNode(); + node.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + if (this.eat(29)) { + node.initializer = super.parseMaybeAssignAllowIn(); + } + return this.finishNode(node, "TSEnumMember"); + } + tsParseEnumDeclaration(node, properties = {}) { + if (properties.const) node.const = true; + if (properties.declare) node.declare = true; + this.expectContextual(126); + node.id = this.parseIdentifier(); + this.checkIdentifier(node.id, node.const ? 8971 : 8459); + { + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + } + return this.finishNode(node, "TSEnumDeclaration"); + } + tsParseEnumBody() { + const node = this.startNode(); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumBody"); + } + tsParseModuleBlock() { + const node = this.startNode(); + this.scope.enter(0); + this.expect(5); + super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); + this.scope.exit(); + return this.finishNode(node, "TSModuleBlock"); + } + tsParseModuleOrNamespaceDeclaration(node, nested = false) { + node.id = this.parseIdentifier(); + if (!nested) { + this.checkIdentifier(node.id, 1024); + } + if (this.eat(16)) { + const inner = this.startNode(); + this.tsParseModuleOrNamespaceDeclaration(inner, true); + node.body = inner; + } else { + this.scope.enter(256); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseAmbientExternalModuleDeclaration(node) { + if (this.isContextual(112)) { + node.kind = "global"; + { + node.global = true; + } + node.id = this.parseIdentifier(); + } else if (this.match(134)) { + node.kind = "module"; + node.id = super.parseStringLiteral(this.state.value); + } else { + this.unexpected(); + } + if (this.match(5)) { + this.scope.enter(256); + this.prodParam.enter(0); + node.body = this.tsParseModuleBlock(); + this.prodParam.exit(); + this.scope.exit(); + } else { + this.semicolon(); + } + return this.finishNode(node, "TSModuleDeclaration"); + } + tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) { + { + node.isExport = isExport || false; + } + node.id = maybeDefaultIdentifier || this.parseIdentifier(); + this.checkIdentifier(node.id, 4096); + this.expect(29); + const moduleReference = this.tsParseModuleReference(); + if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { + this.raise(TSErrors.ImportAliasHasImportType, moduleReference); + } + node.moduleReference = moduleReference; + this.semicolon(); + return this.finishNode(node, "TSImportEqualsDeclaration"); + } + tsIsExternalModuleReference() { + return this.isContextual(119) && this.lookaheadCharCode() === 40; + } + tsParseModuleReference() { + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0); + } + tsParseExternalModuleReference() { + const node = this.startNode(); + this.expectContextual(119); + this.expect(10); + if (!this.match(134)) { + this.unexpected(); + } + node.expression = super.parseExprAtom(); + this.expect(11); + this.sawUnambiguousESM = true; + return this.finishNode(node, "TSExternalModuleReference"); + } + tsLookAhead(f) { + const state = this.state.clone(); + const res = f(); + this.state = state; + return res; + } + tsTryParseAndCatch(f) { + const result = this.tryParse(abort => f() || abort()); + if (result.aborted || !result.node) return; + if (result.error) this.state = result.failState; + return result.node; + } + tsTryParse(f) { + const state = this.state.clone(); + const result = f(); + if (result !== undefined && result !== false) { + return result; + } + this.state = state; + } + tsTryParseDeclare(nany) { + if (this.isLineTerminator()) { + return; + } + let startType = this.state.type; + let kind; + if (this.isContextual(100)) { + startType = 74; + kind = "let"; + } + return this.tsInAmbientContext(() => { + switch (startType) { + case 68: + nany.declare = true; + return super.parseFunctionStatement(nany, false, false); + case 80: + nany.declare = true; + return this.parseClass(nany, true, false); + case 126: + return this.tsParseEnumDeclaration(nany, { + declare: true + }); + case 112: + return this.tsParseAmbientExternalModuleDeclaration(nany); + case 75: + case 74: + if (!this.match(75) || !this.isLookaheadContextual("enum")) { + nany.declare = true; + return this.parseVarStatement(nany, kind || this.state.value, true); + } + this.expect(75); + return this.tsParseEnumDeclaration(nany, { + const: true, + declare: true + }); + case 129: + { + const result = this.tsParseInterfaceDeclaration(nany, { + declare: true + }); + if (result) return result; + } + default: + if (tokenIsIdentifier(startType)) { + return this.tsParseDeclaration(nany, this.state.value, true, null); + } + } + }); + } + tsTryParseExportDeclaration() { + return this.tsParseDeclaration(this.startNode(), this.state.value, true, null); + } + tsParseExpressionStatement(node, expr, decorators) { + switch (expr.name) { + case "declare": + { + const declaration = this.tsTryParseDeclare(node); + if (declaration) { + declaration.declare = true; + } + return declaration; + } + case "global": + if (this.match(5)) { + this.scope.enter(256); + this.prodParam.enter(0); + const mod = node; + mod.kind = "global"; + { + node.global = true; + } + mod.id = expr; + mod.body = this.tsParseModuleBlock(); + this.scope.exit(); + this.prodParam.exit(); + return this.finishNode(mod, "TSModuleDeclaration"); + } + break; + default: + return this.tsParseDeclaration(node, expr.name, false, decorators); + } + } + tsParseDeclaration(node, value, next, decorators) { + switch (value) { + case "abstract": + if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { + return this.tsParseAbstractDeclaration(node, decorators); + } + break; + case "module": + if (this.tsCheckLineTerminator(next)) { + if (this.match(134)) { + return this.tsParseAmbientExternalModuleDeclaration(node); + } else if (tokenIsIdentifier(this.state.type)) { + node.kind = "module"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + } + break; + case "namespace": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + node.kind = "namespace"; + return this.tsParseModuleOrNamespaceDeclaration(node); + } + break; + case "type": + if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } + tsCheckLineTerminator(next) { + if (next) { + if (this.hasFollowingLineBreak()) return false; + this.next(); + return true; + } + return !this.isLineTerminator(); + } + tsTryParseGenericAsyncArrowFunction(startLoc) { + if (!this.match(47)) return; + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = true; + const res = this.tsTryParseAndCatch(() => { + const node = this.startNodeAt(startLoc); + node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + super.parseFunctionParams(node); + node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); + this.expect(19); + return node; + }); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + if (!res) return; + return super.parseArrowExpression(res, null, true); + } + tsParseTypeArgumentsInExpression() { + if (this.reScan_lt() !== 47) return; + return this.tsParseTypeArguments(); + } + tsParseTypeArguments() { + const node = this.startNode(); + node.params = this.tsInType(() => this.tsInTopLevelContext(() => { + this.expect(47); + return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); + })); + if (node.params.length === 0) { + this.raise(TSErrors.EmptyTypeArguments, node); + } else if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TSTypeParameterInstantiation"); + } + tsIsDeclarationStart() { + return tokenIsTSDeclarationStart(this.state.type); + } + isExportDefaultSpecifier() { + if (this.tsIsDeclarationStart()) return false; + return super.isExportDefaultSpecifier(); + } + parseAssignableListItem(flags, decorators) { + const startLoc = this.state.startLoc; + const modified = {}; + this.tsParseModifiers({ + allowedModifiers: ["public", "private", "protected", "override", "readonly"] + }, modified); + const accessibility = modified.accessibility; + const override = modified.override; + const readonly = modified.readonly; + if (!(flags & 4) && (accessibility || readonly || override)) { + this.raise(TSErrors.UnexpectedParameterModifier, startLoc); + } + const left = this.parseMaybeDefault(); + if (flags & 2) { + this.parseFunctionParamType(left); + } + const elt = this.parseMaybeDefault(left.loc.start, left); + if (accessibility || readonly || override) { + const pp = this.startNodeAt(startLoc); + if (decorators.length) { + pp.decorators = decorators; + } + if (accessibility) pp.accessibility = accessibility; + if (readonly) pp.readonly = readonly; + if (override) pp.override = override; + if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { + this.raise(TSErrors.UnsupportedParameterPropertyKind, pp); + } + pp.parameter = elt; + return this.finishNode(pp, "TSParameterProperty"); + } + if (decorators.length) { + left.decorators = decorators; + } + return elt; + } + isSimpleParameter(node) { + return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node); + } + tsDisallowOptionalPattern(node) { + for (const param of node.params) { + if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) { + this.raise(TSErrors.PatternIsOptional, param); + } + } + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + super.setArrowFunctionParameters(node, params, trailingCommaLoc); + this.tsDisallowOptionalPattern(node); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + } + const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined; + if (bodilessType && !this.match(5) && this.isLineTerminator()) { + return this.finishNode(node, bodilessType); + } + if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { + this.raise(TSErrors.DeclareFunctionHasImplementation, node); + if (node.declare) { + return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); + } + } + this.tsDisallowOptionalPattern(node); + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + registerFunctionStatementId(node) { + if (!node.body && node.id) { + this.checkIdentifier(node.id, 1024); + } else { + super.registerFunctionStatementId(node); + } + } + tsCheckForInvalidTypeCasts(items) { + items.forEach(node => { + if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { + this.raise(TSErrors.UnexpectedTypeAnnotation, node.typeAnnotation); + } + }); + } + toReferencedList(exprList, isInParens) { + this.tsCheckForInvalidTypeCasts(exprList); + return exprList; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + if (node.type === "ArrayExpression") { + this.tsCheckForInvalidTypeCasts(node.elements); + } + return node; + } + parseSubscript(base, startLoc, noCalls, state) { + if (!this.hasPrecedingLineBreak() && this.match(35)) { + this.state.canStartJSXElement = false; + this.next(); + const nonNullExpression = this.startNodeAt(startLoc); + nonNullExpression.expression = base; + return this.finishNode(nonNullExpression, "TSNonNullExpression"); + } + let isOptionalCall = false; + if (this.match(18) && this.lookaheadCharCode() === 60) { + if (noCalls) { + state.stop = true; + return base; + } + state.optionalChainMember = isOptionalCall = true; + this.next(); + } + if (this.match(47) || this.match(51)) { + let missingParenErrorLoc; + const result = this.tsTryParseAndCatch(() => { + if (!noCalls && this.atPossibleAsyncArrow(base)) { + const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); + if (asyncArrowFn) { + return asyncArrowFn; + } + } + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) return; + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + return; + } + if (tokenIsTemplate(this.state.type)) { + const result = super.parseTaggedTemplateExpression(base, startLoc, state); + { + result.typeParameters = typeArguments; + } + return result; + } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(11); + this.tsCheckForInvalidTypeCasts(node.arguments); + { + node.typeParameters = typeArguments; + } + if (state.optionalChainMember) { + node.optional = isOptionalCall; + } + return this.finishCallExpression(node, state.optionalChainMember); + } + const tokenType = this.state.type; + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + return; + } + const node = this.startNodeAt(startLoc); + node.expression = base; + { + node.typeParameters = typeArguments; + } + return this.finishNode(node, "TSInstantiationExpression"); + }); + if (missingParenErrorLoc) { + this.unexpected(missingParenErrorLoc, 10); + } + if (result) { + if (result.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + return result; + } + } + return super.parseSubscript(base, startLoc, noCalls, state); + } + parseNewCallee(node) { + var _callee$extra; + super.parseNewCallee(node); + const { + callee + } = node; + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + { + node.typeParameters = callee.typeParameters; + } + node.callee = callee.expression; + } + } + parseExprOp(left, leftStartLoc, minPrec) { + let isSatisfies; + if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) { + const node = this.startNodeAt(leftStartLoc); + node.expression = left; + node.typeAnnotation = this.tsInType(() => { + this.next(); + if (this.match(75)) { + if (isSatisfies) { + this.raise(Errors.UnexpectedKeyword, this.state.startLoc, { + keyword: "const" + }); + } + return this.tsParseTypeReference(); + } + return this.tsParseType(); + }); + this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression"); + this.reScan_lt_gt(); + return this.parseExprOp(node, leftStartLoc, minPrec); + } + return super.parseExprOp(left, leftStartLoc, minPrec); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (!this.state.isAmbientContext) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(TSErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + checkDuplicateExports() {} + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + const ch = this.lookaheadCharCode(); + return isExport ? ch === 123 || ch === 42 : ch !== 61; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + node.exportKind = phase === "type" ? "type" : "value"; + } else { + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImport(node) { + if (this.match(134)) { + node.importKind = "value"; + return super.parseImport(node); + } + let importNode; + if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) { + node.importKind = "value"; + return this.tsParseImportEqualsDeclaration(node); + } else if (this.isContextual(130)) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + if (this.lookaheadCharCode() === 61) { + return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier); + } else { + importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier); + } + } else { + importNode = super.parseImport(node); + } + if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { + this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, importNode); + } + return importNode; + } + parseExport(node, decorators) { + if (this.match(83)) { + const nodeImportEquals = node; + this.next(); + let maybeDefaultIdentifier = null; + if (this.isContextual(130) && this.isPotentialImportPhase(false)) { + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); + } else { + nodeImportEquals.importKind = "value"; + } + const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + { + return declaration; + } + } else if (this.eat(29)) { + const assign = node; + assign.expression = super.parseExpression(); + this.semicolon(); + this.sawUnambiguousESM = true; + return this.finishNode(assign, "TSExportAssignment"); + } else if (this.eatContextual(93)) { + const decl = node; + this.expectContextual(128); + decl.id = this.parseIdentifier(); + this.semicolon(); + return this.finishNode(decl, "TSNamespaceExportDeclaration"); + } else { + return super.parseExport(node, decorators); + } + } + isAbstractClass() { + return this.isContextual(124) && this.lookahead().type === 80; + } + parseExportDefaultExpression() { + if (this.isAbstractClass()) { + const cls = this.startNode(); + this.next(); + cls.abstract = true; + return this.parseClass(cls, true, true); + } + if (this.match(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseExportDefaultExpression(); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + const { + isAmbientContext + } = this.state; + const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); + if (!isAmbientContext) return declaration; + for (const { + id, + init + } of declaration.declarations) { + if (!init) continue; + if (kind !== "const" || !!id.typeAnnotation) { + this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); + } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + } + } + return declaration; + } + parseStatementContent(flags, decorators) { + if (this.match(75) && this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + if (this.isContextual(126)) { + return this.tsParseEnumDeclaration(this.startNode()); + } + if (this.isContextual(129)) { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + } + return super.parseStatementContent(flags, decorators); + } + parseAccessModifier() { + return this.tsParseModifier(["public", "protected", "private"]); + } + tsHasSomeModifiers(member, modifiers) { + return modifiers.some(modifier => { + if (tsIsAccessModifier(modifier)) { + return member.accessibility === modifier; + } + return !!member[modifier]; + }); + } + tsIsStartOfStaticBlocks() { + return this.isContextual(106) && this.lookaheadCharCode() === 123; + } + parseClassMember(classBody, member, state) { + const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; + this.tsParseModifiers({ + allowedModifiers: modifiers, + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }, member); + const callParseClassMemberWithIsStatic = () => { + if (this.tsIsStartOfStaticBlocks()) { + this.next(); + this.next(); + if (this.tsHasSomeModifiers(member, modifiers)) { + this.raise(TSErrors.StaticBlockCannotHaveModifier, this.state.curPosition()); + } + super.parseClassStaticBlock(classBody, member); + } else { + this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); + } + }; + if (member.declare) { + this.tsInAmbientContext(callParseClassMemberWithIsStatic); + } else { + callParseClassMemberWithIsStatic(); + } + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const idx = this.tsTryParseIndexSignature(member); + if (idx) { + classBody.body.push(idx); + if (member.abstract) { + this.raise(TSErrors.IndexSignatureHasAbstract, member); + } + if (member.accessibility) { + this.raise(TSErrors.IndexSignatureHasAccessibility, member, { + modifier: member.accessibility + }); + } + if (member.declare) { + this.raise(TSErrors.IndexSignatureHasDeclare, member); + } + if (member.override) { + this.raise(TSErrors.IndexSignatureHasOverride, member); + } + return; + } + if (!this.state.inAbstractClass && member.abstract) { + this.raise(TSErrors.NonAbstractClassHasAbstractMethod, member); + } + if (member.override) { + if (!state.hadSuperClass) { + this.raise(TSErrors.OverrideNotInSubClass, member); + } + } + super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parsePostMemberNameModifiers(methodOrProp) { + const optional = this.eat(17); + if (optional) methodOrProp.optional = true; + if (methodOrProp.readonly && this.match(10)) { + this.raise(TSErrors.ClassMethodHasReadonly, methodOrProp); + } + if (methodOrProp.declare && this.match(10)) { + this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); + } + } + parseExpressionStatement(node, expr, decorators) { + const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined; + return decl || super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + if (this.tsIsDeclarationStart()) return true; + return super.shouldParseExportDeclaration(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.state.maybeInArrowParameters || !this.match(17)) { + return super.parseConditional(expr, startLoc, refExpressionErrors); + } + const result = this.tryParse(() => super.parseConditional(expr, startLoc)); + if (!result.node) { + if (result.error) { + super.setOptionalParametersError(refExpressionErrors, result.error); + } + return expr; + } + if (result.error) this.state = result.failState; + return result.node; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = node; + typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TSTypeCastExpression"); + } + return node; + } + parseExportDeclaration(node) { + if (!this.state.isAmbientContext && this.isContextual(125)) { + return this.tsInAmbientContext(() => this.parseExportDeclaration(node)); + } + const startLoc = this.state.startLoc; + const isDeclare = this.eatContextual(125); + if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) { + throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, this.state.startLoc); + } + const isIdentifier = tokenIsIdentifier(this.state.type); + const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node); + if (!declaration) return null; + if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { + node.exportKind = "type"; + } + if (isDeclare && declaration.type !== "TSImportEqualsDeclaration") { + this.resetStartLocation(declaration, startLoc); + declaration.declare = true; + } + return declaration; + } + parseClassId(node, isStatement, optionalId, bindingType) { + if ((!isStatement || optionalId) && this.isContextual(113)) { + return; + } + super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers); + if (typeParameters) node.typeParameters = typeParameters; + } + parseClassPropertyAnnotation(node) { + if (!node.optional) { + if (this.eat(35)) { + node.definite = true; + } else if (this.eat(17)) { + node.optional = true; + } + } + const type = this.tsTryParseTypeAnnotation(); + if (type) node.typeAnnotation = type; + } + parseClassProperty(node) { + this.parseClassPropertyAnnotation(node); + if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) { + this.raise(TSErrors.DeclareClassFieldHasInitializer, this.state.startLoc); + } + if (node.abstract && this.match(29)) { + const { + key + } = node; + this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (node.abstract) { + this.raise(TSErrors.PrivateElementHasAbstract, node); + } + if (node.accessibility) { + this.raise(TSErrors.PrivateElementHasAccessibility, node, { + modifier: node.accessibility + }); + } + this.parseClassPropertyAnnotation(node); + return super.parseClassPrivateProperty(node); + } + parseClassAccessorProperty(node) { + this.parseClassPropertyAnnotation(node); + if (node.optional) { + this.raise(TSErrors.AccessorCannotBeOptional, node); + } + return super.parseClassAccessorProperty(node); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters && isConstructor) { + this.raise(TSErrors.ConstructorHasTypeParameters, typeParameters); + } + const { + declare = false, + kind + } = method; + if (declare && (kind === "get" || kind === "set")) { + this.raise(TSErrors.DeclareAccessor, method, { + kind + }); + } + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) method.typeParameters = typeParameters; + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + declareClassPrivateMethodInScope(node, kind) { + if (node.type === "TSDeclareMethod") return; + if (node.type === "MethodDefinition" && !hasOwnProperty.call(node.value, "body")) { + return; + } + super.declareClassPrivateMethodInScope(node, kind); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } + } + if (this.eatContextual(113)) { + node.implements = this.tsParseHeritageClause("implements"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) prop.typeParameters = typeParameters; + return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + } + parseFunctionParams(node, isConstructor) { + const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier); + if (typeParameters) node.typeParameters = typeParameters; + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) { + decl.definite = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) { + decl.id.typeAnnotation = type; + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + node.returnType = this.tsParseTypeAnnotation(); + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2; + let state; + let jsx; + let typeCast; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) { + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + if (!state || state === this.state) state = this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _expr$extra, _typeParameters; + typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier); + const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + abort(); + } + if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { + this.resetStartLocationFromNode(expr, typeParameters); + } + expr.typeParameters = typeParameters; + return expr; + }, state); + if (!arrow.error && !arrow.aborted) { + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if (!jsx) { + assert(!this.hasPlugin("jsx")); + typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!typeCast.error) return typeCast.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrow.node) { + this.state = arrow.failState; + if (typeParameters) this.reportReservedArrowTypeParam(typeParameters); + return arrow.node; + } + if ((_typeCast = typeCast) != null && _typeCast.node) { + this.state = typeCast.failState; + return typeCast.node; + } + throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); + } + reportReservedArrowTypeParam(node) { + var _node$extra; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + this.raise(TSErrors.ReservedArrowTypeParam, node); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + if (!this.hasPlugin("jsx") && this.match(47)) { + return this.tsParseTypeAssertion(); + } + return super.parseMaybeUnary(refExpressionErrors, sawUnary); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(abort => { + const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); + if (this.canInsertSemicolon() || !this.match(19)) abort(); + return returnType; + }); + if (result.aborted) return; + if (!result.thrown) { + if (result.error) this.state = result.failState; + node.returnType = result.node; + } + } + return super.parseArrow(node); + } + parseFunctionParamType(param) { + if (this.eat(17)) { + param.optional = true; + } + const type = this.tsTryParseTypeAnnotation(); + if (type) param.typeAnnotation = type; + this.resetEndLocation(param); + return param; + } + isAssignable(node, isBinding) { + switch (node.type) { + case "TSTypeCastExpression": + return this.isAssignable(node.expression, isBinding); + case "TSParameterProperty": + return true; + default: + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + switch (node.type) { + case "ParenthesizedExpression": + this.toAssignableParenthesizedExpression(node, isLHS); + break; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + if (isLHS) { + this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, node); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, node); + } + this.toAssignable(node.expression, isLHS); + break; + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + default: + super.toAssignable(node, isLHS); + } + } + toAssignableParenthesizedExpression(node, isLHS) { + switch (node.expression.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSNonNullExpression": + case "TSTypeAssertion": + case "ParenthesizedExpression": + this.toAssignable(node.expression, isLHS); + break; + default: + super.toAssignable(node, isLHS); + } + } + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + default: + super.checkToRestConversion(node, allowPattern); + } + } + isValidLVal(type, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + case "TSInstantiationExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, isUnparenthesizedInAssign, binding); + } + } + parseBindingAtom() { + if (this.state.type === 78) { + return this.parseIdentifier(true); + } + return super.parseBindingAtom(); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (this.match(10)) { + const call = super.parseMaybeDecoratorArguments(expr, startLoc); + { + call.typeParameters = typeArguments; + } + return call; + } + this.unexpected(null, 10); + } + return super.parseMaybeDecoratorArguments(expr, startLoc); + } + checkCommaAfterRest(close) { + if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { + this.next(); + return false; + } + return super.checkCommaAfterRest(close); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(35) || this.match(14) || super.isClassProperty(); + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(TSErrors.TypeAnnotationAfterAssign, node.typeAnnotation); + } + return node; + } + getTokenFromCode(code) { + if (this.state.inType) { + if (code === 62) { + this.finishOp(48, 1); + return; + } + if (code === 60) { + this.finishOp(47, 1); + return; + } + } + super.getTokenFromCode(code); + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + shouldParseArrow(params) { + if (this.match(14)) { + return params.every(expr => this.isAssignable(expr, true)); + } + return super.shouldParseArrow(params); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + canHaveLeadingDecorator() { + return super.canHaveLeadingDecorator() || this.isAbstractClass(); + } + jsxParseOpeningElementAfterName(node) { + if (this.match(47) || this.match(51)) { + const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); + if (typeArguments) { + { + node.typeParameters = typeArguments; + } + } + } + return super.jsxParseOpeningElementAfterName(node); + } + getGetterSetterExpectedParamCount(method) { + const baseCount = super.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + const firstParam = params[0]; + const hasContextParam = firstParam && this.isThisParam(firstParam); + return hasContextParam ? baseCount + 1 : baseCount; + } + parseCatchClauseParam() { + const param = super.parseCatchClauseParam(); + const type = this.tsTryParseTypeAnnotation(); + if (type) { + param.typeAnnotation = type; + this.resetEndLocation(param); + } + return param; + } + tsInAmbientContext(cb) { + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; + this.state.isAmbientContext = true; + this.state.strict = false; + try { + return cb(); + } finally { + this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; + } + } + parseClass(node, isStatement, optionalId) { + const oldInAbstractClass = this.state.inAbstractClass; + this.state.inAbstractClass = !!node.abstract; + try { + return super.parseClass(node, isStatement, optionalId); + } finally { + this.state.inAbstractClass = oldInAbstractClass; + } + } + tsParseAbstractDeclaration(node, decorators) { + if (this.match(80)) { + node.abstract = true; + return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false)); + } else if (this.isContextual(129)) { + if (!this.hasFollowingLineBreak()) { + node.abstract = true; + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, node); + return this.tsParseInterfaceDeclaration(node); + } + } else { + this.unexpected(null, 80); + } + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { + const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); + if (method.abstract) { + const hasEstreePlugin = this.hasPlugin("estree"); + const methodFn = hasEstreePlugin ? method.value : method; + if (methodFn.body) { + const { + key + } = method; + this.raise(TSErrors.AbstractMethodHasImplementation, method, { + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` + }); + } + } + return method; + } + tsParseTypeParameterName() { + const typeName = this.parseIdentifier(); + return typeName.name; + } + shouldParseAsAmbientContext() { + return !!this.getPluginOption("typescript", "dts"); + } + parse() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.parse(); + } + getExpression() { + if (this.shouldParseAsAmbientContext()) { + this.state.isAmbientContext = true; + } + return super.getExpression(); + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (!isString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport); + return this.finishNode(node, "ExportSpecifier"); + } + node.exportKind = "value"; + return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly); + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (!importedIsString && isMaybeTypeOnly) { + this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport); + return this.finishNode(specifier, "ImportSpecifier"); + } + specifier.importKind = "value"; + return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096); + } + parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) { + const leftOfAsKey = isImport ? "imported" : "local"; + const rightOfAsKey = isImport ? "local" : "exported"; + let leftOfAs = node[leftOfAsKey]; + let rightOfAs; + let hasTypeSpecifier = false; + let canParseAsKeyword = true; + const loc = leftOfAs.loc.start; + if (this.isContextual(93)) { + const firstAs = this.parseIdentifier(); + if (this.isContextual(93)) { + const secondAs = this.parseIdentifier(); + if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + leftOfAs = firstAs; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + canParseAsKeyword = false; + } else { + rightOfAs = secondAs; + canParseAsKeyword = false; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + canParseAsKeyword = false; + rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } else { + hasTypeSpecifier = true; + leftOfAs = firstAs; + } + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + hasTypeSpecifier = true; + if (isImport) { + leftOfAs = this.parseIdentifier(true); + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } + } + if (hasTypeSpecifier && isInTypeOnlyImportExport) { + this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, loc); + } + node[leftOfAsKey] = leftOfAs; + node[rightOfAsKey] = rightOfAs; + const kindKey = isImport ? "importKind" : "exportKind"; + node[kindKey] = hasTypeSpecifier ? "type" : "value"; + if (canParseAsKeyword && this.eatContextual(93)) { + node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + } + if (!node[rightOfAsKey]) { + node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]); + } + if (isImport) { + this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); + } + } +}; +function isPossiblyLiteralEnum(expression) { + if (expression.type !== "MemberExpression") return false; + const { + computed, + property + } = expression; + if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +function isValidAmbientConstInitializer(expression, estree) { + var _expression$extra; + const { + type + } = expression; + if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) { + return false; + } + if (estree) { + if (type === "Literal") { + const { + value + } = expression; + if (typeof value === "string" || typeof value === "boolean") { + return true; + } + } + } else { + if (type === "StringLiteral" || type === "BooleanLiteral") { + return true; + } + } + if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) { + return true; + } + if (type === "TemplateLiteral" && expression.expressions.length === 0) { + return true; + } + if (isPossiblyLiteralEnum(expression)) { + return true; + } + return false; +} +function isNumber(expression, estree) { + if (estree) { + return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression); + } + return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral"; +} +function isNegativeNumber(expression, estree) { + if (expression.type === "UnaryExpression") { + const { + operator, + argument + } = expression; + if (operator === "-" && isNumber(argument, estree)) { + return true; + } + } + return false; +} +function isUncomputedMemberExpressionChain(expression) { + if (expression.type === "Identifier") return true; + if (expression.type !== "MemberExpression" || expression.computed) { + return false; + } + return isUncomputedMemberExpressionChain(expression.object); +} +const PlaceholderErrors = ParseErrorEnum`placeholders`({ + ClassNameIsRequired: "A class name is required.", + UnexpectedSpace: "Unexpected space in placeholder." +}); +var placeholders = superClass => class PlaceholdersParserMixin extends superClass { + parsePlaceholder(expectedNode) { + if (this.match(133)) { + const node = this.startNode(); + this.next(); + this.assertNoSpace(); + node.name = super.parseIdentifier(true); + this.assertNoSpace(); + this.expect(133); + return this.finishPlaceholder(node, expectedNode); + } + } + finishPlaceholder(node, expectedNode) { + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; + } + getTokenFromCode(code) { + if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { + this.finishOp(133, 2); + } else { + super.getTokenFromCode(code); + } + } + parseExprAtom(refExpressionErrors) { + return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors); + } + parseIdentifier(liberal) { + return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal); + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word !== undefined) { + super.checkReservedWord(word, startLoc, checkKeywords, isBinding); + } + } + parseBindingAtom() { + return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); + } + isValidLVal(type, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding); + } + toAssignable(node, isLHS) { + if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { + node.expectedNode = "Pattern"; + } else { + super.toAssignable(node, isLHS); + } + } + chStartsBindingIdentifier(ch, pos) { + if (super.chStartsBindingIdentifier(ch, pos)) { + return true; + } + const nextToken = this.lookahead(); + if (nextToken.type === 133) { + return true; + } + return false; + } + verifyBreakContinue(node, isBreak) { + if (node.label && node.label.type === "Placeholder") return; + super.verifyBreakContinue(node, isBreak); + } + parseExpressionStatement(node, expr) { + var _expr$extra; + if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { + return super.parseExpressionStatement(node, expr); + } + if (this.match(14)) { + const stmt = node; + stmt.label = this.finishPlaceholder(expr, "Identifier"); + this.next(); + stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration(); + return this.finishNode(stmt, "LabeledStatement"); + } + this.semicolon(); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); + } + parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { + return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); + } + parseFunctionId(requireId) { + return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId); + } + parseClass(node, isStatement, optionalId) { + const type = isStatement ? "ClassDeclaration" : "ClassExpression"; + this.next(); + const oldStrict = this.state.strict; + const placeholder = this.parsePlaceholder("Identifier"); + if (placeholder) { + if (this.match(81) || this.match(133) || this.match(5)) { + node.id = placeholder; + } else if (optionalId || !isStatement) { + node.id = null; + node.body = this.finishPlaceholder(placeholder, "ClassBody"); + return this.finishNode(node, type); + } else { + throw this.raise(PlaceholderErrors.ClassNameIsRequired, this.state.startLoc); + } + } else { + this.parseClassId(node, isStatement, optionalId); + } + super.parseClassSuper(node); + node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, type); + } + parseExport(node, decorators) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; + if (!this.isContextual(98) && !this.match(12)) { + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); + } + this.expectPlugin("exportDefaultFrom"); + const specifier = this.startNode(); + specifier.exported = placeholder; + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); + } + isExportDefaultSpecifier() { + if (this.match(65)) { + const next = this.nextTokenStart(); + if (this.isUnparsedContextual(next, "from")) { + if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) { + return true; + } + } + } + return super.isExportDefaultSpecifier(); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + var _specifiers; + if ((_specifiers = node.specifiers) != null && _specifiers.length) { + return true; + } + return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + } + checkExport(node) { + const { + specifiers + } = node; + if (specifiers != null && specifiers.length) { + node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); + } + super.checkExport(node); + node.specifiers = specifiers; + } + parseImport(node) { + const placeholder = this.parsePlaceholder("Identifier"); + if (!placeholder) return super.parseImport(node); + node.specifiers = []; + if (!this.isContextual(98) && !this.match(12)) { + node.source = this.finishPlaceholder(placeholder, "StringLiteral"); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + const specifier = this.startNodeAtNode(placeholder); + specifier.local = placeholder; + node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier")); + if (this.eat(12)) { + const hasStarImport = this.maybeParseStarImportSpecifier(node); + if (!hasStarImport) this.parseNamedImportSpecifiers(node); + } + this.expectContextual(98); + node.source = this.parseImportSource(); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); + } + assertNoSpace() { + if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) { + this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); + } + } +}; +var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { + parseV8Intrinsic() { + if (this.match(54)) { + const v8IntrinsicStartLoc = this.state.startLoc; + const node = this.startNode(); + this.next(); + if (tokenIsIdentifier(this.state.type)) { + const name = this.parseIdentifierName(); + const identifier = this.createIdentifier(node, name); + identifier.type = "V8IntrinsicIdentifier"; + if (this.match(10)) { + return identifier; + } + } + this.unexpected(v8IntrinsicStartLoc); + } + } + parseExprAtom(refExpressionErrors) { + return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); + } +}; +const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; +const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; +function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { + throw new Error("Cannot use the decorators and decorators-legacy plugin together"); + } + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; + if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { + throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); + } + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; + if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { + throw new Error("'allowCallParenthesized' must be a boolean."); + } + } + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { + throw new Error("Cannot combine flow and typescript plugins."); + } + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine placeholders and v8intrinsic plugins."); + } + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get; + const proposal = pluginsMap.get("pipelineOperator").proposal; + if (!PIPELINE_PROPOSALS.includes(proposal)) { + const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); + throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); + } + const tupleSyntaxIsHash = ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash"; + if (proposal === "hack") { + if (pluginsMap.has("placeholders")) { + throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); + } + if (pluginsMap.has("v8intrinsic")) { + throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); + } + const topicToken = pluginsMap.get("pipelineOperator").topicToken; + if (!TOPIC_TOKENS.includes(topicToken)) { + const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); + throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); + } + if (topicToken === "#" && tupleSyntaxIsHash) { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } else if (proposal === "smart" && tupleSyntaxIsHash) { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); + } + } + if (pluginsMap.has("moduleAttributes")) { + { + if (pluginsMap.has("deprecatedImportAssert") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + } + if (pluginsMap.has("importAssertions")) { + if (pluginsMap.has("deprecatedImportAssert")) { + throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins."); + } + } + if (!pluginsMap.has("deprecatedImportAssert") && pluginsMap.has("importAttributes") && pluginsMap.get("importAttributes").deprecatedAssertSyntax) { + { + pluginsMap.set("deprecatedImportAssert", {}); + } + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); + } + } + } + } + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { + const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); + error.missingPlugins = "doExpressions"; + throw error; + } + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { + throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); + } +} +const mixinPlugins = { + estree, + jsx, + flow, + typescript, + v8intrinsic, + placeholders +}; +const mixinPluginNames = Object.keys(mixinPlugins); +class ExpressionParser extends LValParser { + checkProto(prop, isRecord, protoRef, refExpressionErrors) { + if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { + return; + } + const key = prop.key; + const name = key.type === "Identifier" ? key.name : key.value; + if (name === "__proto__") { + if (isRecord) { + this.raise(Errors.RecordNoProto, key); + return; + } + if (protoRef.used) { + if (refExpressionErrors) { + if (refExpressionErrors.doubleProtoLoc === null) { + refExpressionErrors.doubleProtoLoc = key.loc.start; + } + } else { + this.raise(Errors.DuplicateProto, key); + } + } + protoRef.used = true; + } + } + shouldExitDescending(expr, potentialArrowAt) { + return expr.type === "ArrowFunctionExpression" && this.offsetToSourcePos(expr.start) === potentialArrowAt; + } + getExpression() { + this.enterInitialScopes(); + this.nextToken(); + const expr = this.parseExpression(); + if (!this.match(140)) { + this.unexpected(); + } + this.finalizeRemainingComments(); + expr.comments = this.comments; + expr.errors = this.state.errors; + if (this.optionFlags & 128) { + expr.tokens = this.tokens; + } + return expr; + } + parseExpression(disallowIn, refExpressionErrors) { + if (disallowIn) { + return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); + } + parseExpressionBase(refExpressionErrors) { + const startLoc = this.state.startLoc; + const expr = this.parseMaybeAssign(refExpressionErrors); + if (this.match(12)) { + const node = this.startNodeAt(startLoc); + node.expressions = [expr]; + while (this.eat(12)) { + node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); + } + this.toReferencedList(node.expressions); + return this.finishNode(node, "SequenceExpression"); + } + return expr; + } + parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { + return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { + return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); + } + setOptionalParametersError(refExpressionErrors, resultError) { + var _resultError$loc; + refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc; + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + const startLoc = this.state.startLoc; + if (this.isContextual(108)) { + if (this.prodParam.hasYield) { + let left = this.parseYield(); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + return left; + } + } + let ownExpressionErrors; + if (refExpressionErrors) { + ownExpressionErrors = false; + } else { + refExpressionErrors = new ExpressionErrors(); + ownExpressionErrors = true; + } + const { + type + } = this.state; + if (type === 10 || tokenIsIdentifier(type)) { + this.state.potentialArrowAt = this.state.start; + } + let left = this.parseMaybeConditional(refExpressionErrors); + if (afterLeftParse) { + left = afterLeftParse.call(this, left, startLoc); + } + if (tokenIsAssignment(this.state.type)) { + const node = this.startNodeAt(startLoc); + const operator = this.state.value; + node.operator = operator; + if (this.match(29)) { + this.toAssignable(left, true); + node.left = left; + const startIndex = startLoc.index; + if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) { + refExpressionErrors.doubleProtoLoc = null; + } + if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) { + refExpressionErrors.shorthandAssignLoc = null; + } + if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) { + this.checkDestructuringPrivate(refExpressionErrors); + refExpressionErrors.privateKeyLoc = null; + } + } else { + node.left = left; + } + this.next(); + node.right = this.parseMaybeAssign(); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression")); + return node; + } else if (ownExpressionErrors) { + this.checkExpressionErrors(refExpressionErrors, true); + } + return left; + } + parseMaybeConditional(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprOps(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseConditional(expr, startLoc, refExpressionErrors); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (this.eat(17)) { + const node = this.startNodeAt(startLoc); + node.test = expr; + node.consequent = this.parseMaybeAssignAllowIn(); + this.expect(14); + node.alternate = this.parseMaybeAssign(); + return this.finishNode(node, "ConditionalExpression"); + } + return expr; + } + parseMaybeUnaryOrPrivate(refExpressionErrors) { + return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + } + parseExprOps(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseExprOp(expr, startLoc, -1); + } + parseExprOp(left, leftStartLoc, minPrec) { + if (this.isPrivateName(left)) { + const value = this.getPrivateNameSV(left); + if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) { + this.raise(Errors.PrivateInExpectedIn, left, { + identifierName: value + }); + } + this.classScope.usePrivateName(value, left.loc.start); + } + const op = this.state.type; + if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) { + let prec = tokenOperatorPrecedence(op); + if (prec > minPrec) { + if (op === 39) { + this.expectPlugin("pipelineOperator"); + if (this.state.inFSharpPipelineDirectBody) { + return left; + } + this.checkPipelineAtInfixOperator(left, leftStartLoc); + } + const node = this.startNodeAt(leftStartLoc); + node.left = left; + node.operator = this.state.value; + const logical = op === 41 || op === 42; + const coalesce = op === 40; + if (coalesce) { + prec = tokenOperatorPrecedence(42); + } + this.next(); + if (op === 39 && this.hasPlugin(["pipelineOperator", { + proposal: "minimal" + }])) { + if (this.state.type === 96 && this.prodParam.hasAwait) { + throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, this.state.startLoc); + } + } + node.right = this.parseExprOpRightExpr(op, prec); + const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); + const nextOp = this.state.type; + if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) { + throw this.raise(Errors.MixingCoalesceWithLogical, this.state.startLoc); + } + return this.parseExprOp(finishedNode, leftStartLoc, minPrec); + } + } + return left; + } + parseExprOpRightExpr(op, prec) { + const startLoc = this.state.startLoc; + switch (op) { + case 39: + switch (this.getPluginOption("pipelineOperator", "proposal")) { + case "hack": + return this.withTopicBindingContext(() => { + return this.parseHackPipeBody(); + }); + case "fsharp": + return this.withSoloAwaitPermittingContext(() => { + return this.parseFSharpPipelineBody(prec); + }); + } + if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + } + default: + return this.parseExprOpBaseRightExpr(op, prec); + } + } + parseExprOpBaseRightExpr(op, prec) { + const startLoc = this.state.startLoc; + return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); + } + parseHackPipeBody() { + var _body$extra; + const { + startLoc + } = this.state; + const body = this.parseMaybeAssign(); + const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type); + if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { + this.raise(Errors.PipeUnparenthesizedBody, startLoc, { + type: body.type + }); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipeTopicUnused, startLoc); + } + return body; + } + checkExponentialAfterUnary(node) { + if (this.match(57)) { + this.raise(Errors.UnexpectedTokenUnaryExponentiation, node.argument); + } + } + parseMaybeUnary(refExpressionErrors, sawUnary) { + const startLoc = this.state.startLoc; + const isAwait = this.isContextual(96); + if (isAwait && this.recordAwaitIfAllowed()) { + this.next(); + const expr = this.parseAwait(startLoc); + if (!sawUnary) this.checkExponentialAfterUnary(expr); + return expr; + } + const update = this.match(34); + const node = this.startNode(); + if (tokenIsPrefix(this.state.type)) { + node.operator = this.state.value; + node.prefix = true; + if (this.match(72)) { + this.expectPlugin("throwExpressions"); + } + const isDelete = this.match(89); + this.next(); + node.argument = this.parseMaybeUnary(null, true); + this.checkExpressionErrors(refExpressionErrors, true); + if (this.state.strict && isDelete) { + const arg = node.argument; + if (arg.type === "Identifier") { + this.raise(Errors.StrictDelete, node); + } else if (this.hasPropertyAsPrivateName(arg)) { + this.raise(Errors.DeletePrivateField, node); + } + } + if (!update) { + if (!sawUnary) { + this.checkExponentialAfterUnary(node); + } + return this.finishNode(node, "UnaryExpression"); + } + } + const expr = this.parseUpdate(node, update, refExpressionErrors); + if (isAwait) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousAwait()) { + this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); + return this.parseAwait(startLoc); + } + } + return expr; + } + parseUpdate(node, update, refExpressionErrors) { + if (update) { + const updateExpressionNode = node; + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); + return node; + } + const startLoc = this.state.startLoc; + let expr = this.parseExprSubscripts(refExpressionErrors); + if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; + while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + node.operator = this.state.value; + node.prefix = false; + node.argument = expr; + this.next(); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); + } + return expr; + } + parseExprSubscripts(refExpressionErrors) { + const startLoc = this.state.startLoc; + const potentialArrowAt = this.state.potentialArrowAt; + const expr = this.parseExprAtom(refExpressionErrors); + if (this.shouldExitDescending(expr, potentialArrowAt)) { + return expr; + } + return this.parseSubscripts(expr, startLoc); + } + parseSubscripts(base, startLoc, noCalls) { + const state = { + optionalChainMember: false, + maybeAsyncArrow: this.atPossibleAsyncArrow(base), + stop: false + }; + do { + base = this.parseSubscript(base, startLoc, noCalls, state); + state.maybeAsyncArrow = false; + } while (!state.stop); + return base; + } + parseSubscript(base, startLoc, noCalls, state) { + const { + type + } = this.state; + if (!noCalls && type === 15) { + return this.parseBind(base, startLoc, noCalls, state); + } else if (tokenIsTemplate(type)) { + return this.parseTaggedTemplateExpression(base, startLoc, state); + } + let optional = false; + if (type === 18) { + if (noCalls) { + this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); + if (this.lookaheadCharCode() === 40) { + state.stop = true; + return base; + } + } + state.optionalChainMember = optional = true; + this.next(); + } + if (!noCalls && this.match(10)) { + return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional); + } else { + const computed = this.eat(0); + if (computed || optional || this.eat(16)) { + return this.parseMember(base, startLoc, state, computed, optional); + } else { + state.stop = true; + return base; + } + } + } + parseMember(base, startLoc, state, computed, optional) { + const node = this.startNodeAt(startLoc); + node.object = base; + node.computed = computed; + if (computed) { + node.property = this.parseExpression(); + this.expect(3); + } else if (this.match(139)) { + if (base.type === "Super") { + this.raise(Errors.SuperPrivateField, startLoc); + } + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + if (state.optionalChainMember) { + node.optional = optional; + return this.finishNode(node, "OptionalMemberExpression"); + } else { + return this.finishNode(node, "MemberExpression"); + } + } + parseBind(base, startLoc, noCalls, state) { + const node = this.startNodeAt(startLoc); + node.object = base; + this.next(); + node.callee = this.parseNoCallExpr(); + state.stop = true; + return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls); + } + parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) { + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + let refExpressionErrors = null; + this.state.maybeInArrowParameters = true; + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + const { + maybeAsyncArrow, + optionalChainMember + } = state; + if (maybeAsyncArrow) { + this.expressionScope.enter(newAsyncArrowScope()); + refExpressionErrors = new ExpressionErrors(); + } + if (optionalChainMember) { + node.optional = optional; + } + if (optional) { + node.arguments = this.parseCallExpressionArguments(11); + } else { + node.arguments = this.parseCallExpressionArguments(11, base.type !== "Super", node, refExpressionErrors); + } + let finishedNode = this.finishCallExpression(node, optionalChainMember); + if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { + state.stop = true; + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode); + } else { + if (maybeAsyncArrow) { + this.checkExpressionErrors(refExpressionErrors, true); + this.expressionScope.exit(); + } + this.toReferencedArguments(finishedNode); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return finishedNode; + } + toReferencedArguments(node, isParenthesizedExpr) { + this.toReferencedListDeep(node.arguments, isParenthesizedExpr); + } + parseTaggedTemplateExpression(base, startLoc, state) { + const node = this.startNodeAt(startLoc); + node.tag = base; + node.quasi = this.parseTemplate(true); + if (state.optionalChainMember) { + this.raise(Errors.OptionalChainingNoTemplate, startLoc); + } + return this.finishNode(node, "TaggedTemplateExpression"); + } + atPossibleAsyncArrow(base) { + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.offsetToSourcePos(base.start) === this.state.potentialArrowAt; + } + finishCallExpression(node, optional) { + if (node.callee.type === "Import") { + if (node.arguments.length === 0 || node.arguments.length > 2) { + this.raise(Errors.ImportCallArity, node); + } else { + for (const arg of node.arguments) { + if (arg.type === "SpreadElement") { + this.raise(Errors.ImportCallSpreadArgument, arg); + } + } + } + } + return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); + } + parseCallExpressionArguments(close, allowPlaceholder, nodeForExtra, refExpressionErrors) { + const elts = []; + let first = true; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); + } + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return elts; + } + shouldParseAsyncArrow() { + return this.match(19) && !this.canInsertSemicolon(); + } + parseAsyncArrowFromCallExpression(node, call) { + var _call$extra; + this.resetPreviousNodeTrailingComments(call); + this.expect(19); + this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc); + if (call.innerComments) { + setInnerComments(node, call.innerComments); + } + if (call.callee.trailingComments) { + setInnerComments(node, call.callee.trailingComments); + } + return node; + } + parseNoCallExpr() { + const startLoc = this.state.startLoc; + return this.parseSubscripts(this.parseExprAtom(), startLoc, true); + } + parseExprAtom(refExpressionErrors) { + let node; + let decorators = null; + const { + type + } = this.state; + switch (type) { + case 79: + return this.parseSuper(); + case 83: + node = this.startNode(); + this.next(); + if (this.match(16)) { + return this.parseImportMetaProperty(node); + } + if (this.match(10)) { + if (this.optionFlags & 256) { + return this.parseImportCall(node); + } else { + return this.finishNode(node, "Import"); + } + } else { + this.raise(Errors.UnsupportedImport, this.state.lastTokStartLoc); + return this.finishNode(node, "Import"); + } + case 78: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); + case 90: + { + return this.parseDo(this.startNode(), false); + } + case 56: + case 31: + { + this.readRegexp(); + return this.parseRegExpLiteral(this.state.value); + } + case 135: + return this.parseNumericLiteral(this.state.value); + case 136: + return this.parseBigIntLiteral(this.state.value); + case 134: + return this.parseStringLiteral(this.state.value); + case 84: + return this.parseNullLiteral(); + case 85: + return this.parseBooleanLiteral(true); + case 86: + return this.parseBooleanLiteral(false); + case 10: + { + const canBeArrow = this.state.potentialArrowAt === this.state.start; + return this.parseParenAndDistinguishExpression(canBeArrow); + } + case 2: + case 1: + { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true); + } + case 0: + { + return this.parseArrayLike(3, true, false, refExpressionErrors); + } + case 6: + case 7: + { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } + case 5: + { + return this.parseObjectLike(8, false, false, refExpressionErrors); + } + case 68: + return this.parseFunctionOrFunctionSent(); + case 26: + decorators = this.parseDecorators(); + case 80: + return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false); + case 77: + return this.parseNewOrNewTarget(); + case 25: + case 24: + return this.parseTemplate(false); + case 15: + { + node = this.startNode(); + this.next(); + node.object = null; + const callee = node.callee = this.parseNoCallExpr(); + if (callee.type === "MemberExpression") { + return this.finishNode(node, "BindExpression"); + } else { + throw this.raise(Errors.UnsupportedBind, callee); + } + } + case 139: + { + this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { + identifierName: this.state.value + }); + return this.parsePrivateName(); + } + case 33: + { + return this.parseTopicReferenceThenEqualsSign(54, "%"); + } + case 32: + { + return this.parseTopicReferenceThenEqualsSign(44, "^"); + } + case 37: + case 38: + { + return this.parseTopicReference("hack"); + } + case 44: + case 54: + case 27: + { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + return this.parseTopicReference(pipeProposal); + } + this.unexpected(); + break; + } + case 47: + { + const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); + if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { + this.expectOnePlugin(["jsx", "flow", "typescript"]); + } else { + this.unexpected(); + } + break; + } + default: + if (type === 137) { + return this.parseDecimalLiteral(this.state.value); + } + if (tokenIsIdentifier(type)) { + if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { + return this.parseModuleExpression(); + } + const canBeArrow = this.state.potentialArrowAt === this.state.start; + const containsEsc = this.state.containsEsc; + const id = this.parseIdentifier(); + if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { + const { + type + } = this.state; + if (type === 68) { + this.resetPreviousNodeTrailingComments(id); + this.next(); + return this.parseAsyncFunctionExpression(this.startNodeAtNode(id)); + } else if (tokenIsIdentifier(type)) { + if (this.lookaheadCharCode() === 61) { + return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); + } else { + return id; + } + } else if (type === 90) { + this.resetPreviousNodeTrailingComments(id); + return this.parseDo(this.startNodeAtNode(id), true); + } + } + if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { + this.next(); + return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); + } + return id; + } else { + this.unexpected(); + } + } + } + parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) { + const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); + if (pipeProposal) { + this.state.type = topicTokenType; + this.state.value = topicTokenValue; + this.state.pos--; + this.state.end--; + this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); + return this.parseTopicReference(pipeProposal); + } else { + this.unexpected(); + } + } + parseTopicReference(pipeProposal) { + const node = this.startNode(); + const startLoc = this.state.startLoc; + const tokenType = this.state.type; + this.next(); + return this.finishTopicReference(node, startLoc, pipeProposal, tokenType); + } + finishTopicReference(node, startLoc, pipeProposal, tokenType) { + if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { + if (pipeProposal === "hack") { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "TopicReference"); + } else { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PrimaryTopicNotAllowed, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "PipelinePrimaryTopicReference"); + } + } else { + throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { + token: tokenLabelName(tokenType) + }); + } + } + testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) { + switch (pipeProposal) { + case "hack": + { + return this.hasPlugin(["pipelineOperator", { + topicToken: tokenLabelName(tokenType) + }]); + } + case "smart": + return tokenType === 27; + default: + throw this.raise(Errors.PipeTopicRequiresHackPipes, startLoc); + } + } + parseAsyncArrowUnaryFunction(node) { + this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); + const params = [this.parseIdentifier()]; + this.prodParam.exit(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.LineTerminatorBeforeArrow, this.state.curPosition()); + } + this.expect(19); + return this.parseArrowExpression(node, params, true); + } + parseDo(node, isAsync) { + this.expectPlugin("doExpressions"); + if (isAsync) { + this.expectPlugin("asyncDoExpressions"); + } + node.async = isAsync; + this.next(); + const oldLabels = this.state.labels; + this.state.labels = []; + if (isAsync) { + this.prodParam.enter(2); + node.body = this.parseBlock(); + this.prodParam.exit(); + } else { + node.body = this.parseBlock(); + } + this.state.labels = oldLabels; + return this.finishNode(node, "DoExpression"); + } + parseSuper() { + const node = this.startNode(); + this.next(); + if (this.match(10) && !this.scope.allowDirectSuper && !(this.optionFlags & 16)) { + this.raise(Errors.SuperNotAllowed, node); + } else if (!this.scope.allowSuper && !(this.optionFlags & 16)) { + this.raise(Errors.UnexpectedSuper, node); + } + if (!this.match(10) && !this.match(0) && !this.match(16)) { + this.raise(Errors.UnsupportedSuper, node); + } + return this.finishNode(node, "Super"); + } + parsePrivateName() { + const node = this.startNode(); + const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1)); + const name = this.state.value; + this.next(); + node.id = this.createIdentifier(id, name); + return this.finishNode(node, "PrivateName"); + } + parseFunctionOrFunctionSent() { + const node = this.startNode(); + this.next(); + if (this.prodParam.hasYield && this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); + this.next(); + if (this.match(103)) { + this.expectPlugin("functionSent"); + } else if (!this.hasPlugin("functionSent")) { + this.unexpected(); + } + return this.parseMetaProperty(node, meta, "sent"); + } + return this.parseFunction(node); + } + parseMetaProperty(node, meta, propertyName) { + node.meta = meta; + const containsEsc = this.state.containsEsc; + node.property = this.parseIdentifier(true); + if (node.property.name !== propertyName || containsEsc) { + this.raise(Errors.UnsupportedMetaProperty, node.property, { + target: meta.name, + onlyValidPropertyName: propertyName + }); + } + return this.finishNode(node, "MetaProperty"); + } + parseImportMetaProperty(node) { + const id = this.createIdentifier(this.startNodeAtNode(node), "import"); + this.next(); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } else if (this.isContextual(105) || this.isContextual(97)) { + const isSource = this.isContextual(105); + this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); + if (!(this.optionFlags & 256)) { + throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, { + phase: this.state.value + }); + } + this.next(); + node.phase = isSource ? "source" : "defer"; + return this.parseImportCall(node); + } + return this.parseMetaProperty(node, id, "meta"); + } + parseLiteralAtNode(value, type, node) { + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.value = value; + this.next(); + return this.finishNode(node, type); + } + parseLiteral(value, type) { + const node = this.startNode(); + return this.parseLiteralAtNode(value, type, node); + } + parseStringLiteral(value) { + return this.parseLiteral(value, "StringLiteral"); + } + parseNumericLiteral(value) { + return this.parseLiteral(value, "NumericLiteral"); + } + parseBigIntLiteral(value) { + return this.parseLiteral(value, "BigIntLiteral"); + } + parseDecimalLiteral(value) { + return this.parseLiteral(value, "DecimalLiteral"); + } + parseRegExpLiteral(value) { + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); + node.pattern = value.pattern; + node.flags = value.flags; + this.next(); + return this.finishNode(node, "RegExpLiteral"); + } + parseBooleanLiteral(value) { + const node = this.startNode(); + node.value = value; + this.next(); + return this.finishNode(node, "BooleanLiteral"); + } + parseNullLiteral() { + const node = this.startNode(); + this.next(); + return this.finishNode(node, "NullLiteral"); + } + parseParenAndDistinguishExpression(canBeArrow) { + const startLoc = this.state.startLoc; + let val; + this.next(); + this.expressionScope.enter(newArrowHeadScope()); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.maybeInArrowParameters = true; + this.state.inFSharpPipelineDirectBody = false; + const innerStartLoc = this.state.startLoc; + const exprList = []; + const refExpressionErrors = new ExpressionErrors(); + let first = true; + let spreadStartLoc; + let optionalCommaStartLoc; + while (!this.match(11)) { + if (first) { + first = false; + } else { + this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc); + if (this.match(11)) { + optionalCommaStartLoc = this.state.startLoc; + break; + } + } + if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + spreadStartLoc = this.state.startLoc; + exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc)); + if (!this.checkCommaAfterRest(41)) { + break; + } + } else { + exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); + } + } + const innerEndLoc = this.state.lastTokEndLoc; + this.expect(11); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let arrowNode = this.startNodeAt(startLoc); + if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { + this.checkDestructuringPrivate(refExpressionErrors); + this.expressionScope.validateAsPattern(); + this.expressionScope.exit(); + this.parseArrowExpression(arrowNode, exprList, false); + return arrowNode; + } + this.expressionScope.exit(); + if (!exprList.length) { + this.unexpected(this.state.lastTokStartLoc); + } + if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc); + if (spreadStartLoc) this.unexpected(spreadStartLoc); + this.checkExpressionErrors(refExpressionErrors, true); + this.toReferencedListDeep(exprList, true); + if (exprList.length > 1) { + val = this.startNodeAt(innerStartLoc); + val.expressions = exprList; + this.finishNode(val, "SequenceExpression"); + this.resetEndLocation(val, innerEndLoc); + } else { + val = exprList[0]; + } + return this.wrapParenthesis(startLoc, val); + } + wrapParenthesis(startLoc, expression) { + if (!(this.optionFlags & 512)) { + this.addExtra(expression, "parenthesized", true); + this.addExtra(expression, "parenStart", startLoc.index); + this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); + return expression; + } + const parenExpression = this.startNodeAt(startLoc); + parenExpression.expression = expression; + return this.finishNode(parenExpression, "ParenthesizedExpression"); + } + shouldParseArrow(params) { + return !this.canInsertSemicolon(); + } + parseArrow(node) { + if (this.eat(19)) { + return node; + } + } + parseParenItem(node, startLoc) { + return node; + } + parseNewOrNewTarget() { + const node = this.startNode(); + this.next(); + if (this.match(16)) { + const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); + this.next(); + const metaProp = this.parseMetaProperty(node, meta, "target"); + if (!this.scope.inNonArrowFunction && !this.scope.inClass && !(this.optionFlags & 4)) { + this.raise(Errors.UnexpectedNewTarget, metaProp); + } + return metaProp; + } + return this.parseNew(node); + } + parseNew(node) { + this.parseNewCallee(node); + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + return this.finishNode(node, "NewExpression"); + } + parseNewCallee(node) { + const isImport = this.match(83); + const callee = this.parseNoCallExpr(); + node.callee = callee; + if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) { + this.raise(Errors.ImportCallNotNewExpression, callee); + } + } + parseTemplateElement(isTagged) { + const { + start, + startLoc, + end, + value + } = this.state; + const elemStart = start + 1; + const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1)); + if (value === null) { + if (!isTagged) { + this.raise(Errors.InvalidEscapeSequenceTemplate, createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)); + } + } + const isTail = this.match(24); + const endOffset = isTail ? -1 : -2; + const elemEnd = end + endOffset; + elem.value = { + raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"), + cooked: value === null ? null : value.slice(1, endOffset) + }; + elem.tail = isTail; + this.next(); + const finishedNode = this.finishNode(elem, "TemplateElement"); + this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset)); + return finishedNode; + } + parseTemplate(isTagged) { + const node = this.startNode(); + let curElt = this.parseTemplateElement(isTagged); + const quasis = [curElt]; + const substitutions = []; + while (!curElt.tail) { + substitutions.push(this.parseTemplateSubstitution()); + this.readTemplateContinuation(); + quasis.push(curElt = this.parseTemplateElement(isTagged)); + } + node.expressions = substitutions; + node.quasis = quasis; + return this.finishNode(node, "TemplateLiteral"); + } + parseTemplateSubstitution() { + return this.parseExpression(); + } + parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { + if (isRecord) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const propHash = Object.create(null); + let first = true; + const node = this.startNode(); + node.properties = []; + this.next(); + while (!this.match(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + this.addTrailingCommaExtraToNode(node); + break; + } + } + let prop; + if (isPattern) { + prop = this.parseBindingProperty(); + } else { + prop = this.parsePropertyDefinition(refExpressionErrors); + this.checkProto(prop, isRecord, propHash, refExpressionErrors); + } + if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { + this.raise(Errors.InvalidRecordProperty, prop); + } + { + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + } + node.properties.push(prop); + } + this.next(); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + let type = "ObjectExpression"; + if (isPattern) { + type = "ObjectPattern"; + } else if (isRecord) { + type = "RecordExpression"; + } + return this.finishNode(node, type); + } + addTrailingCommaExtraToNode(node) { + this.addExtra(node, "trailingComma", this.state.lastTokStartLoc.index); + this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false); + } + maybeAsyncOrAccessorProp(prop) { + return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55)); + } + parsePropertyDefinition(refExpressionErrors) { + let decorators = []; + if (this.match(26)) { + if (this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedPropertyDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } + } + const prop = this.startNode(); + let isAsync = false; + let isAccessor = false; + let startLoc; + if (this.match(21)) { + if (decorators.length) this.unexpected(); + return this.parseSpread(); + } + if (decorators.length) { + prop.decorators = decorators; + decorators = []; + } + prop.method = false; + if (refExpressionErrors) { + startLoc = this.state.startLoc; + } + let isGenerator = this.eat(55); + this.parsePropertyNamePrefixOperator(prop); + const containsEsc = this.state.containsEsc; + this.parsePropertyName(prop, refExpressionErrors); + if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; + const keyName = key.name; + if (keyName === "async" && !this.hasPrecedingLineBreak()) { + isAsync = true; + this.resetPreviousNodeTrailingComments(key); + isGenerator = this.eat(55); + this.parsePropertyName(prop); + } + if (keyName === "get" || keyName === "set") { + isAccessor = true; + this.resetPreviousNodeTrailingComments(key); + prop.kind = keyName; + if (this.match(55)) { + isGenerator = true; + this.raise(Errors.AccessorIsGenerator, this.state.curPosition(), { + kind: keyName + }); + this.next(); + } + this.parsePropertyName(prop); + } + } + return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors); + } + getGetterSetterExpectedParamCount(method) { + return method.kind === "get" ? 0 : 1; + } + getObjectOrClassMethodParams(method) { + return method.params; + } + checkGetterSetterParams(method) { + var _params; + const paramCount = this.getGetterSetterExpectedParamCount(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length !== paramCount) { + this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, method); + } + if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { + this.raise(Errors.BadSetterRestParameter, method); + } + } + parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { + if (isAccessor) { + const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); + this.checkGetterSetterParams(finishedProp); + return finishedProp; + } + if (isAsync || isGenerator || this.match(10)) { + if (isPattern) this.unexpected(); + prop.kind = "method"; + prop.method = true; + return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); + } + } + parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { + prop.shorthand = false; + if (this.eat(14)) { + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); + return this.finishNode(prop, "ObjectProperty"); + } + if (!prop.computed && prop.key.type === "Identifier") { + this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); + if (isPattern) { + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else if (this.match(29)) { + const shorthandAssignLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.shorthandAssignLoc === null) { + refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc; + } + } else { + this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); + } + prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + } else { + prop.value = cloneIdentifier(prop.key); + } + prop.shorthand = true; + return this.finishNode(prop, "ObjectProperty"); + } + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); + if (!node) this.unexpected(); + return node; + } + parsePropertyName(prop, refExpressionErrors) { + if (this.eat(0)) { + prop.computed = true; + prop.key = this.parseMaybeAssignAllowIn(); + this.expect(3); + } else { + const { + type, + value + } = this.state; + let key; + if (tokenIsKeywordOrIdentifier(type)) { + key = this.parseIdentifier(true); + } else { + switch (type) { + case 135: + key = this.parseNumericLiteral(value); + break; + case 134: + key = this.parseStringLiteral(value); + break; + case 136: + key = this.parseBigIntLiteral(value); + break; + case 139: + { + const privateKeyLoc = this.state.startLoc; + if (refExpressionErrors != null) { + if (refExpressionErrors.privateKeyLoc === null) { + refExpressionErrors.privateKeyLoc = privateKeyLoc; + } + } else { + this.raise(Errors.UnexpectedPrivateField, privateKeyLoc); + } + key = this.parsePrivateName(); + break; + } + default: + if (type === 137) { + key = this.parseDecimalLiteral(value); + break; + } + this.unexpected(); + } + } + prop.key = key; + if (type !== 139) { + prop.computed = false; + } + } + } + initFunction(node, isAsync) { + node.id = null; + node.generator = false; + node.async = isAsync; + } + parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { + this.initFunction(node, isAsync); + node.generator = isGenerator; + this.scope.enter(2 | 16 | (inClassScope ? 64 : 0) | (allowDirectSuper ? 32 : 0)); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + this.parseFunctionParams(node, isConstructor); + const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); + this.prodParam.exit(); + this.scope.exit(); + return finishedNode; + } + parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + if (isTuple) { + this.expectPlugin("recordAndTuple"); + } + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = false; + const node = this.startNode(); + this.next(); + node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); + } + parseArrowExpression(node, params, isAsync, trailingCommaLoc) { + this.scope.enter(2 | 4); + let flags = functionFlags(isAsync, false); + if (!this.match(5) && this.prodParam.hasIn) { + flags |= 8; + } + this.prodParam.enter(flags); + this.initFunction(node, isAsync); + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + if (params) { + this.state.maybeInArrowParameters = true; + this.setArrowFunctionParameters(node, params, trailingCommaLoc); + } + this.state.maybeInArrowParameters = false; + this.parseFunctionBody(node, true); + this.prodParam.exit(); + this.scope.exit(); + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return this.finishNode(node, "ArrowFunctionExpression"); + } + setArrowFunctionParameters(node, params, trailingCommaLoc) { + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + this.parseFunctionBody(node, false, isMethod); + return this.finishNode(node, type); + } + parseFunctionBody(node, allowExpression, isMethod = false) { + const isExpression = allowExpression && !this.match(5); + this.expressionScope.enter(newExpressionScope()); + if (isExpression) { + node.body = this.parseMaybeAssign(); + this.checkParams(node, false, allowExpression, false); + } else { + const oldStrict = this.state.strict; + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(this.prodParam.currentFlags() | 4); + node.body = this.parseBlock(true, false, hasStrictModeDirective => { + const nonSimple = !this.isSimpleParamList(node.params); + if (hasStrictModeDirective && nonSimple) { + this.raise(Errors.IllegalLanguageModeDirective, (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node); + } + const strictModeChanged = !oldStrict && this.state.strict; + this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); + if (this.state.strict && node.id) { + this.checkIdentifier(node.id, 65, strictModeChanged); + } + }); + this.prodParam.exit(); + this.state.labels = oldLabels; + } + this.expressionScope.exit(); + } + isSimpleParameter(node) { + return node.type === "Identifier"; + } + isSimpleParamList(params) { + for (let i = 0, len = params.length; i < len; i++) { + if (!this.isSimpleParameter(params[i])) return false; + } + return true; + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + const checkClashes = !allowDuplicates && new Set(); + const formalParameters = { + type: "FormalParameters" + }; + for (const param of node.params) { + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); + } + } + parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { + const elts = []; + let first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.match(close)) { + if (nodeForExtra) { + this.addTrailingCommaExtraToNode(nodeForExtra); + } + this.next(); + break; + } + } + elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); + } + return elts; + } + parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { + let elt; + if (this.match(12)) { + if (!allowEmpty) { + this.raise(Errors.UnexpectedToken, this.state.curPosition(), { + unexpected: "," + }); + } + elt = null; + } else if (this.match(21)) { + const spreadNodeStartLoc = this.state.startLoc; + elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc); + } else if (this.match(17)) { + this.expectPlugin("partialApplication"); + if (!allowPlaceholder) { + this.raise(Errors.UnexpectedArgumentPlaceholder, this.state.startLoc); + } + const node = this.startNode(); + this.next(); + elt = this.finishNode(node, "ArgumentPlaceholder"); + } else { + elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); + } + return elt; + } + parseIdentifier(liberal) { + const node = this.startNode(); + const name = this.parseIdentifierName(liberal); + return this.createIdentifier(node, name); + } + createIdentifier(node, name) { + node.name = name; + node.loc.identifierName = name; + return this.finishNode(node, "Identifier"); + } + parseIdentifierName(liberal) { + let name; + const { + startLoc, + type + } = this.state; + if (tokenIsKeywordOrIdentifier(type)) { + name = this.state.value; + } else { + this.unexpected(); + } + const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type); + if (liberal) { + if (tokenIsKeyword) { + this.replaceToken(132); + } + } else { + this.checkReservedWord(name, startLoc, tokenIsKeyword, false); + } + this.next(); + return name; + } + checkReservedWord(word, startLoc, checkKeywords, isBinding) { + if (word.length > 10) { + return; + } + if (!canBeReservedWord(word)) { + return; + } + if (checkKeywords && isKeyword(word)) { + this.raise(Errors.UnexpectedKeyword, startLoc, { + keyword: word + }); + return; + } + const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; + if (reservedTest(word, this.inModule)) { + this.raise(Errors.UnexpectedReservedWord, startLoc, { + reservedWord: word + }); + return; + } else if (word === "yield") { + if (this.prodParam.hasYield) { + this.raise(Errors.YieldBindingIdentifier, startLoc); + return; + } + } else if (word === "await") { + if (this.prodParam.hasAwait) { + this.raise(Errors.AwaitBindingIdentifier, startLoc); + return; + } + if (this.scope.inStaticBlock) { + this.raise(Errors.AwaitBindingIdentifierInStaticBlock, startLoc); + return; + } + this.expressionScope.recordAsyncArrowParametersError(startLoc); + } else if (word === "arguments") { + if (this.scope.inClassAndNotInNonArrowFunction) { + this.raise(Errors.ArgumentsInClass, startLoc); + return; + } + } + } + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait || this.optionFlags & 1 && !this.scope.inFunction; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; + } + return isAwaitAllowed; + } + parseAwait(startLoc) { + const node = this.startNodeAt(startLoc); + this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, node); + if (this.eat(55)) { + this.raise(Errors.ObsoleteAwaitStar, node); + } + if (!this.scope.inFunction && !(this.optionFlags & 1)) { + if (this.isAmbiguousAwait()) { + this.ambiguousScriptDifferentAst = true; + } else { + this.sawUnambiguousESM = true; + } + } + if (!this.state.soloAwait) { + node.argument = this.parseMaybeUnary(null, true); + } + return this.finishNode(node, "AwaitExpression"); + } + isAmbiguousAwait() { + if (this.hasPrecedingLineBreak()) return true; + const { + type + } = this.state; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + } + parseYield() { + const node = this.startNode(); + this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); + this.next(); + let delegating = false; + let argument = null; + if (!this.hasPrecedingLineBreak()) { + delegating = this.eat(55); + switch (this.state.type) { + case 13: + case 140: + case 8: + case 11: + case 3: + case 9: + case 14: + case 12: + if (!delegating) break; + default: + argument = this.parseMaybeAssign(); + } + } + node.delegate = delegating; + node.argument = argument; + return this.finishNode(node, "YieldExpression"); + } + parseImportCall(node) { + this.next(); + node.source = this.parseMaybeAssignAllowIn(); + node.options = null; + if (this.eat(12)) { + if (!this.match(11)) { + node.options = this.parseMaybeAssignAllowIn(); + if (this.eat(12) && !this.match(11)) { + do { + this.parseMaybeAssignAllowIn(); + } while (this.eat(12) && !this.match(11)); + this.raise(Errors.ImportCallArity, node); + } + } + } + this.expect(11); + return this.finishNode(node, "ImportExpression"); + } + checkPipelineAtInfixOperator(left, leftStartLoc) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + if (left.type === "SequenceExpression") { + this.raise(Errors.PipelineHeadSequenceExpression, leftStartLoc); + } + } + } + parseSmartPipelineBodyInStyle(childExpr, startLoc) { + if (this.isSimpleReference(childExpr)) { + const bodyNode = this.startNodeAt(startLoc); + bodyNode.callee = childExpr; + return this.finishNode(bodyNode, "PipelineBareFunction"); + } else { + const bodyNode = this.startNodeAt(startLoc); + this.checkSmartPipeTopicBodyEarlyErrors(startLoc); + bodyNode.expression = childExpr; + return this.finishNode(bodyNode, "PipelineTopicExpression"); + } + } + isSimpleReference(expression) { + switch (expression.type) { + case "MemberExpression": + return !expression.computed && this.isSimpleReference(expression.object); + case "Identifier": + return true; + default: + return false; + } + } + checkSmartPipeTopicBodyEarlyErrors(startLoc) { + if (this.match(19)) { + throw this.raise(Errors.PipelineBodyNoArrow, this.state.startLoc); + } + if (!this.topicReferenceWasUsedInCurrentContext()) { + this.raise(Errors.PipelineTopicUnused, startLoc); + } + } + withTopicBindingContext(callback) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 1, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } + withSmartMixTopicForbiddingContext(callback) { + if (this.hasPlugin(["pipelineOperator", { + proposal: "smart" + }])) { + const outerContextTopicState = this.state.topicContext; + this.state.topicContext = { + maxNumOfResolvableTopics: 0, + maxTopicIndex: null + }; + try { + return callback(); + } finally { + this.state.topicContext = outerContextTopicState; + } + } else { + return callback(); + } + } + withSoloAwaitPermittingContext(callback) { + const outerContextSoloAwaitState = this.state.soloAwait; + this.state.soloAwait = true; + try { + return callback(); + } finally { + this.state.soloAwait = outerContextSoloAwaitState; + } + } + allowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToSet = 8 & ~flags; + if (prodParamToSet) { + this.prodParam.enter(flags | 8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + disallowInAnd(callback) { + const flags = this.prodParam.currentFlags(); + const prodParamToClear = 8 & flags; + if (prodParamToClear) { + this.prodParam.enter(flags & ~8); + try { + return callback(); + } finally { + this.prodParam.exit(); + } + } + return callback(); + } + registerTopicReference() { + this.state.topicContext.maxTopicIndex = 0; + } + topicReferenceIsAllowedInCurrentContext() { + return this.state.topicContext.maxNumOfResolvableTopics >= 1; + } + topicReferenceWasUsedInCurrentContext() { + return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; + } + parseFSharpPipelineBody(prec) { + const startLoc = this.state.startLoc; + this.state.potentialArrowAt = this.state.start; + const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; + this.state.inFSharpPipelineDirectBody = true; + const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec); + this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; + return ret; + } + parseModuleExpression() { + this.expectPlugin("moduleBlocks"); + const node = this.startNode(); + this.next(); + if (!this.match(5)) { + this.unexpected(null, 5); + } + const program = this.startNodeAt(this.state.endLoc); + this.next(); + const revertScopes = this.initializeScopes(true); + this.enterInitialScopes(); + try { + node.body = this.parseProgram(program, 8, "module"); + } finally { + revertScopes(); + } + return this.finishNode(node, "ModuleExpression"); + } + parsePropertyNamePrefixOperator(prop) {} +} +const loopLabel = { + kind: 1 + }, + switchLabel = { + kind: 2 + }; +const loneSurrogate = /[\uD800-\uDFFF]/u; +const keywordRelationalOperator = /in(?:stanceof)?/y; +function babel7CompatTokens(tokens, input, startIndex) { + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i]; + const { + type + } = token; + if (typeof type === "number") { + { + if (type === 139) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start - startIndex) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); + } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; + } + } + token.type = getExportedToken(type); + } + } + return tokens; +} +class StatementParser extends ExpressionParser { + parseTopLevel(file, program) { + file.program = this.parseProgram(program); + file.comments = this.comments; + if (this.optionFlags & 128) { + file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex); + } + return this.finishNode(file, "File"); + } + parseProgram(program, end = 140, sourceType = this.options.sourceType) { + program.sourceType = sourceType; + program.interpreter = this.parseInterpreterDirective(); + this.parseBlockBody(program, true, true, end); + if (this.inModule) { + if (!(this.optionFlags & 32) && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } + } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); + } + let finishedProgram; + if (end === 140) { + finishedProgram = this.finishNode(program, "Program"); + } else { + finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); + } + return finishedProgram; + } + stmtToDirective(stmt) { + const directive = stmt; + directive.type = "Directive"; + directive.value = directive.expression; + delete directive.expression; + const directiveLiteral = directive.value; + const expressionValue = directiveLiteral.value; + const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end)); + const val = directiveLiteral.value = raw.slice(1, -1); + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.addExtra(directiveLiteral, "expressionValue", expressionValue); + directiveLiteral.type = "DirectiveLiteral"; + return directive; + } + parseInterpreterDirective() { + if (!this.match(28)) { + return null; + } + const node = this.startNode(); + node.value = this.state.value; + this.next(); + return this.finishNode(node, "InterpreterDirective"); + } + isLet() { + if (!this.isContextual(100)) { + return false; + } + return this.hasFollowingBindingAtom(); + } + chStartsBindingIdentifier(ch, pos) { + if (isIdentifierStart(ch)) { + keywordRelationalOperator.lastIndex = pos; + if (keywordRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + chStartsBindingPattern(ch) { + return ch === 91 || ch === 123; + } + hasFollowingBindingAtom() { + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); + } + hasInLineFollowingBindingIdentifierOrBrace() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); + } + startsUsingForOf() { + const { + type, + containsEsc + } = this.lookahead(); + if (type === 102 && !containsEsc) { + return false; + } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) { + this.expectPlugin("explicitResourceManagement"); + return true; + } + } + startsAwaitUsing() { + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + this.expectPlugin("explicitResourceManagement"); + return true; + } + } + return false; + } + parseModuleItem() { + return this.parseStatementLike(1 | 2 | 4 | 8); + } + parseStatementListItem() { + return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8)); + } + parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) { + let flags = 0; + if (this.options.annexB && !this.state.strict) { + flags |= 4; + if (allowLabeledFunction) { + flags |= 8; + } + } + return this.parseStatementLike(flags); + } + parseStatement() { + return this.parseStatementLike(0); + } + parseStatementLike(flags) { + let decorators = null; + if (this.match(26)) { + decorators = this.parseDecorators(true); + } + return this.parseStatementContent(flags, decorators); + } + parseStatementContent(flags, decorators) { + const startType = this.state.type; + const node = this.startNode(); + const allowDeclaration = !!(flags & 2); + const allowFunctionDeclaration = !!(flags & 4); + const topLevel = flags & 1; + switch (startType) { + case 60: + return this.parseBreakContinueStatement(node, true); + case 63: + return this.parseBreakContinueStatement(node, false); + case 64: + return this.parseDebuggerStatement(node); + case 90: + return this.parseDoWhileStatement(node); + case 91: + return this.parseForStatement(node); + case 68: + if (this.lookaheadCharCode() === 46) break; + if (!allowFunctionDeclaration) { + this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, this.state.startLoc); + } + return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration); + case 80: + if (!allowDeclaration) this.unexpected(); + return this.parseClass(this.maybeTakeDecorators(decorators, node), true); + case 69: + return this.parseIfStatement(node); + case 70: + return this.parseReturnStatement(node); + case 71: + return this.parseSwitchStatement(node); + case 72: + return this.parseThrowStatement(node); + case 73: + return this.parseTryStatement(node); + case 96: + if (!this.state.containsEsc && this.startsAwaitUsing()) { + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, node); + } + this.next(); + return this.parseVarStatement(node, "await using"); + } + break; + case 107: + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { + break; + } + this.expectPlugin("explicitResourceManagement"); + if (!this.scope.inModule && this.scope.inTopLevel) { + this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); + } else if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + return this.parseVarStatement(node, "using"); + case 100: + { + if (this.state.containsEsc) { + break; + } + const next = this.nextTokenStart(); + const nextCh = this.codePointAtPos(next); + if (nextCh !== 91) { + if (!allowDeclaration && this.hasFollowingLineBreak()) break; + if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) { + break; + } + } + } + case 75: + { + if (!allowDeclaration) { + this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); + } + } + case 74: + { + const kind = this.state.value; + return this.parseVarStatement(node, kind); + } + case 92: + return this.parseWhileStatement(node); + case 76: + return this.parseWithStatement(node); + case 5: + return this.parseBlock(); + case 13: + return this.parseEmptyStatement(node); + case 83: + { + const nextTokenCharCode = this.lookaheadCharCode(); + if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { + break; + } + } + case 82: + { + if (!(this.optionFlags & 8) && !topLevel) { + this.raise(Errors.UnexpectedImportExport, this.state.startLoc); + } + this.next(); + let result; + if (startType === 83) { + result = this.parseImport(node); + if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { + this.sawUnambiguousESM = true; + } + } else { + result = this.parseExport(node, decorators); + if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { + this.sawUnambiguousESM = true; + } + } + this.assertModuleNodeAllowed(result); + return result; + } + default: + { + if (this.isAsyncFunction()) { + if (!allowDeclaration) { + this.raise(Errors.AsyncFunctionInSingleStatementContext, this.state.startLoc); + } + this.next(); + return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration); + } + } + } + const maybeName = this.state.value; + const expr = this.parseExpression(); + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { + return this.parseLabeledStatement(node, maybeName, expr, flags); + } else { + return this.parseExpressionStatement(node, expr, decorators); + } + } + assertModuleNodeAllowed(node) { + if (!(this.optionFlags & 8) && !this.inModule) { + this.raise(Errors.ImportOutsideModule, node); + } + } + decoratorsEnabledBeforeExport() { + if (this.hasPlugin("decorators-legacy")) return true; + return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false; + } + maybeTakeDecorators(maybeDecorators, classNode, exportNode) { + if (maybeDecorators) { + var _classNode$decorators; + if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) { + if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { + this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); + } + classNode.decorators.unshift(...maybeDecorators); + } else { + classNode.decorators = maybeDecorators; + } + this.resetStartLocationFromNode(classNode, maybeDecorators[0]); + if (exportNode) this.resetStartLocationFromNode(exportNode, classNode); + } + return classNode; + } + canHaveLeadingDecorator() { + return this.match(80); + } + parseDecorators(allowExport) { + const decorators = []; + do { + decorators.push(this.parseDecorator()); + } while (this.match(26)); + if (this.match(82)) { + if (!allowExport) { + this.unexpected(); + } + if (!this.decoratorsEnabledBeforeExport()) { + this.raise(Errors.DecoratorExportClass, this.state.startLoc); + } + } else if (!this.canHaveLeadingDecorator()) { + throw this.raise(Errors.UnexpectedLeadingDecorator, this.state.startLoc); + } + return decorators; + } + parseDecorator() { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + const node = this.startNode(); + this.next(); + if (this.hasPlugin("decorators")) { + const startLoc = this.state.startLoc; + let expr; + if (this.match(10)) { + const startLoc = this.state.startLoc; + this.next(); + expr = this.parseExpression(); + this.expect(11); + expr = this.wrapParenthesis(startLoc, expr); + const paramsStartLoc = this.state.startLoc; + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { + this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); + } + } else { + expr = this.parseIdentifier(false); + while (this.eat(16)) { + const node = this.startNodeAt(startLoc); + node.object = expr; + if (this.match(139)) { + this.classScope.usePrivateName(this.state.value, this.state.startLoc); + node.property = this.parsePrivateName(); + } else { + node.property = this.parseIdentifier(true); + } + node.computed = false; + expr = this.finishNode(node, "MemberExpression"); + } + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); + } + } else { + node.expression = this.parseExprSubscripts(); + } + return this.finishNode(node, "Decorator"); + } + parseMaybeDecoratorArguments(expr, startLoc) { + if (this.eat(10)) { + const node = this.startNodeAt(startLoc); + node.callee = expr; + node.arguments = this.parseCallExpressionArguments(11); + this.toReferencedList(node.arguments); + return this.finishNode(node, "CallExpression"); + } + return expr; + } + parseBreakContinueStatement(node, isBreak) { + this.next(); + if (this.isLineTerminator()) { + node.label = null; + } else { + node.label = this.parseIdentifier(); + this.semicolon(); + } + this.verifyBreakContinue(node, isBreak); + return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); + } + verifyBreakContinue(node, isBreak) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { + const lab = this.state.labels[i]; + if (node.label == null || lab.name === node.label.name) { + if (lab.kind != null && (isBreak || lab.kind === 1)) { + break; + } + if (node.label && isBreak) break; + } + } + if (i === this.state.labels.length) { + const type = isBreak ? "BreakStatement" : "ContinueStatement"; + this.raise(Errors.IllegalBreakContinue, node, { + type + }); + } + } + parseDebuggerStatement(node) { + this.next(); + this.semicolon(); + return this.finishNode(node, "DebuggerStatement"); + } + parseHeaderExpression() { + this.expect(10); + const val = this.parseExpression(); + this.expect(11); + return val; + } + parseDoWhileStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + this.expect(92); + node.test = this.parseHeaderExpression(); + this.eat(13); + return this.finishNode(node, "DoWhileStatement"); + } + parseForStatement(node) { + this.next(); + this.state.labels.push(loopLabel); + let awaitAt = null; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); + } + this.scope.enter(0); + this.expect(10); + if (this.match(13)) { + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, null); + } + const startsWithLet = this.isContextual(100); + { + const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf(); + const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; + if (this.match(74) || this.match(75) || isLetOrUsing) { + const initNode = this.startNode(); + let kind; + if (startsWithAwaitUsing) { + kind = "await using"; + if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); + } + this.next(); + } else { + kind = this.state.value; + } + this.next(); + this.parseVar(initNode, true, kind); + const init = this.finishNode(initNode, "VariableDeclaration"); + const isForIn = this.match(58); + if (isForIn && starsWithUsingDeclaration) { + this.raise(Errors.ForInUsing, init); + } + if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) { + return this.parseForIn(node, init, awaitAt); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + } + const startsWithAsync = this.isContextual(95); + const refExpressionErrors = new ExpressionErrors(); + const init = this.parseExpression(true, refExpressionErrors); + const isForOf = this.isContextual(102); + if (isForOf) { + if (startsWithLet) { + this.raise(Errors.ForOfLet, init); + } + if (awaitAt === null && startsWithAsync && init.type === "Identifier") { + this.raise(Errors.ForOfAsync, init); + } + } + if (isForOf || this.match(58)) { + this.checkDestructuringPrivate(refExpressionErrors); + this.toAssignable(init, true); + const type = isForOf ? "ForOfStatement" : "ForInStatement"; + this.checkLVal(init, { + type + }); + return this.parseForIn(node, init, awaitAt); + } else { + this.checkExpressionErrors(refExpressionErrors, true); + } + if (awaitAt !== null) { + this.unexpected(awaitAt); + } + return this.parseFor(node, init); + } + parseFunctionStatement(node, isAsync, isHangingDeclaration) { + this.next(); + return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0)); + } + parseIfStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration(); + node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null; + return this.finishNode(node, "IfStatement"); + } + parseReturnStatement(node) { + if (!this.prodParam.hasReturn && !(this.optionFlags & 2)) { + this.raise(Errors.IllegalReturn, this.state.startLoc); + } + this.next(); + if (this.isLineTerminator()) { + node.argument = null; + } else { + node.argument = this.parseExpression(); + this.semicolon(); + } + return this.finishNode(node, "ReturnStatement"); + } + parseSwitchStatement(node) { + this.next(); + node.discriminant = this.parseHeaderExpression(); + const cases = node.cases = []; + this.expect(5); + this.state.labels.push(switchLabel); + this.scope.enter(0); + let cur; + for (let sawDefault; !this.match(8);) { + if (this.match(61) || this.match(65)) { + const isCase = this.match(61); + if (cur) this.finishNode(cur, "SwitchCase"); + cases.push(cur = this.startNode()); + cur.consequent = []; + this.next(); + if (isCase) { + cur.test = this.parseExpression(); + } else { + if (sawDefault) { + this.raise(Errors.MultipleDefaultsInSwitch, this.state.lastTokStartLoc); + } + sawDefault = true; + cur.test = null; + } + this.expect(14); + } else { + if (cur) { + cur.consequent.push(this.parseStatementListItem()); + } else { + this.unexpected(); + } + } + } + this.scope.exit(); + if (cur) this.finishNode(cur, "SwitchCase"); + this.next(); + this.state.labels.pop(); + return this.finishNode(node, "SwitchStatement"); + } + parseThrowStatement(node) { + this.next(); + if (this.hasPrecedingLineBreak()) { + this.raise(Errors.NewlineAfterThrow, this.state.lastTokEndLoc); + } + node.argument = this.parseExpression(); + this.semicolon(); + return this.finishNode(node, "ThrowStatement"); + } + parseCatchClauseParam() { + const param = this.parseBindingAtom(); + this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); + this.checkLVal(param, { + type: "CatchClause" + }, 9); + return param; + } + parseTryStatement(node) { + this.next(); + node.block = this.parseBlock(); + node.handler = null; + if (this.match(62)) { + const clause = this.startNode(); + this.next(); + if (this.match(10)) { + this.expect(10); + clause.param = this.parseCatchClauseParam(); + this.expect(11); + } else { + clause.param = null; + this.scope.enter(0); + } + clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); + this.scope.exit(); + node.handler = this.finishNode(clause, "CatchClause"); + } + node.finalizer = this.eat(67) ? this.parseBlock() : null; + if (!node.handler && !node.finalizer) { + this.raise(Errors.NoCatchOrFinally, node); + } + return this.finishNode(node, "TryStatement"); + } + parseVarStatement(node, kind, allowMissingInitializer = false) { + this.next(); + this.parseVar(node, false, kind, allowMissingInitializer); + this.semicolon(); + return this.finishNode(node, "VariableDeclaration"); + } + parseWhileStatement(node) { + this.next(); + node.test = this.parseHeaderExpression(); + this.state.labels.push(loopLabel); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.state.labels.pop(); + return this.finishNode(node, "WhileStatement"); + } + parseWithStatement(node) { + if (this.state.strict) { + this.raise(Errors.StrictWith, this.state.startLoc); + } + this.next(); + node.object = this.parseHeaderExpression(); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + return this.finishNode(node, "WithStatement"); + } + parseEmptyStatement(node) { + this.next(); + return this.finishNode(node, "EmptyStatement"); + } + parseLabeledStatement(node, maybeName, expr, flags) { + for (const label of this.state.labels) { + if (label.name === maybeName) { + this.raise(Errors.LabelRedeclaration, expr, { + labelName: maybeName + }); + } + } + const kind = tokenIsLoop(this.state.type) ? 1 : this.match(71) ? 2 : null; + for (let i = this.state.labels.length - 1; i >= 0; i--) { + const label = this.state.labels[i]; + if (label.statementStart === node.start) { + label.statementStart = this.sourceToOffsetPos(this.state.start); + label.kind = kind; + } else { + break; + } + } + this.state.labels.push({ + name: maybeName, + kind: kind, + statementStart: this.sourceToOffsetPos(this.state.start) + }); + node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); + this.state.labels.pop(); + node.label = expr; + return this.finishNode(node, "LabeledStatement"); + } + parseExpressionStatement(node, expr, decorators) { + node.expression = expr; + this.semicolon(); + return this.finishNode(node, "ExpressionStatement"); + } + parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { + const node = this.startNode(); + if (allowDirectives) { + this.state.strictErrors.clear(); + } + this.expect(5); + if (createNewLexicalScope) { + this.scope.enter(0); + } + this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); + if (createNewLexicalScope) { + this.scope.exit(); + } + return this.finishNode(node, "BlockStatement"); + } + isValidDirective(stmt) { + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; + } + parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { + const body = node.body = []; + const directives = node.directives = []; + this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); + } + parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { + const oldStrict = this.state.strict; + let hasStrictModeDirective = false; + let parsedNonDirective = false; + while (!this.match(end)) { + const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem(); + if (directives && !parsedNonDirective) { + if (this.isValidDirective(stmt)) { + const directive = this.stmtToDirective(stmt); + directives.push(directive); + if (!hasStrictModeDirective && directive.value.value === "use strict") { + hasStrictModeDirective = true; + this.setStrict(true); + } + continue; + } + parsedNonDirective = true; + this.state.strictErrors.clear(); + } + body.push(stmt); + } + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); + if (!oldStrict) { + this.setStrict(false); + } + this.next(); + } + parseFor(node, init) { + node.init = init; + this.semicolon(false); + node.test = this.match(13) ? null : this.parseExpression(); + this.semicolon(false); + node.update = this.match(11) ? null : this.parseExpression(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, "ForStatement"); + } + parseForIn(node, init, awaitAt) { + const isForIn = this.match(58); + this.next(); + if (isForIn) { + if (awaitAt !== null) this.unexpected(awaitAt); + } else { + node.await = awaitAt !== null; + } + if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { + this.raise(Errors.ForInOfLoopInitializer, init, { + type: isForIn ? "ForInStatement" : "ForOfStatement" + }); + } + if (init.type === "AssignmentPattern") { + this.raise(Errors.InvalidLhs, init, { + ancestor: { + type: "ForStatement" + } + }); + } + node.left = init; + node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); + this.expect(11); + node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement()); + this.scope.exit(); + this.state.labels.pop(); + return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); + } + parseVar(node, isFor, kind, allowMissingInitializer = false) { + const declarations = node.declarations = []; + node.kind = kind; + for (;;) { + const decl = this.startNode(); + this.parseVarId(decl, kind); + decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); + if (decl.init === null && !allowMissingInitializer) { + if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind: "destructuring" + }); + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { + this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { + kind + }); + } + } + declarations.push(this.finishNode(decl, "VariableDeclarator")); + if (!this.eat(12)) break; + } + return node; + } + parseVarId(decl, kind) { + const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } + this.checkLVal(id, { + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); + decl.id = id; + } + parseAsyncFunctionExpression(node) { + return this.parseFunction(node, 8); + } + parseFunction(node, flags = 0) { + const hangingDeclaration = flags & 2; + const isDeclaration = !!(flags & 1); + const requireId = isDeclaration && !(flags & 4); + const isAsync = !!(flags & 8); + this.initFunction(node, isAsync); + if (this.match(55)) { + if (hangingDeclaration) { + this.raise(Errors.GeneratorInSingleStatementContext, this.state.startLoc); + } + this.next(); + node.generator = true; + } + if (isDeclaration) { + node.id = this.parseFunctionId(requireId); + } + const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; + this.state.maybeInArrowParameters = false; + this.scope.enter(2); + this.prodParam.enter(functionFlags(isAsync, node.generator)); + if (!isDeclaration) { + node.id = this.parseFunctionId(); + } + this.parseFunctionParams(node, false); + this.withSmartMixTopicForbiddingContext(() => { + this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression"); + }); + this.prodParam.exit(); + this.scope.exit(); + if (isDeclaration && !hangingDeclaration) { + this.registerFunctionStatementId(node); + } + this.state.maybeInArrowParameters = oldMaybeInArrowParameters; + return node; + } + parseFunctionId(requireId) { + return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; + } + parseFunctionParams(node, isConstructor) { + this.expect(10); + this.expressionScope.enter(newParameterDeclarationScope()); + node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0)); + this.expressionScope.exit(); + } + registerFunctionStatementId(node) { + if (!node.id) return; + this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start); + } + parseClass(node, isStatement, optionalId) { + this.next(); + const oldStrict = this.state.strict; + this.state.strict = true; + this.parseClassId(node, isStatement, optionalId); + this.parseClassSuper(node); + node.body = this.parseClassBody(!!node.superClass, oldStrict); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); + } + isClassProperty() { + return this.match(29) || this.match(13) || this.match(8); + } + isClassMethod() { + return this.match(10); + } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } + isNonstaticConstructor(method) { + return !method.computed && !method.static && this.nameIsConstructor(method.key); + } + parseClassBody(hadSuperClass, oldStrict) { + this.classScope.enter(); + const state = { + hadConstructor: false, + hadSuperClass + }; + let decorators = []; + const classBody = this.startNode(); + classBody.body = []; + this.expect(5); + this.withSmartMixTopicForbiddingContext(() => { + while (!this.match(8)) { + if (this.eat(13)) { + if (decorators.length > 0) { + throw this.raise(Errors.DecoratorSemicolon, this.state.lastTokEndLoc); + } + continue; + } + if (this.match(26)) { + decorators.push(this.parseDecorator()); + continue; + } + const member = this.startNode(); + if (decorators.length) { + member.decorators = decorators; + this.resetStartLocationFromNode(member, decorators[0]); + decorators = []; + } + this.parseClassMember(classBody, member, state); + if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { + this.raise(Errors.DecoratorConstructor, member); + } + } + }); + this.state.strict = oldStrict; + this.next(); + if (decorators.length) { + throw this.raise(Errors.TrailingDecorator, this.state.startLoc); + } + this.classScope.exit(); + return this.finishNode(classBody, "ClassBody"); + } + parseClassMemberFromModifier(classBody, member) { + const key = this.parseIdentifier(true); + if (this.isClassMethod()) { + const method = member; + method.kind = "method"; + method.computed = false; + method.key = key; + method.static = false; + this.pushClassMethod(classBody, method, false, false, false, false); + return true; + } else if (this.isClassProperty()) { + const prop = member; + prop.computed = false; + prop.key = key; + prop.static = false; + classBody.body.push(this.parseClassProperty(prop)); + return true; + } + this.resetPreviousNodeTrailingComments(key); + return false; + } + parseClassMember(classBody, member, state) { + const isStatic = this.isContextual(106); + if (isStatic) { + if (this.parseClassMemberFromModifier(classBody, member)) { + return; + } + if (this.eat(5)) { + this.parseClassStaticBlock(classBody, member); + return; + } + } + this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); + } + parseClassMemberWithIsStatic(classBody, member, state, isStatic) { + const publicMethod = member; + const privateMethod = member; + const publicProp = member; + const privateProp = member; + const accessorProp = member; + const method = publicMethod; + const publicMember = publicMethod; + member.static = isStatic; + this.parsePropertyNamePrefixOperator(member); + if (this.eat(55)) { + method.kind = "method"; + const isPrivateName = this.match(139); + this.parseClassElementName(method); + if (isPrivateName) { + this.pushClassPrivateMethod(classBody, privateMethod, true, false); + return; + } + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsGenerator, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, true, false, false, false); + return; + } + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); + const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); + const maybeQuestionTokenStartLoc = this.state.startLoc; + this.parsePostMemberNameModifiers(publicMember); + if (this.isClassMethod()) { + method.kind = "method"; + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + return; + } + const isConstructor = this.isNonstaticConstructor(publicMethod); + let allowsDirectSuper = false; + if (isConstructor) { + publicMethod.kind = "constructor"; + if (state.hadConstructor && !this.hasPlugin("typescript")) { + this.raise(Errors.DuplicateConstructor, key); + } + if (isConstructor && this.hasPlugin("typescript") && member.override) { + this.raise(Errors.OverrideOnConstructor, key); + } + state.hadConstructor = true; + allowsDirectSuper = state.hadSuperClass; + } + this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); + } else if (this.isClassProperty()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { + this.resetPreviousNodeTrailingComments(key); + const isGenerator = this.eat(55); + if (publicMember.optional) { + this.unexpected(maybeQuestionTokenStartLoc); + } + method.kind = "method"; + const isPrivate = this.match(139); + this.parseClassElementName(method); + this.parsePostMemberNameModifiers(publicMember); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAsync, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); + } + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { + this.resetPreviousNodeTrailingComments(key); + method.kind = maybeContextualKw; + const isPrivate = this.match(139); + this.parseClassElementName(publicMethod); + if (isPrivate) { + this.pushClassPrivateMethod(classBody, privateMethod, false, false); + } else { + if (this.isNonstaticConstructor(publicMethod)) { + this.raise(Errors.ConstructorIsAccessor, publicMethod.key); + } + this.pushClassMethod(classBody, publicMethod, false, false, false, false); + } + this.checkGetterSetterParams(publicMethod); + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { + this.expectPlugin("decoratorAutoAccessors"); + this.resetPreviousNodeTrailingComments(key); + const isPrivate = this.match(139); + this.parseClassElementName(publicProp); + this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); + } else if (this.isLineTerminator()) { + if (isPrivate) { + this.pushClassPrivateProperty(classBody, privateProp); + } else { + this.pushClassProperty(classBody, publicProp); + } + } else { + this.unexpected(); + } + } + parseClassElementName(member) { + const { + type, + value + } = this.state; + if ((type === 132 || type === 134) && member.static && value === "prototype") { + this.raise(Errors.StaticPrototype, this.state.startLoc); + } + if (type === 139) { + if (value === "constructor") { + this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); + } + const key = this.parsePrivateName(); + member.key = key; + return key; + } + this.parsePropertyName(member); + return member.key; + } + parseClassStaticBlock(classBody, member) { + var _member$decorators; + this.scope.enter(64 | 128 | 16); + const oldLabels = this.state.labels; + this.state.labels = []; + this.prodParam.enter(0); + const body = member.body = []; + this.parseBlockOrModuleBlockBody(body, undefined, false, 8); + this.prodParam.exit(); + this.scope.exit(); + this.state.labels = oldLabels; + classBody.body.push(this.finishNode(member, "StaticBlock")); + if ((_member$decorators = member.decorators) != null && _member$decorators.length) { + this.raise(Errors.DecoratorStaticBlock, member); + } + } + pushClassProperty(classBody, prop) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + classBody.body.push(this.parseClassProperty(prop)); + } + pushClassPrivateProperty(classBody, prop) { + const node = this.parseClassPrivateProperty(prop); + classBody.body.push(node); + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + pushClassAccessorProperty(classBody, prop, isPrivate) { + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); + } + const node = this.parseClassAccessorProperty(prop); + classBody.body.push(node); + if (isPrivate) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); + } + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); + classBody.body.push(node); + const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0; + this.declareClassPrivateMethodInScope(node, kind); + } + declareClassPrivateMethodInScope(node, kind) { + this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start); + } + parsePostMemberNameModifiers(methodOrProp) {} + parseClassPrivateProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassPrivateProperty"); + } + parseClassProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassProperty"); + } + parseClassAccessorProperty(node) { + this.parseInitializer(node); + this.semicolon(); + return this.finishNode(node, "ClassAccessorProperty"); + } + parseInitializer(node) { + this.scope.enter(64 | 16); + this.expressionScope.enter(newExpressionScope()); + this.prodParam.enter(0); + node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; + this.expressionScope.exit(); + this.prodParam.exit(); + this.scope.exit(); + } + parseClassId(node, isStatement, optionalId, bindingType = 8331) { + if (tokenIsIdentifier(this.state.type)) { + node.id = this.parseIdentifier(); + if (isStatement) { + this.declareNameFromIdentifier(node.id, bindingType); + } + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + throw this.raise(Errors.MissingClassName, this.state.startLoc); + } + } + } + parseClassSuper(node) { + node.superClass = this.eat(81) ? this.parseExprSubscripts() : null; + } + parseExport(node, decorators) { + const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true); + const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier); + const parseAfterDefault = !hasDefault || this.eat(12); + const hasStar = parseAfterDefault && this.eatExportStar(node); + const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); + const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); + const isFromRequired = hasDefault || hasStar; + if (hasStar && !hasNamespace) { + if (hasDefault) this.unexpected(); + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, true); + return this.finishNode(node, "ExportAllDeclaration"); + } + const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); + if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) { + this.unexpected(null, 5); + } + if (hasNamespace && parseAfterNamespace) { + this.unexpected(null, 98); + } + let hasDeclaration; + if (isFromRequired || hasSpecifiers) { + hasDeclaration = false; + if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.parseExportFrom(node, isFromRequired); + } else { + hasDeclaration = this.maybeParseExportDeclaration(node); + } + if (isFromRequired || hasSpecifiers || hasDeclaration) { + var _node2$declaration; + const node2 = node; + this.checkExport(node2, true, false, !!node2.source); + if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, node2.declaration, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + return this.finishNode(node2, "ExportNamedDeclaration"); + } + if (this.eat(65)) { + const node2 = node; + const decl = this.parseExportDefaultExpression(); + node2.declaration = decl; + if (decl.type === "ClassDeclaration") { + this.maybeTakeDecorators(decorators, decl, node2); + } else if (decorators) { + throw this.raise(Errors.UnsupportedDecoratorExport, node); + } + this.checkExport(node2, true, true); + return this.finishNode(node2, "ExportDefaultDeclaration"); + } + this.unexpected(null, 5); + } + eatExportStar(node) { + return this.eat(55); + } + maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) { + this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start); + const id = maybeDefaultIdentifier || this.parseIdentifier(true); + const specifier = this.startNodeAtNode(id); + specifier.exported = id; + node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + if (this.isContextual(93)) { + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; + const specifier = this.startNodeAt(this.state.lastTokStartLoc); + this.next(); + specifier.exported = this.parseModuleExportName(); + node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); + return true; + } + return false; + } + maybeParseExportNamedSpecifiers(node) { + if (this.match(5)) { + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; + node2.declaration = null; + if (this.hasPlugin("importAssertions")) { + node2.assertions = []; + } + return true; + } + return false; + } + maybeParseExportDeclaration(node) { + if (this.shouldParseExportDeclaration()) { + node.specifiers = []; + node.source = null; + if (this.hasPlugin("importAssertions")) { + node.assertions = []; + } + node.declaration = this.parseExportDeclaration(node); + return true; + } + return false; + } + isAsyncFunction() { + if (!this.isContextual(95)) return false; + const next = this.nextTokenInLineStart(); + return this.isUnparsedContextual(next, "function"); + } + parseExportDefaultExpression() { + const expr = this.startNode(); + if (this.match(68)) { + this.next(); + return this.parseFunction(expr, 1 | 4); + } else if (this.isAsyncFunction()) { + this.next(); + this.next(); + return this.parseFunction(expr, 1 | 4 | 8); + } + if (this.match(80)) { + return this.parseClass(expr, true, true); + } + if (this.match(26)) { + if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); + } + if (this.match(75) || this.match(74) || this.isLet()) { + throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); + } + const res = this.parseMaybeAssignAllowIn(); + this.semicolon(); + return res; + } + parseExportDeclaration(node) { + if (this.match(80)) { + const node = this.parseClass(this.startNode(), true, false); + return node; + } + return this.parseStatementListItem(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (tokenIsIdentifier(type)) { + if (type === 95 && !this.state.containsEsc || type === 100) { + return false; + } + if ((type === 130 || type === 129) && !this.state.containsEsc) { + const { + type: nextType + } = this.lookahead(); + if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) { + this.expectOnePlugin(["flow", "typescript"]); + return false; + } + } + } else if (!this.match(65)) { + return false; + } + const next = this.nextTokenStart(); + const hasFrom = this.isUnparsedContextual(next, "from"); + if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { + return true; + } + if (this.match(65) && hasFrom) { + const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); + return nextAfterFrom === 34 || nextAfterFrom === 39; + } + return false; + } + parseExportFrom(node, expect) { + if (this.eatContextual(98)) { + node.source = this.parseImportSource(); + this.checkExport(node); + this.maybeParseImportAttributes(node); + this.checkJSONModuleImport(node); + } else if (expect) { + this.unexpected(); + } + this.semicolon(); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 26) { + this.expectOnePlugin(["decorators", "decorators-legacy"]); + if (this.hasPlugin("decorators")) { + if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) { + this.raise(Errors.DecoratorBeforeExport, this.state.startLoc); + } + return true; + } + } + if (this.isContextual(107)) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isContextual(96) && this.startsAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); + } + checkExport(node, checkNames, isDefault, isFrom) { + if (checkNames) { + var _node$specifiers; + if (isDefault) { + this.checkDuplicateExports(node, "default"); + if (this.hasPlugin("exportDefaultFrom")) { + var _declaration$extra; + const declaration = node.declaration; + if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { + this.raise(Errors.ExportDefaultFromAsIdentifier, declaration); + } + } + } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) { + for (const specifier of node.specifiers) { + const { + exported + } = specifier; + const exportName = exported.type === "Identifier" ? exported.name : exported.value; + this.checkDuplicateExports(specifier, exportName); + if (!isFrom && specifier.local) { + const { + local + } = specifier; + if (local.type !== "Identifier") { + this.raise(Errors.ExportBindingIsString, specifier, { + localName: local.value, + exportName + }); + } else { + this.checkReservedWord(local.name, local.loc.start, true, false); + this.scope.checkLocalExport(local); + } + } + } + } else if (node.declaration) { + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; + if (!id) throw new Error("Assertion failure"); + this.checkDuplicateExports(node, id.name); + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { + this.checkDeclaration(declaration.id); + } + } + } + } + } + checkDeclaration(node) { + if (node.type === "Identifier") { + this.checkDuplicateExports(node, node.name); + } else if (node.type === "ObjectPattern") { + for (const prop of node.properties) { + this.checkDeclaration(prop); + } + } else if (node.type === "ArrayPattern") { + for (const elem of node.elements) { + if (elem) { + this.checkDeclaration(elem); + } + } + } else if (node.type === "ObjectProperty") { + this.checkDeclaration(node.value); + } else if (node.type === "RestElement") { + this.checkDeclaration(node.argument); + } else if (node.type === "AssignmentPattern") { + this.checkDeclaration(node.left); + } + } + checkDuplicateExports(node, exportName) { + if (this.exportedIdentifiers.has(exportName)) { + if (exportName === "default") { + this.raise(Errors.DuplicateDefaultExport, node); + } else { + this.raise(Errors.DuplicateExport, node, { + exportName + }); + } + } + this.exportedIdentifiers.add(exportName); + } + parseExportSpecifiers(isInTypeExport) { + const nodes = []; + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + this.expect(12); + if (this.eat(8)) break; + } + const isMaybeTypeOnly = this.isContextual(130); + const isString = this.match(134); + const node = this.startNode(); + node.local = this.parseModuleExportName(); + nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); + } + return nodes; + } + parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) { + if (this.eatContextual(93)) { + node.exported = this.parseModuleExportName(); + } else if (isString) { + node.exported = cloneStringLiteral(node.local); + } else if (!node.exported) { + node.exported = cloneIdentifier(node.local); + } + return this.finishNode(node, "ExportSpecifier"); + } + parseModuleExportName() { + if (this.match(134)) { + const result = this.parseStringLiteral(this.state.value); + const surrogate = loneSurrogate.exec(result.value); + if (surrogate) { + this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { + surrogateCharCode: surrogate[0].charCodeAt(0) + }); + } + return result; + } + return this.parseIdentifier(true); + } + isJSONModuleImport(node) { + if (node.assertions != null) { + return node.assertions.some(({ + key, + value + }) => { + return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type"); + }); + } + return false; + } + checkImportReflection(node) { + const { + specifiers + } = node; + const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null; + if (node.phase === "source") { + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.SourcePhaseImportRequiresDefault, specifiers[0].loc.start); + } + } else if (node.phase === "defer") { + if (singleBindingType !== "ImportNamespaceSpecifier") { + this.raise(Errors.DeferImportRequiresNamespace, specifiers[0].loc.start); + } + } else if (node.module) { + var _node$assertions; + if (singleBindingType !== "ImportDefaultSpecifier") { + this.raise(Errors.ImportReflectionNotBinding, specifiers[0].loc.start); + } + if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) { + this.raise(Errors.ImportReflectionHasAssertion, specifiers[0].loc.start); + } + } + } + checkJSONModuleImport(node) { + if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") { + const { + specifiers + } = node; + if (specifiers != null) { + const nonDefaultNamedSpecifier = specifiers.find(specifier => { + let imported; + if (specifier.type === "ExportSpecifier") { + imported = specifier.local; + } else if (specifier.type === "ImportSpecifier") { + imported = specifier.imported; + } + if (imported !== undefined) { + return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default"; + } + }); + if (nonDefaultNamedSpecifier !== undefined) { + this.raise(Errors.ImportJSONBindingNotDefault, nonDefaultNamedSpecifier.loc.start); + } + } + } + } + isPotentialImportPhase(isExport) { + if (isExport) return false; + return this.isContextual(105) || this.isContextual(97) || this.isContextual(127); + } + applyImportPhase(node, isExport, phase, loc) { + if (isExport) { + return; + } + if (phase === "module") { + this.expectPlugin("importReflection", loc); + node.module = true; + } else if (this.hasPlugin("importReflection")) { + node.module = false; + } + if (phase === "source") { + this.expectPlugin("sourcePhaseImports", loc); + node.phase = "source"; + } else if (phase === "defer") { + this.expectPlugin("deferredImportEvaluation", loc); + node.phase = "defer"; + } else if (this.hasPlugin("sourcePhaseImports")) { + node.phase = null; + } + } + parseMaybeImportPhase(node, isExport) { + if (!this.isPotentialImportPhase(isExport)) { + this.applyImportPhase(node, isExport, null); + return null; + } + const phaseIdentifier = this.parseIdentifier(true); + const { + type + } = this.state; + const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + if (isImportPhase) { + this.resetPreviousIdentifierLeadingComments(phaseIdentifier); + this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start); + return null; + } else { + this.applyImportPhase(node, isExport, null); + return phaseIdentifier; + } + } + isPrecedingIdImportPhase(phase) { + const { + type + } = this.state; + return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; + } + parseImport(node) { + if (this.match(134)) { + return this.parseImportSourceAndAttributes(node); + } + return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); + } + parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) { + node.specifiers = []; + const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier); + const parseNext = !hasDefault || this.eat(12); + const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); + if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); + this.expectContextual(98); + return this.parseImportSourceAndAttributes(node); + } + parseImportSourceAndAttributes(node) { + var _node$specifiers2; + (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = []; + node.source = this.parseImportSource(); + this.maybeParseImportAttributes(node); + this.checkImportReflection(node); + this.checkJSONModuleImport(node); + this.semicolon(); + return this.finishNode(node, "ImportDeclaration"); + } + parseImportSource() { + if (!this.match(134)) this.unexpected(); + return this.parseExprAtom(); + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + finishImportSpecifier(specifier, type, bindingType = 8201) { + this.checkLVal(specifier.local, { + type + }, bindingType); + return this.finishNode(specifier, type); + } + parseImportAttributes() { + this.expect(5); + const attrs = []; + const attrNames = new Set(); + do { + if (this.match(8)) { + break; + } + const node = this.startNode(); + const keyName = this.state.value; + if (attrNames.has(keyName)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, this.state.startLoc, { + key: keyName + }); + } + attrNames.add(keyName); + if (this.match(134)) { + node.key = this.parseStringLiteral(keyName); + } else { + node.key = this.parseIdentifier(true); + } + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + this.expect(8); + return attrs; + } + parseModuleAttributes() { + const attrs = []; + const attributes = new Set(); + do { + const node = this.startNode(); + node.key = this.parseIdentifier(true); + if (node.key.name !== "type") { + this.raise(Errors.ModuleAttributeDifferentFromType, node.key); + } + if (attributes.has(node.key.name)) { + this.raise(Errors.ModuleAttributesWithDuplicateKeys, node.key, { + key: node.key.name + }); + } + attributes.add(node.key.name); + this.expect(14); + if (!this.match(134)) { + throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); + } + node.value = this.parseStringLiteral(this.state.value); + attrs.push(this.finishNode(node, "ImportAttribute")); + } while (this.eat(12)); + return attrs; + } + maybeParseImportAttributes(node) { + let attributes; + { + var useWith = false; + } + if (this.match(76)) { + if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { + return; + } + this.next(); + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + } else { + attributes = this.parseImportAttributes(); + } + { + useWith = true; + } + } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { + if (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions")) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + if (!this.hasPlugin("importAssertions")) { + this.addExtra(node, "deprecatedAssertSyntax", true); + } + this.next(); + attributes = this.parseImportAttributes(); + } else { + attributes = []; + } + if (!useWith && this.hasPlugin("importAssertions")) { + node.assertions = attributes; + } else { + node.attributes = attributes; + } + } + maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) { + if (maybeDefaultIdentifier) { + const specifier = this.startNodeAtNode(maybeDefaultIdentifier); + specifier.local = maybeDefaultIdentifier; + node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier")); + return true; + } else if (tokenIsKeywordOrIdentifier(this.state.type)) { + this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier"); + return true; + } + return false; + } + maybeParseStarImportSpecifier(node) { + if (this.match(55)) { + const specifier = this.startNode(); + this.next(); + this.expectContextual(93); + this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier"); + return true; + } + return false; + } + parseNamedImportSpecifiers(node) { + let first = true; + this.expect(5); + while (!this.eat(8)) { + if (first) { + first = false; + } else { + if (this.eat(14)) { + throw this.raise(Errors.DestructureNamedImport, this.state.startLoc); + } + this.expect(12); + if (this.eat(8)) break; + } + const specifier = this.startNode(); + const importedIsString = this.match(134); + const isMaybeTypeOnly = this.isContextual(130); + specifier.imported = this.parseModuleExportName(); + const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); + node.specifiers.push(importSpecifier); + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + const { + imported + } = specifier; + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: imported.value + }); + } + this.checkReservedWord(imported.name, specifier.loc.start, true, true); + if (!specifier.local) { + specifier.local = cloneIdentifier(imported); + } + } + return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); + } + isThisParam(param) { + return param.type === "Identifier" && param.name === "this"; + } +} +class Parser extends StatementParser { + constructor(options, input, pluginsMap) { + options = getOptions(options); + super(options, input); + this.options = options; + this.initializeScopes(); + this.plugins = pluginsMap; + this.filename = options.sourceFilename; + this.startIndex = options.startIndex; + let optionFlags = 0; + if (options.allowAwaitOutsideFunction) { + optionFlags |= 1; + } + if (options.allowReturnOutsideFunction) { + optionFlags |= 2; + } + if (options.allowImportExportEverywhere) { + optionFlags |= 8; + } + if (options.allowSuperOutsideMethod) { + optionFlags |= 16; + } + if (options.allowUndeclaredExports) { + optionFlags |= 32; + } + if (options.allowNewTargetOutsideFunction) { + optionFlags |= 4; + } + if (options.ranges) { + optionFlags |= 64; + } + if (options.tokens) { + optionFlags |= 128; + } + if (options.createImportExpressions) { + optionFlags |= 256; + } + if (options.createParenthesizedExpressions) { + optionFlags |= 512; + } + if (options.errorRecovery) { + optionFlags |= 1024; + } + if (options.attachComment) { + optionFlags |= 2048; + } + if (options.annexB) { + optionFlags |= 4096; + } + this.optionFlags = optionFlags; + } + getScopeHandler() { + return ScopeHandler; + } + parse() { + this.enterInitialScopes(); + const file = this.startNode(); + const program = this.startNode(); + this.nextToken(); + file.errors = null; + this.parseTopLevel(file, program); + file.errors = this.state.errors; + file.comments.length = this.state.commentsLen; + return file; + } +} +function parse(input, options) { + var _options; + if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { + options = Object.assign({}, options); + try { + options.sourceType = "module"; + const parser = getParser(options, input); + const ast = parser.parse(); + if (parser.sawUnambiguousESM) { + return ast; + } + if (parser.ambiguousScriptDifferentAst) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused) {} + } else { + ast.program.sourceType = "script"; + } + return ast; + } catch (moduleError) { + try { + options.sourceType = "script"; + return getParser(options, input).parse(); + } catch (_unused2) {} + throw moduleError; + } + } else { + return getParser(options, input).parse(); + } +} +function parseExpression(input, options) { + const parser = getParser(options, input); + if (parser.options.strictMode) { + parser.state.strict = true; + } + return parser.getExpression(); +} +function generateExportedTokenTypes(internalTokenTypes) { + const tokenTypes = {}; + for (const typeName of Object.keys(internalTokenTypes)) { + tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); + } + return tokenTypes; +} +const tokTypes = generateExportedTokenTypes(tt); +function getParser(options, input) { + let cls = Parser; + const pluginsMap = new Map(); + if (options != null && options.plugins) { + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); + } + return new cls(options, input, pluginsMap); +} +const parserClassCache = new Map(); +function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); + if (!cls) { + cls = Parser; + for (const plugin of pluginList) { + cls = mixinPlugins[plugin](cls); + } + parserClassCache.set(key, cls); + } + return cls; +} +exports.parse = parse; +exports.parseExpression = parseExpression; +exports.tokTypes = tokTypes; +//# sourceMappingURL=index.js.map diff --git a/.output/server/node_modules/@babel/parser/package.json b/.output/server/node_modules/@babel/parser/package.json new file mode 100644 index 0000000..66f4485 --- /dev/null +++ b/.output/server/node_modules/@babel/parser/package.json @@ -0,0 +1,53 @@ +{ + "name": "@babel/parser", + "version": "7.26.9", + "description": "A JavaScript parser", + "author": "The Babel Team (https://babel.dev/team)", + "homepage": "https://babel.dev/docs/en/next/babel-parser", + "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "keywords": [ + "babel", + "javascript", + "parser", + "tc39", + "ecmascript", + "@babel/parser" + ], + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-parser" + }, + "main": "./lib/index.js", + "types": "./typings/babel-parser.d.ts", + "files": [ + "bin", + "lib", + "typings/babel-parser.d.ts", + "index.cjs" + ], + "engines": { + "node": ">=6.0.0" + }, + "# dependencies": "This package doesn't actually have runtime dependencies. @babel/types is only needed for type definitions.", + "dependencies": { + "@babel/types": "^7.26.9" + }, + "devDependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/helper-check-duplicate-nodes": "^7.25.9", + "@babel/helper-fixtures": "^7.26.0", + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "charcodes": "^0.2.0" + }, + "bin": "./bin/babel-parser.js", + "type": "commonjs", + "__npminstall_done": true, + "_from": "@babel/parser@7.26.9", + "_resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.26.9.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@popperjs/core/dist/cjs/popper.js b/.output/server/node_modules/@popperjs/core/dist/cjs/popper.js deleted file mode 100644 index 9f6f4f0..0000000 --- a/.output/server/node_modules/@popperjs/core/dist/cjs/popper.js +++ /dev/null @@ -1,1819 +0,0 @@ -/** - * @popperjs/core v2.11.8 - MIT License - */ - -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function getWindow(node) { - if (node == null) { - return window; - } - - if (node.toString() !== '[object Window]') { - var ownerDocument = node.ownerDocument; - return ownerDocument ? ownerDocument.defaultView || window : window; - } - - return node; -} - -function isElement(node) { - var OwnElement = getWindow(node).Element; - return node instanceof OwnElement || node instanceof Element; -} - -function isHTMLElement(node) { - var OwnElement = getWindow(node).HTMLElement; - return node instanceof OwnElement || node instanceof HTMLElement; -} - -function isShadowRoot(node) { - // IE 11 has no ShadowRoot - if (typeof ShadowRoot === 'undefined') { - return false; - } - - var OwnElement = getWindow(node).ShadowRoot; - return node instanceof OwnElement || node instanceof ShadowRoot; -} - -var max = Math.max; -var min = Math.min; -var round = Math.round; - -function getUAString() { - var uaData = navigator.userAgentData; - - if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { - return uaData.brands.map(function (item) { - return item.brand + "/" + item.version; - }).join(' '); - } - - return navigator.userAgent; -} - -function isLayoutViewport() { - return !/^((?!chrome|android).)*safari/i.test(getUAString()); -} - -function getBoundingClientRect(element, includeScale, isFixedStrategy) { - if (includeScale === void 0) { - includeScale = false; - } - - if (isFixedStrategy === void 0) { - isFixedStrategy = false; - } - - var clientRect = element.getBoundingClientRect(); - var scaleX = 1; - var scaleY = 1; - - if (includeScale && isHTMLElement(element)) { - scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; - scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; - } - - var _ref = isElement(element) ? getWindow(element) : window, - visualViewport = _ref.visualViewport; - - var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; - var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; - var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; - var width = clientRect.width / scaleX; - var height = clientRect.height / scaleY; - return { - width: width, - height: height, - top: y, - right: x + width, - bottom: y + height, - left: x, - x: x, - y: y - }; -} - -function getWindowScroll(node) { - var win = getWindow(node); - var scrollLeft = win.pageXOffset; - var scrollTop = win.pageYOffset; - return { - scrollLeft: scrollLeft, - scrollTop: scrollTop - }; -} - -function getHTMLElementScroll(element) { - return { - scrollLeft: element.scrollLeft, - scrollTop: element.scrollTop - }; -} - -function getNodeScroll(node) { - if (node === getWindow(node) || !isHTMLElement(node)) { - return getWindowScroll(node); - } else { - return getHTMLElementScroll(node); - } -} - -function getNodeName(element) { - return element ? (element.nodeName || '').toLowerCase() : null; -} - -function getDocumentElement(element) { - // $FlowFixMe[incompatible-return]: assume body is always available - return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] - element.document) || window.document).documentElement; -} - -function getWindowScrollBarX(element) { - // If <html> has a CSS width greater than the viewport, then this will be - // incorrect for RTL. - // Popper 1 is broken in this case and never had a bug report so let's assume - // it's not an issue. I don't think anyone ever specifies width on <html> - // anyway. - // Browsers where the left scrollbar doesn't cause an issue report `0` for - // this (e.g. Edge 2019, IE11, Safari) - return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; -} - -function getComputedStyle(element) { - return getWindow(element).getComputedStyle(element); -} - -function isScrollParent(element) { - // Firefox wants us to check `-x` and `-y` variations as well - var _getComputedStyle = getComputedStyle(element), - overflow = _getComputedStyle.overflow, - overflowX = _getComputedStyle.overflowX, - overflowY = _getComputedStyle.overflowY; - - return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); -} - -function isElementScaled(element) { - var rect = element.getBoundingClientRect(); - var scaleX = round(rect.width) / element.offsetWidth || 1; - var scaleY = round(rect.height) / element.offsetHeight || 1; - return scaleX !== 1 || scaleY !== 1; -} // Returns the composite rect of an element relative to its offsetParent. -// Composite means it takes into account transforms as well as layout. - - -function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { - if (isFixed === void 0) { - isFixed = false; - } - - var isOffsetParentAnElement = isHTMLElement(offsetParent); - var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); - var documentElement = getDocumentElement(offsetParent); - var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); - var scroll = { - scrollLeft: 0, - scrollTop: 0 - }; - var offsets = { - x: 0, - y: 0 - }; - - if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { - if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 - isScrollParent(documentElement)) { - scroll = getNodeScroll(offsetParent); - } - - if (isHTMLElement(offsetParent)) { - offsets = getBoundingClientRect(offsetParent, true); - offsets.x += offsetParent.clientLeft; - offsets.y += offsetParent.clientTop; - } else if (documentElement) { - offsets.x = getWindowScrollBarX(documentElement); - } - } - - return { - x: rect.left + scroll.scrollLeft - offsets.x, - y: rect.top + scroll.scrollTop - offsets.y, - width: rect.width, - height: rect.height - }; -} - -// means it doesn't take into account transforms. - -function getLayoutRect(element) { - var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. - // Fixes https://github.com/popperjs/popper-core/issues/1223 - - var width = element.offsetWidth; - var height = element.offsetHeight; - - if (Math.abs(clientRect.width - width) <= 1) { - width = clientRect.width; - } - - if (Math.abs(clientRect.height - height) <= 1) { - height = clientRect.height; - } - - return { - x: element.offsetLeft, - y: element.offsetTop, - width: width, - height: height - }; -} - -function getParentNode(element) { - if (getNodeName(element) === 'html') { - return element; - } - - return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle - // $FlowFixMe[incompatible-return] - // $FlowFixMe[prop-missing] - element.assignedSlot || // step into the shadow DOM of the parent of a slotted node - element.parentNode || ( // DOM Element detected - isShadowRoot(element) ? element.host : null) || // ShadowRoot detected - // $FlowFixMe[incompatible-call]: HTMLElement is a Node - getDocumentElement(element) // fallback - - ); -} - -function getScrollParent(node) { - if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { - // $FlowFixMe[incompatible-return]: assume body is always available - return node.ownerDocument.body; - } - - if (isHTMLElement(node) && isScrollParent(node)) { - return node; - } - - return getScrollParent(getParentNode(node)); -} - -/* -given a DOM element, return the list of all scroll parents, up the list of ancesors -until we get to the top window object. This list is what we attach scroll listeners -to, because if any of these parent elements scroll, we'll need to re-calculate the -reference element's position. -*/ - -function listScrollParents(element, list) { - var _element$ownerDocumen; - - if (list === void 0) { - list = []; - } - - var scrollParent = getScrollParent(element); - var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); - var win = getWindow(scrollParent); - var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; - var updatedList = list.concat(target); - return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here - updatedList.concat(listScrollParents(getParentNode(target))); -} - -function isTableElement(element) { - return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; -} - -function getTrueOffsetParent(element) { - if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 - getComputedStyle(element).position === 'fixed') { - return null; - } - - return element.offsetParent; -} // `.offsetParent` reports `null` for fixed elements, while absolute elements -// return the containing block - - -function getContainingBlock(element) { - var isFirefox = /firefox/i.test(getUAString()); - var isIE = /Trident/i.test(getUAString()); - - if (isIE && isHTMLElement(element)) { - // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport - var elementCss = getComputedStyle(element); - - if (elementCss.position === 'fixed') { - return null; - } - } - - var currentNode = getParentNode(element); - - if (isShadowRoot(currentNode)) { - currentNode = currentNode.host; - } - - while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { - var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that - // create a containing block. - // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block - - if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { - return currentNode; - } else { - currentNode = currentNode.parentNode; - } - } - - return null; -} // Gets the closest ancestor positioned element. Handles some edge cases, -// such as table ancestors and cross browser bugs. - - -function getOffsetParent(element) { - var window = getWindow(element); - var offsetParent = getTrueOffsetParent(element); - - while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') { - offsetParent = getTrueOffsetParent(offsetParent); - } - - if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) { - return window; - } - - return offsetParent || getContainingBlock(element) || window; -} - -var top = 'top'; -var bottom = 'bottom'; -var right = 'right'; -var left = 'left'; -var auto = 'auto'; -var basePlacements = [top, bottom, right, left]; -var start = 'start'; -var end = 'end'; -var clippingParents = 'clippingParents'; -var viewport = 'viewport'; -var popper = 'popper'; -var reference = 'reference'; -var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { - return acc.concat([placement + "-" + start, placement + "-" + end]); -}, []); -var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { - return acc.concat([placement, placement + "-" + start, placement + "-" + end]); -}, []); // modifiers that need to read the DOM - -var beforeRead = 'beforeRead'; -var read = 'read'; -var afterRead = 'afterRead'; // pure-logic modifiers - -var beforeMain = 'beforeMain'; -var main = 'main'; -var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) - -var beforeWrite = 'beforeWrite'; -var write = 'write'; -var afterWrite = 'afterWrite'; -var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; - -function order(modifiers) { - var map = new Map(); - var visited = new Set(); - var result = []; - modifiers.forEach(function (modifier) { - map.set(modifier.name, modifier); - }); // On visiting object, check for its dependencies and visit them recursively - - function sort(modifier) { - visited.add(modifier.name); - var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); - requires.forEach(function (dep) { - if (!visited.has(dep)) { - var depModifier = map.get(dep); - - if (depModifier) { - sort(depModifier); - } - } - }); - result.push(modifier); - } - - modifiers.forEach(function (modifier) { - if (!visited.has(modifier.name)) { - // check for visited object - sort(modifier); - } - }); - return result; -} - -function orderModifiers(modifiers) { - // order based on dependencies - var orderedModifiers = order(modifiers); // order based on phase - - return modifierPhases.reduce(function (acc, phase) { - return acc.concat(orderedModifiers.filter(function (modifier) { - return modifier.phase === phase; - })); - }, []); -} - -function debounce(fn) { - var pending; - return function () { - if (!pending) { - pending = new Promise(function (resolve) { - Promise.resolve().then(function () { - pending = undefined; - resolve(fn()); - }); - }); - } - - return pending; - }; -} - -function mergeByName(modifiers) { - var merged = modifiers.reduce(function (merged, current) { - var existing = merged[current.name]; - merged[current.name] = existing ? Object.assign({}, existing, current, { - options: Object.assign({}, existing.options, current.options), - data: Object.assign({}, existing.data, current.data) - }) : current; - return merged; - }, {}); // IE11 does not support Object.values - - return Object.keys(merged).map(function (key) { - return merged[key]; - }); -} - -function getViewportRect(element, strategy) { - var win = getWindow(element); - var html = getDocumentElement(element); - var visualViewport = win.visualViewport; - var width = html.clientWidth; - var height = html.clientHeight; - var x = 0; - var y = 0; - - if (visualViewport) { - width = visualViewport.width; - height = visualViewport.height; - var layoutViewport = isLayoutViewport(); - - if (layoutViewport || !layoutViewport && strategy === 'fixed') { - x = visualViewport.offsetLeft; - y = visualViewport.offsetTop; - } - } - - return { - width: width, - height: height, - x: x + getWindowScrollBarX(element), - y: y - }; -} - -// of the `<html>` and `<body>` rect bounds if horizontally scrollable - -function getDocumentRect(element) { - var _element$ownerDocumen; - - var html = getDocumentElement(element); - var winScroll = getWindowScroll(element); - var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; - var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); - var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); - var x = -winScroll.scrollLeft + getWindowScrollBarX(element); - var y = -winScroll.scrollTop; - - if (getComputedStyle(body || html).direction === 'rtl') { - x += max(html.clientWidth, body ? body.clientWidth : 0) - width; - } - - return { - width: width, - height: height, - x: x, - y: y - }; -} - -function contains(parent, child) { - var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method - - if (parent.contains(child)) { - return true; - } // then fallback to custom implementation with Shadow DOM support - else if (rootNode && isShadowRoot(rootNode)) { - var next = child; - - do { - if (next && parent.isSameNode(next)) { - return true; - } // $FlowFixMe[prop-missing]: need a better way to handle this... - - - next = next.parentNode || next.host; - } while (next); - } // Give up, the result is false - - - return false; -} - -function rectToClientRect(rect) { - return Object.assign({}, rect, { - left: rect.x, - top: rect.y, - right: rect.x + rect.width, - bottom: rect.y + rect.height - }); -} - -function getInnerBoundingClientRect(element, strategy) { - var rect = getBoundingClientRect(element, false, strategy === 'fixed'); - rect.top = rect.top + element.clientTop; - rect.left = rect.left + element.clientLeft; - rect.bottom = rect.top + element.clientHeight; - rect.right = rect.left + element.clientWidth; - rect.width = element.clientWidth; - rect.height = element.clientHeight; - rect.x = rect.left; - rect.y = rect.top; - return rect; -} - -function getClientRectFromMixedType(element, clippingParent, strategy) { - return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); -} // A "clipping parent" is an overflowable container with the characteristic of -// clipping (or hiding) overflowing elements with a position different from -// `initial` - - -function getClippingParents(element) { - var clippingParents = listScrollParents(getParentNode(element)); - var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0; - var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; - - if (!isElement(clipperElement)) { - return []; - } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 - - - return clippingParents.filter(function (clippingParent) { - return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; - }); -} // Gets the maximum area that the element is visible in due to any number of -// clipping parents - - -function getClippingRect(element, boundary, rootBoundary, strategy) { - var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); - var clippingParents = [].concat(mainClippingParents, [rootBoundary]); - var firstClippingParent = clippingParents[0]; - var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { - var rect = getClientRectFromMixedType(element, clippingParent, strategy); - accRect.top = max(rect.top, accRect.top); - accRect.right = min(rect.right, accRect.right); - accRect.bottom = min(rect.bottom, accRect.bottom); - accRect.left = max(rect.left, accRect.left); - return accRect; - }, getClientRectFromMixedType(element, firstClippingParent, strategy)); - clippingRect.width = clippingRect.right - clippingRect.left; - clippingRect.height = clippingRect.bottom - clippingRect.top; - clippingRect.x = clippingRect.left; - clippingRect.y = clippingRect.top; - return clippingRect; -} - -function getBasePlacement(placement) { - return placement.split('-')[0]; -} - -function getVariation(placement) { - return placement.split('-')[1]; -} - -function getMainAxisFromPlacement(placement) { - return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; -} - -function computeOffsets(_ref) { - var reference = _ref.reference, - element = _ref.element, - placement = _ref.placement; - var basePlacement = placement ? getBasePlacement(placement) : null; - var variation = placement ? getVariation(placement) : null; - var commonX = reference.x + reference.width / 2 - element.width / 2; - var commonY = reference.y + reference.height / 2 - element.height / 2; - var offsets; - - switch (basePlacement) { - case top: - offsets = { - x: commonX, - y: reference.y - element.height - }; - break; - - case bottom: - offsets = { - x: commonX, - y: reference.y + reference.height - }; - break; - - case right: - offsets = { - x: reference.x + reference.width, - y: commonY - }; - break; - - case left: - offsets = { - x: reference.x - element.width, - y: commonY - }; - break; - - default: - offsets = { - x: reference.x, - y: reference.y - }; - } - - var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; - - if (mainAxis != null) { - var len = mainAxis === 'y' ? 'height' : 'width'; - - switch (variation) { - case start: - offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); - break; - - case end: - offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); - break; - } - } - - return offsets; -} - -function getFreshSideObject() { - return { - top: 0, - right: 0, - bottom: 0, - left: 0 - }; -} - -function mergePaddingObject(paddingObject) { - return Object.assign({}, getFreshSideObject(), paddingObject); -} - -function expandToHashMap(value, keys) { - return keys.reduce(function (hashMap, key) { - hashMap[key] = value; - return hashMap; - }, {}); -} - -function detectOverflow(state, options) { - if (options === void 0) { - options = {}; - } - - var _options = options, - _options$placement = _options.placement, - placement = _options$placement === void 0 ? state.placement : _options$placement, - _options$strategy = _options.strategy, - strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, - _options$boundary = _options.boundary, - boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, - _options$rootBoundary = _options.rootBoundary, - rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, - _options$elementConte = _options.elementContext, - elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, - _options$altBoundary = _options.altBoundary, - altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, - _options$padding = _options.padding, - padding = _options$padding === void 0 ? 0 : _options$padding; - var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); - var altContext = elementContext === popper ? reference : popper; - var popperRect = state.rects.popper; - var element = state.elements[altBoundary ? altContext : elementContext]; - var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); - var referenceClientRect = getBoundingClientRect(state.elements.reference); - var popperOffsets = computeOffsets({ - reference: referenceClientRect, - element: popperRect, - strategy: 'absolute', - placement: placement - }); - var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); - var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect - // 0 or negative = within the clipping rect - - var overflowOffsets = { - top: clippingClientRect.top - elementClientRect.top + paddingObject.top, - bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, - left: clippingClientRect.left - elementClientRect.left + paddingObject.left, - right: elementClientRect.right - clippingClientRect.right + paddingObject.right - }; - var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element - - if (elementContext === popper && offsetData) { - var offset = offsetData[placement]; - Object.keys(overflowOffsets).forEach(function (key) { - var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; - var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; - overflowOffsets[key] += offset[axis] * multiply; - }); - } - - return overflowOffsets; -} - -var DEFAULT_OPTIONS = { - placement: 'bottom', - modifiers: [], - strategy: 'absolute' -}; - -function areValidElements() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - return !args.some(function (element) { - return !(element && typeof element.getBoundingClientRect === 'function'); - }); -} - -function popperGenerator(generatorOptions) { - if (generatorOptions === void 0) { - generatorOptions = {}; - } - - var _generatorOptions = generatorOptions, - _generatorOptions$def = _generatorOptions.defaultModifiers, - defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, - _generatorOptions$def2 = _generatorOptions.defaultOptions, - defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; - return function createPopper(reference, popper, options) { - if (options === void 0) { - options = defaultOptions; - } - - var state = { - placement: 'bottom', - orderedModifiers: [], - options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), - modifiersData: {}, - elements: { - reference: reference, - popper: popper - }, - attributes: {}, - styles: {} - }; - var effectCleanupFns = []; - var isDestroyed = false; - var instance = { - state: state, - setOptions: function setOptions(setOptionsAction) { - var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; - cleanupModifierEffects(); - state.options = Object.assign({}, defaultOptions, state.options, options); - state.scrollParents = { - reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], - popper: listScrollParents(popper) - }; // Orders the modifiers based on their dependencies and `phase` - // properties - - var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers - - state.orderedModifiers = orderedModifiers.filter(function (m) { - return m.enabled; - }); - runModifierEffects(); - return instance.update(); - }, - // Sync update – it will always be executed, even if not necessary. This - // is useful for low frequency updates where sync behavior simplifies the - // logic. - // For high frequency updates (e.g. `resize` and `scroll` events), always - // prefer the async Popper#update method - forceUpdate: function forceUpdate() { - if (isDestroyed) { - return; - } - - var _state$elements = state.elements, - reference = _state$elements.reference, - popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements - // anymore - - if (!areValidElements(reference, popper)) { - return; - } // Store the reference and popper rects to be read by modifiers - - - state.rects = { - reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), - popper: getLayoutRect(popper) - }; // Modifiers have the ability to reset the current update cycle. The - // most common use case for this is the `flip` modifier changing the - // placement, which then needs to re-run all the modifiers, because the - // logic was previously ran for the previous placement and is therefore - // stale/incorrect - - state.reset = false; - state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier - // is filled with the initial data specified by the modifier. This means - // it doesn't persist and is fresh on each update. - // To ensure persistent data, use `${name}#persistent` - - state.orderedModifiers.forEach(function (modifier) { - return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); - }); - - for (var index = 0; index < state.orderedModifiers.length; index++) { - if (state.reset === true) { - state.reset = false; - index = -1; - continue; - } - - var _state$orderedModifie = state.orderedModifiers[index], - fn = _state$orderedModifie.fn, - _state$orderedModifie2 = _state$orderedModifie.options, - _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, - name = _state$orderedModifie.name; - - if (typeof fn === 'function') { - state = fn({ - state: state, - options: _options, - name: name, - instance: instance - }) || state; - } - } - }, - // Async and optimistically optimized update – it will not be executed if - // not necessary (debounced to run at most once-per-tick) - update: debounce(function () { - return new Promise(function (resolve) { - instance.forceUpdate(); - resolve(state); - }); - }), - destroy: function destroy() { - cleanupModifierEffects(); - isDestroyed = true; - } - }; - - if (!areValidElements(reference, popper)) { - return instance; - } - - instance.setOptions(options).then(function (state) { - if (!isDestroyed && options.onFirstUpdate) { - options.onFirstUpdate(state); - } - }); // Modifiers have the ability to execute arbitrary code before the first - // update cycle runs. They will be executed in the same order as the update - // cycle. This is useful when a modifier adds some persistent data that - // other modifiers need to use, but the modifier is run after the dependent - // one. - - function runModifierEffects() { - state.orderedModifiers.forEach(function (_ref) { - var name = _ref.name, - _ref$options = _ref.options, - options = _ref$options === void 0 ? {} : _ref$options, - effect = _ref.effect; - - if (typeof effect === 'function') { - var cleanupFn = effect({ - state: state, - name: name, - instance: instance, - options: options - }); - - var noopFn = function noopFn() {}; - - effectCleanupFns.push(cleanupFn || noopFn); - } - }); - } - - function cleanupModifierEffects() { - effectCleanupFns.forEach(function (fn) { - return fn(); - }); - effectCleanupFns = []; - } - - return instance; - }; -} - -var passive = { - passive: true -}; - -function effect$2(_ref) { - var state = _ref.state, - instance = _ref.instance, - options = _ref.options; - var _options$scroll = options.scroll, - scroll = _options$scroll === void 0 ? true : _options$scroll, - _options$resize = options.resize, - resize = _options$resize === void 0 ? true : _options$resize; - var window = getWindow(state.elements.popper); - var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); - - if (scroll) { - scrollParents.forEach(function (scrollParent) { - scrollParent.addEventListener('scroll', instance.update, passive); - }); - } - - if (resize) { - window.addEventListener('resize', instance.update, passive); - } - - return function () { - if (scroll) { - scrollParents.forEach(function (scrollParent) { - scrollParent.removeEventListener('scroll', instance.update, passive); - }); - } - - if (resize) { - window.removeEventListener('resize', instance.update, passive); - } - }; -} // eslint-disable-next-line import/no-unused-modules - - -var eventListeners = { - name: 'eventListeners', - enabled: true, - phase: 'write', - fn: function fn() {}, - effect: effect$2, - data: {} -}; - -function popperOffsets(_ref) { - var state = _ref.state, - name = _ref.name; - // Offsets are the actual position the popper needs to have to be - // properly positioned near its reference element - // This is the most basic placement, and will be adjusted by - // the modifiers in the next step - state.modifiersData[name] = computeOffsets({ - reference: state.rects.reference, - element: state.rects.popper, - strategy: 'absolute', - placement: state.placement - }); -} // eslint-disable-next-line import/no-unused-modules - - -var popperOffsets$1 = { - name: 'popperOffsets', - enabled: true, - phase: 'read', - fn: popperOffsets, - data: {} -}; - -var unsetSides = { - top: 'auto', - right: 'auto', - bottom: 'auto', - left: 'auto' -}; // Round the offsets to the nearest suitable subpixel based on the DPR. -// Zooming can change the DPR, but it seems to report a value that will -// cleanly divide the values into the appropriate subpixels. - -function roundOffsetsByDPR(_ref, win) { - var x = _ref.x, - y = _ref.y; - var dpr = win.devicePixelRatio || 1; - return { - x: round(x * dpr) / dpr || 0, - y: round(y * dpr) / dpr || 0 - }; -} - -function mapToStyles(_ref2) { - var _Object$assign2; - - var popper = _ref2.popper, - popperRect = _ref2.popperRect, - placement = _ref2.placement, - variation = _ref2.variation, - offsets = _ref2.offsets, - position = _ref2.position, - gpuAcceleration = _ref2.gpuAcceleration, - adaptive = _ref2.adaptive, - roundOffsets = _ref2.roundOffsets, - isFixed = _ref2.isFixed; - var _offsets$x = offsets.x, - x = _offsets$x === void 0 ? 0 : _offsets$x, - _offsets$y = offsets.y, - y = _offsets$y === void 0 ? 0 : _offsets$y; - - var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ - x: x, - y: y - }) : { - x: x, - y: y - }; - - x = _ref3.x; - y = _ref3.y; - var hasX = offsets.hasOwnProperty('x'); - var hasY = offsets.hasOwnProperty('y'); - var sideX = left; - var sideY = top; - var win = window; - - if (adaptive) { - var offsetParent = getOffsetParent(popper); - var heightProp = 'clientHeight'; - var widthProp = 'clientWidth'; - - if (offsetParent === getWindow(popper)) { - offsetParent = getDocumentElement(popper); - - if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') { - heightProp = 'scrollHeight'; - widthProp = 'scrollWidth'; - } - } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it - - - offsetParent = offsetParent; - - if (placement === top || (placement === left || placement === right) && variation === end) { - sideY = bottom; - var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] - offsetParent[heightProp]; - y -= offsetY - popperRect.height; - y *= gpuAcceleration ? 1 : -1; - } - - if (placement === left || (placement === top || placement === bottom) && variation === end) { - sideX = right; - var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] - offsetParent[widthProp]; - x -= offsetX - popperRect.width; - x *= gpuAcceleration ? 1 : -1; - } - } - - var commonStyles = Object.assign({ - position: position - }, adaptive && unsetSides); - - var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ - x: x, - y: y - }, getWindow(popper)) : { - x: x, - y: y - }; - - x = _ref4.x; - y = _ref4.y; - - if (gpuAcceleration) { - var _Object$assign; - - return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); - } - - return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); -} - -function computeStyles(_ref5) { - var state = _ref5.state, - options = _ref5.options; - var _options$gpuAccelerat = options.gpuAcceleration, - gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, - _options$adaptive = options.adaptive, - adaptive = _options$adaptive === void 0 ? true : _options$adaptive, - _options$roundOffsets = options.roundOffsets, - roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; - var commonStyles = { - placement: getBasePlacement(state.placement), - variation: getVariation(state.placement), - popper: state.elements.popper, - popperRect: state.rects.popper, - gpuAcceleration: gpuAcceleration, - isFixed: state.options.strategy === 'fixed' - }; - - if (state.modifiersData.popperOffsets != null) { - state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { - offsets: state.modifiersData.popperOffsets, - position: state.options.strategy, - adaptive: adaptive, - roundOffsets: roundOffsets - }))); - } - - if (state.modifiersData.arrow != null) { - state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { - offsets: state.modifiersData.arrow, - position: 'absolute', - adaptive: false, - roundOffsets: roundOffsets - }))); - } - - state.attributes.popper = Object.assign({}, state.attributes.popper, { - 'data-popper-placement': state.placement - }); -} // eslint-disable-next-line import/no-unused-modules - - -var computeStyles$1 = { - name: 'computeStyles', - enabled: true, - phase: 'beforeWrite', - fn: computeStyles, - data: {} -}; - -// and applies them to the HTMLElements such as popper and arrow - -function applyStyles(_ref) { - var state = _ref.state; - Object.keys(state.elements).forEach(function (name) { - var style = state.styles[name] || {}; - var attributes = state.attributes[name] || {}; - var element = state.elements[name]; // arrow is optional + virtual elements - - if (!isHTMLElement(element) || !getNodeName(element)) { - return; - } // Flow doesn't support to extend this property, but it's the most - // effective way to apply styles to an HTMLElement - // $FlowFixMe[cannot-write] - - - Object.assign(element.style, style); - Object.keys(attributes).forEach(function (name) { - var value = attributes[name]; - - if (value === false) { - element.removeAttribute(name); - } else { - element.setAttribute(name, value === true ? '' : value); - } - }); - }); -} - -function effect$1(_ref2) { - var state = _ref2.state; - var initialStyles = { - popper: { - position: state.options.strategy, - left: '0', - top: '0', - margin: '0' - }, - arrow: { - position: 'absolute' - }, - reference: {} - }; - Object.assign(state.elements.popper.style, initialStyles.popper); - state.styles = initialStyles; - - if (state.elements.arrow) { - Object.assign(state.elements.arrow.style, initialStyles.arrow); - } - - return function () { - Object.keys(state.elements).forEach(function (name) { - var element = state.elements[name]; - var attributes = state.attributes[name] || {}; - var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them - - var style = styleProperties.reduce(function (style, property) { - style[property] = ''; - return style; - }, {}); // arrow is optional + virtual elements - - if (!isHTMLElement(element) || !getNodeName(element)) { - return; - } - - Object.assign(element.style, style); - Object.keys(attributes).forEach(function (attribute) { - element.removeAttribute(attribute); - }); - }); - }; -} // eslint-disable-next-line import/no-unused-modules - - -var applyStyles$1 = { - name: 'applyStyles', - enabled: true, - phase: 'write', - fn: applyStyles, - effect: effect$1, - requires: ['computeStyles'] -}; - -function distanceAndSkiddingToXY(placement, rects, offset) { - var basePlacement = getBasePlacement(placement); - var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; - - var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { - placement: placement - })) : offset, - skidding = _ref[0], - distance = _ref[1]; - - skidding = skidding || 0; - distance = (distance || 0) * invertDistance; - return [left, right].indexOf(basePlacement) >= 0 ? { - x: distance, - y: skidding - } : { - x: skidding, - y: distance - }; -} - -function offset(_ref2) { - var state = _ref2.state, - options = _ref2.options, - name = _ref2.name; - var _options$offset = options.offset, - offset = _options$offset === void 0 ? [0, 0] : _options$offset; - var data = placements.reduce(function (acc, placement) { - acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); - return acc; - }, {}); - var _data$state$placement = data[state.placement], - x = _data$state$placement.x, - y = _data$state$placement.y; - - if (state.modifiersData.popperOffsets != null) { - state.modifiersData.popperOffsets.x += x; - state.modifiersData.popperOffsets.y += y; - } - - state.modifiersData[name] = data; -} // eslint-disable-next-line import/no-unused-modules - - -var offset$1 = { - name: 'offset', - enabled: true, - phase: 'main', - requires: ['popperOffsets'], - fn: offset -}; - -var hash$1 = { - left: 'right', - right: 'left', - bottom: 'top', - top: 'bottom' -}; -function getOppositePlacement(placement) { - return placement.replace(/left|right|bottom|top/g, function (matched) { - return hash$1[matched]; - }); -} - -var hash = { - start: 'end', - end: 'start' -}; -function getOppositeVariationPlacement(placement) { - return placement.replace(/start|end/g, function (matched) { - return hash[matched]; - }); -} - -function computeAutoPlacement(state, options) { - if (options === void 0) { - options = {}; - } - - var _options = options, - placement = _options.placement, - boundary = _options.boundary, - rootBoundary = _options.rootBoundary, - padding = _options.padding, - flipVariations = _options.flipVariations, - _options$allowedAutoP = _options.allowedAutoPlacements, - allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; - var variation = getVariation(placement); - var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { - return getVariation(placement) === variation; - }) : basePlacements; - var allowedPlacements = placements$1.filter(function (placement) { - return allowedAutoPlacements.indexOf(placement) >= 0; - }); - - if (allowedPlacements.length === 0) { - allowedPlacements = placements$1; - } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... - - - var overflows = allowedPlacements.reduce(function (acc, placement) { - acc[placement] = detectOverflow(state, { - placement: placement, - boundary: boundary, - rootBoundary: rootBoundary, - padding: padding - })[getBasePlacement(placement)]; - return acc; - }, {}); - return Object.keys(overflows).sort(function (a, b) { - return overflows[a] - overflows[b]; - }); -} - -function getExpandedFallbackPlacements(placement) { - if (getBasePlacement(placement) === auto) { - return []; - } - - var oppositePlacement = getOppositePlacement(placement); - return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; -} - -function flip(_ref) { - var state = _ref.state, - options = _ref.options, - name = _ref.name; - - if (state.modifiersData[name]._skip) { - return; - } - - var _options$mainAxis = options.mainAxis, - checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, - _options$altAxis = options.altAxis, - checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, - specifiedFallbackPlacements = options.fallbackPlacements, - padding = options.padding, - boundary = options.boundary, - rootBoundary = options.rootBoundary, - altBoundary = options.altBoundary, - _options$flipVariatio = options.flipVariations, - flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, - allowedAutoPlacements = options.allowedAutoPlacements; - var preferredPlacement = state.options.placement; - var basePlacement = getBasePlacement(preferredPlacement); - var isBasePlacement = basePlacement === preferredPlacement; - var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); - var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { - return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { - placement: placement, - boundary: boundary, - rootBoundary: rootBoundary, - padding: padding, - flipVariations: flipVariations, - allowedAutoPlacements: allowedAutoPlacements - }) : placement); - }, []); - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var checksMap = new Map(); - var makeFallbackChecks = true; - var firstFittingPlacement = placements[0]; - - for (var i = 0; i < placements.length; i++) { - var placement = placements[i]; - - var _basePlacement = getBasePlacement(placement); - - var isStartVariation = getVariation(placement) === start; - var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; - var len = isVertical ? 'width' : 'height'; - var overflow = detectOverflow(state, { - placement: placement, - boundary: boundary, - rootBoundary: rootBoundary, - altBoundary: altBoundary, - padding: padding - }); - var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; - - if (referenceRect[len] > popperRect[len]) { - mainVariationSide = getOppositePlacement(mainVariationSide); - } - - var altVariationSide = getOppositePlacement(mainVariationSide); - var checks = []; - - if (checkMainAxis) { - checks.push(overflow[_basePlacement] <= 0); - } - - if (checkAltAxis) { - checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); - } - - if (checks.every(function (check) { - return check; - })) { - firstFittingPlacement = placement; - makeFallbackChecks = false; - break; - } - - checksMap.set(placement, checks); - } - - if (makeFallbackChecks) { - // `2` may be desired in some cases – research later - var numberOfChecks = flipVariations ? 3 : 1; - - var _loop = function _loop(_i) { - var fittingPlacement = placements.find(function (placement) { - var checks = checksMap.get(placement); - - if (checks) { - return checks.slice(0, _i).every(function (check) { - return check; - }); - } - }); - - if (fittingPlacement) { - firstFittingPlacement = fittingPlacement; - return "break"; - } - }; - - for (var _i = numberOfChecks; _i > 0; _i--) { - var _ret = _loop(_i); - - if (_ret === "break") break; - } - } - - if (state.placement !== firstFittingPlacement) { - state.modifiersData[name]._skip = true; - state.placement = firstFittingPlacement; - state.reset = true; - } -} // eslint-disable-next-line import/no-unused-modules - - -var flip$1 = { - name: 'flip', - enabled: true, - phase: 'main', - fn: flip, - requiresIfExists: ['offset'], - data: { - _skip: false - } -}; - -function getAltAxis(axis) { - return axis === 'x' ? 'y' : 'x'; -} - -function within(min$1, value, max$1) { - return max(min$1, min(value, max$1)); -} -function withinMaxClamp(min, value, max) { - var v = within(min, value, max); - return v > max ? max : v; -} - -function preventOverflow(_ref) { - var state = _ref.state, - options = _ref.options, - name = _ref.name; - var _options$mainAxis = options.mainAxis, - checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, - _options$altAxis = options.altAxis, - checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, - boundary = options.boundary, - rootBoundary = options.rootBoundary, - altBoundary = options.altBoundary, - padding = options.padding, - _options$tether = options.tether, - tether = _options$tether === void 0 ? true : _options$tether, - _options$tetherOffset = options.tetherOffset, - tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; - var overflow = detectOverflow(state, { - boundary: boundary, - rootBoundary: rootBoundary, - padding: padding, - altBoundary: altBoundary - }); - var basePlacement = getBasePlacement(state.placement); - var variation = getVariation(state.placement); - var isBasePlacement = !variation; - var mainAxis = getMainAxisFromPlacement(basePlacement); - var altAxis = getAltAxis(mainAxis); - var popperOffsets = state.modifiersData.popperOffsets; - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { - placement: state.placement - })) : tetherOffset; - var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { - mainAxis: tetherOffsetValue, - altAxis: tetherOffsetValue - } : Object.assign({ - mainAxis: 0, - altAxis: 0 - }, tetherOffsetValue); - var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; - var data = { - x: 0, - y: 0 - }; - - if (!popperOffsets) { - return; - } - - if (checkMainAxis) { - var _offsetModifierState$; - - var mainSide = mainAxis === 'y' ? top : left; - var altSide = mainAxis === 'y' ? bottom : right; - var len = mainAxis === 'y' ? 'height' : 'width'; - var offset = popperOffsets[mainAxis]; - var min$1 = offset + overflow[mainSide]; - var max$1 = offset - overflow[altSide]; - var additive = tether ? -popperRect[len] / 2 : 0; - var minLen = variation === start ? referenceRect[len] : popperRect[len]; - var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go - // outside the reference bounds - - var arrowElement = state.elements.arrow; - var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { - width: 0, - height: 0 - }; - var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); - var arrowPaddingMin = arrowPaddingObject[mainSide]; - var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want - // to include its full size in the calculation. If the reference is small - // and near the edge of a boundary, the popper can overflow even if the - // reference is not overflowing as well (e.g. virtual elements with no - // width or height) - - var arrowLen = within(0, referenceRect[len], arrowRect[len]); - var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; - var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; - var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); - var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; - var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; - var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; - var tetherMax = offset + maxOffset - offsetModifierValue; - var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); - popperOffsets[mainAxis] = preventedOffset; - data[mainAxis] = preventedOffset - offset; - } - - if (checkAltAxis) { - var _offsetModifierState$2; - - var _mainSide = mainAxis === 'x' ? top : left; - - var _altSide = mainAxis === 'x' ? bottom : right; - - var _offset = popperOffsets[altAxis]; - - var _len = altAxis === 'y' ? 'height' : 'width'; - - var _min = _offset + overflow[_mainSide]; - - var _max = _offset - overflow[_altSide]; - - var isOriginSide = [top, left].indexOf(basePlacement) !== -1; - - var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; - - var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; - - var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; - - var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); - - popperOffsets[altAxis] = _preventedOffset; - data[altAxis] = _preventedOffset - _offset; - } - - state.modifiersData[name] = data; -} // eslint-disable-next-line import/no-unused-modules - - -var preventOverflow$1 = { - name: 'preventOverflow', - enabled: true, - phase: 'main', - fn: preventOverflow, - requiresIfExists: ['offset'] -}; - -var toPaddingObject = function toPaddingObject(padding, state) { - padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { - placement: state.placement - })) : padding; - return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); -}; - -function arrow(_ref) { - var _state$modifiersData$; - - var state = _ref.state, - name = _ref.name, - options = _ref.options; - var arrowElement = state.elements.arrow; - var popperOffsets = state.modifiersData.popperOffsets; - var basePlacement = getBasePlacement(state.placement); - var axis = getMainAxisFromPlacement(basePlacement); - var isVertical = [left, right].indexOf(basePlacement) >= 0; - var len = isVertical ? 'height' : 'width'; - - if (!arrowElement || !popperOffsets) { - return; - } - - var paddingObject = toPaddingObject(options.padding, state); - var arrowRect = getLayoutRect(arrowElement); - var minProp = axis === 'y' ? top : left; - var maxProp = axis === 'y' ? bottom : right; - var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; - var startDiff = popperOffsets[axis] - state.rects.reference[axis]; - var arrowOffsetParent = getOffsetParent(arrowElement); - var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; - var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is - // outside of the popper bounds - - var min = paddingObject[minProp]; - var max = clientSize - arrowRect[len] - paddingObject[maxProp]; - var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; - var offset = within(min, center, max); // Prevents breaking syntax highlighting... - - var axisProp = axis; - state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); -} - -function effect(_ref2) { - var state = _ref2.state, - options = _ref2.options; - var _options$element = options.element, - arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; - - if (arrowElement == null) { - return; - } // CSS selector - - - if (typeof arrowElement === 'string') { - arrowElement = state.elements.popper.querySelector(arrowElement); - - if (!arrowElement) { - return; - } - } - - if (!contains(state.elements.popper, arrowElement)) { - return; - } - - state.elements.arrow = arrowElement; -} // eslint-disable-next-line import/no-unused-modules - - -var arrow$1 = { - name: 'arrow', - enabled: true, - phase: 'main', - fn: arrow, - effect: effect, - requires: ['popperOffsets'], - requiresIfExists: ['preventOverflow'] -}; - -function getSideOffsets(overflow, rect, preventedOffsets) { - if (preventedOffsets === void 0) { - preventedOffsets = { - x: 0, - y: 0 - }; - } - - return { - top: overflow.top - rect.height - preventedOffsets.y, - right: overflow.right - rect.width + preventedOffsets.x, - bottom: overflow.bottom - rect.height + preventedOffsets.y, - left: overflow.left - rect.width - preventedOffsets.x - }; -} - -function isAnySideFullyClipped(overflow) { - return [top, right, bottom, left].some(function (side) { - return overflow[side] >= 0; - }); -} - -function hide(_ref) { - var state = _ref.state, - name = _ref.name; - var referenceRect = state.rects.reference; - var popperRect = state.rects.popper; - var preventedOffsets = state.modifiersData.preventOverflow; - var referenceOverflow = detectOverflow(state, { - elementContext: 'reference' - }); - var popperAltOverflow = detectOverflow(state, { - altBoundary: true - }); - var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); - var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); - var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); - var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); - state.modifiersData[name] = { - referenceClippingOffsets: referenceClippingOffsets, - popperEscapeOffsets: popperEscapeOffsets, - isReferenceHidden: isReferenceHidden, - hasPopperEscaped: hasPopperEscaped - }; - state.attributes.popper = Object.assign({}, state.attributes.popper, { - 'data-popper-reference-hidden': isReferenceHidden, - 'data-popper-escaped': hasPopperEscaped - }); -} // eslint-disable-next-line import/no-unused-modules - - -var hide$1 = { - name: 'hide', - enabled: true, - phase: 'main', - requiresIfExists: ['preventOverflow'], - fn: hide -}; - -var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; -var createPopper$1 = /*#__PURE__*/popperGenerator({ - defaultModifiers: defaultModifiers$1 -}); // eslint-disable-next-line import/no-unused-modules - -var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; -var createPopper = /*#__PURE__*/popperGenerator({ - defaultModifiers: defaultModifiers -}); // eslint-disable-next-line import/no-unused-modules - -exports.applyStyles = applyStyles$1; -exports.arrow = arrow$1; -exports.computeStyles = computeStyles$1; -exports.createPopper = createPopper; -exports.createPopperLite = createPopper$1; -exports.defaultModifiers = defaultModifiers; -exports.detectOverflow = detectOverflow; -exports.eventListeners = eventListeners; -exports.flip = flip$1; -exports.hide = hide$1; -exports.offset = offset$1; -exports.popperGenerator = popperGenerator; -exports.popperOffsets = popperOffsets$1; -exports.preventOverflow = preventOverflow$1; -//# sourceMappingURL=popper.js.map diff --git a/.output/server/node_modules/@popperjs/core/package.json b/.output/server/node_modules/@popperjs/core/package.json deleted file mode 100644 index 5697266..0000000 --- a/.output/server/node_modules/@popperjs/core/package.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "name": "@popperjs/core", - "version": "2.11.8", - "description": "Tooltip and Popover Positioning Engine", - "main": "dist/cjs/popper.js", - "main:umd": "dist/umd/popper.js", - "module": "lib/index.js", - "unpkg": "dist/umd/popper.min.js", - "author": "Federico Zivolo <federico.zivolo@gmail.com>", - "license": "MIT", - "repository": "github:popperjs/popper-core", - "keywords": [ - "tooltip", - "popover", - "dropdown", - "popup", - "popper", - "positioning engine" - ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - }, - "files": [ - "index.d.ts", - "/dist", - "/lib" - ], - "sideEffects": false, - "scripts": { - "clean": "rimraf lib && rimraf dist && rimraf test/visual/dist", - "test": "yarn test:unit && yarn test:functional", - "test:unit": "jest --coverage src", - "test:functional": "DEV_PORT=`get-port` jest tests/functional", - "test:flow": "flow", - "test:typescript": "tsc --project tests/typescript/tsconfig.json", - "test:eslint": "eslint .", - "dev": "NODE_ENV=dev concurrently 'yarn serve' 'yarn build:dev --watch'", - "serve": "serve -l ${DEV_PORT:-5000} tests/visual", - "build": "yarn clean && yarn build:es && yarn build:esbrowser && yarn build:bundles && yarn build:flow && yarn build:typescript", - "build:es": "babel src -d lib --ignore '**/*.test.js','**/__mocks__'", - "build:esbrowser": "BROWSER_COMPAT=true yarn build:es -d dist/esm", - "build:bundles": "rollup -c .config/rollup.config.js", - "build:dev": "NODE_ENV=dev babel src -d tests/visual/dist", - "build:flow": "flow-copy-source --ignore \"**/*.test.js\" src lib && replace-in-files --string=__DEV__ --replacement=false 'lib/**/*.flow'", - "build:typescript": "rimraf dist/typescript; flow-to-ts \"src/**/*.js\" --write --inline-utility-types; tsc-silent --project .config/tsconfig.json --createSourceFile .config/createSourceFile.js --suppress @; rimraf \"src/**/*.ts\"", - "prepublishOnly": "yarn build && pinst --disable", - "prepare": "husky install .config/husky", - "postpublish": "pinst --enable" - }, - "prettier": { - "semi": true, - "trailingComma": "es5", - "singleQuote": true, - "proseWrap": "always" - }, - "babel": { - "extends": "./.config/babel.config" - }, - "jest": { - "preset": "./.config/jest.config" - }, - "eslintConfig": { - "extends": "./.config/eslint.config" - }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged" - } - }, - "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "^0.26.0", - "@atomico/rollup-plugin-sizes": "^1.1.4", - "@babel/cli": "^7.12.17", - "@babel/core": "^7.12.17", - "@babel/plugin-transform-flow-strip-types": "^7.12.13", - "@babel/plugin-transform-runtime": "^7.12.17", - "@babel/preset-env": "^7.12.17", - "@fezvrasta/tsc-silent": "^1.3.0", - "@khanacademy/flow-to-ts": "^0.3.0", - "@rollup/plugin-babel": "^5.3.0", - "@rollup/plugin-replace": "^2.3.4", - "babel-eslint": "^10.0.3", - "babel-jest": "^26.6.3", - "babel-plugin-add-import-extension": "^1.4.4", - "babel-plugin-annotate-pure-calls": "^0.4.0", - "babel-plugin-dev-expression": "^0.2.2", - "babel-plugin-inline-replace-variables": "^1.3.1", - "babel-plugin-transform-inline-environment-variables": "^0.4.3", - "concurrently": "^5.3.0", - "dotenv": "^8.2.0", - "eslint": "^7.20.0", - "eslint-plugin-flowtype": "^5.2.2", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-unused-imports": "^1.1.0", - "flow-bin": "^0.139.0", - "flow-copy-source": "^2.0.9", - "get-port-cli": "^2.0.0", - "husky": "^5.0.9", - "jest": "^26.6.3", - "jest-environment-jsdom-sixteen": "^1.0.3", - "jest-environment-puppeteer": "^4.4.0", - "jest-image-snapshot": "^4.3.0", - "jest-puppeteer": "^4.4.0", - "pinst": "^2.1.4", - "poster": "^0.0.9", - "prettier": "^2.2.1", - "pretty-quick": "^3.1.0", - "puppeteer": "^10.4.0", - "replace-in-files-cli": "^1.0.0", - "rollup": "^2.39.0", - "rollup-plugin-flow-entry": "^0.3.3", - "rollup-plugin-license": "^2.2.0", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-visualizer": "^4.2.0", - "serve": "^11.3.2", - "typescript": "^4.1.5" - }, - "__npminstall_done": true, - "_from": "@popperjs/core@2.11.8", - "_resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz" -} \ No newline at end of file diff --git a/.output/server/node_modules/@sxzz/popperjs-es/dist/index.mjs b/.output/server/node_modules/@sxzz/popperjs-es/dist/index.mjs new file mode 100644 index 0000000..927eb4b --- /dev/null +++ b/.output/server/node_modules/@sxzz/popperjs-es/dist/index.mjs @@ -0,0 +1 @@ +var E="top",R="bottom",W="right",P="left",me="auto",G=[E,R,W,P],U="start",J="end",Xe="clippingParents",je="viewport",K="popper",Ye="reference",De=G.reduce(function(t,e){return t.concat([e+"-"+U,e+"-"+J])},[]),Ee=[].concat(G,[me]).reduce(function(t,e){return t.concat([e,e+"-"+U,e+"-"+J])},[]),Ge="beforeRead",Je="read",Ke="afterRead",Qe="beforeMain",Ze="main",et="afterMain",tt="beforeWrite",nt="write",rt="afterWrite",ot=[Ge,Je,Ke,Qe,Ze,et,tt,nt,rt];function C(t){return t?(t.nodeName||"").toLowerCase():null}function H(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Q(t){var e=H(t).Element;return t instanceof e||t instanceof Element}function B(t){var e=H(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Pe(t){if(typeof ShadowRoot=="undefined")return!1;var e=H(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Mt(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},i=e.elements[n];!B(i)||!C(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function Rt(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],i=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),s=a.reduce(function(f,c){return f[c]="",f},{});!B(o)||!C(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(f){o.removeAttribute(f)}))})}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Mt,effect:Rt,requires:["computeStyles"]};function q(t){return t.split("-")[0]}var X=Math.max,ve=Math.min,Z=Math.round;function ee(t,e){e===void 0&&(e=!1);var n=t.getBoundingClientRect(),r=1,o=1;if(B(t)&&e){var i=t.offsetHeight,a=t.offsetWidth;a>0&&(r=Z(n.width)/a||1),i>0&&(o=Z(n.height)/i||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function ke(t){var e=ee(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function it(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&Pe(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(t){return H(t).getComputedStyle(t)}function Wt(t){return["table","td","th"].indexOf(C(t))>=0}function I(t){return((Q(t)?t.ownerDocument:t.document)||window.document).documentElement}function ge(t){return C(t)==="html"?t:t.assignedSlot||t.parentNode||(Pe(t)?t.host:null)||I(t)}function at(t){return!B(t)||N(t).position==="fixed"?null:t.offsetParent}function Bt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&B(t)){var r=N(t);if(r.position==="fixed")return null}var o=ge(t);for(Pe(o)&&(o=o.host);B(o)&&["html","body"].indexOf(C(o))<0;){var i=N(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function se(t){for(var e=H(t),n=at(t);n&&Wt(n)&&N(n).position==="static";)n=at(n);return n&&(C(n)==="html"||C(n)==="body"&&N(n).position==="static")?e:n||Bt(t)||e}function Le(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function fe(t,e,n){return X(t,ve(e,n))}function St(t,e,n){var r=fe(t,e,n);return r>n?n:r}function st(){return{top:0,right:0,bottom:0,left:0}}function ft(t){return Object.assign({},st(),t)}function ct(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var Tt=function(t,e){return t=typeof t=="function"?t(Object.assign({},e.rects,{placement:e.placement})):t,ft(typeof t!="number"?t:ct(t,G))};function Ht(t){var e,n=t.state,r=t.name,o=t.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=q(n.placement),f=Le(s),c=[P,W].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var m=Tt(o.padding,n),v=ke(i),l=f==="y"?E:P,h=f==="y"?R:W,p=n.rects.reference[u]+n.rects.reference[f]-a[f]-n.rects.popper[u],g=a[f]-n.rects.reference[f],x=se(i),y=x?f==="y"?x.clientHeight||0:x.clientWidth||0:0,$=p/2-g/2,d=m[l],b=y-v[u]-m[h],w=y/2-v[u]/2+$,O=fe(d,w,b),j=f;n.modifiersData[r]=(e={},e[j]=O,e.centerOffset=O-w,e)}}function Ct(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||!it(e.elements.popper,o)||(e.elements.arrow=o))}var pt={name:"arrow",enabled:!0,phase:"main",fn:Ht,effect:Ct,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function te(t){return t.split("-")[1]}var qt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Vt(t){var e=t.x,n=t.y,r=window,o=r.devicePixelRatio||1;return{x:Z(e*o)/o||0,y:Z(n*o)/o||0}}function ut(t){var e,n=t.popper,r=t.popperRect,o=t.placement,i=t.variation,a=t.offsets,s=t.position,f=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,m=t.isFixed,v=a.x,l=v===void 0?0:v,h=a.y,p=h===void 0?0:h,g=typeof u=="function"?u({x:l,y:p}):{x:l,y:p};l=g.x,p=g.y;var x=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),$=P,d=E,b=window;if(c){var w=se(n),O="clientHeight",j="clientWidth";if(w===H(n)&&(w=I(n),N(w).position!=="static"&&s==="absolute"&&(O="scrollHeight",j="scrollWidth")),w=w,o===E||(o===P||o===W)&&i===J){d=R;var A=m&&w===b&&b.visualViewport?b.visualViewport.height:w[O];p-=A-r.height,p*=f?1:-1}if(o===P||(o===E||o===R)&&i===J){$=W;var k=m&&w===b&&b.visualViewport?b.visualViewport.width:w[j];l-=k-r.width,l*=f?1:-1}}var D=Object.assign({position:s},c&&qt),S=u===!0?Vt({x:l,y:p}):{x:l,y:p};if(l=S.x,p=S.y,f){var L;return Object.assign({},D,(L={},L[d]=y?"0":"",L[$]=x?"0":"",L.transform=(b.devicePixelRatio||1)<=1?"translate("+l+"px, "+p+"px)":"translate3d("+l+"px, "+p+"px, 0)",L))}return Object.assign({},D,(e={},e[d]=y?p+"px":"",e[$]=x?l+"px":"",e.transform="",e))}function Nt(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,f=s===void 0?!0:s,c={placement:q(e.placement),variation:te(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ut(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:f})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ut(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var Me={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nt,data:{}},ye={passive:!0};function It(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,f=H(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,ye)}),s&&f.addEventListener("resize",n.update,ye),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,ye)}),s&&f.removeEventListener("resize",n.update,ye)}}var Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:It,data:{}},_t={left:"right",right:"left",bottom:"top",top:"bottom"};function be(t){return t.replace(/left|right|bottom|top/g,function(e){return _t[e]})}var zt={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,function(e){return zt[e]})}function We(t){var e=H(t),n=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Be(t){return ee(I(t)).left+We(t).scrollLeft}function Ft(t){var e=H(t),n=I(t),r=e.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+Be(t),y:s}}function Ut(t){var e,n=I(t),r=We(t),o=(e=t.ownerDocument)==null?void 0:e.body,i=X(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=X(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+Be(t),f=-r.scrollTop;return N(o||n).direction==="rtl"&&(s+=X(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:f}}function Se(t){var e=N(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function dt(t){return["html","body","#document"].indexOf(C(t))>=0?t.ownerDocument.body:B(t)&&Se(t)?t:dt(ge(t))}function ce(t,e){var n;e===void 0&&(e=[]);var r=dt(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),i=H(r),a=o?[i].concat(i.visualViewport||[],Se(r)?r:[]):r,s=e.concat(a);return o?s:s.concat(ce(ge(a)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t){var e=ee(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function ht(t,e){return e===je?Te(Ft(t)):Q(e)?Xt(e):Te(Ut(I(t)))}function Yt(t){var e=ce(ge(t)),n=["absolute","fixed"].indexOf(N(t).position)>=0,r=n&&B(t)?se(t):t;return Q(r)?e.filter(function(o){return Q(o)&&it(o,r)&&C(o)!=="body"}):[]}function Gt(t,e,n){var r=e==="clippingParents"?Yt(t):[].concat(e),o=[].concat(r,[n]),i=o[0],a=o.reduce(function(s,f){var c=ht(t,f);return s.top=X(c.top,s.top),s.right=ve(c.right,s.right),s.bottom=ve(c.bottom,s.bottom),s.left=X(c.left,s.left),s},ht(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mt(t){var e=t.reference,n=t.element,r=t.placement,o=r?q(r):null,i=r?te(r):null,a=e.x+e.width/2-n.width/2,s=e.y+e.height/2-n.height/2,f;switch(o){case E:f={x:a,y:e.y-n.height};break;case R:f={x:a,y:e.y+e.height};break;case W:f={x:e.x+e.width,y:s};break;case P:f={x:e.x-n.width,y:s};break;default:f={x:e.x,y:e.y}}var c=o?Le(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case U:f[c]=f[c]-(e[u]/2-n[u]/2);break;case J:f[c]=f[c]+(e[u]/2-n[u]/2);break}}return f}function ne(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,i=n.boundary,a=i===void 0?Xe:i,s=n.rootBoundary,f=s===void 0?je:s,c=n.elementContext,u=c===void 0?K:c,m=n.altBoundary,v=m===void 0?!1:m,l=n.padding,h=l===void 0?0:l,p=ft(typeof h!="number"?h:ct(h,G)),g=u===K?Ye:K,x=t.rects.popper,y=t.elements[v?g:u],$=Gt(Q(y)?y:y.contextElement||I(t.elements.popper),a,f),d=ee(t.elements.reference),b=mt({reference:d,element:x,strategy:"absolute",placement:o}),w=Te(Object.assign({},x,b)),O=u===K?w:d,j={top:$.top-O.top+p.top,bottom:O.bottom-$.bottom+p.bottom,left:$.left-O.left+p.left,right:O.right-$.right+p.right},A=t.modifiersData.offset;if(u===K&&A){var k=A[o];Object.keys(j).forEach(function(D){var S=[W,R].indexOf(D)>=0?1:-1,L=[E,R].indexOf(D)>=0?"y":"x";j[D]+=k[L]*S})}return j}function Jt(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=f===void 0?Ee:f,u=te(r),m=u?s?De:De.filter(function(h){return te(h)===u}):G,v=m.filter(function(h){return c.indexOf(h)>=0});v.length===0&&(v=m);var l=v.reduce(function(h,p){return h[p]=ne(t,{placement:p,boundary:o,rootBoundary:i,padding:a})[q(p)],h},{});return Object.keys(l).sort(function(h,p){return l[h]-l[p]})}function Kt(t){if(q(t)===me)return[];var e=be(t);return[lt(t),e,lt(e)]}function Qt(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,f=n.fallbackPlacements,c=n.padding,u=n.boundary,m=n.rootBoundary,v=n.altBoundary,l=n.flipVariations,h=l===void 0?!0:l,p=n.allowedAutoPlacements,g=e.options.placement,x=q(g),y=x===g,$=f||(y||!h?[be(g)]:Kt(g)),d=[g].concat($).reduce(function(z,V){return z.concat(q(V)===me?Jt(e,{placement:V,boundary:u,rootBoundary:m,padding:c,flipVariations:h,allowedAutoPlacements:p}):V)},[]),b=e.rects.reference,w=e.rects.popper,O=new Map,j=!0,A=d[0],k=0;k<d.length;k++){var D=d[k],S=q(D),L=te(D)===U,re=[E,R].indexOf(S)>=0,oe=re?"width":"height",M=ne(e,{placement:D,boundary:u,rootBoundary:m,altBoundary:v,padding:c}),T=re?L?W:P:L?R:E;b[oe]>w[oe]&&(T=be(T));var pe=be(T),_=[];if(i&&_.push(M[S]<=0),s&&_.push(M[T]<=0,M[pe]<=0),_.every(function(z){return z})){A=D,j=!1;break}O.set(D,_)}if(j)for(var ue=h?3:1,xe=function(z){var V=d.find(function(de){var ae=O.get(de);if(ae)return ae.slice(0,z).every(function(Y){return Y})});if(V)return A=V,"break"},ie=ue;ie>0;ie--){var le=xe(ie);if(le==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0)}}var vt={name:"flip",enabled:!0,phase:"main",fn:Qt,requiresIfExists:["offset"],data:{_skip:!1}};function gt(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(t){return[E,W,R,P].some(function(e){return t[e]>=0})}function Zt(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,i=e.modifiersData.preventOverflow,a=ne(e,{elementContext:"reference"}),s=ne(e,{altBoundary:!0}),f=gt(a,r),c=gt(s,o,i),u=yt(f),m=yt(c);e.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:m},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":m})}var bt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Zt};function en(t,e,n){var r=q(t),o=[P,E].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,W].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function tn(t){var e=t.state,n=t.options,r=t.name,o=n.offset,i=o===void 0?[0,0]:o,a=Ee.reduce(function(u,m){return u[m]=en(m,e.rects,i),u},{}),s=a[e.placement],f=s.x,c=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=f,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a}var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:tn};function nn(t){var e=t.state,n=t.name;e.modifiersData[n]=mt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var He={name:"popperOffsets",enabled:!0,phase:"read",fn:nn,data:{}};function rn(t){return t==="x"?"y":"x"}function on(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,f=n.boundary,c=n.rootBoundary,u=n.altBoundary,m=n.padding,v=n.tether,l=v===void 0?!0:v,h=n.tetherOffset,p=h===void 0?0:h,g=ne(e,{boundary:f,rootBoundary:c,padding:m,altBoundary:u}),x=q(e.placement),y=te(e.placement),$=!y,d=Le(x),b=rn(d),w=e.modifiersData.popperOffsets,O=e.rects.reference,j=e.rects.popper,A=typeof p=="function"?p(Object.assign({},e.rects,{placement:e.placement})):p,k=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),D=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,S={x:0,y:0};if(w){if(i){var L,re=d==="y"?E:P,oe=d==="y"?R:W,M=d==="y"?"height":"width",T=w[d],pe=T+g[re],_=T-g[oe],ue=l?-j[M]/2:0,xe=y===U?O[M]:j[M],ie=y===U?-j[M]:-O[M],le=e.elements.arrow,z=l&&le?ke(le):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:st(),de=V[re],ae=V[oe],Y=fe(0,O[M],z[M]),jt=$?O[M]/2-ue-Y-de-k.mainAxis:xe-Y-de-k.mainAxis,Dt=$?-O[M]/2+ue+Y+ae+k.mainAxis:ie+Y+ae+k.mainAxis,Oe=e.elements.arrow&&se(e.elements.arrow),Et=Oe?d==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,Ce=(L=D==null?void 0:D[d])!=null?L:0,Pt=T+jt-Ce-Et,At=T+Dt-Ce,qe=fe(l?ve(pe,Pt):pe,T,l?X(_,At):_);w[d]=qe,S[d]=qe-T}if(s){var Ve,kt=d==="x"?E:P,Lt=d==="x"?R:W,F=w[b],he=b==="y"?"height":"width",Ne=F+g[kt],Ie=F-g[Lt],$e=[E,P].indexOf(x)!==-1,_e=(Ve=D==null?void 0:D[b])!=null?Ve:0,ze=$e?Ne:F-O[he]-j[he]-_e+k.altAxis,Fe=$e?F+O[he]+j[he]-_e-k.altAxis:Ie,Ue=l&&$e?St(ze,F,Fe):fe(l?ze:Ne,F,l?Fe:Ie);w[b]=Ue,S[b]=Ue-F}e.modifiersData[r]=S}}var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:on,requiresIfExists:["offset"]};function an(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function sn(t){return t===H(t)||!B(t)?We(t):an(t)}function fn(t){var e=t.getBoundingClientRect(),n=Z(e.width)/t.offsetWidth||1,r=Z(e.height)/t.offsetHeight||1;return n!==1||r!==1}function cn(t,e,n){n===void 0&&(n=!1);var r=B(e),o=B(e)&&fn(e),i=I(e),a=ee(t,o),s={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(r||!r&&!n)&&((C(e)!=="body"||Se(i))&&(s=sn(e)),B(e)?(f=ee(e,!0),f.x+=e.clientLeft,f.y+=e.clientTop):i&&(f.x=Be(i))),{x:a.left+s.scrollLeft-f.x,y:a.top+s.scrollTop-f.y,width:a.width,height:a.height}}function pn(t){var e=new Map,n=new Set,r=[];t.forEach(function(i){e.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var f=e.get(s);f&&o(f)}}),r.push(i)}return t.forEach(function(i){n.has(i.name)||o(i)}),r}function un(t){var e=pn(t);return ot.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function ln(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function dn(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function $t(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return!e.some(function(r){return!(r&&typeof r.getBoundingClientRect=="function")})}function we(t){t===void 0&&(t={});var e=t,n=e.defaultModifiers,r=n===void 0?[]:n,o=e.defaultOptions,i=o===void 0?Ot:o;return function(a,s,f){f===void 0&&(f=i);var c={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ot,i),modifiersData:{},elements:{reference:a,popper:s},attributes:{},styles:{}},u=[],m=!1,v={state:c,setOptions:function(p){var g=typeof p=="function"?p(c.options):p;h(),c.options=Object.assign({},i,c.options,g),c.scrollParents={reference:Q(a)?ce(a):a.contextElement?ce(a.contextElement):[],popper:ce(s)};var x=un(dn([].concat(r,c.options.modifiers)));return c.orderedModifiers=x.filter(function(y){return y.enabled}),l(),v.update()},forceUpdate:function(){if(!m){var p=c.elements,g=p.reference,x=p.popper;if($t(g,x)){c.rects={reference:cn(g,se(x),c.options.strategy==="fixed"),popper:ke(x)},c.reset=!1,c.placement=c.options.placement,c.orderedModifiers.forEach(function(j){return c.modifiersData[j.name]=Object.assign({},j.data)});for(var y=0;y<c.orderedModifiers.length;y++){if(c.reset===!0){c.reset=!1,y=-1;continue}var $=c.orderedModifiers[y],d=$.fn,b=$.options,w=b===void 0?{}:b,O=$.name;typeof d=="function"&&(c=d({state:c,options:w,name:O,instance:v})||c)}}}},update:ln(function(){return new Promise(function(p){v.forceUpdate(),p(c)})}),destroy:function(){h(),m=!0}};if(!$t(a,s))return v;v.setOptions(f).then(function(p){!m&&f.onFirstUpdate&&f.onFirstUpdate(p)});function l(){c.orderedModifiers.forEach(function(p){var g=p.name,x=p.options,y=x===void 0?{}:x,$=p.effect;if(typeof $=="function"){var d=$({state:c,name:g,instance:v,options:y}),b=function(){};u.push(d||b)}})}function h(){u.forEach(function(p){return p()}),u=[]}return v}}var hn=we(),mn=[Re,He,Me,Ae],vn=we({defaultModifiers:mn}),gn=[Re,He,Me,Ae,wt,vt,xt,pt,bt],yn=we({defaultModifiers:gn});export{et as afterMain,Ke as afterRead,rt as afterWrite,Ae as applyStyles,pt as arrow,me as auto,G as basePlacements,Qe as beforeMain,Ge as beforeRead,tt as beforeWrite,R as bottom,Xe as clippingParents,Me as computeStyles,yn as createPopper,hn as createPopperBase,vn as createPopperLite,ne as detectOverflow,J as end,Re as eventListeners,vt as flip,bt as hide,P as left,Ze as main,ot as modifierPhases,wt as offset,Ee as placements,K as popper,we as popperGenerator,He as popperOffsets,xt as preventOverflow,Je as read,Ye as reference,W as right,U as start,E as top,De as variationPlacements,je as viewport,nt as write}; diff --git a/.output/server/node_modules/@sxzz/popperjs-es/package.json b/.output/server/node_modules/@sxzz/popperjs-es/package.json new file mode 100644 index 0000000..934491c --- /dev/null +++ b/.output/server/node_modules/@sxzz/popperjs-es/package.json @@ -0,0 +1,129 @@ +{ + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "description": "Tooltip and Popover Positioning Engine", + "main": "dist/index.js", + "module": "dist/index.mjs", + "unpkg": "dist/index.iife.js", + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs" + }, + "./*": "./*" + }, + "types": "./index.d.ts", + "author": "Federico Zivolo <federico.zivolo@gmail.com>", + "license": "MIT", + "repository": "github:popperjs/popper-core", + "keywords": [ + "tooltip", + "popover", + "dropdown", + "popup", + "popper", + "positioning engine" + ], + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + }, + "files": [ + "index.d.ts", + "/dist", + "/lib" + ], + "sideEffects": false, + "publishConfig": { + "access": "public" + }, + "prettier": { + "semi": true, + "trailingComma": "es5", + "singleQuote": true, + "proseWrap": "always" + }, + "babel": { + "extends": "./.config/babel.config" + }, + "jest": { + "preset": "./.config/jest.config" + }, + "eslintConfig": { + "extends": "./.config/eslint.config" + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } + }, + "devDependencies": { + "@ampproject/rollup-plugin-closure-compiler": "^0.26.0", + "@atomico/rollup-plugin-sizes": "^1.1.4", + "@babel/cli": "^7.12.17", + "@babel/core": "^7.12.17", + "@babel/plugin-transform-flow-strip-types": "^7.12.13", + "@babel/plugin-transform-runtime": "^7.12.17", + "@babel/preset-env": "^7.12.17", + "@fezvrasta/tsc-silent": "^1.3.0", + "@khanacademy/flow-to-ts": "^0.3.0", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-replace": "^2.3.4", + "babel-eslint": "^10.0.3", + "babel-jest": "^26.6.3", + "babel-plugin-add-import-extension": "^1.4.4", + "babel-plugin-annotate-pure-calls": "^0.4.0", + "babel-plugin-dev-expression": "^0.2.2", + "babel-plugin-inline-replace-variables": "^1.3.1", + "babel-plugin-transform-inline-environment-variables": "^0.4.3", + "concurrently": "^5.3.0", + "dotenv": "^8.2.0", + "esbuild": "^0.14.38", + "esbuild-plugin-flow": "^0.3.2", + "eslint": "^7.20.0", + "eslint-plugin-flowtype": "^5.2.2", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-unused-imports": "^1.1.0", + "esno": "^0.14.1", + "flow-bin": "^0.139.0", + "flow-copy-source": "^2.0.9", + "get-port-cli": "^2.0.0", + "husky": "^5.0.9", + "jest": "^26.6.3", + "jest-environment-jsdom-sixteen": "^1.0.3", + "jest-environment-puppeteer": "^4.4.0", + "jest-image-snapshot": "^4.3.0", + "jest-puppeteer": "^4.4.0", + "pinst": "^2.1.4", + "poster": "^0.0.9", + "prettier": "^2.2.1", + "pretty-quick": "^3.1.0", + "puppeteer": "^10.4.0", + "replace-in-files-cli": "^1.0.0", + "rollup": "^2.70.2", + "rollup-plugin-esbuild": "^4.9.1", + "rollup-plugin-flow-entry": "^0.3.3", + "rollup-plugin-license": "^2.2.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-visualizer": "^4.2.0", + "serve": "^11.3.2", + "typescript": "^4.1.5" + }, + "scripts": { + "clean": "rimraf lib && rimraf dist && rimraf test/visual/dist", + "test": "yarn test:unit && yarn test:functional", + "test:unit": "jest --coverage src", + "test:functional": "DEV_PORT=`get-port` jest tests/functional", + "test:flow": "flow", + "test:typescript": "tsc --project tests/typescript/tsconfig.json", + "test:eslint": "eslint .", + "dev": "NODE_ENV=dev concurrently 'yarn serve' 'yarn build:dev --watch'", + "serve": "serve -l ${DEV_PORT:-5000} tests/visual", + "build": "yarn clean && esmo build/build.ts && pnpm run build:typescript", + "build:typescript": "rimraf dist/typescript; flow-to-ts \"src/**/*.js\" --write --inline-utility-types; tsc-silent --project .config/tsconfig.json --createSourceFile .config/createSourceFile.js --suppress @; rimraf \"src/**/*.ts\"" + }, + "readme": "<!-- <HEADER> // IGNORE IT -->\n<p align=\"center\">\n <img src=\"https://rawcdn.githack.com/popperjs/popper-core/8805a5d7599e14619c9e7ac19a3713285d8e5d7f/docs/src/images/popper-logo-outlined.svg\" alt=\"Popper\" height=\"300px\"/>\n</p>\n\n<div align=\"center\">\n <h1>Tooltip & Popover Positioning Engine</h1>\n</div>\n\n<p align=\"center\">\n <a href=\"https://www.npmjs.com/package/@popperjs/core\">\n <img src=\"https://img.shields.io/npm/v/@popperjs/core?style=for-the-badge\" alt=\"npm version\" />\n </a>\n <a href=\"https://www.npmjs.com/package/@popperjs/core\">\n <img src=\"https://img.shields.io/endpoint?style=for-the-badge&url=https://runkit.io/fezvrasta/combined-npm-downloads/1.0.0?packages=popper.js,@popperjs/core\" alt=\"npm downloads per month (popper.js + @popperjs/core)\" />\n </a>\n <a href=\"https://rollingversions.com/popperjs/popper-core\">\n <img src=\"https://img.shields.io/badge/Rolling%20Versions-Enabled-brightgreen?style=for-the-badge\" alt=\"Rolling Versions\" />\n </a>\n</p>\n\n<br />\n<!-- </HEADER> // NOW BEGINS THE README -->\n\n**Positioning tooltips and popovers is difficult. Popper is here to help!**\n\nGiven an element, such as a button, and a tooltip element describing it, Popper\nwill automatically put the tooltip in the right place near the button.\n\nIt will position _any_ UI element that \"pops out\" from the flow of your document\nand floats near a target element. The most common example is a tooltip, but it\nalso includes popovers, drop-downs, and more. All of these can be generically\ndescribed as a \"popper\" element.\n\n## Demo\n\n[](https://popper.js.org)\n\n## Docs\n\n- [v2.x (latest)](https://popper.js.org/docs/v2/)\n- [v1.x](https://popper.js.org/docs/v1/)\n\nWe've created a\n[Migration Guide](https://popper.js.org/docs/v2/migration-guide/) to help you\nmigrate from Popper 1 to Popper 2.\n\nTo contribute to the Popper website and documentation, please visit the\n[dedicated repository](https://github.com/popperjs/website).\n\n## Why not use pure CSS?\n\n- **Clipping and overflow issues**: Pure CSS poppers will not be prevented from\n overflowing clipping boundaries, such as the viewport. It will get partially\n cut off or overflows if it's near the edge since there is no dynamic\n positioning logic. When using Popper, your popper will always be positioned in\n the right place without needing manual adjustments.\n- **No flipping**: CSS poppers will not flip to a different placement to fit\n better in view if necessary. While you can manually adjust for the main axis\n overflow, this feature cannot be achieved via CSS alone. Popper automatically\n flips the tooltip to make it fit in view as best as possible for the user.\n- **No virtual positioning**: CSS poppers cannot follow the mouse cursor or be\n used as a context menu. Popper allows you to position your tooltip relative to\n any coordinates you desire.\n- **Slower development cycle**: When pure CSS is used to position popper\n elements, the lack of dynamic positioning means they must be carefully placed\n to consider overflow on all screen sizes. In reusable component libraries,\n this means a developer can't just add the component anywhere on the page,\n because these issues need to be considered and adjusted for every time. With\n Popper, you can place your elements anywhere and they will be positioned\n correctly, without needing to consider different screen sizes, layouts, etc.\n This massively speeds up development time because this work is automatically\n offloaded to Popper.\n- **Lack of extensibility**: CSS poppers cannot be easily extended to fit any\n arbitrary use case you may need to adjust for. Popper is built with\n extensibility in mind.\n\n## Why Popper?\n\nWith the CSS drawbacks out of the way, we now move on to Popper in the\nJavaScript space itself.\n\nNaive JavaScript tooltip implementations usually have the following problems:\n\n- **Scrolling containers**: They don't ensure the tooltip stays with the\n reference element while scrolling when inside any number of scrolling\n containers.\n- **DOM context**: They often require the tooltip move outside of its original\n DOM context because they don't handle `offsetParent` contexts.\n- **Compatibility**: Popper handles an incredible number of edge cases regarding\n different browsers and environments (mobile viewports, RTL, scrollbars enabled\n or disabled, etc.). Popper is a popular and well-maintained library, so you\n can be confident positioning will work for your users on any device.\n- **Configurability**: They often lack advanced configurability to suit any\n possible use case.\n- **Size**: They are usually relatively large in size, or require an ancient\n jQuery dependency.\n- **Performance**: They often have runtime performance issues and update the\n tooltip position too slowly.\n\n**Popper solves all of these key problems in an elegant, performant manner.** It\nis a lightweight ~3 kB library that aims to provide a reliable and extensible\npositioning engine you can use to ensure all your popper elements are positioned\nin the right place.\n\nWhen you start writing your own popper implementation, you'll quickly run into\nall of the problems mentioned above. These widgets are incredibly common in our\nUIs; we've done the hard work figuring this out so you don't need to spend hours\nfixing and handling numerous edge cases that we already ran into while building\nthe library!\n\nPopper is used in popular libraries like Bootstrap, Foundation, Material UI, and\nmore. It's likely you've already used popper elements on the web positioned by\nPopper at some point in the past few years.\n\nSince we write UIs using powerful abstraction libraries such as React or Angular\nnowadays, you'll also be glad to know Popper can fully integrate with them and\nbe a good citizen together with your other components. Check out `react-popper`\nfor the official Popper wrapper for React.\n\n## Installation\n\n### 1. Package Manager\n\n```bash\n# With npm\nnpm i @popperjs/core\n\n# With Yarn\nyarn add @popperjs/core\n```\n\n### 2. CDN\n\n```html\n<!-- Development version -->\n<script src=\"https://unpkg.com/@popperjs/core@2/dist/umd/popper.js\"></script>\n\n<!-- Production version -->\n<script src=\"https://unpkg.com/@popperjs/core@2\"></script>\n```\n\n### 3. Direct Download?\n\nManaging dependencies by \"directly downloading\" them and placing them into your\nsource code is not recommended for a variety of reasons, including missing out\non feat/fix updates easily. Please use a versioning management system like a CDN\nor npm/Yarn.\n\n## Usage\n\nThe most straightforward way to get started is to import Popper from the `unpkg`\nCDN, which includes all of its features. You can call the `Popper.createPopper`\nconstructor to create new popper instances.\n\nHere is a complete example:\n\n```html\n<!DOCTYPE html>\n<title>Popper example</title>\n\n<style>\n #tooltip {\n background-color: #333;\n color: white;\n padding: 5px 10px;\n border-radius: 4px;\n font-size: 13px;\n }\n</style>\n\n<button id=\"button\" aria-describedby=\"tooltip\">I'm a button</button>\n<div id=\"tooltip\" role=\"tooltip\">I'm a tooltip</div>\n\n<script src=\"https://unpkg.com/@popperjs/core@^2.0.0\"></script>\n<script>\n const button = document.querySelector('#button');\n const tooltip = document.querySelector('#tooltip');\n\n // Pass the button, the tooltip, and some options, and Popper will do the\n // magic positioning for you:\n Popper.createPopper(button, tooltip, {\n placement: 'right',\n });\n</script>\n```\n\nVisit the [tutorial](https://popper.js.org/docs/v2/tutorial/) for an example of\nhow to build your own tooltip from scratch using Popper.\n\n### Module bundlers\n\nYou can import the `createPopper` constructor from the fully-featured file:\n\n```js\nimport { createPopper } from '@popperjs/core';\n\nconst button = document.querySelector('#button');\nconst tooltip = document.querySelector('#tooltip');\n\n// Pass the button, the tooltip, and some options, and Popper will do the\n// magic positioning for you:\ncreatePopper(button, tooltip, {\n placement: 'right',\n});\n```\n\nAll the modifiers listed in the docs menu will be enabled and \"just work\", so\nyou don't need to think about setting Popper up. The size of Popper including\nall of its features is about 5 kB minzipped, but it may grow a bit in the\nfuture.\n\n#### Popper Lite (tree-shaking)\n\nIf bundle size is important, you'll want to take advantage of tree-shaking. The\nlibrary is built in a modular way to allow to import only the parts you really\nneed.\n\n```js\nimport { createPopperLite as createPopper } from '@popperjs/core';\n```\n\nThe Lite version includes the most necessary modifiers that will compute the\noffsets of the popper, compute and add the positioning styles, and add event\nlisteners. This is close in bundle size to pure CSS tooltip libraries, and\nbehaves somewhat similarly.\n\nHowever, this does not include the features that makes Popper truly useful.\n\nThe two most useful modifiers not included in Lite are `preventOverflow` and\n`flip`:\n\n```js\nimport {\n createPopperLite as createPopper,\n preventOverflow,\n flip,\n} from '@popperjs/core';\n\nconst button = document.querySelector('#button');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(button, tooltip, {\n modifiers: [preventOverflow, flip],\n});\n```\n\nAs you make more poppers, you may be finding yourself needing other modifiers\nprovided by the library.\n\nSee [tree-shaking](https://popper.js.org/docs/v2/performance/#tree-shaking) for more\ninformation.\n\n## Distribution targets\n\nPopper is distributed in 3 different versions, in 3 different file formats.\n\nThe 3 file formats are:\n\n- `esm` (works with `import` syntax — **recommended**)\n- `umd` (works with `<script>` tags or RequireJS)\n- `cjs` (works with `require()` syntax)\n\nThere are two different `esm` builds, one for bundler consumers (e.g. webpack,\nRollup, etc..), which is located under `/lib`, and one for browsers with native\nsupport for ES Modules, under `/dist/esm`. The only difference within the two,\nis that the browser-compatible version doesn't make use of\n`process.env.NODE_ENV` to run development checks.\n\nThe 3 versions are:\n\n- `popper`: includes all the modifiers (features) in one file (**default**);\n- `popper-lite`: includes only the minimum amount of modifiers to provide the\n basic functionality;\n- `popper-base`: doesn't include any modifier, you must import them separately;\n\nBelow you can find the size of each version, minified and compressed with the\n[Brotli compression algorithm](https://medium.com/groww-engineering/enable-brotli-compression-in-webpack-with-fallback-to-gzip-397a57cf9fc6):\n\n<!-- Don't change the labels to use hyphens, it breaks, even when encoded -->\n\n\n\n\n\n## Hacking the library\n\nIf you want to play with the library, implement new features, fix a bug you\nfound, or simply experiment with it, this section is for you!\n\nFirst of all, make sure to have\n[Yarn installed](https://yarnpkg.com/lang/en/docs/install).\n\nInstall the development dependencies:\n\n```bash\nyarn install\n```\n\nAnd run the development environment:\n\n```bash\nyarn dev\n```\n\nThen, simply open one the development server web page:\n\n```bash\n# macOS and Linux\nopen localhost:5000\n\n# Windows\nstart localhost:5000\n```\n\nFrom there, you can open any of the examples (`.html` files) to fiddle with\nthem.\n\nNow any change you will made to the source code, will be automatically compiled,\nyou just need to refresh the page.\n\nIf the page is not working properly, try to go in _\"Developer Tools >\nApplication > Clear storage\"_ and click on \"_Clear site data_\". \nTo run the examples you need a browser with\n[JavaScript modules via script tag support](https://caniuse.com/#feat=es6-module).\n\n## Test Suite\n\nPopper is currently tested with unit tests, and functional tests. Both of them\nare run by Jest.\n\n### Unit Tests\n\nThe unit tests use JSDOM to provide a primitive document object API, they are\nused to ensure the utility functions behave as expected in isolation.\n\n### Functional Tests\n\nThe functional tests run with Puppeteer, to take advantage of a complete browser\nenvironment. They are currently running on Chromium, and Firefox.\n\nYou can run them with `yarn test:functional`. Set the `PUPPETEER_BROWSER`\nenvironment variable to `firefox` to run them on the Mozilla browser.\n\nThe assertions are written in form of image snapshots, so that it's easy to\nassert for the correct Popper behavior without having to write a lot of offsets\ncomparisons manually.\n\nYou can mark a `*.test.js` file to run in the Puppeteer environment by\nprepending a `@jest-environment puppeteer` JSDoc comment to the interested file.\n\nHere's an example of a basic functional test:\n\n```js\n/**\n * @jest-environment puppeteer\n * @flow\n */\nimport { screenshot } from '../utils/puppeteer.js';\n\nit('should position the popper on the right', async () => {\n const page = await browser.newPage();\n await page.goto(`${TEST_URL}/basic.html`);\n\n expect(await screenshot(page)).toMatchImageSnapshot();\n});\n```\n\nYou can find the complete\n[`jest-puppeteer` documentation here](https://github.com/smooth-code/jest-puppeteer#api),\nand the\n[`jest-image-snapshot` documentation here](https://github.com/americanexpress/jest-image-snapshot#%EF%B8%8F-api).\n\n## License\n\nMIT\n", + "__npminstall_done": true, + "_from": "@sxzz/popperjs-es@2.11.7", + "_resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@unhead/dom/dist/index.mjs b/.output/server/node_modules/@unhead/dom/dist/index.mjs new file mode 100644 index 0000000..258b0ea --- /dev/null +++ b/.output/server/node_modules/@unhead/dom/dist/index.mjs @@ -0,0 +1,197 @@ +import { HasElementTags, hashTag, normaliseProps, tagDedupeKey, defineHeadPlugin } from '@unhead/shared'; + +async function renderDOMHead(head, options = {}) { + const dom = options.document || head.resolvedOptions.document; + if (!dom || !head.dirty) + return; + const beforeRenderCtx = { shouldRender: true, tags: [] }; + await head.hooks.callHook("dom:beforeRender", beforeRenderCtx); + if (!beforeRenderCtx.shouldRender) + return; + if (head._domUpdatePromise) { + return head._domUpdatePromise; + } + head._domUpdatePromise = new Promise(async (resolve) => { + const tags = (await head.resolveTags()).map((tag) => ({ + tag, + id: HasElementTags.has(tag.tag) ? hashTag(tag) : tag.tag, + shouldRender: true + })); + let state = head._dom; + if (!state) { + state = { + elMap: { htmlAttrs: dom.documentElement, bodyAttrs: dom.body } + }; + const takenDedupeKeys = /* @__PURE__ */ new Set(); + for (const key of ["body", "head"]) { + const children = dom[key]?.children; + for (const c of children) { + const tag = c.tagName.toLowerCase(); + if (!HasElementTags.has(tag)) { + continue; + } + const t = { + tag, + props: await normaliseProps( + c.getAttributeNames().reduce((props, name) => ({ ...props, [name]: c.getAttribute(name) }), {}) + ), + innerHTML: c.innerHTML + }; + const dedupeKey = tagDedupeKey(t); + let d = dedupeKey; + let i = 1; + while (d && takenDedupeKeys.has(d)) + d = `${dedupeKey}:${i++}`; + if (d) { + t._d = d; + takenDedupeKeys.add(d); + } + state.elMap[c.getAttribute("data-hid") || hashTag(t)] = c; + } + } + } + state.pendingSideEffects = { ...state.sideEffects }; + state.sideEffects = {}; + function track(id, scope, fn) { + const k = `${id}:${scope}`; + state.sideEffects[k] = fn; + delete state.pendingSideEffects[k]; + } + function trackCtx({ id, $el, tag }) { + const isAttrTag = tag.tag.endsWith("Attrs"); + state.elMap[id] = $el; + if (!isAttrTag) { + if (tag.textContent && tag.textContent !== $el.textContent) { + $el.textContent = tag.textContent; + } + if (tag.innerHTML && tag.innerHTML !== $el.innerHTML) { + $el.innerHTML = tag.innerHTML; + } + track(id, "el", () => { + state.elMap[id]?.remove(); + delete state.elMap[id]; + }); + } + if (tag._eventHandlers) { + for (const k in tag._eventHandlers) { + if (!Object.prototype.hasOwnProperty.call(tag._eventHandlers, k)) { + continue; + } + if ($el.getAttribute(`data-${k}`) !== "") { + (tag.tag === "bodyAttrs" ? dom.defaultView : $el).addEventListener( + // onload -> load + k.substring(2), + tag._eventHandlers[k].bind($el) + ); + $el.setAttribute(`data-${k}`, ""); + } + } + } + for (const k in tag.props) { + if (!Object.prototype.hasOwnProperty.call(tag.props, k)) { + continue; + } + const value = tag.props[k]; + const ck = `attr:${k}`; + if (k === "class") { + if (!value) { + continue; + } + for (const c of value.split(" ")) { + isAttrTag && track(id, `${ck}:${c}`, () => $el.classList.remove(c)); + !$el.classList.contains(c) && $el.classList.add(c); + } + } else if (k === "style") { + if (!value) { + continue; + } + for (const c of value.split(";")) { + const propIndex = c.indexOf(":"); + const k2 = c.substring(0, propIndex).trim(); + const v = c.substring(propIndex + 1).trim(); + track(id, `${ck}:${k2}`, () => { + $el.style.removeProperty(k2); + }); + $el.style.setProperty(k2, v); + } + } else { + $el.getAttribute(k) !== value && $el.setAttribute(k, value === true ? "" : String(value)); + isAttrTag && track(id, ck, () => $el.removeAttribute(k)); + } + } + } + const pending = []; + const frag = { + bodyClose: void 0, + bodyOpen: void 0, + head: void 0 + }; + for (const ctx of tags) { + const { tag, shouldRender, id } = ctx; + if (!shouldRender) + continue; + if (tag.tag === "title") { + dom.title = tag.textContent; + continue; + } + ctx.$el = ctx.$el || state.elMap[id]; + if (ctx.$el) { + trackCtx(ctx); + } else if (HasElementTags.has(tag.tag)) { + pending.push(ctx); + } + } + for (const ctx of pending) { + const pos = ctx.tag.tagPosition || "head"; + ctx.$el = dom.createElement(ctx.tag.tag); + trackCtx(ctx); + frag[pos] = frag[pos] || dom.createDocumentFragment(); + frag[pos].appendChild(ctx.$el); + } + for (const ctx of tags) + await head.hooks.callHook("dom:renderTag", ctx, dom, track); + frag.head && dom.head.appendChild(frag.head); + frag.bodyOpen && dom.body.insertBefore(frag.bodyOpen, dom.body.firstChild); + frag.bodyClose && dom.body.appendChild(frag.bodyClose); + for (const k in state.pendingSideEffects) { + state.pendingSideEffects[k](); + } + head._dom = state; + await head.hooks.callHook("dom:rendered", { renders: tags }); + resolve(); + }).finally(() => { + head._domUpdatePromise = void 0; + head.dirty = false; + }); + return head._domUpdatePromise; +} + +function debouncedRenderDOMHead(head, options = {}) { + const fn = options.delayFn || ((fn2) => setTimeout(fn2, 10)); + return head._domDebouncedUpdatePromise = head._domDebouncedUpdatePromise || new Promise((resolve) => fn(() => { + return renderDOMHead(head, options).then(() => { + delete head._domDebouncedUpdatePromise; + resolve(); + }); + })); +} + +// @__NO_SIDE_EFFECTS__ +function DomPlugin(options) { + return defineHeadPlugin((head) => { + const initialPayload = head.resolvedOptions.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML || false; + if (initialPayload) { + head.push(JSON.parse(initialPayload)); + } + return { + mode: "client", + hooks: { + "entries:updated": (head2) => { + debouncedRenderDOMHead(head2, options); + } + } + }; + }); +} + +export { DomPlugin, debouncedRenderDOMHead, renderDOMHead }; diff --git a/.output/server/node_modules/@unhead/dom/package.json b/.output/server/node_modules/@unhead/dom/package.json new file mode 100644 index 0000000..c3b26ac --- /dev/null +++ b/.output/server/node_modules/@unhead/dom/package.json @@ -0,0 +1,43 @@ +{ + "name": "@unhead/dom", + "type": "module", + "version": "1.11.19", + "author": "Harlan Wilton <harlan@harlanzw.com>", + "license": "MIT", + "funding": "https://github.com/sponsors/harlan-zw", + "homepage": "https://unhead.unjs.io", + "repository": { + "type": "git", + "url": "git+https://github.com/unjs/unhead.git", + "directory": "packages/dom" + }, + "bugs": { + "url": "https://github.com/unjs/unhead/issues" + }, + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "dependencies": { + "@unhead/schema": "1.11.19", + "@unhead/shared": "1.11.19" + }, + "scripts": { + "build": "unbuild .", + "stub": "unbuild . --stub", + "export:sizes": "npx export-size . -r" + }, + "__npminstall_done": true, + "_from": "@unhead/dom@1.11.19", + "_resolved": "https://registry.npmmirror.com/@unhead/dom/-/dom-1.11.19.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@unhead/shared/dist/index.mjs b/.output/server/node_modules/@unhead/shared/dist/index.mjs new file mode 100644 index 0000000..5a7406b --- /dev/null +++ b/.output/server/node_modules/@unhead/shared/dist/index.mjs @@ -0,0 +1,641 @@ +import { unpackToString, unpackToArray, packArray } from 'packrup'; + +function asArray(value) { + return Array.isArray(value) ? value : [value]; +} + +const SelfClosingTags = /* @__PURE__ */ new Set(["meta", "link", "base"]); +const TagsWithInnerContent = /* @__PURE__ */ new Set(["title", "titleTemplate", "script", "style", "noscript"]); +const HasElementTags = /* @__PURE__ */ new Set([ + "base", + "meta", + "link", + "style", + "script", + "noscript" +]); +const ValidHeadTags = /* @__PURE__ */ new Set([ + "title", + "titleTemplate", + "templateParams", + "base", + "htmlAttrs", + "bodyAttrs", + "meta", + "link", + "style", + "script", + "noscript" +]); +const UniqueTags = /* @__PURE__ */ new Set(["base", "title", "titleTemplate", "bodyAttrs", "htmlAttrs", "templateParams"]); +const TagConfigKeys = /* @__PURE__ */ new Set(["tagPosition", "tagPriority", "tagDuplicateStrategy", "children", "innerHTML", "textContent", "processTemplateParams"]); +const IsBrowser = typeof window !== "undefined"; +const composableNames = [ + "getActiveHead", + "useHead", + "useSeoMeta", + "useHeadSafe", + "useServerHead", + "useServerSeoMeta", + "useServerHeadSafe" +]; + +function defineHeadPlugin(plugin) { + return plugin; +} + +function hashCode(s) { + let h = 9; + for (let i = 0; i < s.length; ) + h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9); + return ((h ^ h >>> 9) + 65536).toString(16).substring(1, 8).toLowerCase(); +} +function hashTag(tag) { + if (tag._h) { + return tag._h; + } + if (tag._d) { + return hashCode(tag._d); + } + let content = `${tag.tag}:${tag.textContent || tag.innerHTML || ""}:`; + for (const key in tag.props) { + content += `${key}:${String(tag.props[key])},`; + } + return hashCode(content); +} + +const p = (p2) => ({ keyValue: p2, metaKey: "property" }); +const k = (p2) => ({ keyValue: p2 }); +const MetaPackingSchema = { + appleItunesApp: { + unpack: { + entrySeparator: ", ", + resolve({ key, value }) { + return `${fixKeyCase(key)}=${value}`; + } + } + }, + articleExpirationTime: p("article:expiration_time"), + articleModifiedTime: p("article:modified_time"), + articlePublishedTime: p("article:published_time"), + bookReleaseDate: p("book:release_date"), + charset: { + metaKey: "charset" + }, + contentSecurityPolicy: { + unpack: { + entrySeparator: "; ", + resolve({ key, value }) { + return `${fixKeyCase(key)} ${value}`; + } + }, + metaKey: "http-equiv" + }, + contentType: { + metaKey: "http-equiv" + }, + defaultStyle: { + metaKey: "http-equiv" + }, + fbAppId: p("fb:app_id"), + msapplicationConfig: k("msapplication-Config"), + msapplicationTileColor: k("msapplication-TileColor"), + msapplicationTileImage: k("msapplication-TileImage"), + ogAudioSecureUrl: p("og:audio:secure_url"), + ogAudioUrl: p("og:audio"), + ogImageSecureUrl: p("og:image:secure_url"), + ogImageUrl: p("og:image"), + ogSiteName: p("og:site_name"), + ogVideoSecureUrl: p("og:video:secure_url"), + ogVideoUrl: p("og:video"), + profileFirstName: p("profile:first_name"), + profileLastName: p("profile:last_name"), + profileUsername: p("profile:username"), + refresh: { + metaKey: "http-equiv", + unpack: { + entrySeparator: ";", + resolve({ key, value }) { + if (key === "seconds") + return `${value}`; + } + } + }, + robots: { + unpack: { + entrySeparator: ", ", + resolve({ key, value }) { + if (typeof value === "boolean") + return `${fixKeyCase(key)}`; + else + return `${fixKeyCase(key)}:${value}`; + } + } + }, + xUaCompatible: { + metaKey: "http-equiv" + } +}; +const openGraphNamespaces = /* @__PURE__ */ new Set([ + "og", + "book", + "article", + "profile" +]); +function resolveMetaKeyType(key) { + const fKey = fixKeyCase(key); + const prefixIndex = fKey.indexOf(":"); + if (openGraphNamespaces.has(fKey.substring(0, prefixIndex))) + return "property"; + return MetaPackingSchema[key]?.metaKey || "name"; +} +function resolveMetaKeyValue(key) { + return MetaPackingSchema[key]?.keyValue || fixKeyCase(key); +} +function fixKeyCase(key) { + const updated = key.replace(/([A-Z])/g, "-$1").toLowerCase(); + const prefixIndex = updated.indexOf("-"); + const fKey = updated.substring(0, prefixIndex); + if (fKey === "twitter" || openGraphNamespaces.has(fKey)) + return key.replace(/([A-Z])/g, ":$1").toLowerCase(); + return updated; +} +function changeKeyCasingDeep(input) { + if (Array.isArray(input)) { + return input.map((entry) => changeKeyCasingDeep(entry)); + } + if (typeof input !== "object" || Array.isArray(input)) + return input; + const output = {}; + for (const key in input) { + if (!Object.prototype.hasOwnProperty.call(input, key)) { + continue; + } + output[fixKeyCase(key)] = changeKeyCasingDeep(input[key]); + } + return output; +} +function resolvePackedMetaObjectValue(value, key) { + const definition = MetaPackingSchema[key]; + if (key === "refresh") + return `${value.seconds};url=${value.url}`; + return unpackToString( + changeKeyCasingDeep(value), + { + keyValueSeparator: "=", + entrySeparator: ", ", + resolve({ value: value2, key: key2 }) { + if (value2 === null) + return ""; + if (typeof value2 === "boolean") + return `${key2}`; + }, + ...definition?.unpack + } + ); +} +const ObjectArrayEntries = /* @__PURE__ */ new Set(["og:image", "og:video", "og:audio", "twitter:image"]); +function sanitize(input) { + const out = {}; + for (const k2 in input) { + if (!Object.prototype.hasOwnProperty.call(input, k2)) { + continue; + } + const v = input[k2]; + if (String(v) !== "false" && k2) + out[k2] = v; + } + return out; +} +function handleObjectEntry(key, v) { + const value = sanitize(v); + const fKey = fixKeyCase(key); + const attr = resolveMetaKeyType(fKey); + if (ObjectArrayEntries.has(fKey)) { + const input = {}; + for (const k2 in value) { + if (!Object.prototype.hasOwnProperty.call(value, k2)) { + continue; + } + input[`${key}${k2 === "url" ? "" : `${k2[0].toUpperCase()}${k2.slice(1)}`}`] = value[k2]; + } + return unpackMeta(input).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0)); + } + return [{ [attr]: fKey, ...value }]; +} +function unpackMeta(input) { + const extras = []; + const primitives = {}; + for (const key in input) { + if (!Object.prototype.hasOwnProperty.call(input, key)) { + continue; + } + const value = input[key]; + if (!Array.isArray(value)) { + if (typeof value === "object" && value) { + if (ObjectArrayEntries.has(fixKeyCase(key))) { + extras.push(...handleObjectEntry(key, value)); + continue; + } + primitives[key] = sanitize(value); + } else { + primitives[key] = value; + } + continue; + } + for (const v of value) { + extras.push(...typeof v === "string" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v)); + } + } + const meta = unpackToArray(primitives, { + key({ key }) { + return resolveMetaKeyType(key); + }, + value({ key }) { + return key === "charset" ? "charset" : "content"; + }, + resolveKeyData({ key }) { + return resolveMetaKeyValue(key); + }, + resolveValueData({ value, key }) { + if (value === null) + return "_null"; + if (typeof value === "object") + return resolvePackedMetaObjectValue(value, key); + return typeof value === "number" ? value.toString() : value; + } + }); + return [...extras, ...meta].map((m) => { + if (m.content === "_null") + m.content = null; + return m; + }); +} +function packMeta(inputs) { + const mappedPackingSchema = Object.entries(MetaPackingSchema).map(([key, value]) => [key, value.keyValue]); + return packArray(inputs, { + key: ["name", "property", "httpEquiv", "http-equiv", "charset"], + value: ["content", "charset"], + resolveKey(k2) { + let key = mappedPackingSchema.filter((sk) => sk[1] === k2)?.[0]?.[0] || k2; + const replacer = (_, letter) => letter?.toUpperCase(); + key = key.replace(/:([a-z])/g, replacer).replace(/-([a-z])/g, replacer); + return key; + } + }); +} + +function thenable(val, thenFn) { + if (val instanceof Promise) { + return val.then(thenFn); + } + return thenFn(val); +} + +function normaliseTag(tagName, input, e, normalizedProps) { + const props = normalizedProps || normaliseProps( + // explicitly check for an object + // @ts-expect-error untyped + typeof input === "object" && typeof input !== "function" && !(input instanceof Promise) ? { ...input } : { [tagName === "script" || tagName === "noscript" || tagName === "style" ? "innerHTML" : "textContent"]: input }, + tagName === "templateParams" || tagName === "titleTemplate" + ); + if (props instanceof Promise) { + return props.then((val) => normaliseTag(tagName, input, e, val)); + } + const tag = { + tag: tagName, + props + }; + for (const k of TagConfigKeys) { + const val = tag.props[k] !== void 0 ? tag.props[k] : e[k]; + if (val !== void 0) { + if (!(k === "innerHTML" || k === "textContent" || k === "children") || TagsWithInnerContent.has(tag.tag)) { + tag[k === "children" ? "innerHTML" : k] = val; + } + delete tag.props[k]; + } + } + if (tag.props.body) { + tag.tagPosition = "bodyClose"; + delete tag.props.body; + } + if (tag.tag === "script") { + if (typeof tag.innerHTML === "object") { + tag.innerHTML = JSON.stringify(tag.innerHTML); + tag.props.type = tag.props.type || "application/json"; + } + } + return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag; +} +function normaliseStyleClassProps(key, v) { + const sep = key === "class" ? " " : ";"; + if (v && typeof v === "object" && !Array.isArray(v)) { + v = Object.entries(v).filter(([, v2]) => v2).map(([k, v2]) => key === "style" ? `${k}:${v2}` : k); + } + return String(Array.isArray(v) ? v.join(sep) : v)?.split(sep).filter((c) => Boolean(c.trim())).join(sep); +} +function nestedNormaliseProps(props, virtual, keys, startIndex) { + for (let i = startIndex; i < keys.length; i += 1) { + const k = keys[i]; + if (k === "class" || k === "style") { + props[k] = normaliseStyleClassProps(k, props[k]); + continue; + } + if (props[k] instanceof Promise) { + return props[k].then((val) => { + props[k] = val; + return nestedNormaliseProps(props, virtual, keys, i); + }); + } + if (!virtual && !TagConfigKeys.has(k)) { + const v = String(props[k]); + const isDataKey = k.startsWith("data-"); + if (v === "true" || v === "") { + props[k] = isDataKey ? "true" : true; + } else if (!props[k]) { + if (isDataKey && v === "false") + props[k] = "false"; + else + delete props[k]; + } + } + } +} +function normaliseProps(props, virtual = false) { + const resolvedProps = nestedNormaliseProps(props, virtual, Object.keys(props), 0); + if (resolvedProps instanceof Promise) { + return resolvedProps.then(() => props); + } + return props; +} +const TagEntityBits = 10; +function nestedNormaliseEntryTags(headTags, tagPromises, startIndex) { + for (let i = startIndex; i < tagPromises.length; i += 1) { + const tags = tagPromises[i]; + if (tags instanceof Promise) { + return tags.then((val) => { + tagPromises[i] = val; + return nestedNormaliseEntryTags(headTags, tagPromises, i); + }); + } + if (Array.isArray(tags)) { + headTags.push(...tags); + } else { + headTags.push(tags); + } + } +} +function normaliseEntryTags(e) { + const tagPromises = []; + const input = e.resolvedInput; + for (const k in input) { + if (!Object.prototype.hasOwnProperty.call(input, k)) { + continue; + } + const v = input[k]; + if (v === void 0 || !ValidHeadTags.has(k)) { + continue; + } + if (Array.isArray(v)) { + for (const props of v) { + tagPromises.push(normaliseTag(k, props, e)); + } + continue; + } + tagPromises.push(normaliseTag(k, v, e)); + } + if (tagPromises.length === 0) { + return []; + } + const headTags = []; + return thenable(nestedNormaliseEntryTags(headTags, tagPromises, 0), () => headTags.map((t, i) => { + t._e = e._i; + e.mode && (t._m = e.mode); + t._p = (e._i << TagEntityBits) + i; + return t; + })); +} + +const WhitelistAttributes = { + htmlAttrs: ["id", "class", "lang", "dir"], + bodyAttrs: ["id", "class"], + meta: ["id", "name", "property", "charset", "content"], + noscript: ["id", "textContent"], + script: ["id", "type", "textContent"], + link: ["id", "color", "crossorigin", "fetchpriority", "href", "hreflang", "imagesrcset", "imagesizes", "integrity", "media", "referrerpolicy", "rel", "sizes", "type"] +}; +function acceptDataAttrs(value) { + const filtered = {}; + Object.keys(value || {}).filter((a) => a.startsWith("data-")).forEach((a) => { + filtered[a] = value[a]; + }); + return filtered; +} +function whitelistSafeInput(input) { + const filtered = {}; + Object.keys(input).forEach((key) => { + const tagValue = input[key]; + if (!tagValue) + return; + switch (key) { + // always safe + case "title": + case "titleTemplate": + case "templateParams": + filtered[key] = tagValue; + break; + case "htmlAttrs": + case "bodyAttrs": + filtered[key] = acceptDataAttrs(tagValue); + WhitelistAttributes[key].forEach((a) => { + if (tagValue[a]) + filtered[key][a] = tagValue[a]; + }); + break; + // meta is safe, except for http-equiv + case "meta": + if (Array.isArray(tagValue)) { + filtered[key] = tagValue.map((meta) => { + const safeMeta = acceptDataAttrs(meta); + WhitelistAttributes.meta.forEach((key2) => { + if (meta[key2]) + safeMeta[key2] = meta[key2]; + }); + return safeMeta; + }).filter((meta) => Object.keys(meta).length > 0); + } + break; + // link tags we don't allow stylesheets, scripts, preloading, prerendering, prefetching, etc + case "link": + if (Array.isArray(tagValue)) { + filtered[key] = tagValue.map((meta) => { + const link = acceptDataAttrs(meta); + WhitelistAttributes.link.forEach((key2) => { + const val = meta[key2]; + if (key2 === "rel" && (val === "stylesheet" || val === "canonical" || val === "modulepreload" || val === "prerender" || val === "preload" || val === "prefetch")) + return; + if (key2 === "href") { + if (val.includes("javascript:") || val.includes("data:")) + return; + link[key2] = val; + } else if (val) { + link[key2] = val; + } + }); + return link; + }).filter((link) => Object.keys(link).length > 1 && !!link.rel); + } + break; + case "noscript": + if (Array.isArray(tagValue)) { + filtered[key] = tagValue.map((meta) => { + const noscript = acceptDataAttrs(meta); + WhitelistAttributes.noscript.forEach((key2) => { + if (meta[key2]) + noscript[key2] = meta[key2]; + }); + return noscript; + }).filter((meta) => Object.keys(meta).length > 0); + } + break; + // we only allow JSON in scripts + case "script": + if (Array.isArray(tagValue)) { + filtered[key] = tagValue.map((script) => { + const safeScript = acceptDataAttrs(script); + WhitelistAttributes.script.forEach((s) => { + if (script[s]) { + if (s === "textContent") { + try { + const jsonVal = typeof script[s] === "string" ? JSON.parse(script[s]) : script[s]; + safeScript[s] = JSON.stringify(jsonVal, null, 0); + } catch (e) { + } + } else { + safeScript[s] = script[s]; + } + } + }); + return safeScript; + }).filter((meta) => Object.keys(meta).length > 0); + } + break; + } + }); + return filtered; +} + +const NetworkEvents = /* @__PURE__ */ new Set(["onload", "onerror", "onabort", "onprogress", "onloadstart"]); +const ScriptNetworkEvents = /* @__PURE__ */ new Set(["onload", "onerror"]); + +const TAG_WEIGHTS = { + // tags + base: -10, + title: 10 +}; +const TAG_ALIASES = { + // relative scores to their default values + critical: -80, + high: -10, + low: 20 +}; +function tagWeight(tag) { + const priority = tag.tagPriority; + if (typeof priority === "number") + return priority; + let weight = 100; + if (tag.tag === "meta") { + if (tag.props["http-equiv"] === "content-security-policy") + weight = -30; + else if (tag.props.charset) + weight = -20; + else if (tag.props.name === "viewport") + weight = -15; + } else if (tag.tag === "link" && tag.props.rel === "preconnect") { + weight = 20; + } else if (tag.tag in TAG_WEIGHTS) { + weight = TAG_WEIGHTS[tag.tag]; + } + if (priority && priority in TAG_ALIASES) { + return weight + TAG_ALIASES[priority]; + } + return weight; +} +const SortModifiers = [{ prefix: "before:", offset: -1 }, { prefix: "after:", offset: 1 }]; + +const allowedMetaProperties = ["name", "property", "http-equiv"]; +function tagDedupeKey(tag) { + const { props, tag: tagName } = tag; + if (UniqueTags.has(tagName)) + return tagName; + if (tagName === "link" && props.rel === "canonical") + return "canonical"; + if (props.charset) + return "charset"; + if (props.id) { + return `${tagName}:id:${props.id}`; + } + for (const n of allowedMetaProperties) { + if (props[n] !== void 0) { + return `${tagName}:${n}:${props[n]}`; + } + } + return false; +} + +const sepSub = "%separator"; +function sub(p, token, isJson = false) { + let val; + if (token === "s" || token === "pageTitle") { + val = p.pageTitle; + } else if (token.includes(".")) { + const dotIndex = token.indexOf("."); + val = p[token.substring(0, dotIndex)]?.[token.substring(dotIndex + 1)]; + } else { + val = p[token]; + } + if (val !== void 0) { + return isJson ? (val || "").replace(/"/g, '\\"') : val || ""; + } + return void 0; +} +const sepSubRe = new RegExp(`${sepSub}(?:\\s*${sepSub})*`, "g"); +function processTemplateParams(s, p, sep, isJson = false) { + if (typeof s !== "string" || !s.includes("%")) + return s; + let decoded = s; + try { + decoded = decodeURI(s); + } catch { + } + const tokens = decoded.match(/%\w+(?:\.\w+)?/g); + if (!tokens) { + return s; + } + const hasSepSub = s.includes(sepSub); + s = s.replace(/%\w+(?:\.\w+)?/g, (token) => { + if (token === sepSub || !tokens.includes(token)) { + return token; + } + const re = sub(p, token.slice(1), isJson); + return re !== void 0 ? re : token; + }).trim(); + if (hasSepSub) { + if (s.endsWith(sepSub)) + s = s.slice(0, -sepSub.length); + if (s.startsWith(sepSub)) + s = s.slice(sepSub.length); + s = s.replace(sepSubRe, sep).trim(); + } + return s; +} + +function resolveTitleTemplate(template, title) { + if (template == null) + return title || null; + if (typeof template === "function") + return template(title); + return template; +} + +export { HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, UniqueTags, ValidHeadTags, asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, thenable, unpackMeta, whitelistSafeInput }; diff --git a/.output/server/node_modules/@unhead/shared/package.json b/.output/server/node_modules/@unhead/shared/package.json new file mode 100644 index 0000000..7bcb9a1 --- /dev/null +++ b/.output/server/node_modules/@unhead/shared/package.json @@ -0,0 +1,48 @@ +{ + "name": "@unhead/shared", + "type": "module", + "version": "1.11.19", + "author": "Harlan Wilton <harlan@harlanzw.com>", + "license": "MIT", + "funding": "https://github.com/sponsors/harlan-zw", + "homepage": "https://unhead.unjs.io", + "repository": { + "type": "git", + "url": "git+https://github.com/unjs/unhead.git", + "directory": "packages/schema" + }, + "bugs": { + "url": "https://github.com/unjs/unhead/issues" + }, + "keywords": [ + "head", + "meta tags", + "types" + ], + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "dependencies": { + "packrup": "^0.1.2", + "@unhead/schema": "1.11.19" + }, + "scripts": { + "build": "unbuild .", + "stub": "unbuild . --stub", + "export:sizes": "npx export-size . -r" + }, + "__npminstall_done": true, + "_from": "@unhead/shared@1.11.19", + "_resolved": "https://registry.npmmirror.com/@unhead/shared/-/shared-1.11.19.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@unhead/ssr/dist/index.mjs b/.output/server/node_modules/@unhead/ssr/dist/index.mjs new file mode 100644 index 0000000..91f9111 --- /dev/null +++ b/.output/server/node_modules/@unhead/ssr/dist/index.mjs @@ -0,0 +1,95 @@ +import { TagsWithInnerContent, SelfClosingTags } from '@unhead/shared'; + +function encodeAttribute(value) { + return String(value).replace(/"/g, """); +} +function propsToString(props) { + let attrs = ""; + for (const key in props) { + if (!Object.prototype.hasOwnProperty.call(props, key)) { + continue; + } + const value = props[key]; + if (value !== false && value !== null) { + attrs += value === true ? ` ${key}` : ` ${key}="${encodeAttribute(value)}"`; + } + } + return attrs; +} + +function ssrRenderTags(tags, options) { + const schema = { htmlAttrs: {}, bodyAttrs: {}, tags: { head: "", bodyClose: "", bodyOpen: "" } }; + const lineBreaks = !options?.omitLineBreaks ? "\n" : ""; + for (const tag of tags) { + if (Object.keys(tag.props).length === 0 && !tag.innerHTML && !tag.textContent) { + continue; + } + if (tag.tag === "htmlAttrs" || tag.tag === "bodyAttrs") { + Object.assign(schema[tag.tag], tag.props); + continue; + } + const s = tagToString(tag); + const tagPosition = tag.tagPosition || "head"; + schema.tags[tagPosition] += schema.tags[tagPosition] ? `${lineBreaks}${s}` : s; + } + return { + headTags: schema.tags.head, + bodyTags: schema.tags.bodyClose, + bodyTagsOpen: schema.tags.bodyOpen, + htmlAttrs: propsToString(schema.htmlAttrs), + bodyAttrs: propsToString(schema.bodyAttrs) + }; +} + +function escapeHtml(str) { + return str.replace(/[&<>"'/]/g, (char) => { + switch (char) { + case "&": + return "&"; + case "<": + return "<"; + case ">": + return ">"; + case '"': + return """; + case "'": + return "'"; + case "/": + return "/"; + default: + return char; + } + }); +} +function tagToString(tag) { + const attrs = propsToString(tag.props); + const openTag = `<${tag.tag}${attrs}>`; + if (!TagsWithInnerContent.has(tag.tag)) + return SelfClosingTags.has(tag.tag) ? openTag : `${openTag}</${tag.tag}>`; + let content = String(tag.innerHTML || ""); + if (tag.textContent) + content = escapeHtml(String(tag.textContent)); + return SelfClosingTags.has(tag.tag) ? openTag : `${openTag}${content}</${tag.tag}>`; +} + +async function renderSSRHead(head, options) { + const beforeRenderCtx = { shouldRender: true }; + await head.hooks.callHook("ssr:beforeRender", beforeRenderCtx); + if (!beforeRenderCtx.shouldRender) { + return { + headTags: "", + bodyTags: "", + bodyTagsOpen: "", + htmlAttrs: "", + bodyAttrs: "" + }; + } + const ctx = { tags: await head.resolveTags() }; + await head.hooks.callHook("ssr:render", ctx); + const html = ssrRenderTags(ctx.tags, options); + const renderCtx = { tags: ctx.tags, html }; + await head.hooks.callHook("ssr:rendered", renderCtx); + return renderCtx.html; +} + +export { escapeHtml, propsToString, renderSSRHead, ssrRenderTags, tagToString }; diff --git a/.output/server/node_modules/@unhead/ssr/package.json b/.output/server/node_modules/@unhead/ssr/package.json new file mode 100644 index 0000000..3da8d87 --- /dev/null +++ b/.output/server/node_modules/@unhead/ssr/package.json @@ -0,0 +1,43 @@ +{ + "name": "@unhead/ssr", + "type": "module", + "version": "1.11.19", + "author": "Harlan Wilton <harlan@harlanzw.com>", + "license": "MIT", + "funding": "https://github.com/sponsors/harlan-zw", + "homepage": "https://unhead.unjs.io", + "repository": { + "type": "git", + "url": "git+https://github.com/unjs/unhead.git", + "directory": "packages/ssr" + }, + "bugs": { + "url": "https://github.com/unjs/unhead/issues" + }, + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "dependencies": { + "@unhead/schema": "1.11.19", + "@unhead/shared": "1.11.19" + }, + "scripts": { + "build": "unbuild .", + "stub": "unbuild . --stub", + "export:sizes": "npx export-size . -r" + }, + "__npminstall_done": true, + "_from": "@unhead/ssr@1.11.19", + "_resolved": "https://registry.npmmirror.com/@unhead/ssr/-/ssr-1.11.19.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js b/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js new file mode 100644 index 0000000..7792261 --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js @@ -0,0 +1,6690 @@ +/** +* @vue/compiler-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); +var decode_js = require('entities/lib/decode.js'); +var parser = require('@babel/parser'); +var estreeWalker = require('estree-walker'); +var sourceMapJs = require('source-map-js'); + +const FRAGMENT = Symbol(``); +const TELEPORT = Symbol(``); +const SUSPENSE = Symbol(``); +const KEEP_ALIVE = Symbol(``); +const BASE_TRANSITION = Symbol( + `` +); +const OPEN_BLOCK = Symbol(``); +const CREATE_BLOCK = Symbol(``); +const CREATE_ELEMENT_BLOCK = Symbol( + `` +); +const CREATE_VNODE = Symbol(``); +const CREATE_ELEMENT_VNODE = Symbol( + `` +); +const CREATE_COMMENT = Symbol( + `` +); +const CREATE_TEXT = Symbol( + `` +); +const CREATE_STATIC = Symbol( + `` +); +const RESOLVE_COMPONENT = Symbol( + `` +); +const RESOLVE_DYNAMIC_COMPONENT = Symbol( + `` +); +const RESOLVE_DIRECTIVE = Symbol( + `` +); +const RESOLVE_FILTER = Symbol( + `` +); +const WITH_DIRECTIVES = Symbol( + `` +); +const RENDER_LIST = Symbol(``); +const RENDER_SLOT = Symbol(``); +const CREATE_SLOTS = Symbol(``); +const TO_DISPLAY_STRING = Symbol( + `` +); +const MERGE_PROPS = Symbol(``); +const NORMALIZE_CLASS = Symbol( + `` +); +const NORMALIZE_STYLE = Symbol( + `` +); +const NORMALIZE_PROPS = Symbol( + `` +); +const GUARD_REACTIVE_PROPS = Symbol( + `` +); +const TO_HANDLERS = Symbol(``); +const CAMELIZE = Symbol(``); +const CAPITALIZE = Symbol(``); +const TO_HANDLER_KEY = Symbol( + `` +); +const SET_BLOCK_TRACKING = Symbol( + `` +); +const PUSH_SCOPE_ID = Symbol(``); +const POP_SCOPE_ID = Symbol(``); +const WITH_CTX = Symbol(``); +const UNREF = Symbol(``); +const IS_REF = Symbol(``); +const WITH_MEMO = Symbol(``); +const IS_MEMO_SAME = Symbol(``); +const helperNameMap = { + [FRAGMENT]: `Fragment`, + [TELEPORT]: `Teleport`, + [SUSPENSE]: `Suspense`, + [KEEP_ALIVE]: `KeepAlive`, + [BASE_TRANSITION]: `BaseTransition`, + [OPEN_BLOCK]: `openBlock`, + [CREATE_BLOCK]: `createBlock`, + [CREATE_ELEMENT_BLOCK]: `createElementBlock`, + [CREATE_VNODE]: `createVNode`, + [CREATE_ELEMENT_VNODE]: `createElementVNode`, + [CREATE_COMMENT]: `createCommentVNode`, + [CREATE_TEXT]: `createTextVNode`, + [CREATE_STATIC]: `createStaticVNode`, + [RESOLVE_COMPONENT]: `resolveComponent`, + [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`, + [RESOLVE_DIRECTIVE]: `resolveDirective`, + [RESOLVE_FILTER]: `resolveFilter`, + [WITH_DIRECTIVES]: `withDirectives`, + [RENDER_LIST]: `renderList`, + [RENDER_SLOT]: `renderSlot`, + [CREATE_SLOTS]: `createSlots`, + [TO_DISPLAY_STRING]: `toDisplayString`, + [MERGE_PROPS]: `mergeProps`, + [NORMALIZE_CLASS]: `normalizeClass`, + [NORMALIZE_STYLE]: `normalizeStyle`, + [NORMALIZE_PROPS]: `normalizeProps`, + [GUARD_REACTIVE_PROPS]: `guardReactiveProps`, + [TO_HANDLERS]: `toHandlers`, + [CAMELIZE]: `camelize`, + [CAPITALIZE]: `capitalize`, + [TO_HANDLER_KEY]: `toHandlerKey`, + [SET_BLOCK_TRACKING]: `setBlockTracking`, + [PUSH_SCOPE_ID]: `pushScopeId`, + [POP_SCOPE_ID]: `popScopeId`, + [WITH_CTX]: `withCtx`, + [UNREF]: `unref`, + [IS_REF]: `isRef`, + [WITH_MEMO]: `withMemo`, + [IS_MEMO_SAME]: `isMemoSame` +}; +function registerRuntimeHelpers(helpers) { + Object.getOwnPropertySymbols(helpers).forEach((s) => { + helperNameMap[s] = helpers[s]; + }); +} + +const Namespaces = { + "HTML": 0, + "0": "HTML", + "SVG": 1, + "1": "SVG", + "MATH_ML": 2, + "2": "MATH_ML" +}; +const NodeTypes = { + "ROOT": 0, + "0": "ROOT", + "ELEMENT": 1, + "1": "ELEMENT", + "TEXT": 2, + "2": "TEXT", + "COMMENT": 3, + "3": "COMMENT", + "SIMPLE_EXPRESSION": 4, + "4": "SIMPLE_EXPRESSION", + "INTERPOLATION": 5, + "5": "INTERPOLATION", + "ATTRIBUTE": 6, + "6": "ATTRIBUTE", + "DIRECTIVE": 7, + "7": "DIRECTIVE", + "COMPOUND_EXPRESSION": 8, + "8": "COMPOUND_EXPRESSION", + "IF": 9, + "9": "IF", + "IF_BRANCH": 10, + "10": "IF_BRANCH", + "FOR": 11, + "11": "FOR", + "TEXT_CALL": 12, + "12": "TEXT_CALL", + "VNODE_CALL": 13, + "13": "VNODE_CALL", + "JS_CALL_EXPRESSION": 14, + "14": "JS_CALL_EXPRESSION", + "JS_OBJECT_EXPRESSION": 15, + "15": "JS_OBJECT_EXPRESSION", + "JS_PROPERTY": 16, + "16": "JS_PROPERTY", + "JS_ARRAY_EXPRESSION": 17, + "17": "JS_ARRAY_EXPRESSION", + "JS_FUNCTION_EXPRESSION": 18, + "18": "JS_FUNCTION_EXPRESSION", + "JS_CONDITIONAL_EXPRESSION": 19, + "19": "JS_CONDITIONAL_EXPRESSION", + "JS_CACHE_EXPRESSION": 20, + "20": "JS_CACHE_EXPRESSION", + "JS_BLOCK_STATEMENT": 21, + "21": "JS_BLOCK_STATEMENT", + "JS_TEMPLATE_LITERAL": 22, + "22": "JS_TEMPLATE_LITERAL", + "JS_IF_STATEMENT": 23, + "23": "JS_IF_STATEMENT", + "JS_ASSIGNMENT_EXPRESSION": 24, + "24": "JS_ASSIGNMENT_EXPRESSION", + "JS_SEQUENCE_EXPRESSION": 25, + "25": "JS_SEQUENCE_EXPRESSION", + "JS_RETURN_STATEMENT": 26, + "26": "JS_RETURN_STATEMENT" +}; +const ElementTypes = { + "ELEMENT": 0, + "0": "ELEMENT", + "COMPONENT": 1, + "1": "COMPONENT", + "SLOT": 2, + "2": "SLOT", + "TEMPLATE": 3, + "3": "TEMPLATE" +}; +const ConstantTypes = { + "NOT_CONSTANT": 0, + "0": "NOT_CONSTANT", + "CAN_SKIP_PATCH": 1, + "1": "CAN_SKIP_PATCH", + "CAN_CACHE": 2, + "2": "CAN_CACHE", + "CAN_STRINGIFY": 3, + "3": "CAN_STRINGIFY" +}; +const locStub = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 }, + source: "" +}; +function createRoot(children, source = "") { + return { + type: 0, + source, + children, + helpers: /* @__PURE__ */ new Set(), + components: [], + directives: [], + hoists: [], + imports: [], + cached: [], + temps: 0, + codegenNode: void 0, + loc: locStub + }; +} +function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) { + if (context) { + if (isBlock) { + context.helper(OPEN_BLOCK); + context.helper(getVNodeBlockHelper(context.inSSR, isComponent)); + } else { + context.helper(getVNodeHelper(context.inSSR, isComponent)); + } + if (directives) { + context.helper(WITH_DIRECTIVES); + } + } + return { + type: 13, + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent, + loc + }; +} +function createArrayExpression(elements, loc = locStub) { + return { + type: 17, + loc, + elements + }; +} +function createObjectExpression(properties, loc = locStub) { + return { + type: 15, + loc, + properties + }; +} +function createObjectProperty(key, value) { + return { + type: 16, + loc: locStub, + key: shared.isString(key) ? createSimpleExpression(key, true) : key, + value + }; +} +function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) { + return { + type: 4, + loc, + content, + isStatic, + constType: isStatic ? 3 : constType + }; +} +function createInterpolation(content, loc) { + return { + type: 5, + loc, + content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content + }; +} +function createCompoundExpression(children, loc = locStub) { + return { + type: 8, + loc, + children + }; +} +function createCallExpression(callee, args = [], loc = locStub) { + return { + type: 14, + loc, + callee, + arguments: args + }; +} +function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) { + return { + type: 18, + params, + returns, + newline, + isSlot, + loc + }; +} +function createConditionalExpression(test, consequent, alternate, newline = true) { + return { + type: 19, + test, + consequent, + alternate, + newline, + loc: locStub + }; +} +function createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) { + return { + type: 20, + index, + value, + needPauseTracking, + inVOnce, + needArraySpread: false, + loc: locStub + }; +} +function createBlockStatement(body) { + return { + type: 21, + body, + loc: locStub + }; +} +function createTemplateLiteral(elements) { + return { + type: 22, + elements, + loc: locStub + }; +} +function createIfStatement(test, consequent, alternate) { + return { + type: 23, + test, + consequent, + alternate, + loc: locStub + }; +} +function createAssignmentExpression(left, right) { + return { + type: 24, + left, + right, + loc: locStub + }; +} +function createSequenceExpression(expressions) { + return { + type: 25, + expressions, + loc: locStub + }; +} +function createReturnStatement(returns) { + return { + type: 26, + returns, + loc: locStub + }; +} +function getVNodeHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE; +} +function getVNodeBlockHelper(ssr, isComponent) { + return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK; +} +function convertToBlock(node, { helper, removeHelper, inSSR }) { + if (!node.isBlock) { + node.isBlock = true; + removeHelper(getVNodeHelper(inSSR, node.isComponent)); + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(inSSR, node.isComponent)); + } +} + +const defaultDelimitersOpen = new Uint8Array([123, 123]); +const defaultDelimitersClose = new Uint8Array([125, 125]); +function isTagStartChar(c) { + return c >= 97 && c <= 122 || c >= 65 && c <= 90; +} +function isWhitespace(c) { + return c === 32 || c === 10 || c === 9 || c === 12 || c === 13; +} +function isEndOfTagSection(c) { + return c === 47 || c === 62 || isWhitespace(c); +} +function toCharCodes(str) { + const ret = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + ret[i] = str.charCodeAt(i); + } + return ret; +} +const Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + // CDATA[ + CdataEnd: new Uint8Array([93, 93, 62]), + // ]]> + CommentEnd: new Uint8Array([45, 45, 62]), + // `-->` + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + // `<\/script` + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + // `</style` + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]), + // `</title` + TextareaEnd: new Uint8Array([ + 60, + 47, + 116, + 101, + 120, + 116, + 97, + 114, + 101, + 97 + ]) + // `</textarea +}; +class Tokenizer { + constructor(stack, cbs) { + this.stack = stack; + this.cbs = cbs; + /** The current state the tokenizer is in. */ + this.state = 1; + /** The read buffer. */ + this.buffer = ""; + /** The beginning of the section that is currently being read. */ + this.sectionStart = 0; + /** The index within the buffer that we are currently looking at. */ + this.index = 0; + /** The start of the last entity. */ + this.entityStart = 0; + /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */ + this.baseState = 1; + /** For special parsing behavior inside of script and style tags. */ + this.inRCDATA = false; + /** For disabling RCDATA tags handling */ + this.inXML = false; + /** For disabling interpolation parsing in v-pre */ + this.inVPre = false; + /** Record newline positions for fast line / column calculation */ + this.newlines = []; + this.mode = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + this.delimiterIndex = -1; + this.currentSequence = void 0; + this.sequenceIndex = 0; + { + this.entityDecoder = new decode_js.EntityDecoder( + decode_js.htmlDecodeTree, + (cp, consumed) => this.emitCodePoint(cp, consumed) + ); + } + } + get inSFCRoot() { + return this.mode === 2 && this.stack.length === 0; + } + reset() { + this.state = 1; + this.mode = 0; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = 1; + this.inRCDATA = false; + this.currentSequence = void 0; + this.newlines.length = 0; + this.delimiterOpen = defaultDelimitersOpen; + this.delimiterClose = defaultDelimitersClose; + } + /** + * Generate Position object with line / column information using recorded + * newline positions. We know the index is always going to be an already + * processed index, so all the newlines up to this index should have been + * recorded. + */ + getPos(index) { + let line = 1; + let column = index + 1; + for (let i = this.newlines.length - 1; i >= 0; i--) { + const newlineIndex = this.newlines[i]; + if (index > newlineIndex) { + line = i + 2; + column = index - newlineIndex; + break; + } + } + return { + column, + line, + offset: index + }; + } + peek() { + return this.buffer.charCodeAt(this.index + 1); + } + stateText(c) { + if (c === 60) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = 5; + this.sectionStart = this.index; + } else if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } + stateInterpolationOpen(c) { + if (c === this.delimiterOpen[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterOpen.length - 1) { + const start = this.index + 1 - this.delimiterOpen.length; + if (start > this.sectionStart) { + this.cbs.ontext(this.sectionStart, start); + } + this.state = 3; + this.sectionStart = start; + } else { + this.delimiterIndex++; + } + } else if (this.inRCDATA) { + this.state = 32; + this.stateInRCDATA(c); + } else { + this.state = 1; + this.stateText(c); + } + } + stateInterpolation(c) { + if (c === this.delimiterClose[0]) { + this.state = 4; + this.delimiterIndex = 0; + this.stateInterpolationClose(c); + } + } + stateInterpolationClose(c) { + if (c === this.delimiterClose[this.delimiterIndex]) { + if (this.delimiterIndex === this.delimiterClose.length - 1) { + this.cbs.oninterpolation(this.sectionStart, this.index + 1); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else { + this.delimiterIndex++; + } + } else { + this.state = 3; + this.stateInterpolation(c); + } + } + stateSpecialStartSequence(c) { + const isEnd = this.sequenceIndex === this.currentSequence.length; + const isMatch = isEnd ? ( + // If we are at the end of the sequence, make sure the tag name has ended + isEndOfTagSection(c) + ) : ( + // Otherwise, do a case-insensitive comparison + (c | 32) === this.currentSequence[this.sequenceIndex] + ); + if (!isMatch) { + this.inRCDATA = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = 6; + this.stateInTagName(c); + } + /** Look for an end tag. For <title> and <textarea>, also decode entities. */ + stateInRCDATA(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === 62 || isWhitespace(c)) { + const endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + const actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + this.inRCDATA = false; + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) { + if (c === 38) { + this.startEntity(); + } else if (!this.inVPre && c === this.delimiterOpen[0]) { + this.state = 2; + this.delimiterIndex = 0; + this.stateInterpolationOpen(c); + } + } else if (this.fastForwardTo(60)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === 60); + } + } + stateCDATASequence(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = 28; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = 23; + this.stateInDeclaration(c); + } + } + /** + * When we wait for one specific character, we can speed things up + * by skipping through the buffer until we find it. + * + * @returns Whether the character was found. + */ + fastForwardTo(c) { + while (++this.index < this.buffer.length) { + const cc = this.buffer.charCodeAt(this.index); + if (cc === 10) { + this.newlines.push(this.index); + } + if (cc === c) { + return true; + } + } + this.index = this.buffer.length - 1; + return false; + } + /** + * Comments and CDATA end with `-->` and `]]>`. + * + * Their common qualities are: + * - Their end sequences have a distinct character they start with. + * - That character is then repeated, so we have to check multiple repeats. + * - All characters but the start character of the sequence can be skipped. + */ + stateInCommentLike(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index - 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index - 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = 1; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + } + startSpecial(sequence, offset) { + this.enterRCDATA(sequence, offset); + this.state = 31; + } + enterRCDATA(sequence, offset) { + this.inRCDATA = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + } + stateBeforeTagName(c) { + if (c === 33) { + this.state = 22; + this.sectionStart = this.index + 1; + } else if (c === 63) { + this.state = 24; + this.sectionStart = this.index + 1; + } else if (isTagStartChar(c)) { + this.sectionStart = this.index; + if (this.mode === 0) { + this.state = 6; + } else if (this.inSFCRoot) { + this.state = 34; + } else if (!this.inXML) { + if (c === 116) { + this.state = 30; + } else { + this.state = c === 115 ? 29 : 6; + } + } else { + this.state = 6; + } + } else if (c === 47) { + this.state = 8; + } else { + this.state = 1; + this.stateText(c); + } + } + stateInTagName(c) { + if (isEndOfTagSection(c)) { + this.handleTagName(c); + } + } + stateInSFCRootTagName(c) { + if (isEndOfTagSection(c)) { + const tag = this.buffer.slice(this.sectionStart, this.index); + if (tag !== "template") { + this.enterRCDATA(toCharCodes(`</` + tag), 0); + } + this.handleTagName(c); + } + } + handleTagName(c) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } + stateBeforeClosingTagName(c) { + if (isWhitespace(c)) ; else if (c === 62) { + { + this.cbs.onerr(14, this.index); + } + this.state = 1; + this.sectionStart = this.index + 1; + } else { + this.state = isTagStartChar(c) ? 9 : 27; + this.sectionStart = this.index; + } + } + stateInClosingTagName(c) { + if (c === 62 || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = 10; + this.stateAfterClosingTagName(c); + } + } + stateAfterClosingTagName(c) { + if (c === 62) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeAttrName(c) { + if (c === 62) { + this.cbs.onopentagend(this.index); + if (this.inRCDATA) { + this.state = 32; + } else { + this.state = 1; + } + this.sectionStart = this.index + 1; + } else if (c === 47) { + this.state = 7; + if (this.peek() !== 62) { + this.cbs.onerr(22, this.index); + } + } else if (c === 60 && this.peek() === 47) { + this.cbs.onopentagend(this.index); + this.state = 5; + this.sectionStart = this.index; + } else if (!isWhitespace(c)) { + if (c === 61) { + this.cbs.onerr( + 19, + this.index + ); + } + this.handleAttrStart(c); + } + } + handleAttrStart(c) { + if (c === 118 && this.peek() === 45) { + this.state = 13; + this.sectionStart = this.index; + } else if (c === 46 || c === 58 || c === 64 || c === 35) { + this.cbs.ondirname(this.index, this.index + 1); + this.state = 14; + this.sectionStart = this.index + 1; + } else { + this.state = 12; + this.sectionStart = this.index; + } + } + stateInSelfClosingTag(c) { + if (c === 62) { + this.cbs.onselfclosingtag(this.index); + this.state = 1; + this.sectionStart = this.index + 1; + this.inRCDATA = false; + } else if (!isWhitespace(c)) { + this.state = 11; + this.stateBeforeAttrName(c); + } + } + stateInAttrName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 34 || c === 39 || c === 60) { + this.cbs.onerr( + 17, + this.index + ); + } + } + stateInDirName(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirname(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 58) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 14; + this.sectionStart = this.index + 1; + } else if (c === 46) { + this.cbs.ondirname(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDirArg(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 91) { + this.state = 15; + } else if (c === 46) { + this.cbs.ondirarg(this.sectionStart, this.index); + this.state = 16; + this.sectionStart = this.index + 1; + } + } + stateInDynamicDirArg(c) { + if (c === 93) { + this.state = 14; + } else if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirarg(this.sectionStart, this.index + 1); + this.handleAttrNameEnd(c); + { + this.cbs.onerr( + 27, + this.index + ); + } + } + } + stateInDirModifier(c) { + if (c === 61 || isEndOfTagSection(c)) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.handleAttrNameEnd(c); + } else if (c === 46) { + this.cbs.ondirmodifier(this.sectionStart, this.index); + this.sectionStart = this.index + 1; + } + } + handleAttrNameEnd(c) { + this.sectionStart = this.index; + this.state = 17; + this.cbs.onattribnameend(this.index); + this.stateAfterAttrName(c); + } + stateAfterAttrName(c) { + if (c === 61) { + this.state = 18; + } else if (c === 47 || c === 62) { + this.cbs.onattribend(0, this.sectionStart); + this.sectionStart = -1; + this.state = 11; + this.stateBeforeAttrName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(0, this.sectionStart); + this.handleAttrStart(c); + } + } + stateBeforeAttrValue(c) { + if (c === 34) { + this.state = 19; + this.sectionStart = this.index + 1; + } else if (c === 39) { + this.state = 20; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = 21; + this.stateInAttrValueNoQuotes(c); + } + } + handleInAttrValue(c, quote) { + if (c === quote || false) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend( + quote === 34 ? 3 : 2, + this.index + 1 + ); + this.state = 11; + } else if (c === 38) { + this.startEntity(); + } + } + stateInAttrValueDoubleQuotes(c) { + this.handleInAttrValue(c, 34); + } + stateInAttrValueSingleQuotes(c) { + this.handleInAttrValue(c, 39); + } + stateInAttrValueNoQuotes(c) { + if (isWhitespace(c) || c === 62) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(1, this.index); + this.state = 11; + this.stateBeforeAttrName(c); + } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) { + this.cbs.onerr( + 18, + this.index + ); + } else if (c === 38) { + this.startEntity(); + } + } + stateBeforeDeclaration(c) { + if (c === 91) { + this.state = 26; + this.sequenceIndex = 0; + } else { + this.state = c === 45 ? 25 : 23; + } + } + stateInDeclaration(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateInProcessingInstruction(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeComment(c) { + if (c === 45) { + this.state = 28; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = 23; + } + } + stateInSpecialComment(c) { + if (c === 62 || this.fastForwardTo(62)) { + this.cbs.oncomment(this.sectionStart, this.index); + this.state = 1; + this.sectionStart = this.index + 1; + } + } + stateBeforeSpecialS(c) { + if (c === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (c === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + stateBeforeSpecialT(c) { + if (c === Sequences.TitleEnd[3]) { + this.startSpecial(Sequences.TitleEnd, 4); + } else if (c === Sequences.TextareaEnd[3]) { + this.startSpecial(Sequences.TextareaEnd, 4); + } else { + this.state = 6; + this.stateInTagName(c); + } + } + startEntity() { + { + this.baseState = this.state; + this.state = 33; + this.entityStart = this.index; + this.entityDecoder.startEntity( + this.baseState === 1 || this.baseState === 32 ? decode_js.DecodingMode.Legacy : decode_js.DecodingMode.Attribute + ); + } + } + stateInEntity() { + { + const length = this.entityDecoder.write(this.buffer, this.index); + if (length >= 0) { + this.state = this.baseState; + if (length === 0) { + this.index = this.entityStart; + } + } else { + this.index = this.buffer.length - 1; + } + } + } + /** + * Iterates through the buffer, calling the function corresponding to the current state. + * + * States that are more likely to be hit are higher up, as a performance improvement. + */ + parse(input) { + this.buffer = input; + while (this.index < this.buffer.length) { + const c = this.buffer.charCodeAt(this.index); + if (c === 10) { + this.newlines.push(this.index); + } + switch (this.state) { + case 1: { + this.stateText(c); + break; + } + case 2: { + this.stateInterpolationOpen(c); + break; + } + case 3: { + this.stateInterpolation(c); + break; + } + case 4: { + this.stateInterpolationClose(c); + break; + } + case 31: { + this.stateSpecialStartSequence(c); + break; + } + case 32: { + this.stateInRCDATA(c); + break; + } + case 26: { + this.stateCDATASequence(c); + break; + } + case 19: { + this.stateInAttrValueDoubleQuotes(c); + break; + } + case 12: { + this.stateInAttrName(c); + break; + } + case 13: { + this.stateInDirName(c); + break; + } + case 14: { + this.stateInDirArg(c); + break; + } + case 15: { + this.stateInDynamicDirArg(c); + break; + } + case 16: { + this.stateInDirModifier(c); + break; + } + case 28: { + this.stateInCommentLike(c); + break; + } + case 27: { + this.stateInSpecialComment(c); + break; + } + case 11: { + this.stateBeforeAttrName(c); + break; + } + case 6: { + this.stateInTagName(c); + break; + } + case 34: { + this.stateInSFCRootTagName(c); + break; + } + case 9: { + this.stateInClosingTagName(c); + break; + } + case 5: { + this.stateBeforeTagName(c); + break; + } + case 17: { + this.stateAfterAttrName(c); + break; + } + case 20: { + this.stateInAttrValueSingleQuotes(c); + break; + } + case 18: { + this.stateBeforeAttrValue(c); + break; + } + case 8: { + this.stateBeforeClosingTagName(c); + break; + } + case 10: { + this.stateAfterClosingTagName(c); + break; + } + case 29: { + this.stateBeforeSpecialS(c); + break; + } + case 30: { + this.stateBeforeSpecialT(c); + break; + } + case 21: { + this.stateInAttrValueNoQuotes(c); + break; + } + case 7: { + this.stateInSelfClosingTag(c); + break; + } + case 23: { + this.stateInDeclaration(c); + break; + } + case 22: { + this.stateBeforeDeclaration(c); + break; + } + case 25: { + this.stateBeforeComment(c); + break; + } + case 24: { + this.stateInProcessingInstruction(c); + break; + } + case 33: { + this.stateInEntity(); + break; + } + } + this.index++; + } + this.cleanup(); + this.finish(); + } + /** + * Remove data that has already been consumed from the buffer. + */ + cleanup() { + if (this.sectionStart !== this.index) { + if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === 19 || this.state === 20 || this.state === 21) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + } + finish() { + if (this.state === 33) { + this.entityDecoder.end(); + this.state = this.baseState; + } + this.handleTrailingData(); + this.cbs.onend(); + } + /** Handle any trailing data. */ + handleTrailingData() { + const endIndex = this.buffer.length; + if (this.sectionStart >= endIndex) { + return; + } + if (this.state === 28) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex); + } else { + this.cbs.oncomment(this.sectionStart, endIndex); + } + } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else { + this.cbs.ontext(this.sectionStart, endIndex); + } + } + emitCodePoint(cp, consumed) { + { + if (this.baseState !== 1 && this.baseState !== 32) { + if (this.sectionStart < this.entityStart) { + this.cbs.onattribdata(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.onattribentity( + decode_js.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } else { + if (this.sectionStart < this.entityStart) { + this.cbs.ontext(this.sectionStart, this.entityStart); + } + this.sectionStart = this.entityStart + consumed; + this.index = this.sectionStart - 1; + this.cbs.ontextentity( + decode_js.fromCodePoint(cp), + this.entityStart, + this.sectionStart + ); + } + } + } +} + +const CompilerDeprecationTypes = { + "COMPILER_IS_ON_ELEMENT": "COMPILER_IS_ON_ELEMENT", + "COMPILER_V_BIND_SYNC": "COMPILER_V_BIND_SYNC", + "COMPILER_V_BIND_OBJECT_ORDER": "COMPILER_V_BIND_OBJECT_ORDER", + "COMPILER_V_ON_NATIVE": "COMPILER_V_ON_NATIVE", + "COMPILER_V_IF_V_FOR_PRECEDENCE": "COMPILER_V_IF_V_FOR_PRECEDENCE", + "COMPILER_NATIVE_TEMPLATE": "COMPILER_NATIVE_TEMPLATE", + "COMPILER_INLINE_TEMPLATE": "COMPILER_INLINE_TEMPLATE", + "COMPILER_FILTERS": "COMPILER_FILTERS" +}; +const deprecationData = { + ["COMPILER_IS_ON_ELEMENT"]: { + message: `Platform-native elements with "is" prop will no longer be treated as components in Vue 3 unless the "is" value is explicitly prefixed with "vue:".`, + link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html` + }, + ["COMPILER_V_BIND_SYNC"]: { + message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${key}.sync\` should be changed to \`v-model:${key}\`.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html` + }, + ["COMPILER_V_BIND_OBJECT_ORDER"]: { + message: `v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html` + }, + ["COMPILER_V_ON_NATIVE"]: { + message: `.native modifier for v-on has been removed as is no longer necessary.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html` + }, + ["COMPILER_V_IF_V_FOR_PRECEDENCE"]: { + message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`, + link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html` + }, + ["COMPILER_NATIVE_TEMPLATE"]: { + message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.` + }, + ["COMPILER_INLINE_TEMPLATE"]: { + message: `"inline-template" has been removed in Vue 3.`, + link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html` + }, + ["COMPILER_FILTERS"]: { + message: `filters have been removed in Vue 3. The "|" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`, + link: `https://v3-migration.vuejs.org/breaking-changes/filters.html` + } +}; +function getCompatValue(key, { compatConfig }) { + const value = compatConfig && compatConfig[key]; + if (key === "MODE") { + return value || 3; + } else { + return value; + } +} +function isCompatEnabled(key, context) { + const mode = getCompatValue("MODE", context); + const value = getCompatValue(key, context); + return mode === 3 ? value === true : value !== false; +} +function checkCompatEnabled(key, context, loc, ...args) { + const enabled = isCompatEnabled(key, context); + return enabled; +} +function warnDeprecation(key, context, loc, ...args) { + const val = getCompatValue(key, context); + if (val === "suppress-warning") { + return; + } + const { message, link } = deprecationData[key]; + const msg = `(deprecation ${key}) ${typeof message === "function" ? message(...args) : message}${link ? ` + Details: ${link}` : ``}`; + const err = new SyntaxError(msg); + err.code = key; + if (loc) err.loc = loc; + context.onWarn(err); +} + +function defaultOnError(error) { + throw error; +} +function defaultOnWarn(msg) { +} +function createCompilerError(code, loc, messages, additionalMessage) { + const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ; + const error = new SyntaxError(String(msg)); + error.code = code; + error.loc = loc; + return error; +} +const ErrorCodes = { + "ABRUPT_CLOSING_OF_EMPTY_COMMENT": 0, + "0": "ABRUPT_CLOSING_OF_EMPTY_COMMENT", + "CDATA_IN_HTML_CONTENT": 1, + "1": "CDATA_IN_HTML_CONTENT", + "DUPLICATE_ATTRIBUTE": 2, + "2": "DUPLICATE_ATTRIBUTE", + "END_TAG_WITH_ATTRIBUTES": 3, + "3": "END_TAG_WITH_ATTRIBUTES", + "END_TAG_WITH_TRAILING_SOLIDUS": 4, + "4": "END_TAG_WITH_TRAILING_SOLIDUS", + "EOF_BEFORE_TAG_NAME": 5, + "5": "EOF_BEFORE_TAG_NAME", + "EOF_IN_CDATA": 6, + "6": "EOF_IN_CDATA", + "EOF_IN_COMMENT": 7, + "7": "EOF_IN_COMMENT", + "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT": 8, + "8": "EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT", + "EOF_IN_TAG": 9, + "9": "EOF_IN_TAG", + "INCORRECTLY_CLOSED_COMMENT": 10, + "10": "INCORRECTLY_CLOSED_COMMENT", + "INCORRECTLY_OPENED_COMMENT": 11, + "11": "INCORRECTLY_OPENED_COMMENT", + "INVALID_FIRST_CHARACTER_OF_TAG_NAME": 12, + "12": "INVALID_FIRST_CHARACTER_OF_TAG_NAME", + "MISSING_ATTRIBUTE_VALUE": 13, + "13": "MISSING_ATTRIBUTE_VALUE", + "MISSING_END_TAG_NAME": 14, + "14": "MISSING_END_TAG_NAME", + "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES": 15, + "15": "MISSING_WHITESPACE_BETWEEN_ATTRIBUTES", + "NESTED_COMMENT": 16, + "16": "NESTED_COMMENT", + "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME": 17, + "17": "UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME", + "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE": 18, + "18": "UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE", + "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME": 19, + "19": "UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME", + "UNEXPECTED_NULL_CHARACTER": 20, + "20": "UNEXPECTED_NULL_CHARACTER", + "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME": 21, + "21": "UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME", + "UNEXPECTED_SOLIDUS_IN_TAG": 22, + "22": "UNEXPECTED_SOLIDUS_IN_TAG", + "X_INVALID_END_TAG": 23, + "23": "X_INVALID_END_TAG", + "X_MISSING_END_TAG": 24, + "24": "X_MISSING_END_TAG", + "X_MISSING_INTERPOLATION_END": 25, + "25": "X_MISSING_INTERPOLATION_END", + "X_MISSING_DIRECTIVE_NAME": 26, + "26": "X_MISSING_DIRECTIVE_NAME", + "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END": 27, + "27": "X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END", + "X_V_IF_NO_EXPRESSION": 28, + "28": "X_V_IF_NO_EXPRESSION", + "X_V_IF_SAME_KEY": 29, + "29": "X_V_IF_SAME_KEY", + "X_V_ELSE_NO_ADJACENT_IF": 30, + "30": "X_V_ELSE_NO_ADJACENT_IF", + "X_V_FOR_NO_EXPRESSION": 31, + "31": "X_V_FOR_NO_EXPRESSION", + "X_V_FOR_MALFORMED_EXPRESSION": 32, + "32": "X_V_FOR_MALFORMED_EXPRESSION", + "X_V_FOR_TEMPLATE_KEY_PLACEMENT": 33, + "33": "X_V_FOR_TEMPLATE_KEY_PLACEMENT", + "X_V_BIND_NO_EXPRESSION": 34, + "34": "X_V_BIND_NO_EXPRESSION", + "X_V_ON_NO_EXPRESSION": 35, + "35": "X_V_ON_NO_EXPRESSION", + "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET": 36, + "36": "X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET", + "X_V_SLOT_MIXED_SLOT_USAGE": 37, + "37": "X_V_SLOT_MIXED_SLOT_USAGE", + "X_V_SLOT_DUPLICATE_SLOT_NAMES": 38, + "38": "X_V_SLOT_DUPLICATE_SLOT_NAMES", + "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN": 39, + "39": "X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN", + "X_V_SLOT_MISPLACED": 40, + "40": "X_V_SLOT_MISPLACED", + "X_V_MODEL_NO_EXPRESSION": 41, + "41": "X_V_MODEL_NO_EXPRESSION", + "X_V_MODEL_MALFORMED_EXPRESSION": 42, + "42": "X_V_MODEL_MALFORMED_EXPRESSION", + "X_V_MODEL_ON_SCOPE_VARIABLE": 43, + "43": "X_V_MODEL_ON_SCOPE_VARIABLE", + "X_V_MODEL_ON_PROPS": 44, + "44": "X_V_MODEL_ON_PROPS", + "X_INVALID_EXPRESSION": 45, + "45": "X_INVALID_EXPRESSION", + "X_KEEP_ALIVE_INVALID_CHILDREN": 46, + "46": "X_KEEP_ALIVE_INVALID_CHILDREN", + "X_PREFIX_ID_NOT_SUPPORTED": 47, + "47": "X_PREFIX_ID_NOT_SUPPORTED", + "X_MODULE_MODE_NOT_SUPPORTED": 48, + "48": "X_MODULE_MODE_NOT_SUPPORTED", + "X_CACHE_HANDLER_NOT_SUPPORTED": 49, + "49": "X_CACHE_HANDLER_NOT_SUPPORTED", + "X_SCOPE_ID_NOT_SUPPORTED": 50, + "50": "X_SCOPE_ID_NOT_SUPPORTED", + "X_VNODE_HOOKS": 51, + "51": "X_VNODE_HOOKS", + "X_V_BIND_INVALID_SAME_NAME_ARGUMENT": 52, + "52": "X_V_BIND_INVALID_SAME_NAME_ARGUMENT", + "__EXTEND_POINT__": 53, + "53": "__EXTEND_POINT__" +}; +const errorMessages = { + // parse errors + [0]: "Illegal comment.", + [1]: "CDATA section is allowed only in XML context.", + [2]: "Duplicate attribute.", + [3]: "End tag cannot have attributes.", + [4]: "Illegal '/' in tags.", + [5]: "Unexpected EOF in tag.", + [6]: "Unexpected EOF in CDATA section.", + [7]: "Unexpected EOF in comment.", + [8]: "Unexpected EOF in script.", + [9]: "Unexpected EOF in tag.", + [10]: "Incorrectly closed comment.", + [11]: "Incorrectly opened comment.", + [12]: "Illegal tag name. Use '<' to print '<'.", + [13]: "Attribute value was expected.", + [14]: "End tag name was expected.", + [15]: "Whitespace was expected.", + [16]: "Unexpected '<!--' in comment.", + [17]: `Attribute name cannot contain U+0022 ("), U+0027 ('), and U+003C (<).`, + [18]: "Unquoted attribute value cannot contain U+0022 (\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).", + [19]: "Attribute name cannot start with '='.", + [21]: "'<?' is allowed only in XML context.", + [20]: `Unexpected null character.`, + [22]: "Illegal '/' in tags.", + // Vue-specific parse errors + [23]: "Invalid end tag.", + [24]: "Element is missing end tag.", + [25]: "Interpolation end sign was not found.", + [27]: "End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.", + [26]: "Legal directive name was expected.", + // transform errors + [28]: `v-if/v-else-if is missing expression.`, + [29]: `v-if/else branches must use unique keys.`, + [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`, + [31]: `v-for is missing expression.`, + [32]: `v-for has invalid expression.`, + [33]: `<template v-for> key should be placed on the <template> tag.`, + [34]: `v-bind is missing expression.`, + [52]: `v-bind with same-name shorthand only allows static argument.`, + [35]: `v-on is missing expression.`, + [36]: `Unexpected custom directive on <slot> outlet.`, + [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`, + [38]: `Duplicate slot names found. `, + [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`, + [40]: `v-slot can only be used on components or <template> tags.`, + [41]: `v-model is missing expression.`, + [42]: `v-model value must be a valid JavaScript member expression.`, + [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`, + [44]: `v-model cannot be used on a prop, because local prop bindings are not writable. +Use a v-bind binding combined with a v-on listener that emits update:x event instead.`, + [45]: `Error parsing JavaScript expression: `, + [46]: `<KeepAlive> expects exactly one child component.`, + [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`, + // generic errors + [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`, + [48]: `ES module mode is not supported in this build of compiler.`, + [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`, + [50]: `"scopeId" option is only supported in module mode.`, + // just to fulfill types + [53]: `` +}; + +function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) { + const rootExp = root.type === "Program" ? root.body[0].type === "ExpressionStatement" && root.body[0].expression : root; + estreeWalker.walk(root, { + enter(node, parent) { + parent && parentStack.push(parent); + if (parent && parent.type.startsWith("TS") && !TS_NODE_TYPES.includes(parent.type)) { + return this.skip(); + } + if (node.type === "Identifier") { + const isLocal = !!knownIds[node.name]; + const isRefed = isReferencedIdentifier(node, parent, parentStack); + if (includeAll || isRefed && !isLocal) { + onIdentifier(node, parent, parentStack, isRefed, isLocal); + } + } else if (node.type === "ObjectProperty" && // eslint-disable-next-line no-restricted-syntax + (parent == null ? void 0 : parent.type) === "ObjectPattern") { + node.inPattern = true; + } else if (isFunctionType(node)) { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkFunctionParams( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "BlockStatement") { + if (node.scopeIds) { + node.scopeIds.forEach((id) => markKnownIds(id, knownIds)); + } else { + walkBlockDeclarations( + node, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + } else if (node.type === "CatchClause" && node.param) { + for (const id of extractIdentifiers(node.param)) { + markScopeIdentifier(node, id, knownIds); + } + } else if (isForStatement(node)) { + walkForStatement( + node, + false, + (id) => markScopeIdentifier(node, id, knownIds) + ); + } + }, + leave(node, parent) { + parent && parentStack.pop(); + if (node !== rootExp && node.scopeIds) { + for (const id of node.scopeIds) { + knownIds[id]--; + if (knownIds[id] === 0) { + delete knownIds[id]; + } + } + } + } + }); +} +function isReferencedIdentifier(id, parent, parentStack) { + if (!parent) { + return true; + } + if (id.name === "arguments") { + return false; + } + if (isReferenced(id, parent)) { + return true; + } + switch (parent.type) { + case "AssignmentExpression": + case "AssignmentPattern": + return true; + case "ObjectPattern": + case "ArrayPattern": + return isInDestructureAssignment(parent, parentStack); + } + return false; +} +function isInDestructureAssignment(parent, parentStack) { + if (parent && (parent.type === "ObjectProperty" || parent.type === "ArrayPattern")) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "AssignmentExpression") { + return true; + } else if (p.type !== "ObjectProperty" && !p.type.endsWith("Pattern")) { + break; + } + } + } + return false; +} +function isInNewExpression(parentStack) { + let i = parentStack.length; + while (i--) { + const p = parentStack[i]; + if (p.type === "NewExpression") { + return true; + } else if (p.type !== "MemberExpression") { + break; + } + } + return false; +} +function walkFunctionParams(node, onIdent) { + for (const p of node.params) { + for (const id of extractIdentifiers(p)) { + onIdent(id); + } + } +} +function walkBlockDeclarations(block, onIdent) { + for (const stmt of block.body) { + if (stmt.type === "VariableDeclaration") { + if (stmt.declare) continue; + for (const decl of stmt.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } else if (stmt.type === "FunctionDeclaration" || stmt.type === "ClassDeclaration") { + if (stmt.declare || !stmt.id) continue; + onIdent(stmt.id); + } else if (isForStatement(stmt)) { + walkForStatement(stmt, true, onIdent); + } + } +} +function isForStatement(stmt) { + return stmt.type === "ForOfStatement" || stmt.type === "ForInStatement" || stmt.type === "ForStatement"; +} +function walkForStatement(stmt, isVar, onIdent) { + const variable = stmt.type === "ForStatement" ? stmt.init : stmt.left; + if (variable && variable.type === "VariableDeclaration" && (variable.kind === "var" ? isVar : !isVar)) { + for (const decl of variable.declarations) { + for (const id of extractIdentifiers(decl.id)) { + onIdent(id); + } + } + } +} +function extractIdentifiers(param, nodes = []) { + switch (param.type) { + case "Identifier": + nodes.push(param); + break; + case "MemberExpression": + let object = param; + while (object.type === "MemberExpression") { + object = object.object; + } + nodes.push(object); + break; + case "ObjectPattern": + for (const prop of param.properties) { + if (prop.type === "RestElement") { + extractIdentifiers(prop.argument, nodes); + } else { + extractIdentifiers(prop.value, nodes); + } + } + break; + case "ArrayPattern": + param.elements.forEach((element) => { + if (element) extractIdentifiers(element, nodes); + }); + break; + case "RestElement": + extractIdentifiers(param.argument, nodes); + break; + case "AssignmentPattern": + extractIdentifiers(param.left, nodes); + break; + } + return nodes; +} +function markKnownIds(name, knownIds) { + if (name in knownIds) { + knownIds[name]++; + } else { + knownIds[name] = 1; + } +} +function markScopeIdentifier(node, child, knownIds) { + const { name } = child; + if (node.scopeIds && node.scopeIds.has(name)) { + return; + } + markKnownIds(name, knownIds); + (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name); +} +const isFunctionType = (node) => { + return /Function(?:Expression|Declaration)$|Method$/.test(node.type); +}; +const isStaticProperty = (node) => node && (node.type === "ObjectProperty" || node.type === "ObjectMethod") && !node.computed; +const isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node; +function isReferenced(node, parent, grandparent) { + switch (parent.type) { + // yes: PARENT[NODE] + // yes: NODE.child + // no: parent.NODE + case "MemberExpression": + case "OptionalMemberExpression": + if (parent.property === node) { + return !!parent.computed; + } + return parent.object === node; + case "JSXMemberExpression": + return parent.object === node; + // no: let NODE = init; + // yes: let id = NODE; + case "VariableDeclarator": + return parent.init === node; + // yes: () => NODE + // no: (NODE) => {} + case "ArrowFunctionExpression": + return parent.body === node; + // no: class { #NODE; } + // no: class { get #NODE() {} } + // no: class { #NODE() {} } + // no: class { fn() { return this.#NODE; } } + case "PrivateName": + return false; + // no: class { NODE() {} } + // yes: class { [NODE]() {} } + // no: class { foo(NODE) {} } + case "ClassMethod": + case "ClassPrivateMethod": + case "ObjectMethod": + if (parent.key === node) { + return !!parent.computed; + } + return false; + // yes: { [NODE]: "" } + // no: { NODE: "" } + // depends: { NODE } + // depends: { key: NODE } + case "ObjectProperty": + if (parent.key === node) { + return !!parent.computed; + } + return !grandparent; + // no: class { NODE = value; } + // yes: class { [NODE] = value; } + // yes: class { key = NODE; } + case "ClassProperty": + if (parent.key === node) { + return !!parent.computed; + } + return true; + case "ClassPrivateProperty": + return parent.key !== node; + // no: class NODE {} + // yes: class Foo extends NODE {} + case "ClassDeclaration": + case "ClassExpression": + return parent.superClass === node; + // yes: left = NODE; + // no: NODE = right; + case "AssignmentExpression": + return parent.right === node; + // no: [NODE = foo] = []; + // yes: [foo = NODE] = []; + case "AssignmentPattern": + return parent.right === node; + // no: NODE: for (;;) {} + case "LabeledStatement": + return false; + // no: try {} catch (NODE) {} + case "CatchClause": + return false; + // no: function foo(...NODE) {} + case "RestElement": + return false; + case "BreakStatement": + case "ContinueStatement": + return false; + // no: function NODE() {} + // no: function foo(NODE) {} + case "FunctionDeclaration": + case "FunctionExpression": + return false; + // no: export NODE from "foo"; + // no: export * as NODE from "foo"; + case "ExportNamespaceSpecifier": + case "ExportDefaultSpecifier": + return false; + // no: export { foo as NODE }; + // yes: export { NODE as foo }; + // no: export { NODE as foo } from "foo"; + case "ExportSpecifier": + return parent.local === node; + // no: import NODE from "foo"; + // no: import * as NODE from "foo"; + // no: import { NODE as foo } from "foo"; + // no: import { foo as NODE } from "foo"; + // no: import NODE from "bar"; + case "ImportDefaultSpecifier": + case "ImportNamespaceSpecifier": + case "ImportSpecifier": + return false; + // no: import "foo" assert { NODE: "json" } + case "ImportAttribute": + return false; + // no: <div NODE="foo" /> + case "JSXAttribute": + return false; + // no: [NODE] = []; + // no: ({ NODE }) = []; + case "ObjectPattern": + case "ArrayPattern": + return false; + // no: new.NODE + // no: NODE.target + case "MetaProperty": + return false; + // yes: type X = { someProperty: NODE } + // no: type X = { NODE: OtherType } + case "ObjectTypeProperty": + return parent.key !== node; + // yes: enum X { Foo = NODE } + // no: enum X { NODE } + case "TSEnumMember": + return parent.id !== node; + // yes: { [NODE]: value } + // no: { NODE: value } + case "TSPropertySignature": + if (parent.key === node) { + return !!parent.computed; + } + return true; + } + return true; +} +const TS_NODE_TYPES = [ + "TSAsExpression", + // foo as number + "TSTypeAssertion", + // (<number>foo) + "TSNonNullExpression", + // foo! + "TSInstantiationExpression", + // foo<string> + "TSSatisfiesExpression" + // foo satisfies T +]; +function unwrapTSNode(node) { + if (TS_NODE_TYPES.includes(node.type)) { + return unwrapTSNode(node.expression); + } else { + return node; + } +} + +const isStaticExp = (p) => p.type === 4 && p.isStatic; +function isCoreComponent(tag) { + switch (tag) { + case "Teleport": + case "teleport": + return TELEPORT; + case "Suspense": + case "suspense": + return SUSPENSE; + case "KeepAlive": + case "keep-alive": + return KEEP_ALIVE; + case "BaseTransition": + case "base-transition": + return BASE_TRANSITION; + } +} +const nonIdentifierRE = /^\d|[^\$\w\xA0-\uFFFF]/; +const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name); +const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/; +const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/; +const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g; +const getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source; +const isMemberExpressionBrowser = (exp) => { + const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim()); + let state = 0 /* inMemberExp */; + let stateStack = []; + let currentOpenBracketCount = 0; + let currentOpenParensCount = 0; + let currentStringType = null; + for (let i = 0; i < path.length; i++) { + const char = path.charAt(i); + switch (state) { + case 0 /* inMemberExp */: + if (char === "[") { + stateStack.push(state); + state = 1 /* inBrackets */; + currentOpenBracketCount++; + } else if (char === "(") { + stateStack.push(state); + state = 2 /* inParens */; + currentOpenParensCount++; + } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) { + return false; + } + break; + case 1 /* inBrackets */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `[`) { + currentOpenBracketCount++; + } else if (char === `]`) { + if (!--currentOpenBracketCount) { + state = stateStack.pop(); + } + } + break; + case 2 /* inParens */: + if (char === `'` || char === `"` || char === "`") { + stateStack.push(state); + state = 3 /* inString */; + currentStringType = char; + } else if (char === `(`) { + currentOpenParensCount++; + } else if (char === `)`) { + if (i === path.length - 1) { + return false; + } + if (!--currentOpenParensCount) { + state = stateStack.pop(); + } + } + break; + case 3 /* inString */: + if (char === currentStringType) { + state = stateStack.pop(); + currentStringType = null; + } + break; + } + } + return !currentOpenBracketCount && !currentOpenParensCount; +}; +const isMemberExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + ret = unwrapTSNode(ret); + return ret.type === "MemberExpression" || ret.type === "OptionalMemberExpression" || ret.type === "Identifier" && ret.name !== "undefined"; + } catch (e) { + return false; + } +}; +const isMemberExpression = isMemberExpressionNode; +const fnExpRE = /^\s*(async\s*)?(\([^)]*?\)|[\w$_]+)\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/; +const isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp)); +const isFnExpressionNode = (exp, context) => { + try { + let ret = exp.ast || parser.parseExpression(getExpSource(exp), { + plugins: context.expressionPlugins ? [...context.expressionPlugins, "typescript"] : ["typescript"] + }); + if (ret.type === "Program") { + ret = ret.body[0]; + if (ret.type === "ExpressionStatement") { + ret = ret.expression; + } + } + ret = unwrapTSNode(ret); + return ret.type === "FunctionExpression" || ret.type === "ArrowFunctionExpression"; + } catch (e) { + return false; + } +}; +const isFnExpression = isFnExpressionNode; +function advancePositionWithClone(pos, source, numberOfCharacters = source.length) { + return advancePositionWithMutation( + { + offset: pos.offset, + line: pos.line, + column: pos.column + }, + source, + numberOfCharacters + ); +} +function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) { + let linesCount = 0; + let lastNewLinePos = -1; + for (let i = 0; i < numberOfCharacters; i++) { + if (source.charCodeAt(i) === 10) { + linesCount++; + lastNewLinePos = i; + } + } + pos.offset += numberOfCharacters; + pos.line += linesCount; + pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos; + return pos; +} +function assert(condition, msg) { + if (!condition) { + throw new Error(msg || `unexpected compiler condition`); + } +} +function findDir(node, name, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) { + return p; + } + } +} +function findProp(node, name, dynamicOnly = false, allowEmpty = false) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (dynamicOnly) continue; + if (p.name === name && (p.value || allowEmpty)) { + return p; + } + } else if (p.name === "bind" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) { + return p; + } + } +} +function isStaticArgOf(arg, name) { + return !!(arg && isStaticExp(arg) && arg.content === name); +} +function hasDynamicKeyVBind(node) { + return node.props.some( + (p) => p.type === 7 && p.name === "bind" && (!p.arg || // v-bind="obj" + p.arg.type !== 4 || // v-bind:[_ctx.foo] + !p.arg.isStatic) + // v-bind:[foo] + ); +} +function isText$1(node) { + return node.type === 5 || node.type === 2; +} +function isVSlot(p) { + return p.type === 7 && p.name === "slot"; +} +function isTemplateNode(node) { + return node.type === 1 && node.tagType === 3; +} +function isSlotOutlet(node) { + return node.type === 1 && node.tagType === 2; +} +const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]); +function getUnnormalizedProps(props, callPath = []) { + if (props && !shared.isString(props) && props.type === 14) { + const callee = props.callee; + if (!shared.isString(callee) && propsHelperSet.has(callee)) { + return getUnnormalizedProps( + props.arguments[0], + callPath.concat(props) + ); + } + } + return [props, callPath]; +} +function injectProp(node, prop, context) { + let propsWithInjection; + let props = node.type === 13 ? node.props : node.arguments[2]; + let callPath = []; + let parentCall; + if (props && !shared.isString(props) && props.type === 14) { + const ret = getUnnormalizedProps(props); + props = ret[0]; + callPath = ret[1]; + parentCall = callPath[callPath.length - 1]; + } + if (props == null || shared.isString(props)) { + propsWithInjection = createObjectExpression([prop]); + } else if (props.type === 14) { + const first = props.arguments[0]; + if (!shared.isString(first) && first.type === 15) { + if (!hasProp(prop, first)) { + first.properties.unshift(prop); + } + } else { + if (props.callee === TO_HANDLERS) { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + } else { + props.arguments.unshift(createObjectExpression([prop])); + } + } + !propsWithInjection && (propsWithInjection = props); + } else if (props.type === 15) { + if (!hasProp(prop, props)) { + props.properties.unshift(prop); + } + propsWithInjection = props; + } else { + propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [ + createObjectExpression([prop]), + props + ]); + if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) { + parentCall = callPath[callPath.length - 2]; + } + } + if (node.type === 13) { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.props = propsWithInjection; + } + } else { + if (parentCall) { + parentCall.arguments[0] = propsWithInjection; + } else { + node.arguments[2] = propsWithInjection; + } + } +} +function hasProp(prop, props) { + let result = false; + if (prop.key.type === 4) { + const propKeyName = prop.key.content; + result = props.properties.some( + (p) => p.key.type === 4 && p.key.content === propKeyName + ); + } + return result; +} +function toValidAssetId(name, type) { + return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => { + return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString(); + })}`; +} +function hasScopeRef(node, ids) { + if (!node || Object.keys(ids).length === 0) { + return false; + } + switch (node.type) { + case 1: + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) { + return true; + } + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 11: + if (hasScopeRef(node.source, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 9: + return node.branches.some((b) => hasScopeRef(b, ids)); + case 10: + if (hasScopeRef(node.condition, ids)) { + return true; + } + return node.children.some((c) => hasScopeRef(c, ids)); + case 4: + return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content]; + case 8: + return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids)); + case 5: + case 12: + return hasScopeRef(node.content, ids); + case 2: + case 3: + case 20: + return false; + default: + return false; + } +} +function getMemoedVNodeCall(node) { + if (node.type === 14 && node.callee === WITH_MEMO) { + return node.arguments[1].returns; + } else { + return node; + } +} +const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/; + +const defaultParserOptions = { + parseMode: "base", + ns: 0, + delimiters: [`{{`, `}}`], + getNamespace: () => 0, + isVoidTag: shared.NO, + isPreTag: shared.NO, + isIgnoreNewlineTag: shared.NO, + isCustomElement: shared.NO, + onError: defaultOnError, + onWarn: defaultOnWarn, + comments: false, + prefixIdentifiers: false +}; +let currentOptions = defaultParserOptions; +let currentRoot = null; +let currentInput = ""; +let currentOpenTag = null; +let currentProp = null; +let currentAttrValue = ""; +let currentAttrStartIndex = -1; +let currentAttrEndIndex = -1; +let inPre = 0; +let inVPre = false; +let currentVPreBoundary = null; +const stack = []; +const tokenizer = new Tokenizer(stack, { + onerr: emitError, + ontext(start, end) { + onText(getSlice(start, end), start, end); + }, + ontextentity(char, start, end) { + onText(char, start, end); + }, + oninterpolation(start, end) { + if (inVPre) { + return onText(getSlice(start, end), start, end); + } + let innerStart = start + tokenizer.delimiterOpen.length; + let innerEnd = end - tokenizer.delimiterClose.length; + while (isWhitespace(currentInput.charCodeAt(innerStart))) { + innerStart++; + } + while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) { + innerEnd--; + } + let exp = getSlice(innerStart, innerEnd); + if (exp.includes("&")) { + { + exp = decode_js.decodeHTML(exp); + } + } + addNode({ + type: 5, + content: createExp(exp, false, getLoc(innerStart, innerEnd)), + loc: getLoc(start, end) + }); + }, + onopentagname(start, end) { + const name = getSlice(start, end); + currentOpenTag = { + type: 1, + tag: name, + ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns), + tagType: 0, + // will be refined on tag close + props: [], + children: [], + loc: getLoc(start - 1, end), + codegenNode: void 0 + }; + }, + onopentagend(end) { + endOpenTag(end); + }, + onclosetag(start, end) { + const name = getSlice(start, end); + if (!currentOptions.isVoidTag(name)) { + let found = false; + for (let i = 0; i < stack.length; i++) { + const e = stack[i]; + if (e.tag.toLowerCase() === name.toLowerCase()) { + found = true; + if (i > 0) { + emitError(24, stack[0].loc.start.offset); + } + for (let j = 0; j <= i; j++) { + const el = stack.shift(); + onCloseTag(el, end, j < i); + } + break; + } + } + if (!found) { + emitError(23, backTrack(start, 60)); + } + } + }, + onselfclosingtag(end) { + const name = currentOpenTag.tag; + currentOpenTag.isSelfClosing = true; + endOpenTag(end); + if (stack[0] && stack[0].tag === name) { + onCloseTag(stack.shift(), end); + } + }, + onattribname(start, end) { + currentProp = { + type: 6, + name: getSlice(start, end), + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + }, + ondirname(start, end) { + const raw = getSlice(start, end); + const name = raw === "." || raw === ":" ? "bind" : raw === "@" ? "on" : raw === "#" ? "slot" : raw.slice(2); + if (!inVPre && name === "") { + emitError(26, start); + } + if (inVPre || name === "") { + currentProp = { + type: 6, + name: raw, + nameLoc: getLoc(start, end), + value: void 0, + loc: getLoc(start) + }; + } else { + currentProp = { + type: 7, + name, + rawName: raw, + exp: void 0, + arg: void 0, + modifiers: raw === "." ? [createSimpleExpression("prop")] : [], + loc: getLoc(start) + }; + if (name === "pre") { + inVPre = tokenizer.inVPre = true; + currentVPreBoundary = currentOpenTag; + const props = currentOpenTag.props; + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7) { + props[i] = dirToAttr(props[i]); + } + } + } + } + }, + ondirarg(start, end) { + if (start === end) return; + const arg = getSlice(start, end); + if (inVPre) { + currentProp.name += arg; + setLocEnd(currentProp.nameLoc, end); + } else { + const isStatic = arg[0] !== `[`; + currentProp.arg = createExp( + isStatic ? arg : arg.slice(1, -1), + isStatic, + getLoc(start, end), + isStatic ? 3 : 0 + ); + } + }, + ondirmodifier(start, end) { + const mod = getSlice(start, end); + if (inVPre) { + currentProp.name += "." + mod; + setLocEnd(currentProp.nameLoc, end); + } else if (currentProp.name === "slot") { + const arg = currentProp.arg; + if (arg) { + arg.content += "." + mod; + setLocEnd(arg.loc, end); + } + } else { + const exp = createSimpleExpression(mod, true, getLoc(start, end)); + currentProp.modifiers.push(exp); + } + }, + onattribdata(start, end) { + currentAttrValue += getSlice(start, end); + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribentity(char, start, end) { + currentAttrValue += char; + if (currentAttrStartIndex < 0) currentAttrStartIndex = start; + currentAttrEndIndex = end; + }, + onattribnameend(end) { + const start = currentProp.loc.start.offset; + const name = getSlice(start, end); + if (currentProp.type === 7) { + currentProp.rawName = name; + } + if (currentOpenTag.props.some( + (p) => (p.type === 7 ? p.rawName : p.name) === name + )) { + emitError(2, start); + } + }, + onattribend(quote, end) { + if (currentOpenTag && currentProp) { + setLocEnd(currentProp.loc, end); + if (quote !== 0) { + if (currentProp.type === 6) { + if (currentProp.name === "class") { + currentAttrValue = condense(currentAttrValue).trim(); + } + if (quote === 1 && !currentAttrValue) { + emitError(13, end); + } + currentProp.value = { + type: 2, + content: currentAttrValue, + loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1) + }; + if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") { + tokenizer.enterRCDATA(toCharCodes(`</template`), 0); + } + } else { + let expParseMode = 0 /* Normal */; + { + if (currentProp.name === "for") { + expParseMode = 3 /* Skip */; + } else if (currentProp.name === "slot") { + expParseMode = 1 /* Params */; + } else if (currentProp.name === "on" && currentAttrValue.includes(";")) { + expParseMode = 2 /* Statements */; + } + } + currentProp.exp = createExp( + currentAttrValue, + false, + getLoc(currentAttrStartIndex, currentAttrEndIndex), + 0, + expParseMode + ); + if (currentProp.name === "for") { + currentProp.forParseResult = parseForExpression(currentProp.exp); + } + let syncIndex = -1; + if (currentProp.name === "bind" && (syncIndex = currentProp.modifiers.findIndex( + (mod) => mod.content === "sync" + )) > -1 && checkCompatEnabled( + "COMPILER_V_BIND_SYNC", + currentOptions, + currentProp.loc, + currentProp.rawName + )) { + currentProp.name = "model"; + currentProp.modifiers.splice(syncIndex, 1); + } + } + } + if (currentProp.type !== 7 || currentProp.name !== "pre") { + currentOpenTag.props.push(currentProp); + } + } + currentAttrValue = ""; + currentAttrStartIndex = currentAttrEndIndex = -1; + }, + oncomment(start, end) { + if (currentOptions.comments) { + addNode({ + type: 3, + content: getSlice(start, end), + loc: getLoc(start - 4, end + 3) + }); + } + }, + onend() { + const end = currentInput.length; + if (tokenizer.state !== 1) { + switch (tokenizer.state) { + case 5: + case 8: + emitError(5, end); + break; + case 3: + case 4: + emitError( + 25, + tokenizer.sectionStart + ); + break; + case 28: + if (tokenizer.currentSequence === Sequences.CdataEnd) { + emitError(6, end); + } else { + emitError(7, end); + } + break; + case 6: + case 7: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + // " + case 20: + // ' + case 21: + emitError(9, end); + break; + } + } + for (let index = 0; index < stack.length; index++) { + onCloseTag(stack[index], end - 1); + emitError(24, stack[index].loc.start.offset); + } + }, + oncdata(start, end) { + if (stack[0].ns !== 0) { + onText(getSlice(start, end), start, end); + } else { + emitError(1, start - 9); + } + }, + onprocessinginstruction(start) { + if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + emitError( + 21, + start - 1 + ); + } + } +}); +const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; +const stripParensRE = /^\(|\)$/g; +function parseForExpression(input) { + const loc = input.loc; + const exp = input.content; + const inMatch = exp.match(forAliasRE); + if (!inMatch) return; + const [, LHS, RHS] = inMatch; + const createAliasExpression = (content, offset, asParam = false) => { + const start = loc.start.offset + offset; + const end = start + content.length; + return createExp( + content, + false, + getLoc(start, end), + 0, + asParam ? 1 /* Params */ : 0 /* Normal */ + ); + }; + const result = { + source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)), + value: void 0, + key: void 0, + index: void 0, + finalized: false + }; + let valueContent = LHS.trim().replace(stripParensRE, "").trim(); + const trimmedOffset = LHS.indexOf(valueContent); + const iteratorMatch = valueContent.match(forIteratorRE); + if (iteratorMatch) { + valueContent = valueContent.replace(forIteratorRE, "").trim(); + const keyContent = iteratorMatch[1].trim(); + let keyOffset; + if (keyContent) { + keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); + result.key = createAliasExpression(keyContent, keyOffset, true); + } + if (iteratorMatch[2]) { + const indexContent = iteratorMatch[2].trim(); + if (indexContent) { + result.index = createAliasExpression( + indexContent, + exp.indexOf( + indexContent, + result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length + ), + true + ); + } + } + } + if (valueContent) { + result.value = createAliasExpression(valueContent, trimmedOffset, true); + } + return result; +} +function getSlice(start, end) { + return currentInput.slice(start, end); +} +function endOpenTag(end) { + if (tokenizer.inSFCRoot) { + currentOpenTag.innerLoc = getLoc(end + 1, end + 1); + } + addNode(currentOpenTag); + const { tag, ns } = currentOpenTag; + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre++; + } + if (currentOptions.isVoidTag(tag)) { + onCloseTag(currentOpenTag, end); + } else { + stack.unshift(currentOpenTag); + if (ns === 1 || ns === 2) { + tokenizer.inXML = true; + } + } + currentOpenTag = null; +} +function onText(content, start, end) { + const parent = stack[0] || currentRoot; + const lastNode = parent.children[parent.children.length - 1]; + if (lastNode && lastNode.type === 2) { + lastNode.content += content; + setLocEnd(lastNode.loc, end); + } else { + parent.children.push({ + type: 2, + content, + loc: getLoc(start, end) + }); + } +} +function onCloseTag(el, end, isImplied = false) { + if (isImplied) { + setLocEnd(el.loc, backTrack(end, 60)); + } else { + setLocEnd(el.loc, lookAhead(end, 62) + 1); + } + if (tokenizer.inSFCRoot) { + if (el.children.length) { + el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end); + } else { + el.innerLoc.end = shared.extend({}, el.innerLoc.start); + } + el.innerLoc.source = getSlice( + el.innerLoc.start.offset, + el.innerLoc.end.offset + ); + } + const { tag, ns, children } = el; + if (!inVPre) { + if (tag === "slot") { + el.tagType = 2; + } else if (isFragmentTemplate(el)) { + el.tagType = 3; + } else if (isComponent(el)) { + el.tagType = 1; + } + } + if (!tokenizer.inRCDATA) { + el.children = condenseWhitespace(children); + } + if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) { + const first = children[0]; + if (first && first.type === 2) { + first.content = first.content.replace(/^\r?\n/, ""); + } + } + if (ns === 0 && currentOptions.isPreTag(tag)) { + inPre--; + } + if (currentVPreBoundary === el) { + inVPre = tokenizer.inVPre = false; + currentVPreBoundary = null; + } + if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) { + tokenizer.inXML = false; + } + { + const props = el.props; + if (!tokenizer.inSFCRoot && isCompatEnabled( + "COMPILER_NATIVE_TEMPLATE", + currentOptions + ) && el.tag === "template" && !isFragmentTemplate(el)) { + const parent = stack[0] || currentRoot; + const index = parent.children.indexOf(el); + parent.children.splice(index, 1, ...el.children); + } + const inlineTemplateProp = props.find( + (p) => p.type === 6 && p.name === "inline-template" + ); + if (inlineTemplateProp && checkCompatEnabled( + "COMPILER_INLINE_TEMPLATE", + currentOptions, + inlineTemplateProp.loc + ) && el.children.length) { + inlineTemplateProp.value = { + type: 2, + content: getSlice( + el.children[0].loc.start.offset, + el.children[el.children.length - 1].loc.end.offset + ), + loc: inlineTemplateProp.loc + }; + } + } +} +function lookAhead(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++; + return i; +} +function backTrack(index, c) { + let i = index; + while (currentInput.charCodeAt(i) !== c && i >= 0) i--; + return i; +} +const specialTemplateDir = /* @__PURE__ */ new Set(["if", "else", "else-if", "for", "slot"]); +function isFragmentTemplate({ tag, props }) { + if (tag === "template") { + for (let i = 0; i < props.length; i++) { + if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) { + return true; + } + } + } + return false; +} +function isComponent({ tag, props }) { + if (currentOptions.isCustomElement(tag)) { + return false; + } + if (tag === "component" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) { + return true; + } + for (let i = 0; i < props.length; i++) { + const p = props[i]; + if (p.type === 6) { + if (p.name === "is" && p.value) { + if (p.value.content.startsWith("vue:")) { + return true; + } else if (checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + } else if (// :is on plain element - only treat as component in compat mode + p.name === "bind" && isStaticArgOf(p.arg, "is") && checkCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + currentOptions, + p.loc + )) { + return true; + } + } + return false; +} +function isUpperCase(c) { + return c > 64 && c < 91; +} +const windowsNewlineRE = /\r\n/g; +function condenseWhitespace(nodes, tag) { + const shouldCondense = currentOptions.whitespace !== "preserve"; + let removedWhitespace = false; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (node.type === 2) { + if (!inPre) { + if (isAllWhitespace(node.content)) { + const prev = nodes[i - 1] && nodes[i - 1].type; + const next = nodes[i + 1] && nodes[i + 1].type; + if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) { + removedWhitespace = true; + nodes[i] = null; + } else { + node.content = " "; + } + } else if (shouldCondense) { + node.content = condense(node.content); + } + } else { + node.content = node.content.replace(windowsNewlineRE, "\n"); + } + } + } + return removedWhitespace ? nodes.filter(Boolean) : nodes; +} +function isAllWhitespace(str) { + for (let i = 0; i < str.length; i++) { + if (!isWhitespace(str.charCodeAt(i))) { + return false; + } + } + return true; +} +function hasNewlineChar(str) { + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c === 10 || c === 13) { + return true; + } + } + return false; +} +function condense(str) { + let ret = ""; + let prevCharIsWhitespace = false; + for (let i = 0; i < str.length; i++) { + if (isWhitespace(str.charCodeAt(i))) { + if (!prevCharIsWhitespace) { + ret += " "; + prevCharIsWhitespace = true; + } + } else { + ret += str[i]; + prevCharIsWhitespace = false; + } + } + return ret; +} +function addNode(node) { + (stack[0] || currentRoot).children.push(node); +} +function getLoc(start, end) { + return { + start: tokenizer.getPos(start), + // @ts-expect-error allow late attachment + end: end == null ? end : tokenizer.getPos(end), + // @ts-expect-error allow late attachment + source: end == null ? end : getSlice(start, end) + }; +} +function cloneLoc(loc) { + return getLoc(loc.start.offset, loc.end.offset); +} +function setLocEnd(loc, end) { + loc.end = tokenizer.getPos(end); + loc.source = getSlice(loc.start.offset, end); +} +function dirToAttr(dir) { + const attr = { + type: 6, + name: dir.rawName, + nameLoc: getLoc( + dir.loc.start.offset, + dir.loc.start.offset + dir.rawName.length + ), + value: void 0, + loc: dir.loc + }; + if (dir.exp) { + const loc = dir.exp.loc; + if (loc.end.offset < dir.loc.end.offset) { + loc.start.offset--; + loc.start.column--; + loc.end.offset++; + loc.end.column++; + } + attr.value = { + type: 2, + content: dir.exp.content, + loc + }; + } + return attr; +} +function createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) { + const exp = createSimpleExpression(content, isStatic, loc, constType); + if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) { + if (isSimpleIdentifier(content)) { + exp.ast = null; + return exp; + } + try { + const plugins = currentOptions.expressionPlugins; + const options = { + plugins: plugins ? [...plugins, "typescript"] : ["typescript"] + }; + if (parseMode === 2 /* Statements */) { + exp.ast = parser.parse(` ${content} `, options).program; + } else if (parseMode === 1 /* Params */) { + exp.ast = parser.parseExpression(`(${content})=>{}`, options); + } else { + exp.ast = parser.parseExpression(`(${content})`, options); + } + } catch (e) { + exp.ast = false; + emitError(45, loc.start.offset, e.message); + } + } + return exp; +} +function emitError(code, index, message) { + currentOptions.onError( + createCompilerError(code, getLoc(index, index), void 0, message) + ); +} +function reset() { + tokenizer.reset(); + currentOpenTag = null; + currentProp = null; + currentAttrValue = ""; + currentAttrStartIndex = -1; + currentAttrEndIndex = -1; + stack.length = 0; +} +function baseParse(input, options) { + reset(); + currentInput = input; + currentOptions = shared.extend({}, defaultParserOptions); + if (options) { + let key; + for (key in options) { + if (options[key] != null) { + currentOptions[key] = options[key]; + } + } + } + tokenizer.mode = currentOptions.parseMode === "html" ? 1 : currentOptions.parseMode === "sfc" ? 2 : 0; + tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2; + const delimiters = options && options.delimiters; + if (delimiters) { + tokenizer.delimiterOpen = toCharCodes(delimiters[0]); + tokenizer.delimiterClose = toCharCodes(delimiters[1]); + } + const root = currentRoot = createRoot([], input); + tokenizer.parse(currentInput); + root.loc = getLoc(0, input.length); + root.children = condenseWhitespace(root.children); + currentRoot = null; + return root; +} + +function cacheStatic(root, context) { + walk( + root, + void 0, + context, + // Root node is unfortunately non-hoistable due to potential parent + // fallthrough attributes. + isSingleElementRoot(root, root.children[0]) + ); +} +function isSingleElementRoot(root, child) { + const { children } = root; + return children.length === 1 && child.type === 1 && !isSlotOutlet(child); +} +function walk(node, parent, context, doNotHoistNode = false, inFor = false) { + const { children } = node; + const toCache = []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.type === 1 && child.tagType === 0) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType > 0) { + if (constantType >= 2) { + child.codegenNode.patchFlag = -1; + toCache.push(child); + continue; + } + } else { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + const flag = codegenNode.patchFlag; + if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) { + const props = getNodeProps(child); + if (props) { + codegenNode.props = context.hoist(props); + } + } + if (codegenNode.dynamicProps) { + codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps); + } + } + } + } else if (child.type === 12) { + const constantType = doNotHoistNode ? 0 : getConstantType(child, context); + if (constantType >= 2) { + toCache.push(child); + continue; + } + } + if (child.type === 1) { + const isComponent = child.tagType === 1; + if (isComponent) { + context.scopes.vSlot++; + } + walk(child, node, context, false, inFor); + if (isComponent) { + context.scopes.vSlot--; + } + } else if (child.type === 11) { + walk(child, node, context, child.children.length === 1, true); + } else if (child.type === 9) { + for (let i2 = 0; i2 < child.branches.length; i2++) { + walk( + child.branches[i2], + node, + context, + child.branches[i2].children.length === 1, + inFor + ); + } + } + } + let cachedAsArray = false; + if (toCache.length === children.length && node.type === 1) { + if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) { + node.codegenNode.children = getCacheExpression( + createArrayExpression(node.codegenNode.children) + ); + cachedAsArray = true; + } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) { + const slot = getSlotNode(node.codegenNode, "default"); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) { + const slotName = findDir(node, "slot", true); + const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg); + if (slot) { + slot.returns = getCacheExpression( + createArrayExpression(slot.returns) + ); + cachedAsArray = true; + } + } + } + if (!cachedAsArray) { + for (const child of toCache) { + child.codegenNode = context.cache(child.codegenNode); + } + } + function getCacheExpression(value) { + const exp = context.cache(value); + if (inFor && context.hmr) { + exp.needArraySpread = true; + } + return exp; + } + function getSlotNode(node2, name) { + if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) { + const slot = node2.children.properties.find( + (p) => p.key === name || p.key.content === name + ); + return slot && slot.value; + } + } + if (toCache.length && context.transformHoist) { + context.transformHoist(children, context, node); + } +} +function getConstantType(node, context) { + const { constantCache } = context; + switch (node.type) { + case 1: + if (node.tagType !== 0) { + return 0; + } + const cached = constantCache.get(node); + if (cached !== void 0) { + return cached; + } + const codegenNode = node.codegenNode; + if (codegenNode.type !== 13) { + return 0; + } + if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject" && node.tag !== "math") { + return 0; + } + if (codegenNode.patchFlag === void 0) { + let returnType2 = 3; + const generatedPropsType = getGeneratedPropsConstantType(node, context); + if (generatedPropsType === 0) { + constantCache.set(node, 0); + return 0; + } + if (generatedPropsType < returnType2) { + returnType2 = generatedPropsType; + } + for (let i = 0; i < node.children.length; i++) { + const childType = getConstantType(node.children[i], context); + if (childType === 0) { + constantCache.set(node, 0); + return 0; + } + if (childType < returnType2) { + returnType2 = childType; + } + } + if (returnType2 > 1) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7 && p.name === "bind" && p.exp) { + const expType = getConstantType(p.exp, context); + if (expType === 0) { + constantCache.set(node, 0); + return 0; + } + if (expType < returnType2) { + returnType2 = expType; + } + } + } + } + if (codegenNode.isBlock) { + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 7) { + constantCache.set(node, 0); + return 0; + } + } + context.removeHelper(OPEN_BLOCK); + context.removeHelper( + getVNodeBlockHelper(context.inSSR, codegenNode.isComponent) + ); + codegenNode.isBlock = false; + context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent)); + } + constantCache.set(node, returnType2); + return returnType2; + } else { + constantCache.set(node, 0); + return 0; + } + case 2: + case 3: + return 3; + case 9: + case 11: + case 10: + return 0; + case 5: + case 12: + return getConstantType(node.content, context); + case 4: + return node.constType; + case 8: + let returnType = 3; + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child) || shared.isSymbol(child)) { + continue; + } + const childType = getConstantType(child, context); + if (childType === 0) { + return 0; + } else if (childType < returnType) { + returnType = childType; + } + } + return returnType; + case 20: + return 2; + default: + return 0; + } +} +const allowHoistedHelperSet = /* @__PURE__ */ new Set([ + NORMALIZE_CLASS, + NORMALIZE_STYLE, + NORMALIZE_PROPS, + GUARD_REACTIVE_PROPS +]); +function getConstantTypeOfHelperCall(value, context) { + if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) { + const arg = value.arguments[0]; + if (arg.type === 4) { + return getConstantType(arg, context); + } else if (arg.type === 14) { + return getConstantTypeOfHelperCall(arg, context); + } + } + return 0; +} +function getGeneratedPropsConstantType(node, context) { + let returnType = 3; + const props = getNodeProps(node); + if (props && props.type === 15) { + const { properties } = props; + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + const keyType = getConstantType(key, context); + if (keyType === 0) { + return keyType; + } + if (keyType < returnType) { + returnType = keyType; + } + let valueType; + if (value.type === 4) { + valueType = getConstantType(value, context); + } else if (value.type === 14) { + valueType = getConstantTypeOfHelperCall(value, context); + } else { + valueType = 0; + } + if (valueType === 0) { + return valueType; + } + if (valueType < returnType) { + returnType = valueType; + } + } + } + return returnType; +} +function getNodeProps(node) { + const codegenNode = node.codegenNode; + if (codegenNode.type === 13) { + return codegenNode.props; + } +} + +function createTransformContext(root, { + filename = "", + prefixIdentifiers = false, + hoistStatic = false, + hmr = false, + cacheHandlers = false, + nodeTransforms = [], + directiveTransforms = {}, + transformHoist = null, + isBuiltInComponent = shared.NOOP, + isCustomElement = shared.NOOP, + expressionPlugins = [], + scopeId = null, + slotted = true, + ssr = false, + inSSR = false, + ssrCssVars = ``, + bindingMetadata = shared.EMPTY_OBJ, + inline = false, + isTS = false, + onError = defaultOnError, + onWarn = defaultOnWarn, + compatConfig +}) { + const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/); + const context = { + // options + filename, + selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])), + prefixIdentifiers, + hoistStatic, + hmr, + cacheHandlers, + nodeTransforms, + directiveTransforms, + transformHoist, + isBuiltInComponent, + isCustomElement, + expressionPlugins, + scopeId, + slotted, + ssr, + inSSR, + ssrCssVars, + bindingMetadata, + inline, + isTS, + onError, + onWarn, + compatConfig, + // state + root, + helpers: /* @__PURE__ */ new Map(), + components: /* @__PURE__ */ new Set(), + directives: /* @__PURE__ */ new Set(), + hoists: [], + imports: [], + cached: [], + constantCache: /* @__PURE__ */ new WeakMap(), + temps: 0, + identifiers: /* @__PURE__ */ Object.create(null), + scopes: { + vFor: 0, + vSlot: 0, + vPre: 0, + vOnce: 0 + }, + parent: null, + grandParent: null, + currentNode: root, + childIndex: 0, + inVOnce: false, + // methods + helper(name) { + const count = context.helpers.get(name) || 0; + context.helpers.set(name, count + 1); + return name; + }, + removeHelper(name) { + const count = context.helpers.get(name); + if (count) { + const currentCount = count - 1; + if (!currentCount) { + context.helpers.delete(name); + } else { + context.helpers.set(name, currentCount); + } + } + }, + helperString(name) { + return `_${helperNameMap[context.helper(name)]}`; + }, + replaceNode(node) { + context.parent.children[context.childIndex] = context.currentNode = node; + }, + removeNode(node) { + const list = context.parent.children; + const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1; + if (!node || node === context.currentNode) { + context.currentNode = null; + context.onNodeRemoved(); + } else { + if (context.childIndex > removalIndex) { + context.childIndex--; + context.onNodeRemoved(); + } + } + context.parent.children.splice(removalIndex, 1); + }, + onNodeRemoved: shared.NOOP, + addIdentifiers(exp) { + { + if (shared.isString(exp)) { + addId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(addId); + } else if (exp.type === 4) { + addId(exp.content); + } + } + }, + removeIdentifiers(exp) { + { + if (shared.isString(exp)) { + removeId(exp); + } else if (exp.identifiers) { + exp.identifiers.forEach(removeId); + } else if (exp.type === 4) { + removeId(exp.content); + } + } + }, + hoist(exp) { + if (shared.isString(exp)) exp = createSimpleExpression(exp); + context.hoists.push(exp); + const identifier = createSimpleExpression( + `_hoisted_${context.hoists.length}`, + false, + exp.loc, + 2 + ); + identifier.hoisted = exp; + return identifier; + }, + cache(exp, isVNode = false, inVOnce = false) { + const cacheExp = createCacheExpression( + context.cached.length, + exp, + isVNode, + inVOnce + ); + context.cached.push(cacheExp); + return cacheExp; + } + }; + { + context.filters = /* @__PURE__ */ new Set(); + } + function addId(id) { + const { identifiers } = context; + if (identifiers[id] === void 0) { + identifiers[id] = 0; + } + identifiers[id]++; + } + function removeId(id) { + context.identifiers[id]--; + } + return context; +} +function transform(root, options) { + const context = createTransformContext(root, options); + traverseNode(root, context); + if (options.hoistStatic) { + cacheStatic(root, context); + } + if (!options.ssr) { + createRootCodegen(root, context); + } + root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]); + root.components = [...context.components]; + root.directives = [...context.directives]; + root.imports = context.imports; + root.hoists = context.hoists; + root.temps = context.temps; + root.cached = context.cached; + root.transformed = true; + { + root.filters = [...context.filters]; + } +} +function createRootCodegen(root, context) { + const { helper } = context; + const { children } = root; + if (children.length === 1) { + const child = children[0]; + if (isSingleElementRoot(root, child) && child.codegenNode) { + const codegenNode = child.codegenNode; + if (codegenNode.type === 13) { + convertToBlock(codegenNode, context); + } + root.codegenNode = codegenNode; + } else { + root.codegenNode = child; + } + } else if (children.length > 1) { + let patchFlag = 64; + root.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + root.children, + patchFlag, + void 0, + void 0, + true, + void 0, + false + ); + } else ; +} +function traverseChildren(parent, context) { + let i = 0; + const nodeRemoved = () => { + i--; + }; + for (; i < parent.children.length; i++) { + const child = parent.children[i]; + if (shared.isString(child)) continue; + context.grandParent = context.parent; + context.parent = parent; + context.childIndex = i; + context.onNodeRemoved = nodeRemoved; + traverseNode(child, context); + } +} +function traverseNode(node, context) { + context.currentNode = node; + const { nodeTransforms } = context; + const exitFns = []; + for (let i2 = 0; i2 < nodeTransforms.length; i2++) { + const onExit = nodeTransforms[i2](node, context); + if (onExit) { + if (shared.isArray(onExit)) { + exitFns.push(...onExit); + } else { + exitFns.push(onExit); + } + } + if (!context.currentNode) { + return; + } else { + node = context.currentNode; + } + } + switch (node.type) { + case 3: + if (!context.ssr) { + context.helper(CREATE_COMMENT); + } + break; + case 5: + if (!context.ssr) { + context.helper(TO_DISPLAY_STRING); + } + break; + // for container types, further traverse downwards + case 9: + for (let i2 = 0; i2 < node.branches.length; i2++) { + traverseNode(node.branches[i2], context); + } + break; + case 10: + case 11: + case 1: + case 0: + traverseChildren(node, context); + break; + } + context.currentNode = node; + let i = exitFns.length; + while (i--) { + exitFns[i](); + } +} +function createStructuralDirectiveTransform(name, fn) { + const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n); + return (node, context) => { + if (node.type === 1) { + const { props } = node; + if (node.tagType === 3 && props.some(isVSlot)) { + return; + } + const exitFns = []; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 7 && matches(prop.name)) { + props.splice(i, 1); + i--; + const onExit = fn(node, prop, context); + if (onExit) exitFns.push(onExit); + } + } + return exitFns; + } + }; +} + +const PURE_ANNOTATION = `/*@__PURE__*/`; +const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`; +function createCodegenContext(ast, { + mode = "function", + prefixIdentifiers = mode === "module", + sourceMap = false, + filename = `template.vue.html`, + scopeId = null, + optimizeImports = false, + runtimeGlobalName = `Vue`, + runtimeModuleName = `vue`, + ssrRuntimeModuleName = "vue/server-renderer", + ssr = false, + isTS = false, + inSSR = false +}) { + const context = { + mode, + prefixIdentifiers, + sourceMap, + filename, + scopeId, + optimizeImports, + runtimeGlobalName, + runtimeModuleName, + ssrRuntimeModuleName, + ssr, + isTS, + inSSR, + source: ast.source, + code: ``, + column: 1, + line: 1, + offset: 0, + indentLevel: 0, + pure: false, + map: void 0, + helper(key) { + return `_${helperNameMap[key]}`; + }, + push(code, newlineIndex = -2 /* None */, node) { + context.code += code; + if (context.map) { + if (node) { + let name; + if (node.type === 4 && !node.isStatic) { + const content = node.content.replace(/^_ctx\./, ""); + if (content !== node.content && isSimpleIdentifier(content)) { + name = content; + } + } + addMapping(node.loc.start, name); + } + if (newlineIndex === -3 /* Unknown */) { + advancePositionWithMutation(context, code); + } else { + context.offset += code.length; + if (newlineIndex === -2 /* None */) { + context.column += code.length; + } else { + if (newlineIndex === -1 /* End */) { + newlineIndex = code.length - 1; + } + context.line++; + context.column = code.length - newlineIndex; + } + } + if (node && node.loc !== locStub) { + addMapping(node.loc.end); + } + } + }, + indent() { + newline(++context.indentLevel); + }, + deindent(withoutNewLine = false) { + if (withoutNewLine) { + --context.indentLevel; + } else { + newline(--context.indentLevel); + } + }, + newline() { + newline(context.indentLevel); + } + }; + function newline(n) { + context.push("\n" + ` `.repeat(n), 0 /* Start */); + } + function addMapping(loc, name = null) { + const { _names, _mappings } = context.map; + if (name !== null && !_names.has(name)) _names.add(name); + _mappings.add({ + originalLine: loc.line, + originalColumn: loc.column - 1, + // source-map column is 0 based + generatedLine: context.line, + generatedColumn: context.column - 1, + source: filename, + name + }); + } + if (sourceMap) { + context.map = new sourceMapJs.SourceMapGenerator(); + context.map.setSourceContent(filename, context.source); + context.map._sources.add(filename); + } + return context; +} +function generate(ast, options = {}) { + const context = createCodegenContext(ast, options); + if (options.onContextCreated) options.onContextCreated(context); + const { + mode, + push, + prefixIdentifiers, + indent, + deindent, + newline, + scopeId, + ssr + } = context; + const helpers = Array.from(ast.helpers); + const hasHelpers = helpers.length > 0; + const useWithBlock = !prefixIdentifiers && mode !== "module"; + const genScopeId = scopeId != null && mode === "module"; + const isSetupInlined = !!options.inline; + const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; + if (mode === "module") { + genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined); + } else { + genFunctionPreamble(ast, preambleContext); + } + const functionName = ssr ? `ssrRender` : `render`; + const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"]; + if (options.bindingMetadata && !options.inline) { + args.push("$props", "$setup", "$data", "$options"); + } + const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(",") : args.join(", "); + if (isSetupInlined) { + push(`(${signature}) => {`); + } else { + push(`function ${functionName}(${signature}) {`); + } + indent(); + if (useWithBlock) { + push(`with (_ctx) {`); + indent(); + if (hasHelpers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = _Vue +`, + -1 /* End */ + ); + newline(); + } + } + if (ast.components.length) { + genAssets(ast.components, "component", context); + if (ast.directives.length || ast.temps > 0) { + newline(); + } + } + if (ast.directives.length) { + genAssets(ast.directives, "directive", context); + if (ast.temps > 0) { + newline(); + } + } + if (ast.filters && ast.filters.length) { + newline(); + genAssets(ast.filters, "filter", context); + newline(); + } + if (ast.temps > 0) { + push(`let `); + for (let i = 0; i < ast.temps; i++) { + push(`${i > 0 ? `, ` : ``}_temp${i}`); + } + } + if (ast.components.length || ast.directives.length || ast.temps) { + push(` +`, 0 /* Start */); + newline(); + } + if (!ssr) { + push(`return `); + } + if (ast.codegenNode) { + genNode(ast.codegenNode, context); + } else { + push(`null`); + } + if (useWithBlock) { + deindent(); + push(`}`); + } + deindent(); + push(`}`); + return { + ast, + code: context.code, + preamble: isSetupInlined ? preambleContext.code : ``, + map: context.map ? context.map.toJSON() : void 0 + }; +} +function genFunctionPreamble(ast, context) { + const { + ssr, + prefixIdentifiers, + push, + newline, + runtimeModuleName, + runtimeGlobalName, + ssrRuntimeModuleName + } = context; + const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName; + const helpers = Array.from(ast.helpers); + if (helpers.length > 0) { + if (prefixIdentifiers) { + push( + `const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding} +`, + -1 /* End */ + ); + } else { + push(`const _Vue = ${VueBinding} +`, -1 /* End */); + if (ast.hoists.length) { + const staticHelpers = [ + CREATE_VNODE, + CREATE_ELEMENT_VNODE, + CREATE_COMMENT, + CREATE_TEXT, + CREATE_STATIC + ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", "); + push(`const { ${staticHelpers} } = _Vue +`, -1 /* End */); + } + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}") +`, + -1 /* End */ + ); + } + genHoists(ast.hoists, context); + newline(); + push(`return `); +} +function genModulePreamble(ast, context, genScopeId, inline) { + const { + push, + newline, + optimizeImports, + runtimeModuleName, + ssrRuntimeModuleName + } = context; + if (ast.helpers.size) { + const helpers = Array.from(ast.helpers); + if (optimizeImports) { + push( + `import { ${helpers.map((s) => helperNameMap[s]).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + push( + ` +// Binding optimization for webpack code-split +const ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(", ")} +`, + -1 /* End */ + ); + } else { + push( + `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from ${JSON.stringify(runtimeModuleName)} +`, + -1 /* End */ + ); + } + } + if (ast.ssrHelpers && ast.ssrHelpers.length) { + push( + `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(", ")} } from "${ssrRuntimeModuleName}" +`, + -1 /* End */ + ); + } + if (ast.imports.length) { + genImports(ast.imports, context); + newline(); + } + genHoists(ast.hoists, context); + newline(); + if (!inline) { + push(`export `); + } +} +function genAssets(assets, type, { helper, push, newline, isTS }) { + const resolver = helper( + type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE + ); + for (let i = 0; i < assets.length; i++) { + let id = assets[i]; + const maybeSelfReference = id.endsWith("__self"); + if (maybeSelfReference) { + id = id.slice(0, -6); + } + push( + `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}` + ); + if (i < assets.length - 1) { + newline(); + } + } +} +function genHoists(hoists, context) { + if (!hoists.length) { + return; + } + context.pure = true; + const { push, newline } = context; + newline(); + for (let i = 0; i < hoists.length; i++) { + const exp = hoists[i]; + if (exp) { + push(`const _hoisted_${i + 1} = `); + genNode(exp, context); + newline(); + } + } + context.pure = false; +} +function genImports(importsOptions, context) { + if (!importsOptions.length) { + return; + } + importsOptions.forEach((imports) => { + context.push(`import `); + genNode(imports.exp, context); + context.push(` from '${imports.path}'`); + context.newline(); + }); +} +function isText(n) { + return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8; +} +function genNodeListAsArray(nodes, context) { + const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n)); + context.push(`[`); + multilines && context.indent(); + genNodeList(nodes, context, multilines); + multilines && context.deindent(); + context.push(`]`); +} +function genNodeList(nodes, context, multilines = false, comma = true) { + const { push, newline } = context; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (shared.isString(node)) { + push(node, -3 /* Unknown */); + } else if (shared.isArray(node)) { + genNodeListAsArray(node, context); + } else { + genNode(node, context); + } + if (i < nodes.length - 1) { + if (multilines) { + comma && push(","); + newline(); + } else { + comma && push(", "); + } + } + } +} +function genNode(node, context) { + if (shared.isString(node)) { + context.push(node, -3 /* Unknown */); + return; + } + if (shared.isSymbol(node)) { + context.push(context.helper(node)); + return; + } + switch (node.type) { + case 1: + case 9: + case 11: + genNode(node.codegenNode, context); + break; + case 2: + genText(node, context); + break; + case 4: + genExpression(node, context); + break; + case 5: + genInterpolation(node, context); + break; + case 12: + genNode(node.codegenNode, context); + break; + case 8: + genCompoundExpression(node, context); + break; + case 3: + genComment(node, context); + break; + case 13: + genVNodeCall(node, context); + break; + case 14: + genCallExpression(node, context); + break; + case 15: + genObjectExpression(node, context); + break; + case 17: + genArrayExpression(node, context); + break; + case 18: + genFunctionExpression(node, context); + break; + case 19: + genConditionalExpression(node, context); + break; + case 20: + genCacheExpression(node, context); + break; + case 21: + genNodeList(node.body, context, true, false); + break; + // SSR only types + case 22: + genTemplateLiteral(node, context); + break; + case 23: + genIfStatement(node, context); + break; + case 24: + genAssignmentExpression(node, context); + break; + case 25: + genSequenceExpression(node, context); + break; + case 26: + genReturnStatement(node, context); + break; + } +} +function genText(node, context) { + context.push(JSON.stringify(node.content), -3 /* Unknown */, node); +} +function genExpression(node, context) { + const { content, isStatic } = node; + context.push( + isStatic ? JSON.stringify(content) : content, + -3 /* Unknown */, + node + ); +} +function genInterpolation(node, context) { + const { push, helper, pure } = context; + if (pure) push(PURE_ANNOTATION); + push(`${helper(TO_DISPLAY_STRING)}(`); + genNode(node.content, context); + push(`)`); +} +function genCompoundExpression(node, context) { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (shared.isString(child)) { + context.push(child, -3 /* Unknown */); + } else { + genNode(child, context); + } + } +} +function genExpressionAsPropertyKey(node, context) { + const { push } = context; + if (node.type === 8) { + push(`[`); + genCompoundExpression(node, context); + push(`]`); + } else if (node.isStatic) { + const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content); + push(text, -2 /* None */, node); + } else { + push(`[${node.content}]`, -3 /* Unknown */, node); + } +} +function genComment(node, context) { + const { push, helper, pure } = context; + if (pure) { + push(PURE_ANNOTATION); + } + push( + `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, + -3 /* Unknown */, + node + ); +} +function genVNodeCall(node, context) { + const { push, helper, pure } = context; + const { + tag, + props, + children, + patchFlag, + dynamicProps, + directives, + isBlock, + disableTracking, + isComponent + } = node; + let patchFlagString; + if (patchFlag) { + { + patchFlagString = String(patchFlag); + } + } + if (directives) { + push(helper(WITH_DIRECTIVES) + `(`); + } + if (isBlock) { + push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `); + } + if (pure) { + push(PURE_ANNOTATION); + } + const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent); + push(helper(callHelper) + `(`, -2 /* None */, node); + genNodeList( + genNullableArgs([tag, props, children, patchFlagString, dynamicProps]), + context + ); + push(`)`); + if (isBlock) { + push(`)`); + } + if (directives) { + push(`, `); + genNode(directives, context); + push(`)`); + } +} +function genNullableArgs(args) { + let i = args.length; + while (i--) { + if (args[i] != null) break; + } + return args.slice(0, i + 1).map((arg) => arg || `null`); +} +function genCallExpression(node, context) { + const { push, helper, pure } = context; + const callee = shared.isString(node.callee) ? node.callee : helper(node.callee); + if (pure) { + push(PURE_ANNOTATION); + } + push(callee + `(`, -2 /* None */, node); + genNodeList(node.arguments, context); + push(`)`); +} +function genObjectExpression(node, context) { + const { push, indent, deindent, newline } = context; + const { properties } = node; + if (!properties.length) { + push(`{}`, -2 /* None */, node); + return; + } + const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4); + push(multilines ? `{` : `{ `); + multilines && indent(); + for (let i = 0; i < properties.length; i++) { + const { key, value } = properties[i]; + genExpressionAsPropertyKey(key, context); + push(`: `); + genNode(value, context); + if (i < properties.length - 1) { + push(`,`); + newline(); + } + } + multilines && deindent(); + push(multilines ? `}` : ` }`); +} +function genArrayExpression(node, context) { + genNodeListAsArray(node.elements, context); +} +function genFunctionExpression(node, context) { + const { push, indent, deindent } = context; + const { params, returns, body, newline, isSlot } = node; + if (isSlot) { + push(`_${helperNameMap[WITH_CTX]}(`); + } + push(`(`, -2 /* None */, node); + if (shared.isArray(params)) { + genNodeList(params, context); + } else if (params) { + genNode(params, context); + } + push(`) => `); + if (newline || body) { + push(`{`); + indent(); + } + if (returns) { + if (newline) { + push(`return `); + } + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } + } else if (body) { + genNode(body, context); + } + if (newline || body) { + deindent(); + push(`}`); + } + if (isSlot) { + if (node.isNonScopedSlot) { + push(`, undefined, true`); + } + push(`)`); + } +} +function genConditionalExpression(node, context) { + const { test, consequent, alternate, newline: needNewline } = node; + const { push, indent, deindent, newline } = context; + if (test.type === 4) { + const needsParens = !isSimpleIdentifier(test.content); + needsParens && push(`(`); + genExpression(test, context); + needsParens && push(`)`); + } else { + push(`(`); + genNode(test, context); + push(`)`); + } + needNewline && indent(); + context.indentLevel++; + needNewline || push(` `); + push(`? `); + genNode(consequent, context); + context.indentLevel--; + needNewline && newline(); + needNewline || push(` `); + push(`: `); + const isNested = alternate.type === 19; + if (!isNested) { + context.indentLevel++; + } + genNode(alternate, context); + if (!isNested) { + context.indentLevel--; + } + needNewline && deindent( + true + /* without newline */ + ); +} +function genCacheExpression(node, context) { + const { push, helper, indent, deindent, newline } = context; + const { needPauseTracking, needArraySpread } = node; + if (needArraySpread) { + push(`[...(`); + } + push(`_cache[${node.index}] || (`); + if (needPauseTracking) { + indent(); + push(`${helper(SET_BLOCK_TRACKING)}(-1`); + if (node.inVOnce) push(`, true`); + push(`),`); + newline(); + push(`(`); + } + push(`_cache[${node.index}] = `); + genNode(node.value, context); + if (needPauseTracking) { + push(`).cacheIndex = ${node.index},`); + newline(); + push(`${helper(SET_BLOCK_TRACKING)}(1),`); + newline(); + push(`_cache[${node.index}]`); + deindent(); + } + push(`)`); + if (needArraySpread) { + push(`)]`); + } +} +function genTemplateLiteral(node, context) { + const { push, indent, deindent } = context; + push("`"); + const l = node.elements.length; + const multilines = l > 3; + for (let i = 0; i < l; i++) { + const e = node.elements[i]; + if (shared.isString(e)) { + push(e.replace(/(`|\$|\\)/g, "\\$1"), -3 /* Unknown */); + } else { + push("${"); + if (multilines) indent(); + genNode(e, context); + if (multilines) deindent(); + push("}"); + } + } + push("`"); +} +function genIfStatement(node, context) { + const { push, indent, deindent } = context; + const { test, consequent, alternate } = node; + push(`if (`); + genNode(test, context); + push(`) {`); + indent(); + genNode(consequent, context); + deindent(); + push(`}`); + if (alternate) { + push(` else `); + if (alternate.type === 23) { + genIfStatement(alternate, context); + } else { + push(`{`); + indent(); + genNode(alternate, context); + deindent(); + push(`}`); + } + } +} +function genAssignmentExpression(node, context) { + genNode(node.left, context); + context.push(` = `); + genNode(node.right, context); +} +function genSequenceExpression(node, context) { + context.push(`(`); + genNodeList(node.expressions, context); + context.push(`)`); +} +function genReturnStatement({ returns }, context) { + context.push(`return `); + if (shared.isArray(returns)) { + genNodeListAsArray(returns, context); + } else { + genNode(returns, context); + } +} + +const isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap("true,false,null,this"); +const transformExpression = (node, context) => { + if (node.type === 5) { + node.content = processExpression( + node.content, + context + ); + } else if (node.type === 1) { + const memo = findDir(node, "memo"); + for (let i = 0; i < node.props.length; i++) { + const dir = node.props[i]; + if (dir.type === 7 && dir.name !== "for") { + const exp = dir.exp; + const arg = dir.arg; + if (exp && exp.type === 4 && !(dir.name === "on" && arg) && // key has been processed in transformFor(vMemo + vFor) + !(memo && arg && arg.type === 4 && arg.content === "key")) { + dir.exp = processExpression( + exp, + context, + // slot args must be processed as function params + dir.name === "slot" + ); + } + if (arg && arg.type === 4 && !arg.isStatic) { + dir.arg = processExpression(arg, context); + } + } + } + } +}; +function processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) { + if (!context.prefixIdentifiers || !node.content.trim()) { + return node; + } + const { inline, bindingMetadata } = context; + const rewriteIdentifier = (raw, parent, id) => { + const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw]; + if (inline) { + const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id; + const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id; + const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack); + const isNewExpression = parent && isInNewExpression(parentStack); + const wrapWithUnref = (raw2) => { + const wrapped = `${context.helperString(UNREF)}(${raw2})`; + return isNewExpression ? `(${wrapped})` : wrapped; + }; + if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) { + return raw; + } else if (type === "setup-ref") { + return `${raw}.value`; + } else if (type === "setup-maybe-ref") { + return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw); + } else if (type === "setup-let") { + if (isAssignmentLVal) { + const { right: rVal, operator } = parent; + const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); + const rExpString = stringifyExpression( + processExpression( + createSimpleExpression(rExp, false), + context, + false, + false, + knownIds + ) + ); + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; + } else if (isUpdateArg) { + id.start = parent.start; + id.end = parent.end; + const { prefix: isPrefix, operator } = parent; + const prefix = isPrefix ? operator : ``; + const postfix = isPrefix ? `` : operator; + return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore +` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; + } else if (isDestructureAssignment) { + return raw; + } else { + return wrapWithUnref(raw); + } + } else if (type === "props") { + return shared.genPropsAccessExp(raw); + } else if (type === "props-aliased") { + return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]); + } + } else { + if (type && type.startsWith("setup") || type === "literal-const") { + return `$setup.${raw}`; + } else if (type === "props-aliased") { + return `$props['${bindingMetadata.__propsAliases[raw]}']`; + } else if (type) { + return `$${type}.${raw}`; + } + } + return `_ctx.${raw}`; + }; + const rawExp = node.content; + let ast = node.ast; + if (ast === false) { + return node; + } + if (ast === null || !ast && isSimpleIdentifier(rawExp)) { + const isScopeVarReference = context.identifiers[rawExp]; + const isAllowedGlobal = shared.isGloballyAllowed(rawExp); + const isLiteral = isLiteralWhitelisted(rawExp); + if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) { + if (isConst(bindingMetadata[rawExp])) { + node.constType = 1; + } + node.content = rewriteIdentifier(rawExp); + } else if (!isScopeVarReference) { + if (isLiteral) { + node.constType = 3; + } else { + node.constType = 2; + } + } + return node; + } + if (!ast) { + const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; + try { + ast = parser.parseExpression(source, { + sourceType: "module", + plugins: context.expressionPlugins + }); + } catch (e) { + context.onError( + createCompilerError( + 45, + node.loc, + void 0, + e.message + ) + ); + return node; + } + } + const ids = []; + const parentStack = []; + const knownIds = Object.create(context.identifiers); + walkIdentifiers( + ast, + (node2, parent, _, isReferenced, isLocal) => { + if (isStaticPropertyKey(node2, parent)) { + return; + } + if (node2.name.startsWith("_filter_")) { + return; + } + const needPrefix = isReferenced && canPrefix(node2); + if (needPrefix && !isLocal) { + if (isStaticProperty(parent) && parent.shorthand) { + node2.prefix = `${node2.name}: `; + } + node2.name = rewriteIdentifier(node2.name, parent, node2); + ids.push(node2); + } else { + if (!(needPrefix && isLocal) && (!parent || parent.type !== "CallExpression" && parent.type !== "NewExpression" && parent.type !== "MemberExpression")) { + node2.isConstant = true; + } + ids.push(node2); + } + }, + true, + // invoke on ALL identifiers + parentStack, + knownIds + ); + const children = []; + ids.sort((a, b) => a.start - b.start); + ids.forEach((id, i) => { + const start = id.start - 1; + const end = id.end - 1; + const last = ids[i - 1]; + const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); + if (leadingText.length || id.prefix) { + children.push(leadingText + (id.prefix || ``)); + } + const source = rawExp.slice(start, end); + children.push( + createSimpleExpression( + id.name, + false, + { + start: advancePositionWithClone(node.loc.start, source, start), + end: advancePositionWithClone(node.loc.start, source, end), + source + }, + id.isConstant ? 3 : 0 + ) + ); + if (i === ids.length - 1 && end < rawExp.length) { + children.push(rawExp.slice(end)); + } + }); + let ret; + if (children.length) { + ret = createCompoundExpression(children, node.loc); + ret.ast = ast; + } else { + ret = node; + ret.constType = 3; + } + ret.identifiers = Object.keys(knownIds); + return ret; +} +function canPrefix(id) { + if (shared.isGloballyAllowed(id.name)) { + return false; + } + if (id.name === "require") { + return false; + } + return true; +} +function stringifyExpression(exp) { + if (shared.isString(exp)) { + return exp; + } else if (exp.type === 4) { + return exp.content; + } else { + return exp.children.map(stringifyExpression).join(""); + } +} +function isConst(type) { + return type === "setup-const" || type === "literal-const"; +} + +const transformIf = createStructuralDirectiveTransform( + /^(if|else|else-if)$/, + (node, dir, context) => { + return processIf(node, dir, context, (ifNode, branch, isRoot) => { + const siblings = context.parent.children; + let i = siblings.indexOf(ifNode); + let key = 0; + while (i-- >= 0) { + const sibling = siblings[i]; + if (sibling && sibling.type === 9) { + key += sibling.branches.length; + } + } + return () => { + if (isRoot) { + ifNode.codegenNode = createCodegenNodeForBranch( + branch, + key, + context + ); + } else { + const parentCondition = getParentCondition(ifNode.codegenNode); + parentCondition.alternate = createCodegenNodeForBranch( + branch, + key + ifNode.branches.length - 1, + context + ); + } + }; + }); + } +); +function processIf(node, dir, context, processCodegen) { + if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) { + const loc = dir.exp ? dir.exp.loc : node.loc; + context.onError( + createCompilerError(28, dir.loc) + ); + dir.exp = createSimpleExpression(`true`, false, loc); + } + if (context.prefixIdentifiers && dir.exp) { + dir.exp = processExpression(dir.exp, context); + } + if (dir.name === "if") { + const branch = createIfBranch(node, dir); + const ifNode = { + type: 9, + loc: cloneLoc(node.loc), + branches: [branch] + }; + context.replaceNode(ifNode); + if (processCodegen) { + return processCodegen(ifNode, branch, true); + } + } else { + const siblings = context.parent.children; + let i = siblings.indexOf(node); + while (i-- >= -1) { + const sibling = siblings[i]; + if (sibling && sibling.type === 3) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 2 && !sibling.content.trim().length) { + context.removeNode(sibling); + continue; + } + if (sibling && sibling.type === 9) { + if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) { + context.onError( + createCompilerError(30, node.loc) + ); + } + context.removeNode(); + const branch = createIfBranch(node, dir); + { + const key = branch.userKey; + if (key) { + sibling.branches.forEach(({ userKey }) => { + if (isSameKey(userKey, key)) { + context.onError( + createCompilerError( + 29, + branch.userKey.loc + ) + ); + } + }); + } + } + sibling.branches.push(branch); + const onExit = processCodegen && processCodegen(sibling, branch, false); + traverseNode(branch, context); + if (onExit) onExit(); + context.currentNode = null; + } else { + context.onError( + createCompilerError(30, node.loc) + ); + } + break; + } + } +} +function createIfBranch(node, dir) { + const isTemplateIf = node.tagType === 3; + return { + type: 10, + loc: node.loc, + condition: dir.name === "else" ? void 0 : dir.exp, + children: isTemplateIf && !findDir(node, "for") ? node.children : [node], + userKey: findProp(node, `key`), + isTemplateIf + }; +} +function createCodegenNodeForBranch(branch, keyIndex, context) { + if (branch.condition) { + return createConditionalExpression( + branch.condition, + createChildrenCodegenNode(branch, keyIndex, context), + // make sure to pass in asBlock: true so that the comment node call + // closes the current block. + createCallExpression(context.helper(CREATE_COMMENT), [ + '""', + "true" + ]) + ); + } else { + return createChildrenCodegenNode(branch, keyIndex, context); + } +} +function createChildrenCodegenNode(branch, keyIndex, context) { + const { helper } = context; + const keyProperty = createObjectProperty( + `key`, + createSimpleExpression( + `${keyIndex}`, + false, + locStub, + 2 + ) + ); + const { children } = branch; + const firstChild = children[0]; + const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1; + if (needFragmentWrapper) { + if (children.length === 1 && firstChild.type === 11) { + const vnodeCall = firstChild.codegenNode; + injectProp(vnodeCall, keyProperty, context); + return vnodeCall; + } else { + let patchFlag = 64; + return createVNodeCall( + context, + helper(FRAGMENT), + createObjectExpression([keyProperty]), + children, + patchFlag, + void 0, + void 0, + true, + false, + false, + branch.loc + ); + } + } else { + const ret = firstChild.codegenNode; + const vnodeCall = getMemoedVNodeCall(ret); + if (vnodeCall.type === 13) { + convertToBlock(vnodeCall, context); + } + injectProp(vnodeCall, keyProperty, context); + return ret; + } +} +function isSameKey(a, b) { + if (!a || a.type !== b.type) { + return false; + } + if (a.type === 6) { + if (a.value.content !== b.value.content) { + return false; + } + } else { + const exp = a.exp; + const branchExp = b.exp; + if (exp.type !== branchExp.type) { + return false; + } + if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) { + return false; + } + } + return true; +} +function getParentCondition(node) { + while (true) { + if (node.type === 19) { + if (node.alternate.type === 19) { + node = node.alternate; + } else { + return node; + } + } else if (node.type === 20) { + node = node.value; + } + } +} + +const transformBind = (dir, _node, context) => { + const { modifiers, loc } = dir; + const arg = dir.arg; + let { exp } = dir; + if (exp && exp.type === 4 && !exp.content.trim()) { + { + context.onError( + createCompilerError(34, loc) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + } + if (!exp) { + if (arg.type !== 4 || !arg.isStatic) { + context.onError( + createCompilerError( + 52, + arg.loc + ) + ); + return { + props: [ + createObjectProperty(arg, createSimpleExpression("", true, loc)) + ] + }; + } + transformBindShorthand(dir, context); + exp = dir.exp; + } + if (arg.type !== 4) { + arg.children.unshift(`(`); + arg.children.push(`) || ""`); + } else if (!arg.isStatic) { + arg.content = `${arg.content} || ""`; + } + if (modifiers.some((mod) => mod.content === "camel")) { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = shared.camelize(arg.content); + } else { + arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`; + } + } else { + arg.children.unshift(`${context.helperString(CAMELIZE)}(`); + arg.children.push(`)`); + } + } + if (!context.inSSR) { + if (modifiers.some((mod) => mod.content === "prop")) { + injectPrefix(arg, "."); + } + if (modifiers.some((mod) => mod.content === "attr")) { + injectPrefix(arg, "^"); + } + } + return { + props: [createObjectProperty(arg, exp)] + }; +}; +const transformBindShorthand = (dir, context) => { + const arg = dir.arg; + const propName = shared.camelize(arg.content); + dir.exp = createSimpleExpression(propName, false, arg.loc); + { + dir.exp = processExpression(dir.exp, context); + } +}; +const injectPrefix = (arg, prefix) => { + if (arg.type === 4) { + if (arg.isStatic) { + arg.content = prefix + arg.content; + } else { + arg.content = `\`${prefix}\${${arg.content}}\``; + } + } else { + arg.children.unshift(`'${prefix}' + (`); + arg.children.push(`)`); + } +}; + +const transformFor = createStructuralDirectiveTransform( + "for", + (node, dir, context) => { + const { helper, removeHelper } = context; + return processFor(node, dir, context, (forNode) => { + const renderExp = createCallExpression(helper(RENDER_LIST), [ + forNode.source + ]); + const isTemplate = isTemplateNode(node); + const memo = findDir(node, "memo"); + const keyProp = findProp(node, `key`, false, true); + const isDirKey = keyProp && keyProp.type === 7; + if (isDirKey && !keyProp.exp) { + transformBindShorthand(keyProp, context); + } + let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp); + if (memo && keyExp && isDirKey) { + { + keyProp.exp = keyExp = processExpression( + keyExp, + context + ); + } + } + const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null; + if (isTemplate) { + if (memo) { + memo.exp = processExpression( + memo.exp, + context + ); + } + if (keyProperty && keyProp.type !== 6) { + keyProperty.value = processExpression( + keyProperty.value, + context + ); + } + } + const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0; + const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256; + forNode.codegenNode = createVNodeCall( + context, + helper(FRAGMENT), + void 0, + renderExp, + fragmentFlag, + void 0, + void 0, + true, + !isStableFragment, + false, + node.loc + ); + return () => { + let childBlock; + const { children } = forNode; + if (isTemplate) { + node.children.some((c) => { + if (c.type === 1) { + const key = findProp(c, "key"); + if (key) { + context.onError( + createCompilerError( + 33, + key.loc + ) + ); + return true; + } + } + }); + } + const needFragmentWrapper = children.length !== 1 || children[0].type !== 1; + const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null; + if (slotOutlet) { + childBlock = slotOutlet.codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + } else if (needFragmentWrapper) { + childBlock = createVNodeCall( + context, + helper(FRAGMENT), + keyProperty ? createObjectExpression([keyProperty]) : void 0, + node.children, + 64, + void 0, + void 0, + true, + void 0, + false + ); + } else { + childBlock = children[0].codegenNode; + if (isTemplate && keyProperty) { + injectProp(childBlock, keyProperty, context); + } + if (childBlock.isBlock !== !isStableFragment) { + if (childBlock.isBlock) { + removeHelper(OPEN_BLOCK); + removeHelper( + getVNodeBlockHelper(context.inSSR, childBlock.isComponent) + ); + } else { + removeHelper( + getVNodeHelper(context.inSSR, childBlock.isComponent) + ); + } + } + childBlock.isBlock = !isStableFragment; + if (childBlock.isBlock) { + helper(OPEN_BLOCK); + helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent)); + } else { + helper(getVNodeHelper(context.inSSR, childBlock.isComponent)); + } + } + if (memo) { + const loop = createFunctionExpression( + createForLoopParams(forNode.parseResult, [ + createSimpleExpression(`_cached`) + ]) + ); + loop.body = createBlockStatement([ + createCompoundExpression([`const _memo = (`, memo.exp, `)`]), + createCompoundExpression([ + `if (_cached`, + ...keyExp ? [` && _cached.key === `, keyExp] : [], + ` && ${context.helperString( + IS_MEMO_SAME + )}(_cached, _memo)) return _cached` + ]), + createCompoundExpression([`const _item = `, childBlock]), + createSimpleExpression(`_item.memo = _memo`), + createSimpleExpression(`return _item`) + ]); + renderExp.arguments.push( + loop, + createSimpleExpression(`_cache`), + createSimpleExpression(String(context.cached.length)) + ); + context.cached.push(null); + } else { + renderExp.arguments.push( + createFunctionExpression( + createForLoopParams(forNode.parseResult), + childBlock, + true + ) + ); + } + }; + }); + } +); +function processFor(node, dir, context, processCodegen) { + if (!dir.exp) { + context.onError( + createCompilerError(31, dir.loc) + ); + return; + } + const parseResult = dir.forParseResult; + if (!parseResult) { + context.onError( + createCompilerError(32, dir.loc) + ); + return; + } + finalizeForParseResult(parseResult, context); + const { addIdentifiers, removeIdentifiers, scopes } = context; + const { source, value, key, index } = parseResult; + const forNode = { + type: 11, + loc: dir.loc, + source, + valueAlias: value, + keyAlias: key, + objectIndexAlias: index, + parseResult, + children: isTemplateNode(node) ? node.children : [node] + }; + context.replaceNode(forNode); + scopes.vFor++; + if (context.prefixIdentifiers) { + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + } + const onExit = processCodegen && processCodegen(forNode); + return () => { + scopes.vFor--; + if (context.prefixIdentifiers) { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + } + if (onExit) onExit(); + }; +} +function finalizeForParseResult(result, context) { + if (result.finalized) return; + if (context.prefixIdentifiers) { + result.source = processExpression( + result.source, + context + ); + if (result.key) { + result.key = processExpression( + result.key, + context, + true + ); + } + if (result.index) { + result.index = processExpression( + result.index, + context, + true + ); + } + if (result.value) { + result.value = processExpression( + result.value, + context, + true + ); + } + } + result.finalized = true; +} +function createForLoopParams({ value, key, index }, memoArgs = []) { + return createParamsList([value, key, index, ...memoArgs]); +} +function createParamsList(args) { + let i = args.length; + while (i--) { + if (args[i]) break; + } + return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false)); +} + +const defaultFallback = createSimpleExpression(`undefined`, false); +const trackSlotScopes = (node, context) => { + if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) { + const vSlot = findDir(node, "slot"); + if (vSlot) { + const slotProps = vSlot.exp; + if (context.prefixIdentifiers) { + slotProps && context.addIdentifiers(slotProps); + } + context.scopes.vSlot++; + return () => { + if (context.prefixIdentifiers) { + slotProps && context.removeIdentifiers(slotProps); + } + context.scopes.vSlot--; + }; + } + } +}; +const trackVForSlotScopes = (node, context) => { + let vFor; + if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, "for"))) { + const result = vFor.forParseResult; + if (result) { + finalizeForParseResult(result, context); + const { value, key, index } = result; + const { addIdentifiers, removeIdentifiers } = context; + value && addIdentifiers(value); + key && addIdentifiers(key); + index && addIdentifiers(index); + return () => { + value && removeIdentifiers(value); + key && removeIdentifiers(key); + index && removeIdentifiers(index); + }; + } + } +}; +const buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression( + props, + children, + false, + true, + children.length ? children[0].loc : loc +); +function buildSlots(node, context, buildSlotFn = buildClientSlotFn) { + context.helper(WITH_CTX); + const { children, loc } = node; + const slotsProperties = []; + const dynamicSlots = []; + let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0; + if (!context.ssr && context.prefixIdentifiers) { + hasDynamicSlots = hasScopeRef(node, context.identifiers); + } + const onComponentSlot = findDir(node, "slot", true); + if (onComponentSlot) { + const { arg, exp } = onComponentSlot; + if (arg && !isStaticExp(arg)) { + hasDynamicSlots = true; + } + slotsProperties.push( + createObjectProperty( + arg || createSimpleExpression("default", true), + buildSlotFn(exp, void 0, children, loc) + ) + ); + } + let hasTemplateSlots = false; + let hasNamedDefaultSlot = false; + const implicitDefaultChildren = []; + const seenSlotNames = /* @__PURE__ */ new Set(); + let conditionalBranchIndex = 0; + for (let i = 0; i < children.length; i++) { + const slotElement = children[i]; + let slotDir; + if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) { + if (slotElement.type !== 3) { + implicitDefaultChildren.push(slotElement); + } + continue; + } + if (onComponentSlot) { + context.onError( + createCompilerError(37, slotDir.loc) + ); + break; + } + hasTemplateSlots = true; + const { children: slotChildren, loc: slotLoc } = slotElement; + const { + arg: slotName = createSimpleExpression(`default`, true), + exp: slotProps, + loc: dirLoc + } = slotDir; + let staticSlotName; + if (isStaticExp(slotName)) { + staticSlotName = slotName ? slotName.content : `default`; + } else { + hasDynamicSlots = true; + } + const vFor = findDir(slotElement, "for"); + const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc); + let vIf; + let vElse; + if (vIf = findDir(slotElement, "if")) { + hasDynamicSlots = true; + dynamicSlots.push( + createConditionalExpression( + vIf.exp, + buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), + defaultFallback + ) + ); + } else if (vElse = findDir( + slotElement, + /^else(-if)?$/, + true + /* allowEmpty */ + )) { + let j = i; + let prev; + while (j--) { + prev = children[j]; + if (prev.type !== 3) { + break; + } + } + if (prev && isTemplateNode(prev) && findDir(prev, /^(else-)?if$/)) { + let conditional = dynamicSlots[dynamicSlots.length - 1]; + while (conditional.alternate.type === 19) { + conditional = conditional.alternate; + } + conditional.alternate = vElse.exp ? createConditionalExpression( + vElse.exp, + buildDynamicSlot( + slotName, + slotFunction, + conditionalBranchIndex++ + ), + defaultFallback + ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++); + } else { + context.onError( + createCompilerError(30, vElse.loc) + ); + } + } else if (vFor) { + hasDynamicSlots = true; + const parseResult = vFor.forParseResult; + if (parseResult) { + finalizeForParseResult(parseResult, context); + dynamicSlots.push( + createCallExpression(context.helper(RENDER_LIST), [ + parseResult.source, + createFunctionExpression( + createForLoopParams(parseResult), + buildDynamicSlot(slotName, slotFunction), + true + ) + ]) + ); + } else { + context.onError( + createCompilerError( + 32, + vFor.loc + ) + ); + } + } else { + if (staticSlotName) { + if (seenSlotNames.has(staticSlotName)) { + context.onError( + createCompilerError( + 38, + dirLoc + ) + ); + continue; + } + seenSlotNames.add(staticSlotName); + if (staticSlotName === "default") { + hasNamedDefaultSlot = true; + } + } + slotsProperties.push(createObjectProperty(slotName, slotFunction)); + } + } + if (!onComponentSlot) { + const buildDefaultSlotProperty = (props, children2) => { + const fn = buildSlotFn(props, void 0, children2, loc); + if (context.compatConfig) { + fn.isNonScopedSlot = true; + } + return createObjectProperty(`default`, fn); + }; + if (!hasTemplateSlots) { + slotsProperties.push(buildDefaultSlotProperty(void 0, children)); + } else if (implicitDefaultChildren.length && // #3766 + // with whitespace: 'preserve', whitespaces between slots will end up in + // implicitDefaultChildren. Ignore if all implicit children are whitespaces. + implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) { + if (hasNamedDefaultSlot) { + context.onError( + createCompilerError( + 39, + implicitDefaultChildren[0].loc + ) + ); + } else { + slotsProperties.push( + buildDefaultSlotProperty(void 0, implicitDefaultChildren) + ); + } + } + } + const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1; + let slots = createObjectExpression( + slotsProperties.concat( + createObjectProperty( + `_`, + // 2 = compiled but dynamic = can skip normalization, but must run diff + // 1 = compiled and static = can skip normalization AND diff as optimized + createSimpleExpression( + slotFlag + (``), + false + ) + ) + ), + loc + ); + if (dynamicSlots.length) { + slots = createCallExpression(context.helper(CREATE_SLOTS), [ + slots, + createArrayExpression(dynamicSlots) + ]); + } + return { + slots, + hasDynamicSlots + }; +} +function buildDynamicSlot(name, fn, index) { + const props = [ + createObjectProperty(`name`, name), + createObjectProperty(`fn`, fn) + ]; + if (index != null) { + props.push( + createObjectProperty(`key`, createSimpleExpression(String(index), true)) + ); + } + return createObjectExpression(props); +} +function hasForwardedSlots(children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + if (child.tagType === 2 || hasForwardedSlots(child.children)) { + return true; + } + break; + case 9: + if (hasForwardedSlots(child.branches)) return true; + break; + case 10: + case 11: + if (hasForwardedSlots(child.children)) return true; + break; + } + } + return false; +} +function isNonWhitespaceContent(node) { + if (node.type !== 2 && node.type !== 12) + return true; + return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content); +} + +const directiveImportMap = /* @__PURE__ */ new WeakMap(); +const transformElement = (node, context) => { + return function postTransformElement() { + node = context.currentNode; + if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) { + return; + } + const { tag, props } = node; + const isComponent = node.tagType === 1; + let vnodeTag = isComponent ? resolveComponentType(node, context) : `"${tag}"`; + const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT; + let vnodeProps; + let vnodeChildren; + let patchFlag = 0; + let vnodeDynamicProps; + let dynamicPropNames; + let vnodeDirectives; + let shouldUseBlock = ( + // dynamic component may resolve to plain elements + isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block + // updates inside get proper isSVG flag at runtime. (#639, #643) + // This is technically web-specific, but splitting the logic out of core + // leads to too much unnecessary complexity. + (tag === "svg" || tag === "foreignObject" || tag === "math") + ); + if (props.length > 0) { + const propsBuildResult = buildProps( + node, + context, + void 0, + isComponent, + isDynamicComponent + ); + vnodeProps = propsBuildResult.props; + patchFlag = propsBuildResult.patchFlag; + dynamicPropNames = propsBuildResult.dynamicPropNames; + const directives = propsBuildResult.directives; + vnodeDirectives = directives && directives.length ? createArrayExpression( + directives.map((dir) => buildDirectiveArgs(dir, context)) + ) : void 0; + if (propsBuildResult.shouldUseBlock) { + shouldUseBlock = true; + } + } + if (node.children.length > 0) { + if (vnodeTag === KEEP_ALIVE) { + shouldUseBlock = true; + patchFlag |= 1024; + } + const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling + vnodeTag !== TELEPORT && // explained above. + vnodeTag !== KEEP_ALIVE; + if (shouldBuildAsSlots) { + const { slots, hasDynamicSlots } = buildSlots(node, context); + vnodeChildren = slots; + if (hasDynamicSlots) { + patchFlag |= 1024; + } + } else if (node.children.length === 1 && vnodeTag !== TELEPORT) { + const child = node.children[0]; + const type = child.type; + const hasDynamicTextChild = type === 5 || type === 8; + if (hasDynamicTextChild && getConstantType(child, context) === 0) { + patchFlag |= 1; + } + if (hasDynamicTextChild || type === 2) { + vnodeChildren = child; + } else { + vnodeChildren = node.children; + } + } else { + vnodeChildren = node.children; + } + } + if (dynamicPropNames && dynamicPropNames.length) { + vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames); + } + node.codegenNode = createVNodeCall( + context, + vnodeTag, + vnodeProps, + vnodeChildren, + patchFlag === 0 ? void 0 : patchFlag, + vnodeDynamicProps, + vnodeDirectives, + !!shouldUseBlock, + false, + isComponent, + node.loc + ); + }; +}; +function resolveComponentType(node, context, ssr = false) { + let { tag } = node; + const isExplicitDynamic = isComponentTag(tag); + const isProp = findProp( + node, + "is", + false, + true + /* allow empty */ + ); + if (isProp) { + if (isExplicitDynamic || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + )) { + let exp; + if (isProp.type === 6) { + exp = isProp.value && createSimpleExpression(isProp.value.content, true); + } else { + exp = isProp.exp; + if (!exp) { + exp = createSimpleExpression(`is`, false, isProp.arg.loc); + { + exp = isProp.exp = processExpression(exp, context); + } + } + } + if (exp) { + return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [ + exp + ]); + } + } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) { + tag = isProp.value.content.slice(4); + } + } + const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag); + if (builtIn) { + if (!ssr) context.helper(builtIn); + return builtIn; + } + { + const fromSetup = resolveSetupReference(tag, context); + if (fromSetup) { + return fromSetup; + } + const dotIndex = tag.indexOf("."); + if (dotIndex > 0) { + const ns = resolveSetupReference(tag.slice(0, dotIndex), context); + if (ns) { + return ns + tag.slice(dotIndex); + } + } + } + if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) { + context.helper(RESOLVE_COMPONENT); + context.components.add(tag + `__self`); + return toValidAssetId(tag, `component`); + } + context.helper(RESOLVE_COMPONENT); + context.components.add(tag); + return toValidAssetId(tag, `component`); +} +function resolveSetupReference(name, context) { + const bindings = context.bindingMetadata; + if (!bindings || bindings.__isScriptSetup === false) { + return; + } + const camelName = shared.camelize(name); + const PascalName = shared.capitalize(camelName); + const checkType = (type) => { + if (bindings[name] === type) { + return name; + } + if (bindings[camelName] === type) { + return camelName; + } + if (bindings[PascalName] === type) { + return PascalName; + } + }; + const fromConst = checkType("setup-const") || checkType("setup-reactive-const") || checkType("literal-const"); + if (fromConst) { + return context.inline ? ( + // in inline mode, const setup bindings (e.g. imports) can be used as-is + fromConst + ) : `$setup[${JSON.stringify(fromConst)}]`; + } + const fromMaybeRef = checkType("setup-let") || checkType("setup-ref") || checkType("setup-maybe-ref"); + if (fromMaybeRef) { + return context.inline ? ( + // setup scope bindings that may be refs need to be unrefed + `${context.helperString(UNREF)}(${fromMaybeRef})` + ) : `$setup[${JSON.stringify(fromMaybeRef)}]`; + } + const fromProps = checkType("props"); + if (fromProps) { + return `${context.helperString(UNREF)}(${context.inline ? "__props" : "$props"}[${JSON.stringify(fromProps)}])`; + } +} +function buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) { + const { tag, loc: elementLoc, children } = node; + let properties = []; + const mergeArgs = []; + const runtimeDirectives = []; + const hasChildren = children.length > 0; + let shouldUseBlock = false; + let patchFlag = 0; + let hasRef = false; + let hasClassBinding = false; + let hasStyleBinding = false; + let hasHydrationEventBinding = false; + let hasDynamicKeys = false; + let hasVnodeHook = false; + const dynamicPropNames = []; + const pushMergeArg = (arg) => { + if (properties.length) { + mergeArgs.push( + createObjectExpression(dedupeProperties(properties), elementLoc) + ); + properties = []; + } + if (arg) mergeArgs.push(arg); + }; + const pushRefVForMarker = () => { + if (context.scopes.vFor > 0) { + properties.push( + createObjectProperty( + createSimpleExpression("ref_for", true), + createSimpleExpression("true") + ) + ); + } + }; + const analyzePatchFlag = ({ key, value }) => { + if (isStaticExp(key)) { + const name = key.content; + const isEventHandler = shared.isOn(name); + if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click + // dedicated fast path. + name.toLowerCase() !== "onclick" && // omit v-model handlers + name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks + !shared.isReservedProp(name)) { + hasHydrationEventBinding = true; + } + if (isEventHandler && shared.isReservedProp(name)) { + hasVnodeHook = true; + } + if (isEventHandler && value.type === 14) { + value = value.arguments[0]; + } + if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) { + return; + } + if (name === "ref") { + hasRef = true; + } else if (name === "class") { + hasClassBinding = true; + } else if (name === "style") { + hasStyleBinding = true; + } else if (name !== "key" && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) { + dynamicPropNames.push(name); + } + } else { + hasDynamicKeys = true; + } + }; + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (prop.type === 6) { + const { loc, name, nameLoc, value } = prop; + let isStatic = true; + if (name === "ref") { + hasRef = true; + pushRefVForMarker(); + if (value && context.inline) { + const binding = context.bindingMetadata[value.content]; + if (binding === "setup-let" || binding === "setup-ref" || binding === "setup-maybe-ref") { + isStatic = false; + properties.push( + createObjectProperty( + createSimpleExpression("ref_key", true), + createSimpleExpression(value.content, true, value.loc) + ) + ); + } + } + } + if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + properties.push( + createObjectProperty( + createSimpleExpression(name, true, nameLoc), + createSimpleExpression( + value ? value.content : "", + isStatic, + value ? value.loc : loc + ) + ) + ); + } else { + const { name, arg, exp, loc, modifiers } = prop; + const isVBind = name === "bind"; + const isVOn = name === "on"; + if (name === "slot") { + if (!isComponent) { + context.onError( + createCompilerError(40, loc) + ); + } + continue; + } + if (name === "once" || name === "memo") { + continue; + } + if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled( + "COMPILER_IS_ON_ELEMENT", + context + ))) { + continue; + } + if (isVOn && ssr) { + continue; + } + if ( + // #938: elements with dynamic keys should be forced into blocks + isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked + // before children + isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update") + ) { + shouldUseBlock = true; + } + if (isVBind && isStaticArgOf(arg, "ref")) { + pushRefVForMarker(); + } + if (!arg && (isVBind || isVOn)) { + hasDynamicKeys = true; + if (exp) { + if (isVBind) { + pushRefVForMarker(); + pushMergeArg(); + { + if (isCompatEnabled( + "COMPILER_V_BIND_OBJECT_ORDER", + context + )) { + mergeArgs.unshift(exp); + continue; + } + } + mergeArgs.push(exp); + } else { + pushMergeArg({ + type: 14, + loc, + callee: context.helper(TO_HANDLERS), + arguments: isComponent ? [exp] : [exp, `true`] + }); + } + } else { + context.onError( + createCompilerError( + isVBind ? 34 : 35, + loc + ) + ); + } + continue; + } + if (isVBind && modifiers.some((mod) => mod.content === "prop")) { + patchFlag |= 32; + } + const directiveTransform = context.directiveTransforms[name]; + if (directiveTransform) { + const { props: props2, needRuntime } = directiveTransform(prop, node, context); + !ssr && props2.forEach(analyzePatchFlag); + if (isVOn && arg && !isStaticExp(arg)) { + pushMergeArg(createObjectExpression(props2, elementLoc)); + } else { + properties.push(...props2); + } + if (needRuntime) { + runtimeDirectives.push(prop); + if (shared.isSymbol(needRuntime)) { + directiveImportMap.set(prop, needRuntime); + } + } + } else if (!shared.isBuiltInDirective(name)) { + runtimeDirectives.push(prop); + if (hasChildren) { + shouldUseBlock = true; + } + } + } + } + let propsExpression = void 0; + if (mergeArgs.length) { + pushMergeArg(); + if (mergeArgs.length > 1) { + propsExpression = createCallExpression( + context.helper(MERGE_PROPS), + mergeArgs, + elementLoc + ); + } else { + propsExpression = mergeArgs[0]; + } + } else if (properties.length) { + propsExpression = createObjectExpression( + dedupeProperties(properties), + elementLoc + ); + } + if (hasDynamicKeys) { + patchFlag |= 16; + } else { + if (hasClassBinding && !isComponent) { + patchFlag |= 2; + } + if (hasStyleBinding && !isComponent) { + patchFlag |= 4; + } + if (dynamicPropNames.length) { + patchFlag |= 8; + } + if (hasHydrationEventBinding) { + patchFlag |= 32; + } + } + if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) { + patchFlag |= 512; + } + if (!context.inSSR && propsExpression) { + switch (propsExpression.type) { + case 15: + let classKeyIndex = -1; + let styleKeyIndex = -1; + let hasDynamicKey = false; + for (let i = 0; i < propsExpression.properties.length; i++) { + const key = propsExpression.properties[i].key; + if (isStaticExp(key)) { + if (key.content === "class") { + classKeyIndex = i; + } else if (key.content === "style") { + styleKeyIndex = i; + } + } else if (!key.isHandlerKey) { + hasDynamicKey = true; + } + } + const classProp = propsExpression.properties[classKeyIndex]; + const styleProp = propsExpression.properties[styleKeyIndex]; + if (!hasDynamicKey) { + if (classProp && !isStaticExp(classProp.value)) { + classProp.value = createCallExpression( + context.helper(NORMALIZE_CLASS), + [classProp.value] + ); + } + if (styleProp && // the static style is compiled into an object, + // so use `hasStyleBinding` to ensure that it is a dynamic style binding + (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist, + // v-bind:style with static literal object + styleProp.value.type === 17)) { + styleProp.value = createCallExpression( + context.helper(NORMALIZE_STYLE), + [styleProp.value] + ); + } + } else { + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [propsExpression] + ); + } + break; + case 14: + break; + default: + propsExpression = createCallExpression( + context.helper(NORMALIZE_PROPS), + [ + createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [ + propsExpression + ]) + ] + ); + break; + } + } + return { + props: propsExpression, + directives: runtimeDirectives, + patchFlag, + dynamicPropNames, + shouldUseBlock + }; +} +function dedupeProperties(properties) { + const knownProps = /* @__PURE__ */ new Map(); + const deduped = []; + for (let i = 0; i < properties.length; i++) { + const prop = properties[i]; + if (prop.key.type === 8 || !prop.key.isStatic) { + deduped.push(prop); + continue; + } + const name = prop.key.content; + const existing = knownProps.get(name); + if (existing) { + if (name === "style" || name === "class" || shared.isOn(name)) { + mergeAsArray(existing, prop); + } + } else { + knownProps.set(name, prop); + deduped.push(prop); + } + } + return deduped; +} +function mergeAsArray(existing, incoming) { + if (existing.value.type === 17) { + existing.value.elements.push(incoming.value); + } else { + existing.value = createArrayExpression( + [existing.value, incoming.value], + existing.loc + ); + } +} +function buildDirectiveArgs(dir, context) { + const dirArgs = []; + const runtime = directiveImportMap.get(dir); + if (runtime) { + dirArgs.push(context.helperString(runtime)); + } else { + const fromSetup = resolveSetupReference("v-" + dir.name, context); + if (fromSetup) { + dirArgs.push(fromSetup); + } else { + context.helper(RESOLVE_DIRECTIVE); + context.directives.add(dir.name); + dirArgs.push(toValidAssetId(dir.name, `directive`)); + } + } + const { loc } = dir; + if (dir.exp) dirArgs.push(dir.exp); + if (dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(dir.arg); + } + if (Object.keys(dir.modifiers).length) { + if (!dir.arg) { + if (!dir.exp) { + dirArgs.push(`void 0`); + } + dirArgs.push(`void 0`); + } + const trueExpression = createSimpleExpression(`true`, false, loc); + dirArgs.push( + createObjectExpression( + dir.modifiers.map( + (modifier) => createObjectProperty(modifier, trueExpression) + ), + loc + ) + ); + } + return createArrayExpression(dirArgs, dir.loc); +} +function stringifyDynamicPropNames(props) { + let propsNamesString = `[`; + for (let i = 0, l = props.length; i < l; i++) { + propsNamesString += JSON.stringify(props[i]); + if (i < l - 1) propsNamesString += ", "; + } + return propsNamesString + `]`; +} +function isComponentTag(tag) { + return tag === "component" || tag === "Component"; +} + +const transformSlotOutlet = (node, context) => { + if (isSlotOutlet(node)) { + const { children, loc } = node; + const { slotName, slotProps } = processSlotOutlet(node, context); + const slotArgs = [ + context.prefixIdentifiers ? `_ctx.$slots` : `$slots`, + slotName, + "{}", + "undefined", + "true" + ]; + let expectedLen = 2; + if (slotProps) { + slotArgs[2] = slotProps; + expectedLen = 3; + } + if (children.length) { + slotArgs[3] = createFunctionExpression([], children, false, false, loc); + expectedLen = 4; + } + if (context.scopeId && !context.slotted) { + expectedLen = 5; + } + slotArgs.splice(expectedLen); + node.codegenNode = createCallExpression( + context.helper(RENDER_SLOT), + slotArgs, + loc + ); + } +}; +function processSlotOutlet(node, context) { + let slotName = `"default"`; + let slotProps = void 0; + const nonNameProps = []; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + if (p.value) { + if (p.name === "name") { + slotName = JSON.stringify(p.value.content); + } else { + p.name = shared.camelize(p.name); + nonNameProps.push(p); + } + } + } else { + if (p.name === "bind" && isStaticArgOf(p.arg, "name")) { + if (p.exp) { + slotName = p.exp; + } else if (p.arg && p.arg.type === 4) { + const name = shared.camelize(p.arg.content); + slotName = p.exp = createSimpleExpression(name, false, p.arg.loc); + { + slotName = p.exp = processExpression(p.exp, context); + } + } + } else { + if (p.name === "bind" && p.arg && isStaticExp(p.arg)) { + p.arg.content = shared.camelize(p.arg.content); + } + nonNameProps.push(p); + } + } + } + if (nonNameProps.length > 0) { + const { props, directives } = buildProps( + node, + context, + nonNameProps, + false, + false + ); + slotProps = props; + if (directives.length) { + context.onError( + createCompilerError( + 36, + directives[0].loc + ) + ); + } + } + return { + slotName, + slotProps + }; +} + +const transformOn = (dir, node, context, augmentor) => { + const { loc, modifiers, arg } = dir; + if (!dir.exp && !modifiers.length) { + context.onError(createCompilerError(35, loc)); + } + let eventName; + if (arg.type === 4) { + if (arg.isStatic) { + let rawName = arg.content; + if (rawName.startsWith("vue:")) { + rawName = `vnode-${rawName.slice(4)}`; + } + const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? ( + // for non-element and vnode lifecycle event listeners, auto convert + // it to camelCase. See issue #2249 + shared.toHandlerKey(shared.camelize(rawName)) + ) : ( + // preserve case for plain element listeners that have uppercase + // letters, as these may be custom elements' custom events + `on:${rawName}` + ); + eventName = createSimpleExpression(eventString, true, arg.loc); + } else { + eventName = createCompoundExpression([ + `${context.helperString(TO_HANDLER_KEY)}(`, + arg, + `)` + ]); + } + } else { + eventName = arg; + eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`); + eventName.children.push(`)`); + } + let exp = dir.exp; + if (exp && !exp.content.trim()) { + exp = void 0; + } + let shouldCache = context.cacheHandlers && !exp && !context.inVOnce; + if (exp) { + const isMemberExp = isMemberExpression(exp, context); + const isInlineStatement = !(isMemberExp || isFnExpression(exp, context)); + const hasMultipleStatements = exp.content.includes(`;`); + if (context.prefixIdentifiers) { + isInlineStatement && context.addIdentifiers(`$event`); + exp = dir.exp = processExpression( + exp, + context, + false, + hasMultipleStatements + ); + isInlineStatement && context.removeIdentifiers(`$event`); + shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once + !context.inVOnce && // runtime constants don't need to be cached + // (this is analyzed by compileScript in SFC <script setup>) + !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component - + // we need to use the original function to preserve arity, + // e.g. <transition> relies on checking cb.length to determine + // transition end handling. Inline function is ok since its arity + // is preserved even when cached. + !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot) + // it must be passed fresh to avoid stale values. + !hasScopeRef(exp, context.identifiers); + if (shouldCache && isMemberExp) { + if (exp.type === 4) { + exp.content = `${exp.content} && ${exp.content}(...args)`; + } else { + exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`]; + } + } + } + if (isInlineStatement || shouldCache && isMemberExp) { + exp = createCompoundExpression([ + `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? ` +//@ts-ignore +` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`, + exp, + hasMultipleStatements ? `}` : `)` + ]); + } + } + let ret = { + props: [ + createObjectProperty( + eventName, + exp || createSimpleExpression(`() => {}`, false, loc) + ) + ] + }; + if (augmentor) { + ret = augmentor(ret); + } + if (shouldCache) { + ret.props[0].value = context.cache(ret.props[0].value); + } + ret.props.forEach((p) => p.key.isHandlerKey = true); + return ret; +}; + +const transformText = (node, context) => { + if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) { + return () => { + const children = node.children; + let currentContainer = void 0; + let hasText = false; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child)) { + hasText = true; + for (let j = i + 1; j < children.length; j++) { + const next = children[j]; + if (isText$1(next)) { + if (!currentContainer) { + currentContainer = children[i] = createCompoundExpression( + [child], + child.loc + ); + } + currentContainer.children.push(` + `, next); + children.splice(j, 1); + j--; + } else { + currentContainer = void 0; + break; + } + } + } + } + if (!hasText || // if this is a plain element with a single text child, leave it + // as-is since the runtime has dedicated fast path for this by directly + // setting textContent of the element. + // for component root it's always normalized anyway. + children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756 + // custom directives can potentially add DOM elements arbitrarily, + // we need to avoid setting textContent of the element at runtime + // to avoid accidentally overwriting the DOM elements added + // by the user through custom directives. + !node.props.find( + (p) => p.type === 7 && !context.directiveTransforms[p.name] + ) && // in compat mode, <template> tags with no special directives + // will be rendered as a fragment so its children must be + // converted into vnodes. + !(node.tag === "template"))) { + return; + } + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isText$1(child) || child.type === 8) { + const callArgs = []; + if (child.type !== 2 || child.content !== " ") { + callArgs.push(child); + } + if (!context.ssr && getConstantType(child, context) === 0) { + callArgs.push( + 1 + (``) + ); + } + children[i] = { + type: 12, + content: child, + loc: child.loc, + codegenNode: createCallExpression( + context.helper(CREATE_TEXT), + callArgs + ) + }; + } + } + }; + } +}; + +const seen$1 = /* @__PURE__ */ new WeakSet(); +const transformOnce = (node, context) => { + if (node.type === 1 && findDir(node, "once", true)) { + if (seen$1.has(node) || context.inVOnce || context.inSSR) { + return; + } + seen$1.add(node); + context.inVOnce = true; + context.helper(SET_BLOCK_TRACKING); + return () => { + context.inVOnce = false; + const cur = context.currentNode; + if (cur.codegenNode) { + cur.codegenNode = context.cache( + cur.codegenNode, + true, + true + ); + } + }; + } +}; + +const transformModel = (dir, node, context) => { + const { exp, arg } = dir; + if (!exp) { + context.onError( + createCompilerError(41, dir.loc) + ); + return createTransformProps(); + } + const rawExp = exp.loc.source.trim(); + const expString = exp.type === 4 ? exp.content : rawExp; + const bindingType = context.bindingMetadata[rawExp]; + if (bindingType === "props" || bindingType === "props-aliased") { + context.onError(createCompilerError(44, exp.loc)); + return createTransformProps(); + } + const maybeRef = context.inline && (bindingType === "setup-let" || bindingType === "setup-ref" || bindingType === "setup-maybe-ref"); + if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) { + context.onError( + createCompilerError(42, exp.loc) + ); + return createTransformProps(); + } + if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) { + context.onError( + createCompilerError(43, exp.loc) + ); + return createTransformProps(); + } + const propName = arg ? arg : createSimpleExpression("modelValue", true); + const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`; + let assignmentExp; + const eventArg = context.isTS ? `($event: any)` : `$event`; + if (maybeRef) { + if (bindingType === "setup-ref") { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event)` + ]); + } else { + const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`; + assignmentExp = createCompoundExpression([ + `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`, + createSimpleExpression(rawExp, false, exp.loc), + `).value = $event : ${altAssignment})` + ]); + } + } else { + assignmentExp = createCompoundExpression([ + `${eventArg} => ((`, + exp, + `) = $event)` + ]); + } + const props = [ + // modelValue: foo + createObjectProperty(propName, dir.exp), + // "onUpdate:modelValue": $event => (foo = $event) + createObjectProperty(eventName, assignmentExp) + ]; + if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) { + props[1].value = context.cache(props[1].value); + } + if (dir.modifiers.length && node.tagType === 1) { + const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `); + const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`; + props.push( + createObjectProperty( + modifiersKey, + createSimpleExpression( + `{ ${modifiers} }`, + false, + dir.loc, + 2 + ) + ) + ); + } + return createTransformProps(props); +}; +function createTransformProps(props = []) { + return { props }; +} + +const validDivisionCharRE = /[\w).+\-_$\]]/; +const transformFilter = (node, context) => { + if (!isCompatEnabled("COMPILER_FILTERS", context)) { + return; + } + if (node.type === 5) { + rewriteFilter(node.content, context); + } else if (node.type === 1) { + node.props.forEach((prop) => { + if (prop.type === 7 && prop.name !== "for" && prop.exp) { + rewriteFilter(prop.exp, context); + } + }); + } +}; +function rewriteFilter(node, context) { + if (node.type === 4) { + parseFilter(node, context); + } else { + for (let i = 0; i < node.children.length; i++) { + const child = node.children[i]; + if (typeof child !== "object") continue; + if (child.type === 4) { + parseFilter(child, context); + } else if (child.type === 8) { + rewriteFilter(node, context); + } else if (child.type === 5) { + rewriteFilter(child.content, context); + } + } + } +} +function parseFilter(node, context) { + const exp = node.content; + let inSingle = false; + let inDouble = false; + let inTemplateString = false; + let inRegex = false; + let curly = 0; + let square = 0; + let paren = 0; + let lastFilterIndex = 0; + let c, prev, i, expression, filters = []; + for (i = 0; i < exp.length; i++) { + prev = c; + c = exp.charCodeAt(i); + if (inSingle) { + if (c === 39 && prev !== 92) inSingle = false; + } else if (inDouble) { + if (c === 34 && prev !== 92) inDouble = false; + } else if (inTemplateString) { + if (c === 96 && prev !== 92) inTemplateString = false; + } else if (inRegex) { + if (c === 47 && prev !== 92) inRegex = false; + } else if (c === 124 && // pipe + exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) { + if (expression === void 0) { + lastFilterIndex = i + 1; + expression = exp.slice(0, i).trim(); + } else { + pushFilter(); + } + } else { + switch (c) { + case 34: + inDouble = true; + break; + // " + case 39: + inSingle = true; + break; + // ' + case 96: + inTemplateString = true; + break; + // ` + case 40: + paren++; + break; + // ( + case 41: + paren--; + break; + // ) + case 91: + square++; + break; + // [ + case 93: + square--; + break; + // ] + case 123: + curly++; + break; + // { + case 125: + curly--; + break; + } + if (c === 47) { + let j = i - 1; + let p; + for (; j >= 0; j--) { + p = exp.charAt(j); + if (p !== " ") break; + } + if (!p || !validDivisionCharRE.test(p)) { + inRegex = true; + } + } + } + } + if (expression === void 0) { + expression = exp.slice(0, i).trim(); + } else if (lastFilterIndex !== 0) { + pushFilter(); + } + function pushFilter() { + filters.push(exp.slice(lastFilterIndex, i).trim()); + lastFilterIndex = i + 1; + } + if (filters.length) { + for (i = 0; i < filters.length; i++) { + expression = wrapFilter(expression, filters[i], context); + } + node.content = expression; + node.ast = void 0; + } +} +function wrapFilter(exp, filter, context) { + context.helper(RESOLVE_FILTER); + const i = filter.indexOf("("); + if (i < 0) { + context.filters.add(filter); + return `${toValidAssetId(filter, "filter")}(${exp})`; + } else { + const name = filter.slice(0, i); + const args = filter.slice(i + 1); + context.filters.add(name); + return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`; + } +} + +const seen = /* @__PURE__ */ new WeakSet(); +const transformMemo = (node, context) => { + if (node.type === 1) { + const dir = findDir(node, "memo"); + if (!dir || seen.has(node)) { + return; + } + seen.add(node); + return () => { + const codegenNode = node.codegenNode || context.currentNode.codegenNode; + if (codegenNode && codegenNode.type === 13) { + if (node.tagType !== 1) { + convertToBlock(codegenNode, context); + } + node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [ + dir.exp, + createFunctionExpression(void 0, codegenNode), + `_cache`, + String(context.cached.length) + ]); + context.cached.push(null); + } + }; + } +}; + +function getBaseTransformPreset(prefixIdentifiers) { + return [ + [ + transformOnce, + transformIf, + transformMemo, + transformFor, + ...[transformFilter] , + ...prefixIdentifiers ? [ + // order is important + trackVForSlotScopes, + transformExpression + ] : [], + transformSlotOutlet, + transformElement, + trackSlotScopes, + transformText + ], + { + on: transformOn, + bind: transformBind, + model: transformModel + } + ]; +} +function baseCompile(source, options = {}) { + const onError = options.onError || defaultOnError; + const isModuleMode = options.mode === "module"; + const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode; + if (!prefixIdentifiers && options.cacheHandlers) { + onError(createCompilerError(49)); + } + if (options.scopeId && !isModuleMode) { + onError(createCompilerError(50)); + } + const resolvedOptions = shared.extend({}, options, { + prefixIdentifiers + }); + const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source; + const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers); + if (options.isTS) { + const { expressionPlugins } = options; + if (!expressionPlugins || !expressionPlugins.includes("typescript")) { + options.expressionPlugins = [...expressionPlugins || [], "typescript"]; + } + } + transform( + ast, + shared.extend({}, resolvedOptions, { + nodeTransforms: [ + ...nodeTransforms, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: shared.extend( + {}, + directiveTransforms, + options.directiveTransforms || {} + // user transforms + ) + }) + ); + return generate(ast, resolvedOptions); +} + +const BindingTypes = { + "DATA": "data", + "PROPS": "props", + "PROPS_ALIASED": "props-aliased", + "SETUP_LET": "setup-let", + "SETUP_CONST": "setup-const", + "SETUP_REACTIVE_CONST": "setup-reactive-const", + "SETUP_MAYBE_REF": "setup-maybe-ref", + "SETUP_REF": "setup-ref", + "OPTIONS": "options", + "LITERAL_CONST": "literal-const" +}; + +const noopDirectiveTransform = () => ({ props: [] }); + +exports.generateCodeFrame = shared.generateCodeFrame; +exports.BASE_TRANSITION = BASE_TRANSITION; +exports.BindingTypes = BindingTypes; +exports.CAMELIZE = CAMELIZE; +exports.CAPITALIZE = CAPITALIZE; +exports.CREATE_BLOCK = CREATE_BLOCK; +exports.CREATE_COMMENT = CREATE_COMMENT; +exports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK; +exports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE; +exports.CREATE_SLOTS = CREATE_SLOTS; +exports.CREATE_STATIC = CREATE_STATIC; +exports.CREATE_TEXT = CREATE_TEXT; +exports.CREATE_VNODE = CREATE_VNODE; +exports.CompilerDeprecationTypes = CompilerDeprecationTypes; +exports.ConstantTypes = ConstantTypes; +exports.ElementTypes = ElementTypes; +exports.ErrorCodes = ErrorCodes; +exports.FRAGMENT = FRAGMENT; +exports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS; +exports.IS_MEMO_SAME = IS_MEMO_SAME; +exports.IS_REF = IS_REF; +exports.KEEP_ALIVE = KEEP_ALIVE; +exports.MERGE_PROPS = MERGE_PROPS; +exports.NORMALIZE_CLASS = NORMALIZE_CLASS; +exports.NORMALIZE_PROPS = NORMALIZE_PROPS; +exports.NORMALIZE_STYLE = NORMALIZE_STYLE; +exports.Namespaces = Namespaces; +exports.NodeTypes = NodeTypes; +exports.OPEN_BLOCK = OPEN_BLOCK; +exports.POP_SCOPE_ID = POP_SCOPE_ID; +exports.PUSH_SCOPE_ID = PUSH_SCOPE_ID; +exports.RENDER_LIST = RENDER_LIST; +exports.RENDER_SLOT = RENDER_SLOT; +exports.RESOLVE_COMPONENT = RESOLVE_COMPONENT; +exports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE; +exports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT; +exports.RESOLVE_FILTER = RESOLVE_FILTER; +exports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING; +exports.SUSPENSE = SUSPENSE; +exports.TELEPORT = TELEPORT; +exports.TO_DISPLAY_STRING = TO_DISPLAY_STRING; +exports.TO_HANDLERS = TO_HANDLERS; +exports.TO_HANDLER_KEY = TO_HANDLER_KEY; +exports.TS_NODE_TYPES = TS_NODE_TYPES; +exports.UNREF = UNREF; +exports.WITH_CTX = WITH_CTX; +exports.WITH_DIRECTIVES = WITH_DIRECTIVES; +exports.WITH_MEMO = WITH_MEMO; +exports.advancePositionWithClone = advancePositionWithClone; +exports.advancePositionWithMutation = advancePositionWithMutation; +exports.assert = assert; +exports.baseCompile = baseCompile; +exports.baseParse = baseParse; +exports.buildDirectiveArgs = buildDirectiveArgs; +exports.buildProps = buildProps; +exports.buildSlots = buildSlots; +exports.checkCompatEnabled = checkCompatEnabled; +exports.convertToBlock = convertToBlock; +exports.createArrayExpression = createArrayExpression; +exports.createAssignmentExpression = createAssignmentExpression; +exports.createBlockStatement = createBlockStatement; +exports.createCacheExpression = createCacheExpression; +exports.createCallExpression = createCallExpression; +exports.createCompilerError = createCompilerError; +exports.createCompoundExpression = createCompoundExpression; +exports.createConditionalExpression = createConditionalExpression; +exports.createForLoopParams = createForLoopParams; +exports.createFunctionExpression = createFunctionExpression; +exports.createIfStatement = createIfStatement; +exports.createInterpolation = createInterpolation; +exports.createObjectExpression = createObjectExpression; +exports.createObjectProperty = createObjectProperty; +exports.createReturnStatement = createReturnStatement; +exports.createRoot = createRoot; +exports.createSequenceExpression = createSequenceExpression; +exports.createSimpleExpression = createSimpleExpression; +exports.createStructuralDirectiveTransform = createStructuralDirectiveTransform; +exports.createTemplateLiteral = createTemplateLiteral; +exports.createTransformContext = createTransformContext; +exports.createVNodeCall = createVNodeCall; +exports.errorMessages = errorMessages; +exports.extractIdentifiers = extractIdentifiers; +exports.findDir = findDir; +exports.findProp = findProp; +exports.forAliasRE = forAliasRE; +exports.generate = generate; +exports.getBaseTransformPreset = getBaseTransformPreset; +exports.getConstantType = getConstantType; +exports.getMemoedVNodeCall = getMemoedVNodeCall; +exports.getVNodeBlockHelper = getVNodeBlockHelper; +exports.getVNodeHelper = getVNodeHelper; +exports.hasDynamicKeyVBind = hasDynamicKeyVBind; +exports.hasScopeRef = hasScopeRef; +exports.helperNameMap = helperNameMap; +exports.injectProp = injectProp; +exports.isCoreComponent = isCoreComponent; +exports.isFnExpression = isFnExpression; +exports.isFnExpressionBrowser = isFnExpressionBrowser; +exports.isFnExpressionNode = isFnExpressionNode; +exports.isFunctionType = isFunctionType; +exports.isInDestructureAssignment = isInDestructureAssignment; +exports.isInNewExpression = isInNewExpression; +exports.isMemberExpression = isMemberExpression; +exports.isMemberExpressionBrowser = isMemberExpressionBrowser; +exports.isMemberExpressionNode = isMemberExpressionNode; +exports.isReferencedIdentifier = isReferencedIdentifier; +exports.isSimpleIdentifier = isSimpleIdentifier; +exports.isSlotOutlet = isSlotOutlet; +exports.isStaticArgOf = isStaticArgOf; +exports.isStaticExp = isStaticExp; +exports.isStaticProperty = isStaticProperty; +exports.isStaticPropertyKey = isStaticPropertyKey; +exports.isTemplateNode = isTemplateNode; +exports.isText = isText$1; +exports.isVSlot = isVSlot; +exports.locStub = locStub; +exports.noopDirectiveTransform = noopDirectiveTransform; +exports.processExpression = processExpression; +exports.processFor = processFor; +exports.processIf = processIf; +exports.processSlotOutlet = processSlotOutlet; +exports.registerRuntimeHelpers = registerRuntimeHelpers; +exports.resolveComponentType = resolveComponentType; +exports.stringifyExpression = stringifyExpression; +exports.toValidAssetId = toValidAssetId; +exports.trackSlotScopes = trackSlotScopes; +exports.trackVForSlotScopes = trackVForSlotScopes; +exports.transform = transform; +exports.transformBind = transformBind; +exports.transformElement = transformElement; +exports.transformExpression = transformExpression; +exports.transformModel = transformModel; +exports.transformOn = transformOn; +exports.traverseNode = traverseNode; +exports.unwrapTSNode = unwrapTSNode; +exports.walkBlockDeclarations = walkBlockDeclarations; +exports.walkFunctionParams = walkFunctionParams; +exports.walkIdentifiers = walkIdentifiers; +exports.warnDeprecation = warnDeprecation; diff --git a/.output/server/node_modules/@vue/compiler-core/package.json b/.output/server/node_modules/@vue/compiler-core/package.json new file mode 100644 index 0000000..26eeae8 --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-core/package.json @@ -0,0 +1,61 @@ +{ + "name": "@vue/compiler-core", + "version": "3.5.13", + "description": "@vue/compiler-core", + "main": "index.js", + "module": "dist/compiler-core.esm-bundler.js", + "types": "dist/compiler-core.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/compiler-core.d.ts", + "node": { + "production": "./dist/compiler-core.cjs.prod.js", + "development": "./dist/compiler-core.cjs.js", + "default": "./dist/compiler-core.cjs.prod.js" + }, + "module": "./dist/compiler-core.esm-bundler.js", + "import": "./dist/compiler-core.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueCompilerCore", + "compat": true, + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-core" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-core#readme", + "dependencies": { + "@babel/parser": "^7.25.3", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0", + "@vue/shared": "3.5.13" + }, + "devDependencies": { + "@babel/types": "^7.25.2" + }, + "__npminstall_done": true, + "_from": "@vue/compiler-core@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js b/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js new file mode 100644 index 0000000..94b29b7 --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js @@ -0,0 +1,686 @@ +/** +* @vue/compiler-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerCore = require('@vue/compiler-core'); +var shared = require('@vue/shared'); + +const V_MODEL_RADIO = Symbol(``); +const V_MODEL_CHECKBOX = Symbol( + `` +); +const V_MODEL_TEXT = Symbol(``); +const V_MODEL_SELECT = Symbol( + `` +); +const V_MODEL_DYNAMIC = Symbol( + `` +); +const V_ON_WITH_MODIFIERS = Symbol( + `` +); +const V_ON_WITH_KEYS = Symbol( + `` +); +const V_SHOW = Symbol(``); +const TRANSITION = Symbol(``); +const TRANSITION_GROUP = Symbol( + `` +); +compilerCore.registerRuntimeHelpers({ + [V_MODEL_RADIO]: `vModelRadio`, + [V_MODEL_CHECKBOX]: `vModelCheckbox`, + [V_MODEL_TEXT]: `vModelText`, + [V_MODEL_SELECT]: `vModelSelect`, + [V_MODEL_DYNAMIC]: `vModelDynamic`, + [V_ON_WITH_MODIFIERS]: `withModifiers`, + [V_ON_WITH_KEYS]: `withKeys`, + [V_SHOW]: `vShow`, + [TRANSITION]: `Transition`, + [TRANSITION_GROUP]: `TransitionGroup` +}); + +const parserOptions = { + parseMode: "html", + isVoidTag: shared.isVoidTag, + isNativeTag: (tag) => shared.isHTMLTag(tag) || shared.isSVGTag(tag) || shared.isMathMLTag(tag), + isPreTag: (tag) => tag === "pre", + isIgnoreNewlineTag: (tag) => tag === "pre" || tag === "textarea", + decodeEntities: void 0, + isBuiltInComponent: (tag) => { + if (tag === "Transition" || tag === "transition") { + return TRANSITION; + } else if (tag === "TransitionGroup" || tag === "transition-group") { + return TRANSITION_GROUP; + } + }, + // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher + getNamespace(tag, parent, rootNamespace) { + let ns = parent ? parent.ns : rootNamespace; + if (parent && ns === 2) { + if (parent.tag === "annotation-xml") { + if (tag === "svg") { + return 1; + } + if (parent.props.some( + (a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml") + )) { + ns = 0; + } + } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") { + ns = 0; + } + } else if (parent && ns === 1) { + if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") { + ns = 0; + } + } + if (ns === 0) { + if (tag === "svg") { + return 1; + } + if (tag === "math") { + return 2; + } + } + return ns; + } +}; + +const transformStyle = (node) => { + if (node.type === 1) { + node.props.forEach((p, i) => { + if (p.type === 6 && p.name === "style" && p.value) { + node.props[i] = { + type: 7, + name: `bind`, + arg: compilerCore.createSimpleExpression(`style`, true, p.loc), + exp: parseInlineCSS(p.value.content, p.loc), + modifiers: [], + loc: p.loc + }; + } + }); + } +}; +const parseInlineCSS = (cssText, loc) => { + const normalized = shared.parseStringStyle(cssText); + return compilerCore.createSimpleExpression( + JSON.stringify(normalized), + false, + loc, + 3 + ); +}; + +function createDOMCompilerError(code, loc) { + return compilerCore.createCompilerError( + code, + loc, + DOMErrorMessages + ); +} +const DOMErrorCodes = { + "X_V_HTML_NO_EXPRESSION": 53, + "53": "X_V_HTML_NO_EXPRESSION", + "X_V_HTML_WITH_CHILDREN": 54, + "54": "X_V_HTML_WITH_CHILDREN", + "X_V_TEXT_NO_EXPRESSION": 55, + "55": "X_V_TEXT_NO_EXPRESSION", + "X_V_TEXT_WITH_CHILDREN": 56, + "56": "X_V_TEXT_WITH_CHILDREN", + "X_V_MODEL_ON_INVALID_ELEMENT": 57, + "57": "X_V_MODEL_ON_INVALID_ELEMENT", + "X_V_MODEL_ARG_ON_ELEMENT": 58, + "58": "X_V_MODEL_ARG_ON_ELEMENT", + "X_V_MODEL_ON_FILE_INPUT_ELEMENT": 59, + "59": "X_V_MODEL_ON_FILE_INPUT_ELEMENT", + "X_V_MODEL_UNNECESSARY_VALUE": 60, + "60": "X_V_MODEL_UNNECESSARY_VALUE", + "X_V_SHOW_NO_EXPRESSION": 61, + "61": "X_V_SHOW_NO_EXPRESSION", + "X_TRANSITION_INVALID_CHILDREN": 62, + "62": "X_TRANSITION_INVALID_CHILDREN", + "X_IGNORED_SIDE_EFFECT_TAG": 63, + "63": "X_IGNORED_SIDE_EFFECT_TAG", + "__EXTEND_POINT__": 64, + "64": "__EXTEND_POINT__" +}; +const DOMErrorMessages = { + [53]: `v-html is missing expression.`, + [54]: `v-html will override element children.`, + [55]: `v-text is missing expression.`, + [56]: `v-text will override element children.`, + [57]: `v-model can only be used on <input>, <textarea> and <select> elements.`, + [58]: `v-model argument is not supported on plain elements.`, + [59]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`, + [60]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`, + [61]: `v-show is missing expression.`, + [62]: `<Transition> expects exactly one child element or component.`, + [63]: `Tags with side effect (<script> and <style>) are ignored in client component templates.` +}; + +const transformVHtml = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(53, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(54, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`innerHTML`, true, loc), + exp || compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformVText = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(55, loc) + ); + } + if (node.children.length) { + context.onError( + createDOMCompilerError(56, loc) + ); + node.children.length = 0; + } + return { + props: [ + compilerCore.createObjectProperty( + compilerCore.createSimpleExpression(`textContent`, true), + exp ? compilerCore.getConstantType(exp, context) > 0 ? exp : compilerCore.createCallExpression( + context.helperString(compilerCore.TO_DISPLAY_STRING), + [exp], + loc + ) : compilerCore.createSimpleExpression("", true) + ) + ] + }; +}; + +const transformModel = (dir, node, context) => { + const baseResult = compilerCore.transformModel(dir, node, context); + if (!baseResult.props.length || node.tagType === 1) { + return baseResult; + } + if (dir.arg) { + context.onError( + createDOMCompilerError( + 58, + dir.arg.loc + ) + ); + } + const { tag } = node; + const isCustomElement = context.isCustomElement(tag); + if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) { + let directiveToUse = V_MODEL_TEXT; + let isInvalidType = false; + if (tag === "input" || isCustomElement) { + const type = compilerCore.findProp(node, `type`); + if (type) { + if (type.type === 7) { + directiveToUse = V_MODEL_DYNAMIC; + } else if (type.value) { + switch (type.value.content) { + case "radio": + directiveToUse = V_MODEL_RADIO; + break; + case "checkbox": + directiveToUse = V_MODEL_CHECKBOX; + break; + case "file": + isInvalidType = true; + context.onError( + createDOMCompilerError( + 59, + dir.loc + ) + ); + break; + } + } + } else if (compilerCore.hasDynamicKeyVBind(node)) { + directiveToUse = V_MODEL_DYNAMIC; + } else ; + } else if (tag === "select") { + directiveToUse = V_MODEL_SELECT; + } else ; + if (!isInvalidType) { + baseResult.needRuntime = context.helper(directiveToUse); + } + } else { + context.onError( + createDOMCompilerError( + 57, + dir.loc + ) + ); + } + baseResult.props = baseResult.props.filter( + (p) => !(p.key.type === 4 && p.key.content === "modelValue") + ); + return baseResult; +}; + +const isEventOptionModifier = /* @__PURE__ */ shared.makeMap(`passive,once,capture`); +const isNonKeyModifier = /* @__PURE__ */ shared.makeMap( + // event propagation management + `stop,prevent,self,ctrl,shift,alt,meta,exact,middle` +); +const maybeKeyModifier = /* @__PURE__ */ shared.makeMap("left,right"); +const isKeyboardEvent = /* @__PURE__ */ shared.makeMap(`onkeyup,onkeydown,onkeypress`); +const resolveModifiers = (key, modifiers, context, loc) => { + const keyModifiers = []; + const nonKeyModifiers = []; + const eventOptionModifiers = []; + for (let i = 0; i < modifiers.length; i++) { + const modifier = modifiers[i].content; + if (modifier === "native" && compilerCore.checkCompatEnabled( + "COMPILER_V_ON_NATIVE", + context, + loc + )) { + eventOptionModifiers.push(modifier); + } else if (isEventOptionModifier(modifier)) { + eventOptionModifiers.push(modifier); + } else { + if (maybeKeyModifier(modifier)) { + if (compilerCore.isStaticExp(key)) { + if (isKeyboardEvent(key.content.toLowerCase())) { + keyModifiers.push(modifier); + } else { + nonKeyModifiers.push(modifier); + } + } else { + keyModifiers.push(modifier); + nonKeyModifiers.push(modifier); + } + } else { + if (isNonKeyModifier(modifier)) { + nonKeyModifiers.push(modifier); + } else { + keyModifiers.push(modifier); + } + } + } + } + return { + keyModifiers, + nonKeyModifiers, + eventOptionModifiers + }; +}; +const transformClick = (key, event) => { + const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === "onclick"; + return isStaticClick ? compilerCore.createSimpleExpression(event, true) : key.type !== 4 ? compilerCore.createCompoundExpression([ + `(`, + key, + `) === "onClick" ? "${event}" : (`, + key, + `)` + ]) : key; +}; +const transformOn = (dir, node, context) => { + return compilerCore.transformOn(dir, node, context, (baseResult) => { + const { modifiers } = dir; + if (!modifiers.length) return baseResult; + let { key, value: handlerExp } = baseResult.props[0]; + const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc); + if (nonKeyModifiers.includes("right")) { + key = transformClick(key, `onContextmenu`); + } + if (nonKeyModifiers.includes("middle")) { + key = transformClick(key, `onMouseup`); + } + if (nonKeyModifiers.length) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [ + handlerExp, + JSON.stringify(nonKeyModifiers) + ]); + } + if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard + (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) { + handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [ + handlerExp, + JSON.stringify(keyModifiers) + ]); + } + if (eventOptionModifiers.length) { + const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join(""); + key = compilerCore.isStaticExp(key) ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true) : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]); + } + return { + props: [compilerCore.createObjectProperty(key, handlerExp)] + }; + }); +}; + +const transformShow = (dir, node, context) => { + const { exp, loc } = dir; + if (!exp) { + context.onError( + createDOMCompilerError(61, loc) + ); + } + return { + props: [], + needRuntime: context.helper(V_SHOW) + }; +}; + +const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g; +const stringifyStatic = (children, context, parent) => { + if (context.scopes.vSlot > 0) { + return; + } + const isParentCached = parent.type === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 20; + let nc = 0; + let ec = 0; + const currentChunk = []; + const stringifyCurrentChunk = (currentIndex) => { + if (nc >= 20 || ec >= 5) { + const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [ + JSON.stringify( + currentChunk.map((node) => stringifyNode(node, context)).join("") + ).replace(expReplaceRE, `" + $1 + "`), + // the 2nd argument indicates the number of DOM nodes this static vnode + // will insert / hydrate + String(currentChunk.length) + ]); + const deleteCount = currentChunk.length - 1; + if (isParentCached) { + children.splice( + currentIndex - currentChunk.length, + currentChunk.length, + // @ts-expect-error + staticCall + ); + } else { + currentChunk[0].codegenNode.value = staticCall; + if (currentChunk.length > 1) { + children.splice(currentIndex - currentChunk.length + 1, deleteCount); + const cacheIndex = context.cached.indexOf( + currentChunk[currentChunk.length - 1].codegenNode + ); + if (cacheIndex > -1) { + for (let i2 = cacheIndex; i2 < context.cached.length; i2++) { + const c = context.cached[i2]; + if (c) c.index -= deleteCount; + } + context.cached.splice(cacheIndex - deleteCount + 1, deleteCount); + } + } + } + return deleteCount; + } + return 0; + }; + let i = 0; + for (; i < children.length; i++) { + const child = children[i]; + const isCached = isParentCached || getCachedNode(child); + if (isCached) { + const result = analyzeNode(child); + if (result) { + nc += result[0]; + ec += result[1]; + currentChunk.push(child); + continue; + } + } + i -= stringifyCurrentChunk(i); + nc = 0; + ec = 0; + currentChunk.length = 0; + } + stringifyCurrentChunk(i); +}; +const getCachedNode = (node) => { + if ((node.type === 1 && node.tagType === 0 || node.type === 12) && node.codegenNode && node.codegenNode.type === 20) { + return node.codegenNode; + } +}; +const dataAriaRE = /^(data|aria)-/; +const isStringifiableAttr = (name, ns) => { + return (ns === 0 ? shared.isKnownHtmlAttr(name) : ns === 1 ? shared.isKnownSvgAttr(name) : ns === 2 ? shared.isKnownMathMLAttr(name) : false) || dataAriaRE.test(name); +}; +const isNonStringifiable = /* @__PURE__ */ shared.makeMap( + `caption,thead,tr,th,tbody,td,tfoot,colgroup,col` +); +function analyzeNode(node) { + if (node.type === 1 && isNonStringifiable(node.tag)) { + return false; + } + if (node.type === 12) { + return [1, 0]; + } + let nc = 1; + let ec = node.props.length > 0 ? 1 : 0; + let bailed = false; + const bail = () => { + bailed = true; + return false; + }; + function walk(node2) { + const isOptionTag = node2.tag === "option" && node2.ns === 0; + for (let i = 0; i < node2.props.length; i++) { + const p = node2.props[i]; + if (p.type === 6 && !isStringifiableAttr(p.name, node2.ns)) { + return bail(); + } + if (p.type === 7 && p.name === "bind") { + if (p.arg && (p.arg.type === 8 || p.arg.isStatic && !isStringifiableAttr(p.arg.content, node2.ns))) { + return bail(); + } + if (p.exp && (p.exp.type === 8 || p.exp.constType < 3)) { + return bail(); + } + if (isOptionTag && compilerCore.isStaticArgOf(p.arg, "value") && p.exp && !p.exp.isStatic) { + return bail(); + } + } + } + for (let i = 0; i < node2.children.length; i++) { + nc++; + const child = node2.children[i]; + if (child.type === 1) { + if (child.props.length > 0) { + ec++; + } + walk(child); + if (bailed) { + return false; + } + } + } + return true; + } + return walk(node) ? [nc, ec] : false; +} +function stringifyNode(node, context) { + if (shared.isString(node)) { + return node; + } + if (shared.isSymbol(node)) { + return ``; + } + switch (node.type) { + case 1: + return stringifyElement(node, context); + case 2: + return shared.escapeHtml(node.content); + case 3: + return `<!--${shared.escapeHtml(node.content)}-->`; + case 5: + return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content))); + case 8: + return shared.escapeHtml(evaluateConstant(node)); + case 12: + return stringifyNode(node.content, context); + default: + return ""; + } +} +function stringifyElement(node, context) { + let res = `<${node.tag}`; + let innerHTML = ""; + for (let i = 0; i < node.props.length; i++) { + const p = node.props[i]; + if (p.type === 6) { + res += ` ${p.name}`; + if (p.value) { + res += `="${shared.escapeHtml(p.value.content)}"`; + } + } else if (p.type === 7) { + if (p.name === "bind") { + const exp = p.exp; + if (exp.content[0] === "_") { + res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`; + continue; + } + if (shared.isBooleanAttr(p.arg.content) && exp.content === "false") { + continue; + } + let evaluated = evaluateConstant(exp); + if (evaluated != null) { + const arg = p.arg && p.arg.content; + if (arg === "class") { + evaluated = shared.normalizeClass(evaluated); + } else if (arg === "style") { + evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated)); + } + res += ` ${p.arg.content}="${shared.escapeHtml( + evaluated + )}"`; + } + } else if (p.name === "html") { + innerHTML = evaluateConstant(p.exp); + } else if (p.name === "text") { + innerHTML = shared.escapeHtml( + shared.toDisplayString(evaluateConstant(p.exp)) + ); + } + } + } + if (context.scopeId) { + res += ` ${context.scopeId}`; + } + res += `>`; + if (innerHTML) { + res += innerHTML; + } else { + for (let i = 0; i < node.children.length; i++) { + res += stringifyNode(node.children[i], context); + } + } + if (!shared.isVoidTag(node.tag)) { + res += `</${node.tag}>`; + } + return res; +} +function evaluateConstant(exp) { + if (exp.type === 4) { + return new Function(`return (${exp.content})`)(); + } else { + let res = ``; + exp.children.forEach((c) => { + if (shared.isString(c) || shared.isSymbol(c)) { + return; + } + if (c.type === 2) { + res += c.content; + } else if (c.type === 5) { + res += shared.toDisplayString(evaluateConstant(c.content)); + } else { + res += evaluateConstant(c); + } + }); + return res; + } +} + +const ignoreSideEffectTags = (node, context) => { + if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) { + context.removeNode(); + } +}; + +const DOMNodeTransforms = [ + transformStyle, + ...[] +]; +const DOMDirectiveTransforms = { + cloak: compilerCore.noopDirectiveTransform, + html: transformVHtml, + text: transformVText, + model: transformModel, + // override compiler-core + on: transformOn, + // override compiler-core + show: transformShow +}; +function compile(src, options = {}) { + return compilerCore.baseCompile( + src, + shared.extend({}, parserOptions, options, { + nodeTransforms: [ + // ignore <script> and <tag> + // this is not put inside DOMNodeTransforms because that list is used + // by compiler-ssr to generate vnode fallback branches + ignoreSideEffectTags, + ...DOMNodeTransforms, + ...options.nodeTransforms || [] + ], + directiveTransforms: shared.extend( + {}, + DOMDirectiveTransforms, + options.directiveTransforms || {} + ), + transformHoist: stringifyStatic + }) + ); +} +function parse(template, options = {}) { + return compilerCore.baseParse(template, shared.extend({}, parserOptions, options)); +} + +exports.DOMDirectiveTransforms = DOMDirectiveTransforms; +exports.DOMErrorCodes = DOMErrorCodes; +exports.DOMErrorMessages = DOMErrorMessages; +exports.DOMNodeTransforms = DOMNodeTransforms; +exports.TRANSITION = TRANSITION; +exports.TRANSITION_GROUP = TRANSITION_GROUP; +exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX; +exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC; +exports.V_MODEL_RADIO = V_MODEL_RADIO; +exports.V_MODEL_SELECT = V_MODEL_SELECT; +exports.V_MODEL_TEXT = V_MODEL_TEXT; +exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS; +exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS; +exports.V_SHOW = V_SHOW; +exports.compile = compile; +exports.createDOMCompilerError = createDOMCompilerError; +exports.parse = parse; +exports.parserOptions = parserOptions; +exports.transformStyle = transformStyle; +Object.keys(compilerCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = compilerCore[k]; +}); diff --git a/.output/server/node_modules/@vue/compiler-dom/package.json b/.output/server/node_modules/@vue/compiler-dom/package.json new file mode 100644 index 0000000..1acf69e --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-dom/package.json @@ -0,0 +1,60 @@ +{ + "name": "@vue/compiler-dom", + "version": "3.5.13", + "description": "@vue/compiler-dom", + "main": "index.js", + "module": "dist/compiler-dom.esm-bundler.js", + "types": "dist/compiler-dom.d.ts", + "unpkg": "dist/compiler-dom.global.js", + "jsdelivr": "dist/compiler-dom.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/compiler-dom.d.ts", + "node": { + "production": "./dist/compiler-dom.cjs.prod.js", + "development": "./dist/compiler-dom.cjs.js", + "default": "./dist/compiler-dom.cjs.prod.js" + }, + "module": "./dist/compiler-dom.esm-bundler.js", + "import": "./dist/compiler-dom.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "name": "VueCompilerDOM", + "compat": true, + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-dom" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-dom#readme", + "dependencies": { + "@vue/shared": "3.5.13", + "@vue/compiler-core": "3.5.13" + }, + "__npminstall_done": true, + "_from": "@vue/compiler-dom@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js b/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js new file mode 100644 index 0000000..241e298 --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js @@ -0,0 +1,1404 @@ +/** +* @vue/compiler-ssr v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var shared = require('@vue/shared'); + +const SSR_INTERPOLATE = Symbol(`ssrInterpolate`); +const SSR_RENDER_VNODE = Symbol(`ssrRenderVNode`); +const SSR_RENDER_COMPONENT = Symbol(`ssrRenderComponent`); +const SSR_RENDER_SLOT = Symbol(`ssrRenderSlot`); +const SSR_RENDER_SLOT_INNER = Symbol(`ssrRenderSlotInner`); +const SSR_RENDER_CLASS = Symbol(`ssrRenderClass`); +const SSR_RENDER_STYLE = Symbol(`ssrRenderStyle`); +const SSR_RENDER_ATTRS = Symbol(`ssrRenderAttrs`); +const SSR_RENDER_ATTR = Symbol(`ssrRenderAttr`); +const SSR_RENDER_DYNAMIC_ATTR = Symbol(`ssrRenderDynamicAttr`); +const SSR_RENDER_LIST = Symbol(`ssrRenderList`); +const SSR_INCLUDE_BOOLEAN_ATTR = Symbol( + `ssrIncludeBooleanAttr` +); +const SSR_LOOSE_EQUAL = Symbol(`ssrLooseEqual`); +const SSR_LOOSE_CONTAIN = Symbol(`ssrLooseContain`); +const SSR_RENDER_DYNAMIC_MODEL = Symbol( + `ssrRenderDynamicModel` +); +const SSR_GET_DYNAMIC_MODEL_PROPS = Symbol( + `ssrGetDynamicModelProps` +); +const SSR_RENDER_TELEPORT = Symbol(`ssrRenderTeleport`); +const SSR_RENDER_SUSPENSE = Symbol(`ssrRenderSuspense`); +const SSR_GET_DIRECTIVE_PROPS = Symbol(`ssrGetDirectiveProps`); +const ssrHelpers = { + [SSR_INTERPOLATE]: `ssrInterpolate`, + [SSR_RENDER_VNODE]: `ssrRenderVNode`, + [SSR_RENDER_COMPONENT]: `ssrRenderComponent`, + [SSR_RENDER_SLOT]: `ssrRenderSlot`, + [SSR_RENDER_SLOT_INNER]: `ssrRenderSlotInner`, + [SSR_RENDER_CLASS]: `ssrRenderClass`, + [SSR_RENDER_STYLE]: `ssrRenderStyle`, + [SSR_RENDER_ATTRS]: `ssrRenderAttrs`, + [SSR_RENDER_ATTR]: `ssrRenderAttr`, + [SSR_RENDER_DYNAMIC_ATTR]: `ssrRenderDynamicAttr`, + [SSR_RENDER_LIST]: `ssrRenderList`, + [SSR_INCLUDE_BOOLEAN_ATTR]: `ssrIncludeBooleanAttr`, + [SSR_LOOSE_EQUAL]: `ssrLooseEqual`, + [SSR_LOOSE_CONTAIN]: `ssrLooseContain`, + [SSR_RENDER_DYNAMIC_MODEL]: `ssrRenderDynamicModel`, + [SSR_GET_DYNAMIC_MODEL_PROPS]: `ssrGetDynamicModelProps`, + [SSR_RENDER_TELEPORT]: `ssrRenderTeleport`, + [SSR_RENDER_SUSPENSE]: `ssrRenderSuspense`, + [SSR_GET_DIRECTIVE_PROPS]: `ssrGetDirectiveProps` +}; +compilerDom.registerRuntimeHelpers(ssrHelpers); + +const ssrTransformIf = compilerDom.createStructuralDirectiveTransform( + /^(if|else|else-if)$/, + compilerDom.processIf +); +function ssrProcessIf(node, context, disableNestedFragments = false, disableComment = false) { + const [rootBranch] = node.branches; + const ifStatement = compilerDom.createIfStatement( + rootBranch.condition, + processIfBranch(rootBranch, context, disableNestedFragments) + ); + context.pushStatement(ifStatement); + let currentIf = ifStatement; + for (let i = 1; i < node.branches.length; i++) { + const branch = node.branches[i]; + const branchBlockStatement = processIfBranch( + branch, + context, + disableNestedFragments + ); + if (branch.condition) { + currentIf = currentIf.alternate = compilerDom.createIfStatement( + branch.condition, + branchBlockStatement + ); + } else { + currentIf.alternate = branchBlockStatement; + } + } + if (!currentIf.alternate && !disableComment) { + currentIf.alternate = compilerDom.createBlockStatement([ + compilerDom.createCallExpression(`_push`, ["`<!---->`"]) + ]); + } +} +function processIfBranch(branch, context, disableNestedFragments = false) { + const { children } = branch; + const needFragmentWrapper = !disableNestedFragments && (children.length !== 1 || children[0].type !== 1) && // optimize away nested fragments when the only child is a ForNode + !(children.length === 1 && children[0].type === 11); + return processChildrenAsStatement(branch, context, needFragmentWrapper); +} + +const ssrTransformFor = compilerDom.createStructuralDirectiveTransform("for", compilerDom.processFor); +function ssrProcessFor(node, context, disableNestedFragments = false) { + const needFragmentWrapper = !disableNestedFragments && (node.children.length !== 1 || node.children[0].type !== 1); + const renderLoop = compilerDom.createFunctionExpression( + compilerDom.createForLoopParams(node.parseResult) + ); + renderLoop.body = processChildrenAsStatement( + node, + context, + needFragmentWrapper + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--[-->`); + } + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_LIST), [ + node.source, + renderLoop + ]) + ); + if (!disableNestedFragments) { + context.pushStringPart(`<!--]-->`); + } +} + +const ssrTransformSlotOutlet = (node, context) => { + if (compilerDom.isSlotOutlet(node)) { + const { slotName, slotProps } = compilerDom.processSlotOutlet(node, context); + const args = [ + `_ctx.$slots`, + slotName, + slotProps || `{}`, + // fallback content placeholder. will be replaced in the process phase + `null`, + `_push`, + `_parent` + ]; + if (context.scopeId && context.slotted !== false) { + args.push(`"${context.scopeId}-s"`); + } + let method = SSR_RENDER_SLOT; + let parent = context.parent; + if (parent) { + const children = parent.children; + if (parent.type === 10) { + parent = context.grandParent; + } + let componentType; + if (parent.type === 1 && parent.tagType === 1 && ((componentType = compilerDom.resolveComponentType(parent, context, true)) === compilerDom.TRANSITION || componentType === compilerDom.TRANSITION_GROUP) && children.filter((c) => c.type === 1).length === 1) { + method = SSR_RENDER_SLOT_INNER; + if (!(context.scopeId && context.slotted !== false)) { + args.push("null"); + } + args.push("true"); + } + } + node.ssrCodegenNode = compilerDom.createCallExpression(context.helper(method), args); + } +}; +function ssrProcessSlotOutlet(node, context) { + const renderCall = node.ssrCodegenNode; + if (node.children.length) { + const fallbackRenderFn = compilerDom.createFunctionExpression([]); + fallbackRenderFn.body = processChildrenAsStatement(node, context); + renderCall.arguments[3] = fallbackRenderFn; + } + if (context.withSlotScopeId) { + const slotScopeId = renderCall.arguments[6]; + renderCall.arguments[6] = slotScopeId ? `${slotScopeId} + _scopeId` : `_scopeId`; + } + context.pushStatement(node.ssrCodegenNode); +} + +function createSSRCompilerError(code, loc) { + return compilerDom.createCompilerError(code, loc, SSRErrorMessages); +} +const SSRErrorMessages = { + [65]: `Unsafe attribute name for SSR.`, + [66]: `Missing the 'to' prop on teleport element.`, + [67]: `Invalid AST node during SSR transform.` +}; + +function ssrProcessTeleport(node, context) { + const targetProp = compilerDom.findProp(node, "to"); + if (!targetProp) { + context.onError( + createSSRCompilerError(66, node.loc) + ); + return; + } + let target; + if (targetProp.type === 6) { + target = targetProp.value && compilerDom.createSimpleExpression(targetProp.value.content, true); + } else { + target = targetProp.exp; + } + if (!target) { + context.onError( + createSSRCompilerError( + 66, + targetProp.loc + ) + ); + return; + } + const disabledProp = compilerDom.findProp( + node, + "disabled", + false, + true + /* allow empty */ + ); + const disabled = disabledProp ? disabledProp.type === 6 ? `true` : disabledProp.exp || `false` : `false`; + const contentRenderFn = compilerDom.createFunctionExpression( + [`_push`], + void 0, + // Body is added later + true, + // newline + false, + // isSlot + node.loc + ); + contentRenderFn.body = processChildrenAsStatement(node, context); + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_TELEPORT), [ + `_push`, + contentRenderFn, + target, + disabled, + `_parent` + ]) + ); +} + +const wipMap$3 = /* @__PURE__ */ new WeakMap(); +function ssrTransformSuspense(node, context) { + return () => { + if (node.children.length) { + const wipEntry = { + slotsExp: null, + // to be immediately set + wipSlots: [] + }; + wipMap$3.set(node, wipEntry); + wipEntry.slotsExp = compilerDom.buildSlots( + node, + context, + (_props, _vForExp, children, loc) => { + const fn = compilerDom.createFunctionExpression( + [], + void 0, + // no return, assign body later + true, + // newline + false, + // suspense slots are not treated as normal slots + loc + ); + wipEntry.wipSlots.push({ + fn, + children + }); + return fn; + } + ).slots; + } + }; +} +function ssrProcessSuspense(node, context) { + const wipEntry = wipMap$3.get(node); + if (!wipEntry) { + return; + } + const { slotsExp, wipSlots } = wipEntry; + for (let i = 0; i < wipSlots.length; i++) { + const slot = wipSlots[i]; + slot.fn.body = processChildrenAsStatement(slot, context); + } + context.pushStatement( + compilerDom.createCallExpression(context.helper(SSR_RENDER_SUSPENSE), [ + `_push`, + slotsExp + ]) + ); +} + +const rawChildrenMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformElement = (node, context) => { + if (node.type !== 1 || node.tagType !== 0) { + return; + } + return function ssrPostTransformElement() { + const openTag = [`<${node.tag}`]; + const needTagForRuntime = node.tag === "textarea" || node.tag.indexOf("-") > 0; + const hasDynamicVBind = compilerDom.hasDynamicKeyVBind(node); + const hasCustomDir = node.props.some( + (p) => p.type === 7 && !shared.isBuiltInDirective(p.name) + ); + const needMergeProps = hasDynamicVBind || hasCustomDir; + if (needMergeProps) { + const { props, directives } = compilerDom.buildProps( + node, + context, + node.props, + false, + false, + true + ); + if (props || directives.length) { + const mergedProps = buildSSRProps(props, directives, context); + const propsExp = compilerDom.createCallExpression( + context.helper(SSR_RENDER_ATTRS), + [mergedProps] + ); + if (node.tag === "textarea") { + const existingText = node.children[0]; + if (!existingText || existingText.type !== 5) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + compilerDom.createAssignmentExpression( + compilerDom.createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + compilerDom.createConditionalExpression( + compilerDom.createSimpleExpression(`"value" in ${tempId}`, false), + compilerDom.createSimpleExpression(`${tempId}.value`, false), + compilerDom.createSimpleExpression( + existingText ? existingText.content : ``, + true + ), + false + ) + ]) + ); + } + } else if (node.tag === "input") { + const vModel = findVModel(node); + if (vModel) { + const tempId = `_temp${context.temps++}`; + const tempExp = compilerDom.createSimpleExpression(tempId, false); + propsExp.arguments = [ + compilerDom.createSequenceExpression([ + compilerDom.createAssignmentExpression(tempExp, mergedProps), + compilerDom.createCallExpression(context.helper(compilerDom.MERGE_PROPS), [ + tempExp, + compilerDom.createCallExpression( + context.helper(SSR_GET_DYNAMIC_MODEL_PROPS), + [ + tempExp, + // existing props + vModel.exp + // model + ] + ) + ]) + ]) + ]; + } + } else if (directives.length && !node.children.length) { + const vText = compilerDom.findDir(node, "text"); + if (!vText) { + const tempId = `_temp${context.temps++}`; + propsExp.arguments = [ + compilerDom.createAssignmentExpression( + compilerDom.createSimpleExpression(tempId, false), + mergedProps + ) + ]; + rawChildrenMap.set( + node, + compilerDom.createConditionalExpression( + compilerDom.createSimpleExpression(`"textContent" in ${tempId}`, false), + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + compilerDom.createSimpleExpression(`${tempId}.textContent`, false) + ]), + compilerDom.createSimpleExpression(`${tempId}.innerHTML ?? ''`, false), + false + ) + ); + } + } + if (needTagForRuntime) { + propsExp.arguments.push(`"${node.tag}"`); + } + openTag.push(propsExp); + } + } + let dynamicClassBinding = void 0; + let staticClassBinding = void 0; + let dynamicStyleBinding = void 0; + for (let i = 0; i < node.props.length; i++) { + const prop = node.props[i]; + if (node.tag === "input" && isTrueFalseValue(prop)) { + continue; + } + if (prop.type === 7) { + if (prop.name === "html" && prop.exp) { + rawChildrenMap.set( + node, + compilerDom.createCompoundExpression([`(`, prop.exp, `) ?? ''`]) + ); + } else if (prop.name === "text" && prop.exp) { + node.children = [compilerDom.createInterpolation(prop.exp, prop.loc)]; + } else if (prop.name === "slot") { + context.onError( + compilerDom.createCompilerError(40, prop.loc) + ); + } else if (isTextareaWithValue(node, prop) && prop.exp) { + if (!needMergeProps) { + node.children = [compilerDom.createInterpolation(prop.exp, prop.loc)]; + } + } else if (!needMergeProps && prop.name !== "on") { + const directiveTransform = context.directiveTransforms[prop.name]; + if (directiveTransform) { + const { props, ssrTagParts } = directiveTransform( + prop, + node, + context + ); + if (ssrTagParts) { + openTag.push(...ssrTagParts); + } + for (let j = 0; j < props.length; j++) { + const { key, value } = props[j]; + if (compilerDom.isStaticExp(key)) { + let attrName = key.content; + if (attrName === "key" || attrName === "ref") { + continue; + } + if (attrName === "class") { + openTag.push( + ` class="`, + dynamicClassBinding = compilerDom.createCallExpression( + context.helper(SSR_RENDER_CLASS), + [value] + ), + `"` + ); + } else if (attrName === "style") { + if (dynamicStyleBinding) { + mergeCall(dynamicStyleBinding, value); + } else { + openTag.push( + ` style="`, + dynamicStyleBinding = compilerDom.createCallExpression( + context.helper(SSR_RENDER_STYLE), + [value] + ), + `"` + ); + } + } else { + attrName = node.tag.indexOf("-") > 0 ? attrName : shared.propsToAttrMap[attrName] || attrName.toLowerCase(); + if (shared.isBooleanAttr(attrName)) { + openTag.push( + compilerDom.createConditionalExpression( + compilerDom.createCallExpression( + context.helper(SSR_INCLUDE_BOOLEAN_ATTR), + [value] + ), + compilerDom.createSimpleExpression(" " + attrName, true), + compilerDom.createSimpleExpression("", true), + false + ) + ); + } else if (shared.isSSRSafeAttrName(attrName)) { + openTag.push( + compilerDom.createCallExpression(context.helper(SSR_RENDER_ATTR), [ + key, + value + ]) + ); + } else { + context.onError( + createSSRCompilerError( + 65, + key.loc + ) + ); + } + } + } else { + const args = [key, value]; + if (needTagForRuntime) { + args.push(`"${node.tag}"`); + } + openTag.push( + compilerDom.createCallExpression( + context.helper(SSR_RENDER_DYNAMIC_ATTR), + args + ) + ); + } + } + } + } + } else { + const name = prop.name; + if (node.tag === "textarea" && name === "value" && prop.value) { + rawChildrenMap.set(node, shared.escapeHtml(prop.value.content)); + } else if (!needMergeProps) { + if (name === "key" || name === "ref") { + continue; + } + if (name === "class" && prop.value) { + staticClassBinding = JSON.stringify(prop.value.content); + } + openTag.push( + ` ${prop.name}` + (prop.value ? `="${shared.escapeHtml(prop.value.content)}"` : ``) + ); + } + } + } + if (dynamicClassBinding && staticClassBinding) { + mergeCall(dynamicClassBinding, staticClassBinding); + removeStaticBinding(openTag, "class"); + } + if (context.scopeId) { + openTag.push(` ${context.scopeId}`); + } + node.ssrCodegenNode = compilerDom.createTemplateLiteral(openTag); + }; +}; +function buildSSRProps(props, directives, context) { + let mergePropsArgs = []; + if (props) { + if (props.type === 14) { + mergePropsArgs = props.arguments; + } else { + mergePropsArgs.push(props); + } + } + if (directives.length) { + for (const dir of directives) { + mergePropsArgs.push( + compilerDom.createCallExpression(context.helper(SSR_GET_DIRECTIVE_PROPS), [ + `_ctx`, + ...compilerDom.buildDirectiveArgs(dir, context).elements + ]) + ); + } + } + return mergePropsArgs.length > 1 ? compilerDom.createCallExpression(context.helper(compilerDom.MERGE_PROPS), mergePropsArgs) : mergePropsArgs[0]; +} +function isTrueFalseValue(prop) { + if (prop.type === 7) { + return prop.name === "bind" && prop.arg && compilerDom.isStaticExp(prop.arg) && (prop.arg.content === "true-value" || prop.arg.content === "false-value"); + } else { + return prop.name === "true-value" || prop.name === "false-value"; + } +} +function isTextareaWithValue(node, prop) { + return !!(node.tag === "textarea" && prop.name === "bind" && compilerDom.isStaticArgOf(prop.arg, "value")); +} +function mergeCall(call, arg) { + const existing = call.arguments[0]; + if (existing.type === 17) { + existing.elements.push(arg); + } else { + call.arguments[0] = compilerDom.createArrayExpression([existing, arg]); + } +} +function removeStaticBinding(tag, binding) { + const regExp = new RegExp(`^ ${binding}=".+"$`); + const i = tag.findIndex((e) => typeof e === "string" && regExp.test(e)); + if (i > -1) { + tag.splice(i, 1); + } +} +function findVModel(node) { + return node.props.find( + (p) => p.type === 7 && p.name === "model" && p.exp + ); +} +function ssrProcessElement(node, context) { + const isVoidTag = context.options.isVoidTag || shared.NO; + const elementsToAdd = node.ssrCodegenNode.elements; + for (let j = 0; j < elementsToAdd.length; j++) { + context.pushStringPart(elementsToAdd[j]); + } + if (context.withSlotScopeId) { + context.pushStringPart(compilerDom.createSimpleExpression(`_scopeId`, false)); + } + context.pushStringPart(`>`); + const rawChildren = rawChildrenMap.get(node); + if (rawChildren) { + context.pushStringPart(rawChildren); + } else if (node.children.length) { + processChildren(node, context); + } + if (!isVoidTag(node.tag)) { + context.pushStringPart(`</${node.tag}>`); + } +} + +const wipMap$2 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransitionGroup(node, context) { + return () => { + const tag = compilerDom.findProp(node, "tag"); + if (tag) { + const otherProps = node.props.filter((p) => p !== tag); + const { props, directives } = compilerDom.buildProps( + node, + context, + otherProps, + true, + false, + true + ); + let propsExp = null; + if (props || directives.length) { + propsExp = compilerDom.createCallExpression(context.helper(SSR_RENDER_ATTRS), [ + buildSSRProps(props, directives, context) + ]); + } + wipMap$2.set(node, { + tag, + propsExp, + scopeId: context.scopeId || null + }); + } + }; +} +function ssrProcessTransitionGroup(node, context) { + const entry = wipMap$2.get(node); + if (entry) { + const { tag, propsExp, scopeId } = entry; + if (tag.type === 7) { + context.pushStringPart(`<`); + context.pushStringPart(tag.exp); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren( + node, + context, + false, + /** + * TransitionGroup has the special runtime behavior of flattening and + * concatenating all children into a single fragment (in order for them to + * be patched using the same key map) so we need to account for that here + * by disabling nested fragment wrappers from being generated. + */ + true, + /** + * TransitionGroup filters out comment children at runtime and thus + * doesn't expect comments to be present during hydration. We need to + * account for that by disabling the empty comment that is otherwise + * rendered for a falsy v-if that has no v-else specified. (#6715) + */ + true + ); + context.pushStringPart(`</`); + context.pushStringPart(tag.exp); + context.pushStringPart(`>`); + } else { + context.pushStringPart(`<${tag.value.content}`); + if (propsExp) { + context.pushStringPart(propsExp); + } + if (scopeId) { + context.pushStringPart(` ${scopeId}`); + } + context.pushStringPart(`>`); + processChildren(node, context, false, true, true); + context.pushStringPart(`</${tag.value.content}>`); + } + } else { + processChildren(node, context, true, true, true); + } +} + +const wipMap$1 = /* @__PURE__ */ new WeakMap(); +function ssrTransformTransition(node, context) { + return () => { + const appear = compilerDom.findProp(node, "appear", false, true); + wipMap$1.set(node, !!appear); + }; +} +function ssrProcessTransition(node, context) { + node.children = node.children.filter((c) => c.type !== 3); + const appear = wipMap$1.get(node); + if (appear) { + context.pushStringPart(`<template>`); + processChildren(node, context, false, true); + context.pushStringPart(`</template>`); + } else { + processChildren(node, context, false, true); + } +} + +const wipMap = /* @__PURE__ */ new WeakMap(); +const WIP_SLOT = Symbol(); +const componentTypeMap = /* @__PURE__ */ new WeakMap(); +const ssrTransformComponent = (node, context) => { + if (node.type !== 1 || node.tagType !== 1) { + return; + } + const component = compilerDom.resolveComponentType( + node, + context, + true + /* ssr */ + ); + const isDynamicComponent = shared.isObject(component) && component.callee === compilerDom.RESOLVE_DYNAMIC_COMPONENT; + componentTypeMap.set(node, component); + if (shared.isSymbol(component)) { + if (component === compilerDom.SUSPENSE) { + return ssrTransformSuspense(node, context); + } else if (component === compilerDom.TRANSITION_GROUP) { + return ssrTransformTransitionGroup(node, context); + } else if (component === compilerDom.TRANSITION) { + return ssrTransformTransition(node); + } + return; + } + const vnodeBranches = []; + const clonedNode = clone(node); + return function ssrPostTransformComponent() { + if (clonedNode.children.length) { + compilerDom.buildSlots(clonedNode, context, (props, vFor, children) => { + vnodeBranches.push( + createVNodeSlotBranch(props, vFor, children, context) + ); + return compilerDom.createFunctionExpression(void 0); + }); + } + let propsExp = `null`; + if (node.props.length) { + const { props, directives } = compilerDom.buildProps( + node, + context, + void 0, + true, + isDynamicComponent + ); + if (props || directives.length) { + propsExp = buildSSRProps(props, directives, context); + } + } + const wipEntries = []; + wipMap.set(node, wipEntries); + const buildSSRSlotFn = (props, _vForExp, children, loc) => { + const param0 = props && compilerDom.stringifyExpression(props) || `_`; + const fn = compilerDom.createFunctionExpression( + [param0, `_push`, `_parent`, `_scopeId`], + void 0, + // no return, assign body later + true, + // newline + true, + // isSlot + loc + ); + wipEntries.push({ + type: WIP_SLOT, + fn, + children, + // also collect the corresponding vnode branch built earlier + vnodeBranch: vnodeBranches[wipEntries.length] + }); + return fn; + }; + const slots = node.children.length ? compilerDom.buildSlots(node, context, buildSSRSlotFn).slots : `null`; + if (typeof component !== "string") { + node.ssrCodegenNode = compilerDom.createCallExpression( + context.helper(SSR_RENDER_VNODE), + [ + `_push`, + compilerDom.createCallExpression(context.helper(compilerDom.CREATE_VNODE), [ + component, + propsExp, + slots + ]), + `_parent` + ] + ); + } else { + node.ssrCodegenNode = compilerDom.createCallExpression( + context.helper(SSR_RENDER_COMPONENT), + [component, propsExp, slots, `_parent`] + ); + } + }; +}; +function ssrProcessComponent(node, context, parent) { + const component = componentTypeMap.get(node); + if (!node.ssrCodegenNode) { + if (component === compilerDom.TELEPORT) { + return ssrProcessTeleport(node, context); + } else if (component === compilerDom.SUSPENSE) { + return ssrProcessSuspense(node, context); + } else if (component === compilerDom.TRANSITION_GROUP) { + return ssrProcessTransitionGroup(node, context); + } else { + if (parent.type === WIP_SLOT) { + context.pushStringPart(``); + } + if (component === compilerDom.TRANSITION) { + return ssrProcessTransition(node, context); + } + processChildren(node, context); + } + } else { + const wipEntries = wipMap.get(node) || []; + for (let i = 0; i < wipEntries.length; i++) { + const { fn, vnodeBranch } = wipEntries[i]; + fn.body = compilerDom.createIfStatement( + compilerDom.createSimpleExpression(`_push`, false), + processChildrenAsStatement( + wipEntries[i], + context, + false, + true + ), + vnodeBranch + ); + } + if (context.withSlotScopeId) { + node.ssrCodegenNode.arguments.push(`_scopeId`); + } + if (typeof component === "string") { + context.pushStatement( + compilerDom.createCallExpression(`_push`, [node.ssrCodegenNode]) + ); + } else { + context.pushStatement(node.ssrCodegenNode); + } + } +} +const rawOptionsMap = /* @__PURE__ */ new WeakMap(); +const [baseNodeTransforms, baseDirectiveTransforms] = compilerDom.getBaseTransformPreset(true); +const vnodeNodeTransforms = [...baseNodeTransforms, ...compilerDom.DOMNodeTransforms]; +const vnodeDirectiveTransforms = { + ...baseDirectiveTransforms, + ...compilerDom.DOMDirectiveTransforms +}; +function createVNodeSlotBranch(slotProps, vFor, children, parentContext) { + const rawOptions = rawOptionsMap.get(parentContext.root); + const subOptions = { + ...rawOptions, + // overwrite with vnode-based transforms + nodeTransforms: [ + ...vnodeNodeTransforms, + ...rawOptions.nodeTransforms || [] + ], + directiveTransforms: { + ...vnodeDirectiveTransforms, + ...rawOptions.directiveTransforms || {} + } + }; + const wrapperProps = []; + if (slotProps) { + wrapperProps.push({ + type: 7, + name: "slot", + exp: slotProps, + arg: void 0, + modifiers: [], + loc: compilerDom.locStub + }); + } + if (vFor) { + wrapperProps.push(shared.extend({}, vFor)); + } + const wrapperNode = { + type: 1, + ns: 0, + tag: "template", + tagType: 3, + props: wrapperProps, + children, + loc: compilerDom.locStub, + codegenNode: void 0 + }; + subTransform(wrapperNode, subOptions, parentContext); + return compilerDom.createReturnStatement(children); +} +function subTransform(node, options, parentContext) { + const childRoot = compilerDom.createRoot([node]); + const childContext = compilerDom.createTransformContext(childRoot, options); + childContext.ssr = false; + childContext.scopes = { ...parentContext.scopes }; + childContext.identifiers = { ...parentContext.identifiers }; + childContext.imports = parentContext.imports; + compilerDom.traverseNode(childRoot, childContext); + ["helpers", "components", "directives"].forEach((key) => { + childContext[key].forEach((value, helperKey) => { + if (key === "helpers") { + const parentCount = parentContext.helpers.get(helperKey); + if (parentCount === void 0) { + parentContext.helpers.set(helperKey, value); + } else { + parentContext.helpers.set(helperKey, value + parentCount); + } + } else { + parentContext[key].add(value); + } + }); + }); +} +function clone(v) { + if (shared.isArray(v)) { + return v.map(clone); + } else if (shared.isPlainObject(v)) { + const res = {}; + for (const key in v) { + res[key] = clone(v[key]); + } + return res; + } else { + return v; + } +} + +function ssrCodegenTransform(ast, options) { + const context = createSSRTransformContext(ast, options); + if (options.ssrCssVars) { + const cssContext = compilerDom.createTransformContext(compilerDom.createRoot([]), options); + const varsExp = compilerDom.processExpression( + compilerDom.createSimpleExpression(options.ssrCssVars, false), + cssContext + ); + context.body.push( + compilerDom.createCompoundExpression([`const _cssVars = { style: `, varsExp, `}`]) + ); + Array.from(cssContext.helpers.keys()).forEach((helper) => { + ast.helpers.add(helper); + }); + } + const isFragment = ast.children.length > 1 && ast.children.some((c) => !compilerDom.isText(c)); + processChildren(ast, context, isFragment); + ast.codegenNode = compilerDom.createBlockStatement(context.body); + ast.ssrHelpers = Array.from( + /* @__PURE__ */ new Set([ + ...Array.from(ast.helpers).filter((h) => h in ssrHelpers), + ...context.helpers + ]) + ); + ast.helpers = new Set(Array.from(ast.helpers).filter((h) => !(h in ssrHelpers))); +} +function createSSRTransformContext(root, options, helpers = /* @__PURE__ */ new Set(), withSlotScopeId = false) { + const body = []; + let currentString = null; + return { + root, + options, + body, + helpers, + withSlotScopeId, + onError: options.onError || ((e) => { + throw e; + }), + helper(name) { + helpers.add(name); + return name; + }, + pushStringPart(part) { + if (!currentString) { + const currentCall = compilerDom.createCallExpression(`_push`); + body.push(currentCall); + currentString = compilerDom.createTemplateLiteral([]); + currentCall.arguments.push(currentString); + } + const bufferedElements = currentString.elements; + const lastItem = bufferedElements[bufferedElements.length - 1]; + if (shared.isString(part) && shared.isString(lastItem)) { + bufferedElements[bufferedElements.length - 1] += part; + } else { + bufferedElements.push(part); + } + }, + pushStatement(statement) { + currentString = null; + body.push(statement); + } + }; +} +function createChildContext(parent, withSlotScopeId = parent.withSlotScopeId) { + return createSSRTransformContext( + parent.root, + parent.options, + parent.helpers, + withSlotScopeId + ); +} +function processChildren(parent, context, asFragment = false, disableNestedFragments = false, disableComment = false) { + if (asFragment) { + context.pushStringPart(`<!--[-->`); + } + const { children } = parent; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + switch (child.type) { + case 1: + switch (child.tagType) { + case 0: + ssrProcessElement(child, context); + break; + case 1: + ssrProcessComponent(child, context, parent); + break; + case 2: + ssrProcessSlotOutlet(child, context); + break; + case 3: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck2 = child; + return exhaustiveCheck2; + } + break; + case 2: + context.pushStringPart(shared.escapeHtml(child.content)); + break; + case 3: + if (!disableComment) { + context.pushStringPart(`<!--${child.content}-->`); + } + break; + case 5: + context.pushStringPart( + compilerDom.createCallExpression(context.helper(SSR_INTERPOLATE), [ + child.content + ]) + ); + break; + case 9: + ssrProcessIf(child, context, disableNestedFragments, disableComment); + break; + case 11: + ssrProcessFor(child, context, disableNestedFragments); + break; + case 10: + break; + case 12: + case 8: + break; + default: + context.onError( + createSSRCompilerError( + 67, + child.loc + ) + ); + const exhaustiveCheck = child; + return exhaustiveCheck; + } + } + if (asFragment) { + context.pushStringPart(`<!--]-->`); + } +} +function processChildrenAsStatement(parent, parentContext, asFragment = false, withSlotScopeId = parentContext.withSlotScopeId) { + const childContext = createChildContext(parentContext, withSlotScopeId); + processChildren(parent, childContext, asFragment); + return compilerDom.createBlockStatement(childContext.body); +} + +const ssrTransformModel = (dir, node, context) => { + const model = dir.exp; + function checkDuplicatedValue() { + const value = compilerDom.findProp(node, "value"); + if (value) { + context.onError( + compilerDom.createDOMCompilerError( + 60, + value.loc + ) + ); + } + } + function processOption(plainNode) { + if (plainNode.tag === "option") { + if (plainNode.props.findIndex((p) => p.name === "selected") === -1) { + const value = findValueBinding(plainNode); + plainNode.ssrCodegenNode.elements.push( + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(context.helper(SSR_INCLUDE_BOOLEAN_ATTR), [ + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(`Array.isArray`, [model]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]), + compilerDom.createSimpleExpression(" selected", true), + compilerDom.createSimpleExpression("", true), + false + ) + ); + } + } else if (plainNode.tag === "optgroup") { + plainNode.children.forEach( + (option) => processOption(option) + ); + } + } + if (node.tagType === 0) { + const res = { props: [] }; + const defaultProps = [ + // default value binding for text type inputs + compilerDom.createObjectProperty(`value`, model) + ]; + if (node.tag === "input") { + const type = compilerDom.findProp(node, "type"); + if (type) { + const value = findValueBinding(node); + if (type.type === 7) { + res.ssrTagParts = [ + compilerDom.createCallExpression(context.helper(SSR_RENDER_DYNAMIC_MODEL), [ + type.exp, + model, + value + ]) + ]; + } else if (type.value) { + switch (type.value.content) { + case "radio": + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + value + ]) + ) + ]; + break; + case "checkbox": + const trueValueBinding = compilerDom.findProp(node, "true-value"); + if (trueValueBinding) { + const trueValue = trueValueBinding.type === 6 ? JSON.stringify(trueValueBinding.value.content) : trueValueBinding.exp; + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createCallExpression(context.helper(SSR_LOOSE_EQUAL), [ + model, + trueValue + ]) + ) + ]; + } else { + res.props = [ + compilerDom.createObjectProperty( + `checked`, + compilerDom.createConditionalExpression( + compilerDom.createCallExpression(`Array.isArray`, [model]), + compilerDom.createCallExpression(context.helper(SSR_LOOSE_CONTAIN), [ + model, + value + ]), + model + ) + ) + ]; + } + break; + case "file": + context.onError( + compilerDom.createDOMCompilerError( + 59, + dir.loc + ) + ); + break; + default: + checkDuplicatedValue(); + res.props = defaultProps; + break; + } + } + } else if (compilerDom.hasDynamicKeyVBind(node)) ; else { + checkDuplicatedValue(); + res.props = defaultProps; + } + } else if (node.tag === "textarea") { + checkDuplicatedValue(); + node.children = [compilerDom.createInterpolation(model, model.loc)]; + } else if (node.tag === "select") { + const processChildren = (children) => { + children.forEach((child) => { + if (child.type === 1) { + processOption(child); + } else if (child.type === 11) { + processChildren(child.children); + } else if (child.type === 9) { + child.branches.forEach((b) => processChildren(b.children)); + } + }); + }; + processChildren(node.children); + } else { + context.onError( + compilerDom.createDOMCompilerError( + 57, + dir.loc + ) + ); + } + return res; + } else { + return compilerDom.transformModel(dir, node, context); + } +}; +function findValueBinding(node) { + const valueBinding = compilerDom.findProp(node, "value"); + return valueBinding ? valueBinding.type === 7 ? valueBinding.exp : compilerDom.createSimpleExpression(valueBinding.value.content, true) : compilerDom.createSimpleExpression(`null`, false); +} + +const ssrTransformShow = (dir, node, context) => { + if (!dir.exp) { + context.onError( + compilerDom.createDOMCompilerError(61) + ); + } + return { + props: [ + compilerDom.createObjectProperty( + `style`, + compilerDom.createConditionalExpression( + dir.exp, + compilerDom.createSimpleExpression(`null`, false), + compilerDom.createObjectExpression([ + compilerDom.createObjectProperty( + `display`, + compilerDom.createSimpleExpression(`none`, true) + ) + ]), + false + ) + ) + ] + }; +}; + +const filterChild = (node) => node.children.filter((n) => n.type !== 3); +const hasSingleChild = (node) => filterChild(node).length === 1; +const ssrInjectFallthroughAttrs = (node, context) => { + if (node.type === 0) { + context.identifiers._attrs = 1; + } + if (node.type === 1 && node.tagType === 1 && (node.tag === "transition" || node.tag === "Transition" || node.tag === "KeepAlive" || node.tag === "keep-alive")) { + const rootChildren = filterChild(context.root); + if (rootChildren.length === 1 && rootChildren[0] === node) { + if (hasSingleChild(node)) { + injectFallthroughAttrs(node.children[0]); + } + return; + } + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10 && hasSingleChild(node)) { + let hasEncounteredIf = false; + for (const c of filterChild(parent)) { + if (c.type === 9 || c.type === 1 && compilerDom.findDir(c, "if")) { + if (hasEncounteredIf) return; + hasEncounteredIf = true; + } else if ( + // node before v-if + !hasEncounteredIf || // non else nodes + !(c.type === 1 && compilerDom.findDir(c, /else/, true)) + ) { + return; + } + } + injectFallthroughAttrs(node.children[0]); + } else if (hasSingleChild(parent)) { + injectFallthroughAttrs(node); + } +}; +function injectFallthroughAttrs(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !compilerDom.findDir(node, "for")) { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: compilerDom.createSimpleExpression(`_attrs`, false), + modifiers: [], + loc: compilerDom.locStub + }); + } +} + +const ssrInjectCssVars = (node, context) => { + if (!context.ssrCssVars) { + return; + } + if (node.type === 0) { + context.identifiers._cssVars = 1; + } + const parent = context.parent; + if (!parent || parent.type !== 0) { + return; + } + if (node.type === 10) { + for (const child of node.children) { + injectCssVars(child); + } + } else { + injectCssVars(node); + } +}; +function injectCssVars(node) { + if (node.type === 1 && (node.tagType === 0 || node.tagType === 1) && !compilerDom.findDir(node, "for")) { + if (node.tag === "suspense" || node.tag === "Suspense") { + for (const child of node.children) { + if (child.type === 1 && child.tagType === 3) { + child.children.forEach(injectCssVars); + } else { + injectCssVars(child); + } + } + } else { + node.props.push({ + type: 7, + name: "bind", + arg: void 0, + exp: compilerDom.createSimpleExpression(`_cssVars`, false), + modifiers: [], + loc: compilerDom.locStub + }); + } + } +} + +function compile(source, options = {}) { + options = { + ...options, + ...compilerDom.parserOptions, + ssr: true, + inSSR: true, + scopeId: options.mode === "function" ? null : options.scopeId, + // always prefix since compiler-ssr doesn't have size concern + prefixIdentifiers: true, + // disable optimizations that are unnecessary for ssr + cacheHandlers: false, + hoistStatic: false + }; + const ast = typeof source === "string" ? compilerDom.baseParse(source, options) : source; + rawOptionsMap.set(ast, options); + compilerDom.transform(ast, { + ...options, + hoistStatic: false, + nodeTransforms: [ + ssrTransformIf, + ssrTransformFor, + compilerDom.trackVForSlotScopes, + compilerDom.transformExpression, + ssrTransformSlotOutlet, + ssrInjectFallthroughAttrs, + ssrInjectCssVars, + ssrTransformElement, + ssrTransformComponent, + compilerDom.trackSlotScopes, + compilerDom.transformStyle, + ...options.nodeTransforms || [] + // user transforms + ], + directiveTransforms: { + // reusing core v-bind + bind: compilerDom.transformBind, + on: compilerDom.transformOn, + // model and show have dedicated SSR handling + model: ssrTransformModel, + show: ssrTransformShow, + // the following are ignored during SSR + // on: noopDirectiveTransform, + cloak: compilerDom.noopDirectiveTransform, + once: compilerDom.noopDirectiveTransform, + memo: compilerDom.noopDirectiveTransform, + ...options.directiveTransforms || {} + // user transforms + } + }); + ssrCodegenTransform(ast, options); + return compilerDom.generate(ast, options); +} + +exports.compile = compile; diff --git a/.output/server/node_modules/@vue/compiler-ssr/package.json b/.output/server/node_modules/@vue/compiler-ssr/package.json new file mode 100644 index 0000000..2b1d769 --- /dev/null +++ b/.output/server/node_modules/@vue/compiler-ssr/package.json @@ -0,0 +1,37 @@ +{ + "name": "@vue/compiler-ssr", + "version": "3.5.13", + "description": "@vue/compiler-ssr", + "main": "dist/compiler-ssr.cjs.js", + "types": "dist/compiler-ssr.d.ts", + "files": [ + "dist" + ], + "buildOptions": { + "prod": false, + "formats": [ + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/compiler-ssr" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-ssr#readme", + "dependencies": { + "@vue/shared": "3.5.13", + "@vue/compiler-dom": "3.5.13" + }, + "__npminstall_done": true, + "_from": "@vue/compiler-ssr@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/api.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/api.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/api.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/app.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/app.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/app.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/component.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/component.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/component.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/context.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/context.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/context.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/index.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/index.js new file mode 100644 index 0000000..22f7589 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./api.js"), exports); +__exportStar(require("./app.js"), exports); +__exportStar(require("./component.js"), exports); +__exportStar(require("./context.js"), exports); +__exportStar(require("./hooks.js"), exports); +__exportStar(require("./util.js"), exports); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/util.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/util.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/api/util.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/const.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/const.js new file mode 100644 index 0000000..84d408c --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/const.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HOOK_PLUGIN_SETTINGS_SET = exports.HOOK_SETUP = void 0; +exports.HOOK_SETUP = 'devtools-plugin:setup'; +exports.HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set'; diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/env.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/env.js new file mode 100644 index 0000000..e6c7ebd --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/env.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isProxyAvailable = exports.getTarget = exports.getDevtoolsGlobalHook = void 0; +function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +exports.getDevtoolsGlobalHook = getDevtoolsGlobalHook; +function getTarget() { + // @ts-expect-error navigator and windows are not available in all environments + return (typeof navigator !== 'undefined' && typeof window !== 'undefined') + ? window + : typeof globalThis !== 'undefined' + ? globalThis + : {}; +} +exports.getTarget = getTarget; +exports.isProxyAvailable = typeof Proxy === 'function'; diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/index.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/index.js new file mode 100644 index 0000000..f8b5fc3 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setupDevtoolsPlugin = void 0; +const env_js_1 = require("./env.js"); +const const_js_1 = require("./const.js"); +const proxy_js_1 = require("./proxy.js"); +__exportStar(require("./api/index.js"), exports); +__exportStar(require("./plugin.js"), exports); +__exportStar(require("./time.js"), exports); +function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = (0, env_js_1.getTarget)(); + const hook = (0, env_js_1.getDevtoolsGlobalHook)(); + const enableProxy = env_js_1.isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(const_js_1.HOOK_SETUP, pluginDescriptor, setupFn); + } + else { + const proxy = enableProxy ? new proxy_js_1.ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy, + }); + if (proxy) { + setupFn(proxy.proxiedTarget); + } + } +} +exports.setupDevtoolsPlugin = setupDevtoolsPlugin; diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/plugin.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/plugin.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/plugin.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/proxy.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/proxy.js new file mode 100644 index 0000000..731c9ac --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/proxy.js @@ -0,0 +1,111 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ApiProxy = void 0; +const const_js_1 = require("./const.js"); +const time_js_1 = require("./time.js"); +class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } + catch (e) { + // noop + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } + catch (e) { + // noop + } + currentSettings = value; + }, + now() { + return (0, time_js_1.now)(); + }, + }; + if (hook) { + hook.on(const_js_1.HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } + else { + return (...args) => { + this.onQueue.push({ + method: prop, + args, + }); + }; + } + }, + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } + else if (prop === 'on') { + return this.proxiedOn; + } + else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { }, + }); + return this.fallbacks[prop](...args); + }; + } + else { + return (...args) => { + return new Promise((resolve) => { + this.targetQueue.push({ + method: prop, + args, + resolve, + }); + }); + }; + } + }, + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } +} +exports.ApiProxy = ApiProxy; diff --git a/.output/server/node_modules/@vue/devtools-api/lib/cjs/time.js b/.output/server/node_modules/@vue/devtools-api/lib/cjs/time.js new file mode 100644 index 0000000..78d7f67 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/lib/cjs/time.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.now = exports.isPerformanceSupported = void 0; +let supported; +let perf; +function isPerformanceSupported() { + var _a; + if (supported !== undefined) { + return supported; + } + if (typeof window !== 'undefined' && window.performance) { + supported = true; + perf = window.performance; + } + else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = globalThis.perf_hooks.performance; + } + else { + supported = false; + } + return supported; +} +exports.isPerformanceSupported = isPerformanceSupported; +function now() { + return isPerformanceSupported() ? perf.now() : Date.now(); +} +exports.now = now; diff --git a/.output/server/node_modules/@vue/devtools-api/package.json b/.output/server/node_modules/@vue/devtools-api/package.json new file mode 100644 index 0000000..95f0cf6 --- /dev/null +++ b/.output/server/node_modules/@vue/devtools-api/package.json @@ -0,0 +1,40 @@ +{ + "name": "@vue/devtools-api", + "version": "6.6.4", + "description": "Interact with the Vue devtools from the page", + "author": { + "name": "Guillaume Chau" + }, + "license": "MIT", + "repository": { + "url": "https://github.com/vuejs/vue-devtools.git", + "type": "git", + "directory": "packages/api" + }, + "sideEffects": false, + "main": "lib/cjs/index.js", + "browser": "lib/esm/index.js", + "module": "lib/esm/index.js", + "types": "lib/esm/index.d.ts", + "files": [ + "lib/cjs", + "lib/esm" + ], + "publishConfig": { + "access": "public" + }, + "scripts": { + "build": "rimraf lib && yarn build:esm && yarn build:cjs", + "build:esm": "tsc --module es2015 --outDir lib/esm -d", + "build:cjs": "tsc --module commonjs --outDir lib/cjs", + "build:watch": "yarn tsc --module es2015 --outDir lib/esm -d -w --sourceMap" + }, + "devDependencies": { + "@types/node": "^20.11.16", + "@types/webpack-env": "^1.15.1", + "typescript": "^5.3.3" + }, + "__npminstall_done": true, + "_from": "@vue/devtools-api@6.6.4", + "_resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js b/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js new file mode 100644 index 0000000..ee6811b --- /dev/null +++ b/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js @@ -0,0 +1,1789 @@ +/** +* @vue/reactivity v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var shared = require('@vue/shared'); + +let activeEffectScope; +class EffectScope { + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } +} + +let activeSub; +const EffectFlags = { + "ACTIVE": 1, + "1": "ACTIVE", + "RUNNING": 2, + "2": "RUNNING", + "TRACKING": 4, + "4": "TRACKING", + "NOTIFIED": 8, + "8": "NOTIFIED", + "DIRTY": 16, + "16": "DIRTY", + "ALLOW_RECURSE": 32, + "32": "ALLOW_RECURSE", + "PAUSED": 64, + "64": "PAUSED" +}; +const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); +class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= ~64; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= ~2; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= ~1; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } +} +let batchDepth = 0; +let batchedSub; +let batchedComputed; +function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; +} +function startBatch() { + batchDepth++; +} +function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= ~8; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= ~8; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; +} +function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } +} +function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; +} +function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; +} +function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= ~16; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + const dep = computed.dep; + computed.flags |= 2; + if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) { + computed.flags &= ~2; + return; + } + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || shared.hasChanged(value, computed._value)) { + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= ~2; + } +} +function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= ~4; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } +} +function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + shared.extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +let shouldTrack = true; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function onEffectCleanup(fn, failSilently = false) { + if (activeSub instanceof ReactiveEffect) { + activeSub.cleanup = fn; + } +} +function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } +} + +let globalVersion = 0; +class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } +} +class Dep { + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (false) ; + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } +} +function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + link.dep.subs = link; + } +} +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = Symbol( + "" +); +const MAP_KEY_ITERATE_KEY = Symbol( + "" +); +const ARRAY_ITERATE_KEY = Symbol( + "" +); +function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track(); + } + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger(); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = shared.isArray(target); + const isArrayIndex = targetIsArray && shared.isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !shared.isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (shared.isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (shared.isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); +} +function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); +} + +function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); +} +function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; +} +const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, toReactive); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => shared.isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toReactive(value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments); + }, + find(fn, thisArg) { + return apply(this, "find", fn, thisArg, toReactive, arguments); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply(this, "findLast", fn, thisArg, toReactive, arguments); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimisation required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", toReactive); + } +}; +function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (result.value) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; +} +const arrayProto = Array.prototype; +function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toReactive(item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; +} +function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + let wrappedFn = fn; + if (arr !== self) { + if (!isShallow(self)) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, toReactive(item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + return arr[method](wrappedFn, ...args); +} +function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; +} +function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; +} + +const isNonTrackableKeys = /* @__PURE__ */ shared.makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(shared.isSymbol) +); +function hasOwnProperty(key) { + if (!shared.isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = shared.isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (shared.isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + return targetIsArray && shared.isIntegerKey(key) ? res : res.value; + } + if (shared.isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!shared.isArray(target) && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + return false; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = shared.isArray(target) && shared.isIntegerKey(key) ? Number(key) < target.length : shared.hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = shared.hasOwn(target, key); + target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!shared.isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + shared.isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + return true; + } + deleteProperty(target, key) { + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + +const toShallow = (value) => value; +const getProto = (v) => Reflect.getPrototypeOf(v); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = shared.isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (shared.hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + shared.extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (shared.hasChanged(value, oldValue)) { + trigger(target, "set", key, value); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } + get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; +} +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + shared.hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; + +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(shared.toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!shared.isObject(target)) { + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + if (!shared.hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + shared.def(value, "__v_skip", true); + } + return value; +} +const toReactive = (value) => shared.isObject(value) ? reactive(value) : value; +const toReadonly = (value) => shared.isObject(value) ? readonly(value) : value; + +function isRef(r) { + return r ? r["__v_isRef"] === true : false; +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track(); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (shared.hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger(); + } + } + } +} +function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger(); + } + } +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return shared.isFunction(source) ? source() : unref(source); +} +const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + const ret = shared.isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +class ObjectRefImpl { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + } + get value() { + const val = this._object[this._key]; + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +} +class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } +} +function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (shared.isFunction(source)) { + return new GetterRefImpl(source); + } else if (shared.isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); +} + +class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track(); + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } + } +} +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (shared.isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + return cRef; +} + +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw", + "IS_REF": "__v_isRef" +}; + +const WatchErrorCodes = { + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP" +}; +const INITIAL_WATCHER_VALUE = {}; +const cleanupMap = /* @__PURE__ */ new WeakMap(); +let activeWatcher = void 0; +function getCurrentWatcher() { + return activeWatcher; +} +function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } +} +function watch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (shared.isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (shared.isFunction(s)) { + return call ? call(s, 2) : s(); + } else ; + }); + } else if (shared.isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = shared.NOOP; + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + shared.remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => shared.hasChanged(v, oldValue[i])) : shared.hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + oldValue = newValue; + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; +} +function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Set(); + if (seen.has(value)) { + return value; + } + seen.add(value); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (shared.isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (shared.isSet(value) || shared.isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (shared.isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; +} + +exports.ARRAY_ITERATE_KEY = ARRAY_ITERATE_KEY; +exports.EffectFlags = EffectFlags; +exports.EffectScope = EffectScope; +exports.ITERATE_KEY = ITERATE_KEY; +exports.MAP_KEY_ITERATE_KEY = MAP_KEY_ITERATE_KEY; +exports.ReactiveEffect = ReactiveEffect; +exports.ReactiveFlags = ReactiveFlags; +exports.TrackOpTypes = TrackOpTypes; +exports.TriggerOpTypes = TriggerOpTypes; +exports.WatchErrorCodes = WatchErrorCodes; +exports.computed = computed; +exports.customRef = customRef; +exports.effect = effect; +exports.effectScope = effectScope; +exports.enableTracking = enableTracking; +exports.getCurrentScope = getCurrentScope; +exports.getCurrentWatcher = getCurrentWatcher; +exports.isProxy = isProxy; +exports.isReactive = isReactive; +exports.isReadonly = isReadonly; +exports.isRef = isRef; +exports.isShallow = isShallow; +exports.markRaw = markRaw; +exports.onEffectCleanup = onEffectCleanup; +exports.onScopeDispose = onScopeDispose; +exports.onWatcherCleanup = onWatcherCleanup; +exports.pauseTracking = pauseTracking; +exports.proxyRefs = proxyRefs; +exports.reactive = reactive; +exports.reactiveReadArray = reactiveReadArray; +exports.readonly = readonly; +exports.ref = ref; +exports.resetTracking = resetTracking; +exports.shallowReactive = shallowReactive; +exports.shallowReadArray = shallowReadArray; +exports.shallowReadonly = shallowReadonly; +exports.shallowRef = shallowRef; +exports.stop = stop; +exports.toRaw = toRaw; +exports.toReactive = toReactive; +exports.toReadonly = toReadonly; +exports.toRef = toRef; +exports.toRefs = toRefs; +exports.toValue = toValue; +exports.track = track; +exports.traverse = traverse; +exports.trigger = trigger; +exports.triggerRef = triggerRef; +exports.unref = unref; +exports.watch = watch; diff --git a/.output/server/node_modules/@vue/reactivity/package.json b/.output/server/node_modules/@vue/reactivity/package.json new file mode 100644 index 0000000..71afa00 --- /dev/null +++ b/.output/server/node_modules/@vue/reactivity/package.json @@ -0,0 +1,58 @@ +{ + "name": "@vue/reactivity", + "version": "3.5.13", + "description": "@vue/reactivity", + "main": "index.js", + "module": "dist/reactivity.esm-bundler.js", + "types": "dist/reactivity.d.ts", + "unpkg": "dist/reactivity.global.js", + "jsdelivr": "dist/reactivity.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/reactivity.d.ts", + "node": { + "production": "./dist/reactivity.cjs.prod.js", + "development": "./dist/reactivity.cjs.js", + "default": "./dist/reactivity.cjs.prod.js" + }, + "module": "./dist/reactivity.esm-bundler.js", + "import": "./dist/reactivity.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/reactivity" + }, + "buildOptions": { + "name": "VueReactivity", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/reactivity#readme", + "dependencies": { + "@vue/shared": "3.5.13" + }, + "__npminstall_done": true, + "_from": "@vue/reactivity@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js b/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js new file mode 100644 index 0000000..a2ed5e5 --- /dev/null +++ b/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js @@ -0,0 +1,6654 @@ +/** +* @vue/runtime-core v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var reactivity = require('@vue/reactivity'); +var shared = require('@vue/shared'); + +function pushWarningContext(vnode) { +} +function popWarningContext() { +} +function assertNumber(val, type) { + return; +} + +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (shared.isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && shared.isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (shared.isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || shared.EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + reactivity.pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + reactivity.resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); +} +function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + if (throwInProd) { + throw err; + } else { + console.error(err); + } +} + +const queue = []; +let flushIndex = -1; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } +} +function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function queuePostFlushCb(cb) { + if (!shared.isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= ~1; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= ~1; + } + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (cb.flags & 4) { + cb.flags &= ~1; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= ~1; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; +function flushJobs(seen) { + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (false) ; + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= ~1; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(); + } + } +} + +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +const withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} + +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = shared.EMPTY_OBJ] = directives[i]; + if (dir) { + if (shared.isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + reactivity.traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + reactivity.pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + reactivity.resetTracking(); + } + } +} + +const TeleportEndKey = Symbol("_vte"); +const isTeleport = (type) => type.__isTeleport; +const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); +const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); +const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; +const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; +const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (shared.isString(targetSelector)) { + if (!select) { + return null; + } else { + const target = select(targetSelector); + return target; + } + } else { + return targetSelector; + } +}; +const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { shapeFlag, children, dynamicChildren } = n2; + if (n1 == null) { + const placeholder = n2.el = createText(""); + const mainAnchor = n2.anchor = createText(""); + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + const mount = (container2, anchor2) => { + if (shapeFlag & 16) { + if (parentComponent && parentComponent.isCE) { + parentComponent.ce._teleportTarget = container2; + } + mountChildren( + children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = () => { + const target = n2.target = resolveTarget(n2.props, querySelector); + const targetAnchor = prepareAnchor(target, n2, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (!disabled) { + mount(target, targetAnchor); + updateCssVars(n2, false); + } + } + }; + if (disabled) { + mount(container, mainAnchor); + updateCssVars(n2, true); + } + if (isTeleportDeferred(n2.props)) { + queuePostRenderEffect(() => { + mountToTarget(); + n2.el.__isMounted = true; + }, parentSuspense); + } else { + mountToTarget(); + } + } else { + if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) { + queuePostRenderEffect(() => { + TeleportImpl.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + delete n1.el.__isMounted; + }, parentSuspense); + return; + } + n2.el = n1.el; + n2.targetStart = n1.targetStart; + const mainAnchor = n2.anchor = n1.anchor; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, true); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + const shouldRemove = doRemove || !isTeleportDisabled(props); + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport +}; +function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!isReorder || isTeleportDisabled(props)) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } +} +function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } +}, hydrateChildren) { + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + if (target) { + const disabled = isTeleportDisabled(vnode.props); + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + vnode.anchor = hydrateChildren( + nextSibling(node), + vnode, + parentNode(node), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + vnode.targetStart = targetNode; + vnode.targetAnchor = targetNode && nextSibling(targetNode); + } else { + vnode.anchor = nextSibling(node); + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } + return vnode.anchor && nextSibling(vnode.anchor); +} +const Teleport = TeleportImpl; +function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } +} +function prepareAnchor(target, vnode, createText, insert) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target); + insert(targetAnchor, target); + } + return targetAnchor; +} + +const leaveCbKey = Symbol("_leaveCb"); +const enterCbKey = Symbol("_enterCb"); +function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; +} +const TransitionHookValidator = [Function, Array]; +const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator +}; +const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; +}; +const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + if (!children || !children.length) { + return; + } + const child = findNonCommentChild(children); + const rawProps = reactivity.toRaw(props); + const { mode } = rawProps; + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } +}; +function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + for (const c of children) { + if (c.type !== Comment) { + child = c; + break; + } + } + } + return child; +} +const BaseTransition = BaseTransitionImpl; +function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; +} +function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (shared.isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + const done = el[enterCbKey] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey] = void 0; + }; + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey]) { + el[enterCbKey]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + const done = el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; +} +function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } +} +function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && shared.isFunction(children.default)) { + return children.default(); + } + } +} +function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } +} +function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; +} + +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function defineComponent(options, extraOptions) { + return shared.isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => shared.extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} + +function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } + return ""; +} +function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; +} + +function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = reactivity.shallowRef(null); + if (i) { + const refs = i.refs === shared.EMPTY_OBJ ? i.refs = {} : i.refs; + { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } + const ret = r; + return ret; +} + +function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (shared.isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (shared.isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === shared.EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = reactivity.toRaw(setupState); + const canSetSetupRef = setupState === shared.EMPTY_OBJ ? () => false : (key) => { + return shared.hasOwn(rawSetupState, key); + }; + if (oldRef != null && oldRef !== ref) { + if (shared.isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (reactivity.isRef(oldRef)) { + oldRef.value = null; + } + } + if (shared.isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = shared.isString(ref); + const _isRef = reactivity.isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value; + if (isUnmount) { + shared.isArray(existing) && shared.remove(existing, refValue); + } else { + if (!shared.isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + ref.value = [refValue]; + if (rawRef.k) refs[rawRef.k] = ref.value; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + ref.value = value; + if (rawRef.k) refs[rawRef.k] = value; + } else ; + }; + if (value) { + doSet.id = -1; + queuePostRenderEffect(doSet, parentSuspense); + } else { + doSet(); + } + } + } +} + +let hasLoggedMismatchError = false; +const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; +}; +const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; +const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); +const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; +}; +const isComment = (node) => node.nodeType === 8; +function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else ; + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + if (forcePatch || patchFlag !== -1) { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + if (el.textContent !== clientText) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + if (forcePatch || !optimized || patchFlag & (16 | 32)) { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || shared.isOn(key) && !shared.isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } else if (props.onClick) { + patchProp( + el, + "onClick", + null, + props.onClick, + void 0, + parentComponent + ); + } else if (patchFlag & 4 && reactivity.isReactive(props.style)) { + for (const key in props.style) props.style[key]; + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; +} +const allowMismatchAttr = "data-allow-mismatch"; +const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" +}; +function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return allowedAttr.split(",").includes(MismatchTypeString[allowedType]); + } +} + +const requestIdleCallback = shared.getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); +const cancelIdleCallback = shared.getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); +const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); +}; +function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); +} +const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); +}; +const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } +}; +const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (shared.isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; +}; +function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } +} + +const isAsyncWrapper = (i) => !!i.type.__asyncLoader; +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (shared.isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + hydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : hydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = reactivity.ref(false); + const error = reactivity.ref(); + const delayed = reactivity.ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} + +const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; +const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + if (!sharedContext.renderer) { + return () => { + const children = slots.default && slots.default(); + return children && children.length === 1 ? children[0] : children; + }; + } + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + shared.invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + shared.invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName(vnode.type); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= ~256; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } +}; +const KeepAlive = KeepAliveImpl; +function matches(pattern, name) { + if (shared.isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (shared.isString(pattern)) { + return pattern.split(",").includes(name); + } else if (shared.isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; +} +function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); +} +function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); +} +function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } +} +function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + shared.remove(keepAliveRoot[type], injected); + }, target); +} +function resetShapeFlag(vnode) { + vnode.shapeFlag &= ~256; + vnode.shapeFlag &= ~512; +} +function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; +} + +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + reactivity.pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + reactivity.resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } +} +const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook( + "bu" +); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook( + "bum" +); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook( + "sp" +); +const onRenderTriggered = createHook("rtg"); +const onRenderTracked = createHook("rtc"); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} + +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (shared.isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === shared.camelize(name) || selfName === shared.capitalize(shared.camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + return res; + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[shared.camelize(name)] || registry[shared.capitalize(shared.camelize(name))]); +} + +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = shared.isArray(source); + if (sourceIsArray || shared.isString(source)) { + const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source); + let needsWrap = false; + if (sourceIsReactiveArray) { + needsWrap = !reactivity.isShallow(source); + source = reactivity.shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? reactivity.toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} + +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (shared.isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} + +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + 64 + ); + } + let slot = slots[name]; + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !shared.isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} + +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : shared.toHandlerKey(key)] = obj[key]; + } + return ret; +} + +const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ shared.extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => i.props, + $attrs: (i) => i.attrs, + $slots: (i) => i.slots, + $refs: (i) => i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) +); +const hasSetupBinding = (state, key) => state !== shared.EMPTY_OBJ && !state.__isScriptSetup && shared.hasOwn(state, key); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && shared.hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + reactivity.track(instance.attrs, "get", ""); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== shared.EMPTY_OBJ && shared.hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, shared.hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else ; + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (data !== shared.EMPTY_OBJ && shared.hasOwn(data, key)) { + data[key] = value; + return true; + } else if (shared.hasOwn(instance.props, key)) { + return false; + } + if (key[0] === "$" && key.slice(1) in instance) { + return false; + } else { + { + ctx[key] = value; + } + } + return true; + }, + has({ + _: { data, setupState, accessCache, ctx, appContext, propsOptions } + }, key) { + let normalizedProps; + return !!accessCache[key] || data !== shared.EMPTY_OBJ && shared.hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && shared.hasOwn(normalizedProps, key) || shared.hasOwn(ctx, key) || shared.hasOwn(publicPropertiesMap, key) || shared.hasOwn(appContext.config.globalProperties, key); + }, + defineProperty(target, key, descriptor) { + if (descriptor.get != null) { + target._.accessCache[key] = 0; + } else if (shared.hasOwn(descriptor, "value")) { + this.set(target, key, descriptor.value, null); + } + return Reflect.defineProperty(target, key, descriptor); + } +}; +const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ shared.extend({}, PublicInstanceProxyHandlers, { + get(target, key) { + if (key === Symbol.unscopables) { + return; + } + return PublicInstanceProxyHandlers.get(target, key, target); + }, + has(_, key) { + const has = key[0] !== "_" && !shared.isGloballyAllowed(key); + return has; + } +}); + +function defineProps() { + return null; +} +function defineEmits() { + return null; +} +function defineExpose(exposed) { +} +function defineOptions(options) { +} +function defineSlots() { + return null; +} +function defineModel() { +} +function withDefaults(props, defaults) { + return null; +} +function useSlots() { + return getContext().slots; +} +function useAttrs() { + return getContext().attrs; +} +function getContext() { + const i = getCurrentInstance(); + return i.setupContext || (i.setupContext = createSetupContext(i)); +} +function normalizePropsOrEmits(props) { + return shared.isArray(props) ? props.reduce( + (normalized, p) => (normalized[p] = null, normalized), + {} + ) : props; +} +function mergeDefaults(raw, defaults) { + const props = normalizePropsOrEmits(raw); + for (const key in defaults) { + if (key.startsWith("__skip")) continue; + let opt = props[key]; + if (opt) { + if (shared.isArray(opt) || shared.isFunction(opt)) { + opt = props[key] = { type: opt, default: defaults[key] }; + } else { + opt.default = defaults[key]; + } + } else if (opt === null) { + opt = props[key] = { default: defaults[key] }; + } else ; + if (opt && defaults[`__skip_${key}`]) { + opt.skipFactory = true; + } + } + return props; +} +function mergeModels(a, b) { + if (!a || !b) return a || b; + if (shared.isArray(a) && shared.isArray(b)) return a.concat(b); + return shared.extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b)); +} +function createPropsRestProxy(props, excludedKeys) { + const ret = {}; + for (const key in props) { + if (!excludedKeys.includes(key)) { + Object.defineProperty(ret, key, { + enumerable: true, + get: () => props[key] + }); + } + } + return ret; +} +function withAsyncContext(getAwaitable) { + const ctx = getCurrentInstance(); + let awaitable = getAwaitable(); + unsetCurrentInstance(); + if (shared.isPromise(awaitable)) { + awaitable = awaitable.catch((e) => { + setCurrentInstance(ctx); + throw e; + }); + } + return [awaitable, () => setCurrentInstance(ctx)]; +} + +let shouldCacheAccess = true; +function applyOptions(instance) { + const options = resolveMergedOptions(instance); + const publicThis = instance.proxy; + const ctx = instance.ctx; + shouldCacheAccess = false; + if (options.beforeCreate) { + callHook(options.beforeCreate, instance, "bc"); + } + const { + // state + data: dataOptions, + computed: computedOptions, + methods, + watch: watchOptions, + provide: provideOptions, + inject: injectOptions, + // lifecycle + created, + beforeMount, + mounted, + beforeUpdate, + updated, + activated, + deactivated, + beforeDestroy, + beforeUnmount, + destroyed, + unmounted, + render, + renderTracked, + renderTriggered, + errorCaptured, + serverPrefetch, + // public API + expose, + inheritAttrs, + // assets + components, + directives, + filters + } = options; + const checkDuplicateProperties = null; + if (injectOptions) { + resolveInjections(injectOptions, ctx, checkDuplicateProperties); + } + if (methods) { + for (const key in methods) { + const methodHandler = methods[key]; + if (shared.isFunction(methodHandler)) { + { + ctx[key] = methodHandler.bind(publicThis); + } + } + } + } + if (dataOptions) { + const data = dataOptions.call(publicThis, publicThis); + if (!shared.isObject(data)) ; else { + instance.data = reactivity.reactive(data); + } + } + shouldCacheAccess = true; + if (computedOptions) { + for (const key in computedOptions) { + const opt = computedOptions[key]; + const get = shared.isFunction(opt) ? opt.bind(publicThis, publicThis) : shared.isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : shared.NOOP; + const set = !shared.isFunction(opt) && shared.isFunction(opt.set) ? opt.set.bind(publicThis) : shared.NOOP; + const c = computed({ + get, + set + }); + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => c.value, + set: (v) => c.value = v + }); + } + } + if (watchOptions) { + for (const key in watchOptions) { + createWatcher(watchOptions[key], ctx, publicThis, key); + } + } + if (provideOptions) { + const provides = shared.isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions; + Reflect.ownKeys(provides).forEach((key) => { + provide(key, provides[key]); + }); + } + if (created) { + callHook(created, instance, "c"); + } + function registerLifecycleHook(register, hook) { + if (shared.isArray(hook)) { + hook.forEach((_hook) => register(_hook.bind(publicThis))); + } else if (hook) { + register(hook.bind(publicThis)); + } + } + registerLifecycleHook(onBeforeMount, beforeMount); + registerLifecycleHook(onMounted, mounted); + registerLifecycleHook(onBeforeUpdate, beforeUpdate); + registerLifecycleHook(onUpdated, updated); + registerLifecycleHook(onActivated, activated); + registerLifecycleHook(onDeactivated, deactivated); + registerLifecycleHook(onErrorCaptured, errorCaptured); + registerLifecycleHook(onRenderTracked, renderTracked); + registerLifecycleHook(onRenderTriggered, renderTriggered); + registerLifecycleHook(onBeforeUnmount, beforeUnmount); + registerLifecycleHook(onUnmounted, unmounted); + registerLifecycleHook(onServerPrefetch, serverPrefetch); + if (shared.isArray(expose)) { + if (expose.length) { + const exposed = instance.exposed || (instance.exposed = {}); + expose.forEach((key) => { + Object.defineProperty(exposed, key, { + get: () => publicThis[key], + set: (val) => publicThis[key] = val + }); + }); + } else if (!instance.exposed) { + instance.exposed = {}; + } + } + if (render && instance.render === shared.NOOP) { + instance.render = render; + } + if (inheritAttrs != null) { + instance.inheritAttrs = inheritAttrs; + } + if (components) instance.components = components; + if (directives) instance.directives = directives; + if (serverPrefetch) { + markAsyncBoundary(instance); + } +} +function resolveInjections(injectOptions, ctx, checkDuplicateProperties = shared.NOOP) { + if (shared.isArray(injectOptions)) { + injectOptions = normalizeInject(injectOptions); + } + for (const key in injectOptions) { + const opt = injectOptions[key]; + let injected; + if (shared.isObject(opt)) { + if ("default" in opt) { + injected = inject( + opt.from || key, + opt.default, + true + ); + } else { + injected = inject(opt.from || key); + } + } else { + injected = inject(opt); + } + if (reactivity.isRef(injected)) { + Object.defineProperty(ctx, key, { + enumerable: true, + configurable: true, + get: () => injected.value, + set: (v) => injected.value = v + }); + } else { + ctx[key] = injected; + } + } +} +function callHook(hook, instance, type) { + callWithAsyncErrorHandling( + shared.isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy), + instance, + type + ); +} +function createWatcher(raw, ctx, publicThis, key) { + let getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key]; + if (shared.isString(raw)) { + const handler = ctx[raw]; + if (shared.isFunction(handler)) { + { + watch(getter, handler); + } + } + } else if (shared.isFunction(raw)) { + { + watch(getter, raw.bind(publicThis)); + } + } else if (shared.isObject(raw)) { + if (shared.isArray(raw)) { + raw.forEach((r) => createWatcher(r, ctx, publicThis, key)); + } else { + const handler = shared.isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler]; + if (shared.isFunction(handler)) { + watch(getter, handler, raw); + } + } + } else ; +} +function resolveMergedOptions(instance) { + const base = instance.type; + const { mixins, extends: extendsOptions } = base; + const { + mixins: globalMixins, + optionsCache: cache, + config: { optionMergeStrategies } + } = instance.appContext; + const cached = cache.get(base); + let resolved; + if (cached) { + resolved = cached; + } else if (!globalMixins.length && !mixins && !extendsOptions) { + { + resolved = base; + } + } else { + resolved = {}; + if (globalMixins.length) { + globalMixins.forEach( + (m) => mergeOptions(resolved, m, optionMergeStrategies, true) + ); + } + mergeOptions(resolved, base, optionMergeStrategies); + } + if (shared.isObject(base)) { + cache.set(base, resolved); + } + return resolved; +} +function mergeOptions(to, from, strats, asMixin = false) { + const { mixins, extends: extendsOptions } = from; + if (extendsOptions) { + mergeOptions(to, extendsOptions, strats, true); + } + if (mixins) { + mixins.forEach( + (m) => mergeOptions(to, m, strats, true) + ); + } + for (const key in from) { + if (asMixin && key === "expose") ; else { + const strat = internalOptionMergeStrats[key] || strats && strats[key]; + to[key] = strat ? strat(to[key], from[key]) : from[key]; + } + } + return to; +} +const internalOptionMergeStrats = { + data: mergeDataFn, + props: mergeEmitsOrPropsOptions, + emits: mergeEmitsOrPropsOptions, + // objects + methods: mergeObjectOptions, + computed: mergeObjectOptions, + // lifecycle + beforeCreate: mergeAsArray, + created: mergeAsArray, + beforeMount: mergeAsArray, + mounted: mergeAsArray, + beforeUpdate: mergeAsArray, + updated: mergeAsArray, + beforeDestroy: mergeAsArray, + beforeUnmount: mergeAsArray, + destroyed: mergeAsArray, + unmounted: mergeAsArray, + activated: mergeAsArray, + deactivated: mergeAsArray, + errorCaptured: mergeAsArray, + serverPrefetch: mergeAsArray, + // assets + components: mergeObjectOptions, + directives: mergeObjectOptions, + // watch + watch: mergeWatchOptions, + // provide / inject + provide: mergeDataFn, + inject: mergeInject +}; +function mergeDataFn(to, from) { + if (!from) { + return to; + } + if (!to) { + return from; + } + return function mergedDataFn() { + return (shared.extend)( + shared.isFunction(to) ? to.call(this, this) : to, + shared.isFunction(from) ? from.call(this, this) : from + ); + }; +} +function mergeInject(to, from) { + return mergeObjectOptions(normalizeInject(to), normalizeInject(from)); +} +function normalizeInject(raw) { + if (shared.isArray(raw)) { + const res = {}; + for (let i = 0; i < raw.length; i++) { + res[raw[i]] = raw[i]; + } + return res; + } + return raw; +} +function mergeAsArray(to, from) { + return to ? [...new Set([].concat(to, from))] : from; +} +function mergeObjectOptions(to, from) { + return to ? shared.extend(/* @__PURE__ */ Object.create(null), to, from) : from; +} +function mergeEmitsOrPropsOptions(to, from) { + if (to) { + if (shared.isArray(to) && shared.isArray(from)) { + return [.../* @__PURE__ */ new Set([...to, ...from])]; + } + return shared.extend( + /* @__PURE__ */ Object.create(null), + normalizePropsOrEmits(to), + normalizePropsOrEmits(from != null ? from : {}) + ); + } else { + return from; + } +} +function mergeWatchOptions(to, from) { + if (!to) return from; + if (!from) return to; + const merged = shared.extend(/* @__PURE__ */ Object.create(null), to); + for (const key in from) { + merged[key] = mergeAsArray(to[key], from[key]); + } + return merged; +} + +function createAppContext() { + return { + app: null, + config: { + isNativeTag: shared.NO, + performance: false, + globalProperties: {}, + optionMergeStrategies: {}, + errorHandler: void 0, + warnHandler: void 0, + compilerOptions: {} + }, + mixins: [], + components: {}, + directives: {}, + provides: /* @__PURE__ */ Object.create(null), + optionsCache: /* @__PURE__ */ new WeakMap(), + propsCache: /* @__PURE__ */ new WeakMap(), + emitsCache: /* @__PURE__ */ new WeakMap() + }; +} +let uid$1 = 0; +function createAppAPI(render, hydrate) { + return function createApp(rootComponent, rootProps = null) { + if (!shared.isFunction(rootComponent)) { + rootComponent = shared.extend({}, rootComponent); + } + if (rootProps != null && !shared.isObject(rootProps)) { + rootProps = null; + } + const context = createAppContext(); + const installedPlugins = /* @__PURE__ */ new WeakSet(); + const pluginCleanupFns = []; + let isMounted = false; + const app = context.app = { + _uid: uid$1++, + _component: rootComponent, + _props: rootProps, + _container: null, + _context: context, + _instance: null, + version, + get config() { + return context.config; + }, + set config(v) { + }, + use(plugin, ...options) { + if (installedPlugins.has(plugin)) ; else if (plugin && shared.isFunction(plugin.install)) { + installedPlugins.add(plugin); + plugin.install(app, ...options); + } else if (shared.isFunction(plugin)) { + installedPlugins.add(plugin); + plugin(app, ...options); + } else ; + return app; + }, + mixin(mixin) { + { + if (!context.mixins.includes(mixin)) { + context.mixins.push(mixin); + } + } + return app; + }, + component(name, component) { + if (!component) { + return context.components[name]; + } + context.components[name] = component; + return app; + }, + directive(name, directive) { + if (!directive) { + return context.directives[name]; + } + context.directives[name] = directive; + return app; + }, + mount(rootContainer, isHydrate, namespace) { + if (!isMounted) { + const vnode = app._ceVNode || createVNode(rootComponent, rootProps); + vnode.appContext = context; + if (namespace === true) { + namespace = "svg"; + } else if (namespace === false) { + namespace = void 0; + } + if (isHydrate && hydrate) { + hydrate(vnode, rootContainer); + } else { + render(vnode, rootContainer, namespace); + } + isMounted = true; + app._container = rootContainer; + rootContainer.__vue_app__ = app; + return getComponentPublicInstance(vnode.component); + } + }, + onUnmount(cleanupFn) { + pluginCleanupFns.push(cleanupFn); + }, + unmount() { + if (isMounted) { + callWithAsyncErrorHandling( + pluginCleanupFns, + app._instance, + 16 + ); + render(null, app._container); + delete app._container.__vue_app__; + } + }, + provide(key, value) { + context.provides[key] = value; + return app; + }, + runWithContext(fn) { + const lastApp = currentApp; + currentApp = app; + try { + return fn(); + } finally { + currentApp = lastApp; + } + } + }; + return app; + }; +} +let currentApp = null; + +function provide(key, value) { + if (!currentInstance) ; else { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } +} +function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = currentInstance || currentRenderingInstance; + if (instance || currentApp) { + const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && shared.isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else ; + } +} +function hasInjectionContext() { + return !!(currentInstance || currentRenderingInstance || currentApp); +} + +const internalObjectProto = {}; +const createInternalObject = () => Object.create(internalObjectProto); +const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto; + +function initProps(instance, rawProps, isStateful, isSSR = false) { + const props = {}; + const attrs = createInternalObject(); + instance.propsDefaults = /* @__PURE__ */ Object.create(null); + setFullProps(instance, rawProps, props, attrs); + for (const key in instance.propsOptions[0]) { + if (!(key in props)) { + props[key] = void 0; + } + } + if (isStateful) { + instance.props = isSSR ? props : reactivity.shallowReactive(props); + } else { + if (!instance.type.props) { + instance.props = attrs; + } else { + instance.props = props; + } + } + instance.attrs = attrs; +} +function updateProps(instance, rawProps, rawPrevProps, optimized) { + const { + props, + attrs, + vnode: { patchFlag } + } = instance; + const rawCurrentProps = reactivity.toRaw(props); + const [options] = instance.propsOptions; + let hasAttrsChanged = false; + if ( + // always force full diff in dev + // - #1942 if hmr is enabled with sfc component + // - vite#872 non-sfc component used by sfc component + (optimized || patchFlag > 0) && !(patchFlag & 16) + ) { + if (patchFlag & 8) { + const propsToUpdate = instance.vnode.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + let key = propsToUpdate[i]; + if (isEmitListener(instance.emitsOptions, key)) { + continue; + } + const value = rawProps[key]; + if (options) { + if (shared.hasOwn(attrs, key)) { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } else { + const camelizedKey = shared.camelize(key); + props[camelizedKey] = resolvePropValue( + options, + rawCurrentProps, + camelizedKey, + value, + instance, + false + ); + } + } else { + if (value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + } else { + if (setFullProps(instance, rawProps, props, attrs)) { + hasAttrsChanged = true; + } + let kebabKey; + for (const key in rawCurrentProps) { + if (!rawProps || // for camelCase + !shared.hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case + // and converted to camelCase (#955) + ((kebabKey = shared.hyphenate(key)) === key || !shared.hasOwn(rawProps, kebabKey))) { + if (options) { + if (rawPrevProps && // for camelCase + (rawPrevProps[key] !== void 0 || // for kebab-case + rawPrevProps[kebabKey] !== void 0)) { + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + void 0, + instance, + true + ); + } + } else { + delete props[key]; + } + } + } + if (attrs !== rawCurrentProps) { + for (const key in attrs) { + if (!rawProps || !shared.hasOwn(rawProps, key) && true) { + delete attrs[key]; + hasAttrsChanged = true; + } + } + } + } + if (hasAttrsChanged) { + reactivity.trigger(instance.attrs, "set", ""); + } +} +function setFullProps(instance, rawProps, props, attrs) { + const [options, needCastKeys] = instance.propsOptions; + let hasAttrsChanged = false; + let rawCastValues; + if (rawProps) { + for (let key in rawProps) { + if (shared.isReservedProp(key)) { + continue; + } + const value = rawProps[key]; + let camelKey; + if (options && shared.hasOwn(options, camelKey = shared.camelize(key))) { + if (!needCastKeys || !needCastKeys.includes(camelKey)) { + props[camelKey] = value; + } else { + (rawCastValues || (rawCastValues = {}))[camelKey] = value; + } + } else if (!isEmitListener(instance.emitsOptions, key)) { + if (!(key in attrs) || value !== attrs[key]) { + attrs[key] = value; + hasAttrsChanged = true; + } + } + } + } + if (needCastKeys) { + const rawCurrentProps = reactivity.toRaw(props); + const castValues = rawCastValues || shared.EMPTY_OBJ; + for (let i = 0; i < needCastKeys.length; i++) { + const key = needCastKeys[i]; + props[key] = resolvePropValue( + options, + rawCurrentProps, + key, + castValues[key], + instance, + !shared.hasOwn(castValues, key) + ); + } + } + return hasAttrsChanged; +} +function resolvePropValue(options, props, key, value, instance, isAbsent) { + const opt = options[key]; + if (opt != null) { + const hasDefault = shared.hasOwn(opt, "default"); + if (hasDefault && value === void 0) { + const defaultValue = opt.default; + if (opt.type !== Function && !opt.skipFactory && shared.isFunction(defaultValue)) { + const { propsDefaults } = instance; + if (key in propsDefaults) { + value = propsDefaults[key]; + } else { + const reset = setCurrentInstance(instance); + value = propsDefaults[key] = defaultValue.call( + null, + props + ); + reset(); + } + } else { + value = defaultValue; + } + if (instance.ce) { + instance.ce._setProp(key, value); + } + } + if (opt[0 /* shouldCast */]) { + if (isAbsent && !hasDefault) { + value = false; + } else if (opt[1 /* shouldCastTrue */] && (value === "" || value === shared.hyphenate(key))) { + value = true; + } + } + } + return value; +} +const mixinPropsCache = /* @__PURE__ */ new WeakMap(); +function normalizePropsOptions(comp, appContext, asMixin = false) { + const cache = asMixin ? mixinPropsCache : appContext.propsCache; + const cached = cache.get(comp); + if (cached) { + return cached; + } + const raw = comp.props; + const normalized = {}; + const needCastKeys = []; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendProps = (raw2) => { + hasExtends = true; + const [props, keys] = normalizePropsOptions(raw2, appContext, true); + shared.extend(normalized, props); + if (keys) needCastKeys.push(...keys); + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendProps); + } + if (comp.extends) { + extendProps(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendProps); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, shared.EMPTY_ARR); + } + return shared.EMPTY_ARR; + } + if (shared.isArray(raw)) { + for (let i = 0; i < raw.length; i++) { + const normalizedKey = shared.camelize(raw[i]); + if (validatePropName(normalizedKey)) { + normalized[normalizedKey] = shared.EMPTY_OBJ; + } + } + } else if (raw) { + for (const key in raw) { + const normalizedKey = shared.camelize(key); + if (validatePropName(normalizedKey)) { + const opt = raw[key]; + const prop = normalized[normalizedKey] = shared.isArray(opt) || shared.isFunction(opt) ? { type: opt } : shared.extend({}, opt); + const propType = prop.type; + let shouldCast = false; + let shouldCastTrue = true; + if (shared.isArray(propType)) { + for (let index = 0; index < propType.length; ++index) { + const type = propType[index]; + const typeName = shared.isFunction(type) && type.name; + if (typeName === "Boolean") { + shouldCast = true; + break; + } else if (typeName === "String") { + shouldCastTrue = false; + } + } + } else { + shouldCast = shared.isFunction(propType) && propType.name === "Boolean"; + } + prop[0 /* shouldCast */] = shouldCast; + prop[1 /* shouldCastTrue */] = shouldCastTrue; + if (shouldCast || shared.hasOwn(prop, "default")) { + needCastKeys.push(normalizedKey); + } + } + } + } + const res = [normalized, needCastKeys]; + if (shared.isObject(comp)) { + cache.set(comp, res); + } + return res; +} +function validatePropName(key) { + if (key[0] !== "$" && !shared.isReservedProp(key)) { + return true; + } + return false; +} + +const isInternalKey = (key) => key[0] === "_" || key === "$stable"; +const normalizeSlotValue = (value) => shared.isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)]; +const normalizeSlot = (key, rawSlot, ctx) => { + if (rawSlot._n) { + return rawSlot; + } + const normalized = withCtx((...args) => { + if (false) ; + return normalizeSlotValue(rawSlot(...args)); + }, ctx); + normalized._c = false; + return normalized; +}; +const normalizeObjectSlots = (rawSlots, slots, instance) => { + const ctx = rawSlots._ctx; + for (const key in rawSlots) { + if (isInternalKey(key)) continue; + const value = rawSlots[key]; + if (shared.isFunction(value)) { + slots[key] = normalizeSlot(key, value, ctx); + } else if (value != null) { + const normalized = normalizeSlotValue(value); + slots[key] = () => normalized; + } + } +}; +const normalizeVNodeSlots = (instance, children) => { + const normalized = normalizeSlotValue(children); + instance.slots.default = () => normalized; +}; +const assignSlots = (slots, children, optimized) => { + for (const key in children) { + if (optimized || key !== "_") { + slots[key] = children[key]; + } + } +}; +const initSlots = (instance, children, optimized) => { + const slots = instance.slots = createInternalObject(); + if (instance.vnode.shapeFlag & 32) { + const type = children._; + if (type) { + assignSlots(slots, children, optimized); + if (optimized) { + shared.def(slots, "_", type, true); + } + } else { + normalizeObjectSlots(children, slots); + } + } else if (children) { + normalizeVNodeSlots(instance, children); + } +}; +const updateSlots = (instance, children, optimized) => { + const { vnode, slots } = instance; + let needDeletionCheck = true; + let deletionComparisonTarget = shared.EMPTY_OBJ; + if (vnode.shapeFlag & 32) { + const type = children._; + if (type) { + if (optimized && type === 1) { + needDeletionCheck = false; + } else { + assignSlots(slots, children, optimized); + } + } else { + needDeletionCheck = !children.$stable; + normalizeObjectSlots(children, slots); + } + deletionComparisonTarget = children; + } else if (children) { + normalizeVNodeSlots(instance, children); + deletionComparisonTarget = { default: 1 }; + } + if (needDeletionCheck) { + for (const key in slots) { + if (!isInternalKey(key) && deletionComparisonTarget[key] == null) { + delete slots[key]; + } + } + } +}; + +const queuePostRenderEffect = queueEffectWithSuspense ; +function createRenderer(options) { + return baseCreateRenderer(options); +} +function createHydrationRenderer(options) { + return baseCreateRenderer(options, createHydrationFunctions); +} +function baseCreateRenderer(options, createHydrationFns) { + const target = shared.getGlobalThis(); + target.__VUE__ = true; + const { + insert: hostInsert, + remove: hostRemove, + patchProp: hostPatchProp, + createElement: hostCreateElement, + createText: hostCreateText, + createComment: hostCreateComment, + setText: hostSetText, + setElementText: hostSetElementText, + parentNode: hostParentNode, + nextSibling: hostNextSibling, + setScopeId: hostSetScopeId = shared.NOOP, + insertStaticContent: hostInsertStaticContent + } = options; + const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!n2.dynamicChildren) => { + if (n1 === n2) { + return; + } + if (n1 && !isSameVNodeType(n1, n2)) { + anchor = getNextHostNode(n1); + unmount(n1, parentComponent, parentSuspense, true); + n1 = null; + } + if (n2.patchFlag === -2) { + optimized = false; + n2.dynamicChildren = null; + } + const { type, ref, shapeFlag } = n2; + switch (type) { + case Text: + processText(n1, n2, container, anchor); + break; + case Comment: + processCommentNode(n1, n2, container, anchor); + break; + case Static: + if (n1 == null) { + mountStaticNode(n2, container, anchor, namespace); + } + break; + case Fragment: + processFragment( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + break; + default: + if (shapeFlag & 1) { + processElement( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 6) { + processComponent( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (shapeFlag & 64) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else if (shapeFlag & 128) { + type.process( + n1, + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + internals + ); + } else ; + } + if (ref != null && parentComponent) { + setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2); + } + }; + const processText = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateText(n2.children), + container, + anchor + ); + } else { + const el = n2.el = n1.el; + if (n2.children !== n1.children) { + hostSetText(el, n2.children); + } + } + }; + const processCommentNode = (n1, n2, container, anchor) => { + if (n1 == null) { + hostInsert( + n2.el = hostCreateComment(n2.children || ""), + container, + anchor + ); + } else { + n2.el = n1.el; + } + }; + const mountStaticNode = (n2, container, anchor, namespace) => { + [n2.el, n2.anchor] = hostInsertStaticContent( + n2.children, + container, + anchor, + namespace, + n2.el, + n2.anchor + ); + }; + const moveStaticNode = ({ el, anchor }, container, nextSibling) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostInsert(el, container, nextSibling); + el = next; + } + hostInsert(anchor, container, nextSibling); + }; + const removeStaticNode = ({ el, anchor }) => { + let next; + while (el && el !== anchor) { + next = hostNextSibling(el); + hostRemove(el); + el = next; + } + hostRemove(anchor); + }; + const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + if (n2.type === "svg") { + namespace = "svg"; + } else if (n2.type === "math") { + namespace = "mathml"; + } + if (n1 == null) { + mountElement( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + patchElement( + n1, + n2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let el; + let vnodeHook; + const { props, shapeFlag, transition, dirs } = vnode; + el = vnode.el = hostCreateElement( + vnode.type, + namespace, + props && props.is, + props + ); + if (shapeFlag & 8) { + hostSetElementText(el, vnode.children); + } else if (shapeFlag & 16) { + mountChildren( + vnode.children, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(vnode, namespace), + slotScopeIds, + optimized + ); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent); + if (props) { + for (const key in props) { + if (key !== "value" && !shared.isReservedProp(key)) { + hostPatchProp(el, key, null, props[key], namespace, parentComponent); + } + } + if ("value" in props) { + hostPatchProp(el, "value", null, props.value, namespace); + } + if (vnodeHook = props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + const needCallTransitionHooks = needTransition(parentSuspense, transition); + if (needCallTransitionHooks) { + transition.beforeEnter(el); + } + hostInsert(el, container, anchor); + if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + }; + const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => { + if (scopeId) { + hostSetScopeId(el, scopeId); + } + if (slotScopeIds) { + for (let i = 0; i < slotScopeIds.length; i++) { + hostSetScopeId(el, slotScopeIds[i]); + } + } + if (parentComponent) { + let subTree = parentComponent.subTree; + if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) { + const parentVNode = parentComponent.vnode; + setScopeId( + el, + parentVNode, + parentVNode.scopeId, + parentVNode.slotScopeIds, + parentComponent.parent + ); + } + } + }; + const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => { + for (let i = start; i < children.length; i++) { + const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]); + patch( + null, + child, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const el = n2.el = n1.el; + let { patchFlag, dynamicChildren, dirs } = n2; + patchFlag |= n1.patchFlag & 16; + const oldProps = n1.props || shared.EMPTY_OBJ; + const newProps = n2.props || shared.EMPTY_OBJ; + let vnodeHook; + parentComponent && toggleRecurse(parentComponent, false); + if (vnodeHook = newProps.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + } + if (dirs) { + invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate"); + } + parentComponent && toggleRecurse(parentComponent, true); + if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) { + hostSetElementText(el, ""); + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + el, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds + ); + } else if (!optimized) { + patchChildren( + n1, + n2, + el, + null, + parentComponent, + parentSuspense, + resolveChildrenNamespace(n2, namespace), + slotScopeIds, + false + ); + } + if (patchFlag > 0) { + if (patchFlag & 16) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } else { + if (patchFlag & 2) { + if (oldProps.class !== newProps.class) { + hostPatchProp(el, "class", null, newProps.class, namespace); + } + } + if (patchFlag & 4) { + hostPatchProp(el, "style", oldProps.style, newProps.style, namespace); + } + if (patchFlag & 8) { + const propsToUpdate = n2.dynamicProps; + for (let i = 0; i < propsToUpdate.length; i++) { + const key = propsToUpdate[i]; + const prev = oldProps[key]; + const next = newProps[key]; + if (next !== prev || key === "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + } + } + if (patchFlag & 1) { + if (n1.children !== n2.children) { + hostSetElementText(el, n2.children); + } + } + } else if (!optimized && dynamicChildren == null) { + patchProps(el, oldProps, newProps, parentComponent, namespace); + } + if ((vnodeHook = newProps.onVnodeUpdated) || dirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1); + dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated"); + }, parentSuspense); + } + }; + const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => { + for (let i = 0; i < newChildren.length; i++) { + const oldVNode = oldChildren[i]; + const newVNode = newChildren[i]; + const container = ( + // oldVNode may be an errored async setup() component inside Suspense + // which will not have a mounted element + oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent + // of the Fragment itself so it can move its children. + (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement + // which also requires the correct parent container + !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything. + oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : ( + // In other cases, the parent container is not actually used so we + // just pass the block element here to avoid a DOM parentNode call. + fallbackContainer + ) + ); + patch( + oldVNode, + newVNode, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + true + ); + } + }; + const patchProps = (el, oldProps, newProps, parentComponent, namespace) => { + if (oldProps !== newProps) { + if (oldProps !== shared.EMPTY_OBJ) { + for (const key in oldProps) { + if (!shared.isReservedProp(key) && !(key in newProps)) { + hostPatchProp( + el, + key, + oldProps[key], + null, + namespace, + parentComponent + ); + } + } + } + for (const key in newProps) { + if (shared.isReservedProp(key)) continue; + const next = newProps[key]; + const prev = oldProps[key]; + if (next !== prev && key !== "value") { + hostPatchProp(el, key, prev, next, namespace, parentComponent); + } + } + if ("value" in newProps) { + hostPatchProp(el, "value", oldProps.value, newProps.value, namespace); + } + } + }; + const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(""); + const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(""); + let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + if (n1 == null) { + hostInsert(fragmentStartAnchor, container, anchor); + hostInsert(fragmentEndAnchor, container, anchor); + mountChildren( + // #10007 + // such fragment like `<></>` will be compiled into + // a fragment which doesn't have a children. + // In this case fallback to an empty array + n2.children || [], + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result + // of renderSlot() with no valid children + n1.dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + container, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + if ( + // #2080 if the stable fragment has a key, it's a <template v-for> that may + // get moved around. Make sure all root level vnodes inherit el. + // #2134 or if it's a component root, it may also get moved around + // as the component is being moved. + n2.key != null || parentComponent && n2 === parentComponent.subTree + ) { + traverseStaticChildren( + n1, + n2, + true + /* shallow */ + ); + } + } else { + patchChildren( + n1, + n2, + container, + fragmentEndAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + }; + const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + n2.slotScopeIds = slotScopeIds; + if (n1 == null) { + if (n2.shapeFlag & 512) { + parentComponent.ctx.activate( + n2, + container, + anchor, + namespace, + optimized + ); + } else { + mountComponent( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + optimized + ); + } + } else { + updateComponent(n1, n2, optimized); + } + }; + const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => { + const instance = (initialVNode.component = createComponentInstance( + initialVNode, + parentComponent, + parentSuspense + )); + if (isKeepAlive(initialVNode)) { + instance.ctx.renderer = internals; + } + { + setupComponent(instance, false, optimized); + } + if (instance.asyncDep) { + parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized); + if (!initialVNode.el) { + const placeholder = instance.subTree = createVNode(Comment); + processCommentNode(null, placeholder, container, anchor); + } + } else { + setupRenderEffect( + instance, + initialVNode, + container, + anchor, + parentSuspense, + namespace, + optimized + ); + } + }; + const updateComponent = (n1, n2, optimized) => { + const instance = n2.component = n1.component; + if (shouldUpdateComponent(n1, n2, optimized)) { + if (instance.asyncDep && !instance.asyncResolved) { + updateComponentPreRender(instance, n2, optimized); + return; + } else { + instance.next = n2; + instance.update(); + } + } else { + n2.el = n1.el; + instance.vnode = n2; + } + }; + const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => { + const componentUpdateFn = () => { + if (!instance.isMounted) { + let vnodeHook; + const { el, props } = initialVNode; + const { bm, m, parent, root, type } = instance; + const isAsyncWrapperVNode = isAsyncWrapper(initialVNode); + toggleRecurse(instance, false); + if (bm) { + shared.invokeArrayFns(bm); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) { + invokeVNodeHook(vnodeHook, parent, initialVNode); + } + toggleRecurse(instance, true); + if (el && hydrateNode) { + const hydrateSubTree = () => { + instance.subTree = renderComponentRoot(instance); + hydrateNode( + el, + instance.subTree, + instance, + parentSuspense, + null + ); + }; + if (isAsyncWrapperVNode && type.__asyncHydrate) { + type.__asyncHydrate( + el, + instance, + hydrateSubTree + ); + } else { + hydrateSubTree(); + } + } else { + if (root.ce) { + root.ce._injectChildStyle(type); + } + const subTree = instance.subTree = renderComponentRoot(instance); + patch( + null, + subTree, + container, + anchor, + instance, + parentSuspense, + namespace + ); + initialVNode.el = subTree.el; + } + if (m) { + queuePostRenderEffect(m, parentSuspense); + } + if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) { + const scopedInitialVNode = initialVNode; + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), + parentSuspense + ); + } + if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) { + instance.a && queuePostRenderEffect(instance.a, parentSuspense); + } + instance.isMounted = true; + initialVNode = container = anchor = null; + } else { + let { next, bu, u, parent, vnode } = instance; + { + const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance); + if (nonHydratedAsyncRoot) { + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } + nonHydratedAsyncRoot.asyncDep.then(() => { + if (!instance.isUnmounted) { + componentUpdateFn(); + } + }); + return; + } + } + let originNext = next; + let vnodeHook; + toggleRecurse(instance, false); + if (next) { + next.el = vnode.el; + updateComponentPreRender(instance, next, optimized); + } else { + next = vnode; + } + if (bu) { + shared.invokeArrayFns(bu); + } + if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) { + invokeVNodeHook(vnodeHook, parent, next, vnode); + } + toggleRecurse(instance, true); + const nextTree = renderComponentRoot(instance); + const prevTree = instance.subTree; + instance.subTree = nextTree; + patch( + prevTree, + nextTree, + // parent may have changed if it's in a teleport + hostParentNode(prevTree.el), + // anchor may have changed if it's in a fragment + getNextHostNode(prevTree), + instance, + parentSuspense, + namespace + ); + next.el = nextTree.el; + if (originNext === null) { + updateHOCHostEl(instance, nextTree.el); + } + if (u) { + queuePostRenderEffect(u, parentSuspense); + } + if (vnodeHook = next.props && next.props.onVnodeUpdated) { + queuePostRenderEffect( + () => invokeVNodeHook(vnodeHook, parent, next, vnode), + parentSuspense + ); + } + } + }; + instance.scope.on(); + const effect = instance.effect = new reactivity.ReactiveEffect(componentUpdateFn); + instance.scope.off(); + const update = instance.update = effect.run.bind(effect); + const job = instance.job = effect.runIfDirty.bind(effect); + job.i = instance; + job.id = instance.uid; + effect.scheduler = () => queueJob(job); + toggleRecurse(instance, true); + update(); + }; + const updateComponentPreRender = (instance, nextVNode, optimized) => { + nextVNode.component = instance; + const prevProps = instance.vnode.props; + instance.vnode = nextVNode; + instance.next = null; + updateProps(instance, nextVNode.props, prevProps, optimized); + updateSlots(instance, nextVNode.children, optimized); + reactivity.pauseTracking(); + flushPreFlushCbs(instance); + reactivity.resetTracking(); + }; + const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => { + const c1 = n1 && n1.children; + const prevShapeFlag = n1 ? n1.shapeFlag : 0; + const c2 = n2.children; + const { patchFlag, shapeFlag } = n2; + if (patchFlag > 0) { + if (patchFlag & 128) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } else if (patchFlag & 256) { + patchUnkeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + return; + } + } + if (shapeFlag & 8) { + if (prevShapeFlag & 16) { + unmountChildren(c1, parentComponent, parentSuspense); + } + if (c2 !== c1) { + hostSetElementText(container, c2); + } + } else { + if (prevShapeFlag & 16) { + if (shapeFlag & 16) { + patchKeyedChildren( + c1, + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + unmountChildren(c1, parentComponent, parentSuspense, true); + } + } else { + if (prevShapeFlag & 8) { + hostSetElementText(container, ""); + } + if (shapeFlag & 16) { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + } + } + }; + const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + c1 = c1 || shared.EMPTY_ARR; + c2 = c2 || shared.EMPTY_ARR; + const oldLength = c1.length; + const newLength = c2.length; + const commonLength = Math.min(oldLength, newLength); + let i; + for (i = 0; i < commonLength; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + patch( + c1[i], + nextChild, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + if (oldLength > newLength) { + unmountChildren( + c1, + parentComponent, + parentSuspense, + true, + false, + commonLength + ); + } else { + mountChildren( + c2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + commonLength + ); + } + }; + const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => { + let i = 0; + const l2 = c2.length; + let e1 = c1.length - 1; + let e2 = l2 - 1; + while (i <= e1 && i <= e2) { + const n1 = c1[i]; + const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + i++; + } + while (i <= e1 && i <= e2) { + const n1 = c1[e1]; + const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]); + if (isSameVNodeType(n1, n2)) { + patch( + n1, + n2, + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else { + break; + } + e1--; + e2--; + } + if (i > e1) { + if (i <= e2) { + const nextPos = e2 + 1; + const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor; + while (i <= e2) { + patch( + null, + c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + i++; + } + } + } else if (i > e2) { + while (i <= e1) { + unmount(c1[i], parentComponent, parentSuspense, true); + i++; + } + } else { + const s1 = i; + const s2 = i; + const keyToNewIndexMap = /* @__PURE__ */ new Map(); + for (i = s2; i <= e2; i++) { + const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]); + if (nextChild.key != null) { + keyToNewIndexMap.set(nextChild.key, i); + } + } + let j; + let patched = 0; + const toBePatched = e2 - s2 + 1; + let moved = false; + let maxNewIndexSoFar = 0; + const newIndexToOldIndexMap = new Array(toBePatched); + for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0; + for (i = s1; i <= e1; i++) { + const prevChild = c1[i]; + if (patched >= toBePatched) { + unmount(prevChild, parentComponent, parentSuspense, true); + continue; + } + let newIndex; + if (prevChild.key != null) { + newIndex = keyToNewIndexMap.get(prevChild.key); + } else { + for (j = s2; j <= e2; j++) { + if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) { + newIndex = j; + break; + } + } + } + if (newIndex === void 0) { + unmount(prevChild, parentComponent, parentSuspense, true); + } else { + newIndexToOldIndexMap[newIndex - s2] = i + 1; + if (newIndex >= maxNewIndexSoFar) { + maxNewIndexSoFar = newIndex; + } else { + moved = true; + } + patch( + prevChild, + c2[newIndex], + container, + null, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + patched++; + } + } + const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : shared.EMPTY_ARR; + j = increasingNewIndexSequence.length - 1; + for (i = toBePatched - 1; i >= 0; i--) { + const nextIndex = s2 + i; + const nextChild = c2[nextIndex]; + const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor; + if (newIndexToOldIndexMap[i] === 0) { + patch( + null, + nextChild, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } else if (moved) { + if (j < 0 || i !== increasingNewIndexSequence[j]) { + move(nextChild, container, anchor, 2); + } else { + j--; + } + } + } + } + }; + const move = (vnode, container, anchor, moveType, parentSuspense = null) => { + const { el, type, transition, children, shapeFlag } = vnode; + if (shapeFlag & 6) { + move(vnode.component.subTree, container, anchor, moveType); + return; + } + if (shapeFlag & 128) { + vnode.suspense.move(container, anchor, moveType); + return; + } + if (shapeFlag & 64) { + type.move(vnode, container, anchor, internals); + return; + } + if (type === Fragment) { + hostInsert(el, container, anchor); + for (let i = 0; i < children.length; i++) { + move(children[i], container, anchor, moveType); + } + hostInsert(vnode.anchor, container, anchor); + return; + } + if (type === Static) { + moveStaticNode(vnode, container, anchor); + return; + } + const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition; + if (needTransition2) { + if (moveType === 0) { + transition.beforeEnter(el); + hostInsert(el, container, anchor); + queuePostRenderEffect(() => transition.enter(el), parentSuspense); + } else { + const { leave, delayLeave, afterLeave } = transition; + const remove2 = () => hostInsert(el, container, anchor); + const performLeave = () => { + leave(el, () => { + remove2(); + afterLeave && afterLeave(); + }); + }; + if (delayLeave) { + delayLeave(el, remove2, performLeave); + } else { + performLeave(); + } + } + } else { + hostInsert(el, container, anchor); + } + }; + const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => { + const { + type, + props, + ref, + children, + dynamicChildren, + shapeFlag, + patchFlag, + dirs, + cacheIndex + } = vnode; + if (patchFlag === -2) { + optimized = false; + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode, true); + } + if (cacheIndex != null) { + parentComponent.renderCache[cacheIndex] = void 0; + } + if (shapeFlag & 256) { + parentComponent.ctx.deactivate(vnode); + return; + } + const shouldInvokeDirs = shapeFlag & 1 && dirs; + const shouldInvokeVnodeHook = !isAsyncWrapper(vnode); + let vnodeHook; + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) { + invokeVNodeHook(vnodeHook, parentComponent, vnode); + } + if (shapeFlag & 6) { + unmountComponent(vnode.component, parentSuspense, doRemove); + } else { + if (shapeFlag & 128) { + vnode.suspense.unmount(parentSuspense, doRemove); + return; + } + if (shouldInvokeDirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount"); + } + if (shapeFlag & 64) { + vnode.type.remove( + vnode, + parentComponent, + parentSuspense, + internals, + doRemove + ); + } else if (dynamicChildren && // #5154 + // when v-once is used inside a block, setBlockTracking(-1) marks the + // parent block with hasOnce: true + // so that it doesn't take the fast path during unmount - otherwise + // components nested in v-once are never unmounted. + !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments + (type !== Fragment || patchFlag > 0 && patchFlag & 64)) { + unmountChildren( + dynamicChildren, + parentComponent, + parentSuspense, + false, + true + ); + } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) { + unmountChildren(children, parentComponent, parentSuspense); + } + if (doRemove) { + remove(vnode); + } + } + if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) { + queuePostRenderEffect(() => { + vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode); + shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted"); + }, parentSuspense); + } + }; + const remove = (vnode) => { + const { type, el, anchor, transition } = vnode; + if (type === Fragment) { + { + removeFragment(el, anchor); + } + return; + } + if (type === Static) { + removeStaticNode(vnode); + return; + } + const performRemove = () => { + hostRemove(el); + if (transition && !transition.persisted && transition.afterLeave) { + transition.afterLeave(); + } + }; + if (vnode.shapeFlag & 1 && transition && !transition.persisted) { + const { leave, delayLeave } = transition; + const performLeave = () => leave(el, performRemove); + if (delayLeave) { + delayLeave(vnode.el, performRemove, performLeave); + } else { + performLeave(); + } + } else { + performRemove(); + } + }; + const removeFragment = (cur, end) => { + let next; + while (cur !== end) { + next = hostNextSibling(cur); + hostRemove(cur); + cur = next; + } + hostRemove(end); + }; + const unmountComponent = (instance, parentSuspense, doRemove) => { + const { bum, scope, job, subTree, um, m, a } = instance; + invalidateMount(m); + invalidateMount(a); + if (bum) { + shared.invokeArrayFns(bum); + } + scope.stop(); + if (job) { + job.flags |= 8; + unmount(subTree, instance, parentSuspense, doRemove); + } + if (um) { + queuePostRenderEffect(um, parentSuspense); + } + queuePostRenderEffect(() => { + instance.isUnmounted = true; + }, parentSuspense); + if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0) { + parentSuspense.resolve(); + } + } + }; + const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => { + for (let i = start; i < children.length; i++) { + unmount(children[i], parentComponent, parentSuspense, doRemove, optimized); + } + }; + const getNextHostNode = (vnode) => { + if (vnode.shapeFlag & 6) { + return getNextHostNode(vnode.component.subTree); + } + if (vnode.shapeFlag & 128) { + return vnode.suspense.next(); + } + const el = hostNextSibling(vnode.anchor || vnode.el); + const teleportEnd = el && el[TeleportEndKey]; + return teleportEnd ? hostNextSibling(teleportEnd) : el; + }; + let isFlushing = false; + const render = (vnode, container, namespace) => { + if (vnode == null) { + if (container._vnode) { + unmount(container._vnode, null, null, true); + } + } else { + patch( + container._vnode || null, + vnode, + container, + null, + null, + null, + namespace + ); + } + container._vnode = vnode; + if (!isFlushing) { + isFlushing = true; + flushPreFlushCbs(); + flushPostFlushCbs(); + isFlushing = false; + } + }; + const internals = { + p: patch, + um: unmount, + m: move, + r: remove, + mt: mountComponent, + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + n: getNextHostNode, + o: options + }; + let hydrate; + let hydrateNode; + if (createHydrationFns) { + [hydrate, hydrateNode] = createHydrationFns( + internals + ); + } + return { + render, + hydrate, + createApp: createAppAPI(render, hydrate) + }; +} +function resolveChildrenNamespace({ type, props }, currentNamespace) { + return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace; +} +function toggleRecurse({ effect, job }, allowed) { + if (allowed) { + effect.flags |= 32; + job.flags |= 4; + } else { + effect.flags &= ~32; + job.flags &= ~4; + } +} +function needTransition(parentSuspense, transition) { + return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted; +} +function traverseStaticChildren(n1, n2, shallow = false) { + const ch1 = n1.children; + const ch2 = n2.children; + if (shared.isArray(ch1) && shared.isArray(ch2)) { + for (let i = 0; i < ch1.length; i++) { + const c1 = ch1[i]; + let c2 = ch2[i]; + if (c2.shapeFlag & 1 && !c2.dynamicChildren) { + if (c2.patchFlag <= 0 || c2.patchFlag === 32) { + c2 = ch2[i] = cloneIfMounted(ch2[i]); + c2.el = c1.el; + } + if (!shallow && c2.patchFlag !== -2) + traverseStaticChildren(c1, c2); + } + if (c2.type === Text) { + c2.el = c1.el; + } + } + } +} +function getSequence(arr) { + const p = arr.slice(); + const result = [0]; + let i, j, u, v, c; + const len = arr.length; + for (i = 0; i < len; i++) { + const arrI = arr[i]; + if (arrI !== 0) { + j = result[result.length - 1]; + if (arr[j] < arrI) { + p[i] = j; + result.push(i); + continue; + } + u = 0; + v = result.length - 1; + while (u < v) { + c = u + v >> 1; + if (arr[result[c]] < arrI) { + u = c + 1; + } else { + v = c; + } + } + if (arrI < arr[result[u]]) { + if (u > 0) { + p[i] = result[u - 1]; + } + result[u] = i; + } + } + } + u = result.length; + v = result[u - 1]; + while (u-- > 0) { + result[u] = v; + v = p[v]; + } + return result; +} +function locateNonHydratedAsyncRoot(instance) { + const subComponent = instance.subTree.component; + if (subComponent) { + if (subComponent.asyncDep && !subComponent.asyncResolved) { + return subComponent; + } else { + return locateNonHydratedAsyncRoot(subComponent); + } + } +} +function invalidateMount(hooks) { + if (hooks) { + for (let i = 0; i < hooks.length; i++) + hooks[i].flags |= 8; + } +} + +const ssrContextKey = Symbol.for("v-scx"); +const useSSRContext = () => { + { + const ctx = inject(ssrContextKey); + return ctx; + } +}; + +function watchEffect(effect, options) { + return doWatch(effect, null, options); +} +function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + { flush: "post" } + ); +} +function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + { flush: "sync" } + ); +} +function watch(source, cb, options) { + return doWatch(source, cb, options); +} +function doWatch(source, cb, options = shared.EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + const baseWatchOptions = shared.extend({}, options); + const runsImmediately = cb && immediate || !cb && flush !== "post"; + let ssrCleanup; + if (isInSSRComponentSetup) { + if (flush === "sync") { + const ctx = useSSRContext(); + ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); + } else if (!runsImmediately) { + const watchStopHandle = () => { + }; + watchStopHandle.stop = shared.NOOP; + watchStopHandle.resume = shared.NOOP; + watchStopHandle.pause = shared.NOOP; + return watchStopHandle; + } + } + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = reactivity.watch(source, cb, baseWatchOptions); + if (isInSSRComponentSetup) { + if (ssrCleanup) { + ssrCleanup.push(watchHandle); + } else if (runsImmediately) { + watchHandle(); + } + } + return watchHandle; +} +function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = shared.isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (shared.isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; +} +function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; +} + +function useModel(props, name, options = shared.EMPTY_OBJ) { + const i = getCurrentInstance(); + const camelizedName = shared.camelize(name); + const hyphenatedName = shared.hyphenate(name); + const modifiers = getModelModifiers(props, camelizedName); + const res = reactivity.customRef((track, trigger) => { + let localValue; + let prevSetValue = shared.EMPTY_OBJ; + let prevEmittedValue; + watchSyncEffect(() => { + const propValue = props[camelizedName]; + if (shared.hasChanged(localValue, propValue)) { + localValue = propValue; + trigger(); + } + }); + return { + get() { + track(); + return options.get ? options.get(localValue) : localValue; + }, + set(value) { + const emittedValue = options.set ? options.set(value) : value; + if (!shared.hasChanged(emittedValue, localValue) && !(prevSetValue !== shared.EMPTY_OBJ && shared.hasChanged(value, prevSetValue))) { + return; + } + const rawProps = i.vnode.props; + if (!(rawProps && // check if parent has passed v-model + (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) { + localValue = value; + trigger(); + } + i.emit(`update:${name}`, emittedValue); + if (shared.hasChanged(value, emittedValue) && shared.hasChanged(value, prevSetValue) && !shared.hasChanged(emittedValue, prevEmittedValue)) { + trigger(); + } + prevSetValue = value; + prevEmittedValue = emittedValue; + } + }; + }); + res[Symbol.iterator] = () => { + let i2 = 0; + return { + next() { + if (i2 < 2) { + return { value: i2++ ? modifiers || shared.EMPTY_OBJ : res, done: false }; + } else { + return { done: true }; + } + } + }; + }; + return res; +} +const getModelModifiers = (props, modelName) => { + return modelName === "modelValue" || modelName === "model-value" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${shared.camelize(modelName)}Modifiers`] || props[`${shared.hyphenate(modelName)}Modifiers`]; +}; + +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || shared.EMPTY_OBJ; + let args = rawArgs; + const isModelListener = event.startsWith("update:"); + const modifiers = isModelListener && getModelModifiers(props, event.slice(7)); + if (modifiers) { + if (modifiers.trim) { + args = rawArgs.map((a) => shared.isString(a) ? a.trim() : a); + } + if (modifiers.number) { + args = rawArgs.map(shared.looseToNumber); + } + } + let handlerName; + let handler = props[handlerName = shared.toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = shared.toHandlerKey(shared.camelize(event))]; + if (!handler && isModelListener) { + handler = props[handlerName = shared.toHandlerKey(shared.hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!shared.isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + shared.extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (shared.isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (shared.isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + shared.extend(normalized, raw); + } + if (shared.isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !shared.isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return shared.hasOwn(options, key[0].toLowerCase() + key.slice(1)) || shared.hasOwn(options, shared.hyphenate(key)) || shared.hasOwn(options, key); +} + +function markAttrsAccessed() { +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit, + render, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = false ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render.call( + thisProxy, + proxyToUse, + renderCache, + false ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render2 = Component; + if (false) ; + result = normalizeVNode( + render2.length > 1 ? render2( + false ? shallowReadonly(props) : props, + false ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit + } : { attrs, slots, emit } + ) : render2( + false ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(shared.isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } + } + } + if (vnode.dirs) { + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + setTransitionHooks(root, vnode.transition); + } + { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + } + } + } else { + return; + } + } + return singleRoot; +} +const getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || shared.isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +const filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!shared.isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} + +const isSuspense = (type) => type.__isSuspense; +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl ; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (shared.isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? shared.toNumber(vnode.props.timeout) : void 0; + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) === container2) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + remove(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (shared.isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (shared.isArray(s)) { + const singleChild = filterSingleRoot(s); + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (shared.isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} + +const Fragment = Symbol.for("v-fgt"); +const Text = Symbol.for("v-txt"); +const Comment = Symbol.for("v-cmt"); +const Static = Symbol.for("v-stc"); +const blockStack = []; +let currentBlock = null; +function openBlock(disableTracking = false) { + blockStack.push(currentBlock = disableTracking ? null : []); +} +function closeBlock() { + blockStack.pop(); + currentBlock = blockStack[blockStack.length - 1] || null; +} +let isBlockTreeEnabled = 1; +function setBlockTracking(value, inVOnce = false) { + isBlockTreeEnabled += value; + if (value < 0 && currentBlock && inVOnce) { + currentBlock.hasOnce = true; + } +} +function setupBlock(vnode) { + vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || shared.EMPTY_ARR : null; + closeBlock(); + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(vnode); + } + return vnode; +} +function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) { + return setupBlock( + createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + true + ) + ); +} +function createBlock(type, props, children, patchFlag, dynamicProps) { + return setupBlock( + createVNode( + type, + props, + children, + patchFlag, + dynamicProps, + true + ) + ); +} +function isVNode(value) { + return value ? value.__v_isVNode === true : false; +} +function isSameVNodeType(n1, n2) { + return n1.type === n2.type && n1.key === n2.key; +} +function transformVNodeArgs(transformer) { +} +const normalizeKey = ({ key }) => key != null ? key : null; +const normalizeRef = ({ + ref, + ref_key, + ref_for +}) => { + if (typeof ref === "number") { + ref = "" + ref; + } + return ref != null ? shared.isString(ref) || reactivity.isRef(ref) || shared.isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null; +}; +function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) { + const vnode = { + __v_isVNode: true, + __v_skip: true, + type, + props, + key: props && normalizeKey(props), + ref: props && normalizeRef(props), + scopeId: currentScopeId, + slotScopeIds: null, + children, + 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, + patchFlag, + dynamicProps, + dynamicChildren: null, + appContext: null, + ctx: currentRenderingInstance + }; + if (needFullChildrenNormalization) { + normalizeChildren(vnode, children); + if (shapeFlag & 128) { + type.normalize(vnode); + } + } else if (children) { + vnode.shapeFlag |= shared.isString(children) ? 8 : 16; + } + if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself + !isBlockNode && // has current parent block + currentBlock && // presence of a patch flag indicates this node needs patching on updates. + // component nodes also should always be patched, because even if the + // component doesn't need to update, it needs to persist the instance on to + // the next vnode so that it can be properly unmounted later. + (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the + // vnode should not be considered dynamic due to handler caching. + vnode.patchFlag !== 32) { + currentBlock.push(vnode); + } + return vnode; +} +const createVNode = _createVNode; +function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) { + if (!type || type === NULL_DYNAMIC_COMPONENT) { + type = Comment; + } + if (isVNode(type)) { + const cloned = cloneVNode( + type, + props, + true + /* mergeRef: true */ + ); + if (children) { + normalizeChildren(cloned, children); + } + if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) { + if (cloned.shapeFlag & 6) { + currentBlock[currentBlock.indexOf(type)] = cloned; + } else { + currentBlock.push(cloned); + } + } + cloned.patchFlag = -2; + return cloned; + } + if (isClassComponent(type)) { + type = type.__vccOpts; + } + if (props) { + props = guardReactiveProps(props); + let { class: klass, style } = props; + if (klass && !shared.isString(klass)) { + props.class = shared.normalizeClass(klass); + } + if (shared.isObject(style)) { + if (reactivity.isProxy(style) && !shared.isArray(style)) { + style = shared.extend({}, style); + } + props.style = shared.normalizeStyle(style); + } + } + const shapeFlag = shared.isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : shared.isObject(type) ? 4 : shared.isFunction(type) ? 2 : 0; + return createBaseVNode( + type, + props, + children, + patchFlag, + dynamicProps, + shapeFlag, + isBlockNode, + true + ); +} +function guardReactiveProps(props) { + if (!props) return null; + return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props; +} +function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) { + const { props, ref, patchFlag, children, transition } = vnode; + const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props; + const cloned = { + __v_isVNode: true, + __v_skip: true, + type: vnode.type, + props: mergedProps, + key: mergedProps && normalizeKey(mergedProps), + ref: extraProps && extraProps.ref ? ( + // #2078 in the case of <component :is="vnode" ref="extra"/> + // if the vnode itself already has a ref, cloneVNode will need to merge + // the refs so the single vnode can be set on multiple refs + mergeRef && ref ? shared.isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps) + ) : ref, + scopeId: vnode.scopeId, + slotScopeIds: vnode.slotScopeIds, + children: children, + target: vnode.target, + targetStart: vnode.targetStart, + targetAnchor: vnode.targetAnchor, + staticCount: vnode.staticCount, + shapeFlag: vnode.shapeFlag, + // if the vnode is cloned with extra props, we can no longer assume its + // existing patch flag to be reliable and need to add the FULL_PROPS flag. + // note: preserve flag for fragments since they use the flag for children + // fast paths only. + patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag, + dynamicProps: vnode.dynamicProps, + dynamicChildren: vnode.dynamicChildren, + appContext: vnode.appContext, + dirs: vnode.dirs, + transition, + // These should technically only be non-null on mounted VNodes. However, + // they *should* be copied for kept-alive vnodes. So we just always copy + // them since them being non-null during a mount doesn't affect the logic as + // they will simply be overwritten. + component: vnode.component, + suspense: vnode.suspense, + ssContent: vnode.ssContent && cloneVNode(vnode.ssContent), + ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback), + el: vnode.el, + anchor: vnode.anchor, + ctx: vnode.ctx, + ce: vnode.ce + }; + if (transition && cloneTransition) { + setTransitionHooks( + cloned, + transition.clone(cloned) + ); + } + return cloned; +} +function createTextVNode(text = " ", flag = 0) { + return createVNode(Text, null, text, flag); +} +function createStaticVNode(content, numberOfNodes) { + const vnode = createVNode(Static, null, content); + vnode.staticCount = numberOfNodes; + return vnode; +} +function createCommentVNode(text = "", asBlock = false) { + return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text); +} +function normalizeVNode(child) { + if (child == null || typeof child === "boolean") { + return createVNode(Comment); + } else if (shared.isArray(child)) { + return createVNode( + Fragment, + null, + // #3666, avoid reference pollution when reusing vnode + child.slice() + ); + } else if (isVNode(child)) { + return cloneIfMounted(child); + } else { + return createVNode(Text, null, String(child)); + } +} +function cloneIfMounted(child) { + return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child); +} +function normalizeChildren(vnode, children) { + let type = 0; + const { shapeFlag } = vnode; + if (children == null) { + children = null; + } else if (shared.isArray(children)) { + type = 16; + } else if (typeof children === "object") { + if (shapeFlag & (1 | 64)) { + const slot = children.default; + if (slot) { + slot._c && (slot._d = false); + normalizeChildren(vnode, slot()); + slot._c && (slot._d = true); + } + return; + } else { + type = 32; + const slotFlag = children._; + if (!slotFlag && !isInternalObject(children)) { + children._ctx = currentRenderingInstance; + } else if (slotFlag === 3 && currentRenderingInstance) { + if (currentRenderingInstance.slots._ === 1) { + children._ = 1; + } else { + children._ = 2; + vnode.patchFlag |= 1024; + } + } + } + } else if (shared.isFunction(children)) { + children = { default: children, _ctx: currentRenderingInstance }; + type = 32; + } else { + children = String(children); + if (shapeFlag & 64) { + type = 16; + children = [createTextVNode(children)]; + } else { + type = 8; + } + } + vnode.children = children; + vnode.shapeFlag |= type; +} +function mergeProps(...args) { + const ret = {}; + for (let i = 0; i < args.length; i++) { + const toMerge = args[i]; + for (const key in toMerge) { + if (key === "class") { + if (ret.class !== toMerge.class) { + ret.class = shared.normalizeClass([ret.class, toMerge.class]); + } + } else if (key === "style") { + ret.style = shared.normalizeStyle([ret.style, toMerge.style]); + } else if (shared.isOn(key)) { + const existing = ret[key]; + const incoming = toMerge[key]; + if (incoming && existing !== incoming && !(shared.isArray(existing) && existing.includes(incoming))) { + ret[key] = existing ? [].concat(existing, incoming) : incoming; + } + } else if (key !== "") { + ret[key] = toMerge[key]; + } + } + } + return ret; +} +function invokeVNodeHook(hook, instance, vnode, prevVNode = null) { + callWithAsyncErrorHandling(hook, instance, 7, [ + vnode, + prevVNode + ]); +} + +const emptyAppContext = createAppContext(); +let uid = 0; +function createComponentInstance(vnode, parent, suspense) { + const type = vnode.type; + const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext; + const instance = { + uid: uid++, + vnode, + type, + parent, + appContext, + root: null, + // to be immediately set + next: null, + subTree: null, + // will be set synchronously right after creation + effect: null, + update: null, + // will be set synchronously right after creation + job: null, + scope: new reactivity.EffectScope( + true + /* detached */ + ), + render: null, + proxy: null, + exposed: null, + exposeProxy: null, + withProxy: null, + provides: parent ? parent.provides : Object.create(appContext.provides), + ids: parent ? parent.ids : ["", 0, 0], + accessCache: null, + renderCache: [], + // local resolved assets + components: null, + directives: null, + // resolved props and emits options + propsOptions: normalizePropsOptions(type, appContext), + emitsOptions: normalizeEmitsOptions(type, appContext), + // emit + emit: null, + // to be set immediately + emitted: null, + // props default value + propsDefaults: shared.EMPTY_OBJ, + // inheritAttrs + inheritAttrs: type.inheritAttrs, + // state + ctx: shared.EMPTY_OBJ, + data: shared.EMPTY_OBJ, + props: shared.EMPTY_OBJ, + attrs: shared.EMPTY_OBJ, + slots: shared.EMPTY_OBJ, + refs: shared.EMPTY_OBJ, + setupState: shared.EMPTY_OBJ, + setupContext: null, + // suspense related + suspense, + suspenseId: suspense ? suspense.pendingId : 0, + asyncDep: null, + asyncResolved: false, + // lifecycle hooks + // not using enums here because it results in computed properties + isMounted: false, + isUnmounted: false, + isDeactivated: false, + 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 + }; + { + instance.ctx = { _: instance }; + } + instance.root = parent ? parent.root : instance; + instance.emit = emit.bind(null, instance); + if (vnode.ce) { + vnode.ce(instance); + } + return instance; +} +let currentInstance = null; +const getCurrentInstance = () => currentInstance || currentRenderingInstance; +let internalSetCurrentInstance; +let setInSSRSetupState; +{ + const g = shared.getGlobalThis(); + const registerGlobalSetter = (key, setter) => { + let setters; + if (!(setters = g[key])) setters = g[key] = []; + setters.push(setter); + return (v) => { + if (setters.length > 1) setters.forEach((set) => set(v)); + else setters[0](v); + }; + }; + internalSetCurrentInstance = registerGlobalSetter( + `__VUE_INSTANCE_SETTERS__`, + (v) => currentInstance = v + ); + setInSSRSetupState = registerGlobalSetter( + `__VUE_SSR_SETTERS__`, + (v) => isInSSRComponentSetup = v + ); +} +const setCurrentInstance = (instance) => { + const prev = currentInstance; + internalSetCurrentInstance(instance); + instance.scope.on(); + return () => { + instance.scope.off(); + internalSetCurrentInstance(prev); + }; +}; +const unsetCurrentInstance = () => { + currentInstance && currentInstance.scope.off(); + internalSetCurrentInstance(null); +}; +function isStatefulComponent(instance) { + return instance.vnode.shapeFlag & 4; +} +let isInSSRComponentSetup = false; +function setupComponent(instance, isSSR = false, optimized = false) { + isSSR && setInSSRSetupState(isSSR); + const { props, children } = instance.vnode; + const isStateful = isStatefulComponent(instance); + initProps(instance, props, isStateful, isSSR); + initSlots(instance, children, optimized); + const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0; + isSSR && setInSSRSetupState(false); + return setupResult; +} +function setupStatefulComponent(instance, isSSR) { + const Component = instance.type; + instance.accessCache = /* @__PURE__ */ Object.create(null); + instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers); + const { setup } = Component; + if (setup) { + reactivity.pauseTracking(); + const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null; + const reset = setCurrentInstance(instance); + const setupResult = callWithErrorHandling( + setup, + instance, + 0, + [ + instance.props, + setupContext + ] + ); + const isAsyncSetup = shared.isPromise(setupResult); + reactivity.resetTracking(); + reset(); + if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) { + markAsyncBoundary(instance); + } + if (isAsyncSetup) { + setupResult.then(unsetCurrentInstance, unsetCurrentInstance); + if (isSSR) { + return setupResult.then((resolvedResult) => { + handleSetupResult(instance, resolvedResult, isSSR); + }).catch((e) => { + handleError(e, instance, 0); + }); + } else { + instance.asyncDep = setupResult; + } + } else { + handleSetupResult(instance, setupResult, isSSR); + } + } else { + finishComponentSetup(instance, isSSR); + } +} +function handleSetupResult(instance, setupResult, isSSR) { + if (shared.isFunction(setupResult)) { + if (instance.type.__ssrInlineRender) { + instance.ssrRender = setupResult; + } else { + instance.render = setupResult; + } + } else if (shared.isObject(setupResult)) { + instance.setupState = reactivity.proxyRefs(setupResult); + } else ; + finishComponentSetup(instance, isSSR); +} +let compile; +let installWithProxy; +function registerRuntimeCompiler(_compile) { + compile = _compile; + installWithProxy = (i) => { + if (i.render._rc) { + i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers); + } + }; +} +const isRuntimeOnly = () => !compile; +function finishComponentSetup(instance, isSSR, skipOptions) { + const Component = instance.type; + if (!instance.render) { + if (!isSSR && compile && !Component.render) { + const template = Component.template || resolveMergedOptions(instance).template; + if (template) { + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + Component.render = compile(template, finalCompilerOptions); + } + } + instance.render = Component.render || shared.NOOP; + if (installWithProxy) { + installWithProxy(instance); + } + } + { + const reset = setCurrentInstance(instance); + reactivity.pauseTracking(); + try { + applyOptions(instance); + } finally { + reactivity.resetTracking(); + reset(); + } + } +} +const attrsProxyHandlers = { + get(target, key) { + reactivity.track(target, "get", ""); + return target[key]; + } +}; +function createSetupContext(instance) { + const expose = (exposed) => { + instance.exposed = exposed || {}; + }; + { + return { + attrs: new Proxy(instance.attrs, attrsProxyHandlers), + slots: instance.slots, + emit: instance.emit, + expose + }; + } +} +function getComponentPublicInstance(instance) { + if (instance.exposed) { + return instance.exposeProxy || (instance.exposeProxy = new Proxy(reactivity.proxyRefs(reactivity.markRaw(instance.exposed)), { + get(target, key) { + if (key in target) { + return target[key]; + } else if (key in publicPropertiesMap) { + return publicPropertiesMap[key](instance); + } + }, + has(target, key) { + return key in target || key in publicPropertiesMap; + } + })); + } else { + return instance.proxy; + } +} +function getComponentName(Component, includeInferred = true) { + return shared.isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name; +} +function isClassComponent(value) { + return shared.isFunction(value) && "__vccOpts" in value; +} + +const computed = (getterOrOptions, debugOptions) => { + const c = reactivity.computed(getterOrOptions, debugOptions, isInSSRComponentSetup); + return c; +}; + +function h(type, propsOrChildren, children) { + const l = arguments.length; + if (l === 2) { + if (shared.isObject(propsOrChildren) && !shared.isArray(propsOrChildren)) { + if (isVNode(propsOrChildren)) { + return createVNode(type, null, [propsOrChildren]); + } + return createVNode(type, propsOrChildren); + } else { + return createVNode(type, null, propsOrChildren); + } + } else { + if (l > 3) { + children = Array.prototype.slice.call(arguments, 2); + } else if (l === 3 && isVNode(children)) { + children = [children]; + } + return createVNode(type, propsOrChildren, children); + } +} + +function initCustomFormatter() { + { + return; + } +} + +function withMemo(memo, render, cache, index) { + const cached = cache[index]; + if (cached && isMemoSame(cached, memo)) { + return cached; + } + const ret = render(); + ret.memo = memo.slice(); + ret.cacheIndex = index; + return cache[index] = ret; +} +function isMemoSame(cached, memo) { + const prev = cached.memo; + if (prev.length != memo.length) { + return false; + } + for (let i = 0; i < prev.length; i++) { + if (shared.hasChanged(prev[i], memo[i])) { + return false; + } + } + if (isBlockTreeEnabled > 0 && currentBlock) { + currentBlock.push(cached); + } + return true; +} + +const version = "3.5.13"; +const warn$1 = shared.NOOP; +const ErrorTypeStrings = ErrorTypeStrings$1 ; +const devtools = void 0; +const setDevtoolsHook = shared.NOOP; +const _ssrUtils = { + createComponentInstance, + setupComponent, + renderComponentRoot, + setCurrentRenderingInstance, + isVNode: isVNode, + normalizeVNode, + getComponentPublicInstance, + ensureValidVNode, + pushWarningContext, + popWarningContext +}; +const ssrUtils = _ssrUtils ; +const resolveFilter = null; +const compatUtils = null; +const DeprecationTypes = null; + +exports.EffectScope = reactivity.EffectScope; +exports.ReactiveEffect = reactivity.ReactiveEffect; +exports.TrackOpTypes = reactivity.TrackOpTypes; +exports.TriggerOpTypes = reactivity.TriggerOpTypes; +exports.customRef = reactivity.customRef; +exports.effect = reactivity.effect; +exports.effectScope = reactivity.effectScope; +exports.getCurrentScope = reactivity.getCurrentScope; +exports.getCurrentWatcher = reactivity.getCurrentWatcher; +exports.isProxy = reactivity.isProxy; +exports.isReactive = reactivity.isReactive; +exports.isReadonly = reactivity.isReadonly; +exports.isRef = reactivity.isRef; +exports.isShallow = reactivity.isShallow; +exports.markRaw = reactivity.markRaw; +exports.onScopeDispose = reactivity.onScopeDispose; +exports.onWatcherCleanup = reactivity.onWatcherCleanup; +exports.proxyRefs = reactivity.proxyRefs; +exports.reactive = reactivity.reactive; +exports.readonly = reactivity.readonly; +exports.ref = reactivity.ref; +exports.shallowReactive = reactivity.shallowReactive; +exports.shallowReadonly = reactivity.shallowReadonly; +exports.shallowRef = reactivity.shallowRef; +exports.stop = reactivity.stop; +exports.toRaw = reactivity.toRaw; +exports.toRef = reactivity.toRef; +exports.toRefs = reactivity.toRefs; +exports.toValue = reactivity.toValue; +exports.triggerRef = reactivity.triggerRef; +exports.unref = reactivity.unref; +exports.camelize = shared.camelize; +exports.capitalize = shared.capitalize; +exports.normalizeClass = shared.normalizeClass; +exports.normalizeProps = shared.normalizeProps; +exports.normalizeStyle = shared.normalizeStyle; +exports.toDisplayString = shared.toDisplayString; +exports.toHandlerKey = shared.toHandlerKey; +exports.BaseTransition = BaseTransition; +exports.BaseTransitionPropsValidators = BaseTransitionPropsValidators; +exports.Comment = Comment; +exports.DeprecationTypes = DeprecationTypes; +exports.ErrorCodes = ErrorCodes; +exports.ErrorTypeStrings = ErrorTypeStrings; +exports.Fragment = Fragment; +exports.KeepAlive = KeepAlive; +exports.Static = Static; +exports.Suspense = Suspense; +exports.Teleport = Teleport; +exports.Text = Text; +exports.assertNumber = assertNumber; +exports.callWithAsyncErrorHandling = callWithAsyncErrorHandling; +exports.callWithErrorHandling = callWithErrorHandling; +exports.cloneVNode = cloneVNode; +exports.compatUtils = compatUtils; +exports.computed = computed; +exports.createBlock = createBlock; +exports.createCommentVNode = createCommentVNode; +exports.createElementBlock = createElementBlock; +exports.createElementVNode = createBaseVNode; +exports.createHydrationRenderer = createHydrationRenderer; +exports.createPropsRestProxy = createPropsRestProxy; +exports.createRenderer = createRenderer; +exports.createSlots = createSlots; +exports.createStaticVNode = createStaticVNode; +exports.createTextVNode = createTextVNode; +exports.createVNode = createVNode; +exports.defineAsyncComponent = defineAsyncComponent; +exports.defineComponent = defineComponent; +exports.defineEmits = defineEmits; +exports.defineExpose = defineExpose; +exports.defineModel = defineModel; +exports.defineOptions = defineOptions; +exports.defineProps = defineProps; +exports.defineSlots = defineSlots; +exports.devtools = devtools; +exports.getCurrentInstance = getCurrentInstance; +exports.getTransitionRawChildren = getTransitionRawChildren; +exports.guardReactiveProps = guardReactiveProps; +exports.h = h; +exports.handleError = handleError; +exports.hasInjectionContext = hasInjectionContext; +exports.hydrateOnIdle = hydrateOnIdle; +exports.hydrateOnInteraction = hydrateOnInteraction; +exports.hydrateOnMediaQuery = hydrateOnMediaQuery; +exports.hydrateOnVisible = hydrateOnVisible; +exports.initCustomFormatter = initCustomFormatter; +exports.inject = inject; +exports.isMemoSame = isMemoSame; +exports.isRuntimeOnly = isRuntimeOnly; +exports.isVNode = isVNode; +exports.mergeDefaults = mergeDefaults; +exports.mergeModels = mergeModels; +exports.mergeProps = mergeProps; +exports.nextTick = nextTick; +exports.onActivated = onActivated; +exports.onBeforeMount = onBeforeMount; +exports.onBeforeUnmount = onBeforeUnmount; +exports.onBeforeUpdate = onBeforeUpdate; +exports.onDeactivated = onDeactivated; +exports.onErrorCaptured = onErrorCaptured; +exports.onMounted = onMounted; +exports.onRenderTracked = onRenderTracked; +exports.onRenderTriggered = onRenderTriggered; +exports.onServerPrefetch = onServerPrefetch; +exports.onUnmounted = onUnmounted; +exports.onUpdated = onUpdated; +exports.openBlock = openBlock; +exports.popScopeId = popScopeId; +exports.provide = provide; +exports.pushScopeId = pushScopeId; +exports.queuePostFlushCb = queuePostFlushCb; +exports.registerRuntimeCompiler = registerRuntimeCompiler; +exports.renderList = renderList; +exports.renderSlot = renderSlot; +exports.resolveComponent = resolveComponent; +exports.resolveDirective = resolveDirective; +exports.resolveDynamicComponent = resolveDynamicComponent; +exports.resolveFilter = resolveFilter; +exports.resolveTransitionHooks = resolveTransitionHooks; +exports.setBlockTracking = setBlockTracking; +exports.setDevtoolsHook = setDevtoolsHook; +exports.setTransitionHooks = setTransitionHooks; +exports.ssrContextKey = ssrContextKey; +exports.ssrUtils = ssrUtils; +exports.toHandlers = toHandlers; +exports.transformVNodeArgs = transformVNodeArgs; +exports.useAttrs = useAttrs; +exports.useId = useId; +exports.useModel = useModel; +exports.useSSRContext = useSSRContext; +exports.useSlots = useSlots; +exports.useTemplateRef = useTemplateRef; +exports.useTransitionState = useTransitionState; +exports.version = version; +exports.warn = warn$1; +exports.watch = watch; +exports.watchEffect = watchEffect; +exports.watchPostEffect = watchPostEffect; +exports.watchSyncEffect = watchSyncEffect; +exports.withAsyncContext = withAsyncContext; +exports.withCtx = withCtx; +exports.withDefaults = withDefaults; +exports.withDirectives = withDirectives; +exports.withMemo = withMemo; +exports.withScopeId = withScopeId; diff --git a/.output/server/node_modules/@vue/runtime-core/package.json b/.output/server/node_modules/@vue/runtime-core/package.json new file mode 100644 index 0000000..b1e2cfd --- /dev/null +++ b/.output/server/node_modules/@vue/runtime-core/package.json @@ -0,0 +1,55 @@ +{ + "name": "@vue/runtime-core", + "version": "3.5.13", + "description": "@vue/runtime-core", + "main": "index.js", + "module": "dist/runtime-core.esm-bundler.js", + "types": "dist/runtime-core.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/runtime-core.d.ts", + "node": { + "production": "./dist/runtime-core.cjs.prod.js", + "development": "./dist/runtime-core.cjs.js", + "default": "./dist/runtime-core.cjs.prod.js" + }, + "module": "./dist/runtime-core.esm-bundler.js", + "import": "./dist/runtime-core.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueRuntimeCore", + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "sideEffects": false, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/runtime-core" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme", + "dependencies": { + "@vue/shared": "3.5.13", + "@vue/reactivity": "3.5.13" + }, + "__npminstall_done": true, + "_from": "@vue/runtime-core@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js b/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js new file mode 100644 index 0000000..9e46c11 --- /dev/null +++ b/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js @@ -0,0 +1,1669 @@ +/** +* @vue/runtime-dom v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var runtimeCore = require('@vue/runtime-core'); +var shared = require('@vue/shared'); + +let policy = void 0; +const tt = typeof window !== "undefined" && window.trustedTypes; +if (tt) { + try { + policy = /* @__PURE__ */ tt.createPolicy("vue", { + createHTML: (val) => val + }); + } catch (e) { + } +} +const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val; +const svgNS = "http://www.w3.org/2000/svg"; +const mathmlNS = "http://www.w3.org/1998/Math/MathML"; +const doc = typeof document !== "undefined" ? document : null; +const templateContainer = doc && /* @__PURE__ */ doc.createElement("template"); +const nodeOps = { + insert: (child, parent, anchor) => { + parent.insertBefore(child, anchor || null); + }, + remove: (child) => { + const parent = child.parentNode; + if (parent) { + parent.removeChild(child); + } + }, + createElement: (tag, namespace, is, props) => { + const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag); + if (tag === "select" && props && props.multiple != null) { + el.setAttribute("multiple", props.multiple); + } + return el; + }, + createText: (text) => doc.createTextNode(text), + createComment: (text) => doc.createComment(text), + setText: (node, text) => { + node.nodeValue = text; + }, + setElementText: (el, text) => { + el.textContent = text; + }, + parentNode: (node) => node.parentNode, + nextSibling: (node) => node.nextSibling, + querySelector: (selector) => doc.querySelector(selector), + setScopeId(el, id) { + el.setAttribute(id, ""); + }, + // __UNSAFE__ + // Reason: innerHTML. + // Static content here can only come from compiled templates. + // As long as the user only uses trusted templates, this is safe. + insertStaticContent(content, parent, anchor, namespace, start, end) { + const before = anchor ? anchor.previousSibling : parent.lastChild; + if (start && (start === end || start.nextSibling)) { + while (true) { + parent.insertBefore(start.cloneNode(true), anchor); + if (start === end || !(start = start.nextSibling)) break; + } + } else { + templateContainer.innerHTML = unsafeToTrustedHTML( + namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content + ); + const template = templateContainer.content; + if (namespace === "svg" || namespace === "mathml") { + const wrapper = template.firstChild; + while (wrapper.firstChild) { + template.appendChild(wrapper.firstChild); + } + template.removeChild(wrapper); + } + parent.insertBefore(template, anchor); + } + return [ + // first + before ? before.nextSibling : parent.firstChild, + // last + anchor ? anchor.previousSibling : parent.lastChild + ]; + } +}; + +const TRANSITION = "transition"; +const ANIMATION = "animation"; +const vtcKey = Symbol("_vtc"); +const DOMTransitionPropsValidators = { + name: String, + type: String, + css: { + type: Boolean, + default: true + }, + duration: [String, Number, Object], + enterFromClass: String, + enterActiveClass: String, + enterToClass: String, + appearFromClass: String, + appearActiveClass: String, + appearToClass: String, + leaveFromClass: String, + leaveActiveClass: String, + leaveToClass: String +}; +const TransitionPropsValidators = /* @__PURE__ */ shared.extend( + {}, + runtimeCore.BaseTransitionPropsValidators, + DOMTransitionPropsValidators +); +const decorate$1 = (t) => { + t.displayName = "Transition"; + t.props = TransitionPropsValidators; + return t; +}; +const Transition = /* @__PURE__ */ decorate$1( + (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots) +); +const callHook = (hook, args = []) => { + if (shared.isArray(hook)) { + hook.forEach((h2) => h2(...args)); + } else if (hook) { + hook(...args); + } +}; +const hasExplicitCallback = (hook) => { + return hook ? shared.isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false; +}; +function resolveTransitionProps(rawProps) { + const baseProps = {}; + for (const key in rawProps) { + if (!(key in DOMTransitionPropsValidators)) { + baseProps[key] = rawProps[key]; + } + } + if (rawProps.css === false) { + return baseProps; + } + const { + name = "v", + type, + duration, + enterFromClass = `${name}-enter-from`, + enterActiveClass = `${name}-enter-active`, + enterToClass = `${name}-enter-to`, + appearFromClass = enterFromClass, + appearActiveClass = enterActiveClass, + appearToClass = enterToClass, + leaveFromClass = `${name}-leave-from`, + leaveActiveClass = `${name}-leave-active`, + leaveToClass = `${name}-leave-to` + } = rawProps; + const durations = normalizeDuration(duration); + const enterDuration = durations && durations[0]; + const leaveDuration = durations && durations[1]; + const { + onBeforeEnter, + onEnter, + onEnterCancelled, + onLeave, + onLeaveCancelled, + onBeforeAppear = onBeforeEnter, + onAppear = onEnter, + onAppearCancelled = onEnterCancelled + } = baseProps; + const finishEnter = (el, isAppear, done, isCancelled) => { + el._enterCancelled = isCancelled; + removeTransitionClass(el, isAppear ? appearToClass : enterToClass); + removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass); + done && done(); + }; + const finishLeave = (el, done) => { + el._isLeaving = false; + removeTransitionClass(el, leaveFromClass); + removeTransitionClass(el, leaveToClass); + removeTransitionClass(el, leaveActiveClass); + done && done(); + }; + const makeEnterHook = (isAppear) => { + return (el, done) => { + const hook = isAppear ? onAppear : onEnter; + const resolve = () => finishEnter(el, isAppear, done); + callHook(hook, [el, resolve]); + nextFrame(() => { + removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass); + addTransitionClass(el, isAppear ? appearToClass : enterToClass); + if (!hasExplicitCallback(hook)) { + whenTransitionEnds(el, type, enterDuration, resolve); + } + }); + }; + }; + return shared.extend(baseProps, { + onBeforeEnter(el) { + callHook(onBeforeEnter, [el]); + addTransitionClass(el, enterFromClass); + addTransitionClass(el, enterActiveClass); + }, + onBeforeAppear(el) { + callHook(onBeforeAppear, [el]); + addTransitionClass(el, appearFromClass); + addTransitionClass(el, appearActiveClass); + }, + onEnter: makeEnterHook(false), + onAppear: makeEnterHook(true), + onLeave(el, done) { + el._isLeaving = true; + const resolve = () => finishLeave(el, done); + addTransitionClass(el, leaveFromClass); + if (!el._enterCancelled) { + forceReflow(); + addTransitionClass(el, leaveActiveClass); + } else { + addTransitionClass(el, leaveActiveClass); + forceReflow(); + } + nextFrame(() => { + if (!el._isLeaving) { + return; + } + removeTransitionClass(el, leaveFromClass); + addTransitionClass(el, leaveToClass); + if (!hasExplicitCallback(onLeave)) { + whenTransitionEnds(el, type, leaveDuration, resolve); + } + }); + callHook(onLeave, [el, resolve]); + }, + onEnterCancelled(el) { + finishEnter(el, false, void 0, true); + callHook(onEnterCancelled, [el]); + }, + onAppearCancelled(el) { + finishEnter(el, true, void 0, true); + callHook(onAppearCancelled, [el]); + }, + onLeaveCancelled(el) { + finishLeave(el); + callHook(onLeaveCancelled, [el]); + } + }); +} +function normalizeDuration(duration) { + if (duration == null) { + return null; + } else if (shared.isObject(duration)) { + return [NumberOf(duration.enter), NumberOf(duration.leave)]; + } else { + const n = NumberOf(duration); + return [n, n]; + } +} +function NumberOf(val) { + const res = shared.toNumber(val); + return res; +} +function addTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.add(c)); + (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls); +} +function removeTransitionClass(el, cls) { + cls.split(/\s+/).forEach((c) => c && el.classList.remove(c)); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.delete(cls); + if (!_vtc.size) { + el[vtcKey] = void 0; + } + } +} +function nextFrame(cb) { + requestAnimationFrame(() => { + requestAnimationFrame(cb); + }); +} +let endId = 0; +function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) { + const id = el._endId = ++endId; + const resolveIfNotStale = () => { + if (id === el._endId) { + resolve(); + } + }; + if (explicitTimeout != null) { + return setTimeout(resolveIfNotStale, explicitTimeout); + } + const { type, timeout, propCount } = getTransitionInfo(el, expectedType); + if (!type) { + return resolve(); + } + const endEvent = type + "end"; + let ended = 0; + const end = () => { + el.removeEventListener(endEvent, onEnd); + resolveIfNotStale(); + }; + const onEnd = (e) => { + if (e.target === el && ++ended >= propCount) { + end(); + } + }; + setTimeout(() => { + if (ended < propCount) { + end(); + } + }, timeout + 1); + el.addEventListener(endEvent, onEnd); +} +function getTransitionInfo(el, expectedType) { + const styles = window.getComputedStyle(el); + const getStyleProperties = (key) => (styles[key] || "").split(", "); + const transitionDelays = getStyleProperties(`${TRANSITION}Delay`); + const transitionDurations = getStyleProperties(`${TRANSITION}Duration`); + const transitionTimeout = getTimeout(transitionDelays, transitionDurations); + const animationDelays = getStyleProperties(`${ANIMATION}Delay`); + const animationDurations = getStyleProperties(`${ANIMATION}Duration`); + const animationTimeout = getTimeout(animationDelays, animationDurations); + let type = null; + let timeout = 0; + let propCount = 0; + if (expectedType === TRANSITION) { + if (transitionTimeout > 0) { + type = TRANSITION; + timeout = transitionTimeout; + propCount = transitionDurations.length; + } + } else if (expectedType === ANIMATION) { + if (animationTimeout > 0) { + type = ANIMATION; + timeout = animationTimeout; + propCount = animationDurations.length; + } + } else { + timeout = Math.max(transitionTimeout, animationTimeout); + type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null; + propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0; + } + const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test( + getStyleProperties(`${TRANSITION}Property`).toString() + ); + return { + type, + timeout, + propCount, + hasTransform + }; +} +function getTimeout(delays, durations) { + while (delays.length < durations.length) { + delays = delays.concat(delays); + } + return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i]))); +} +function toMs(s) { + if (s === "auto") return 0; + return Number(s.slice(0, -1).replace(",", ".")) * 1e3; +} +function forceReflow() { + return document.body.offsetHeight; +} + +function patchClass(el, value, isSVG) { + const transitionClasses = el[vtcKey]; + if (transitionClasses) { + value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" "); + } + if (value == null) { + el.removeAttribute("class"); + } else if (isSVG) { + el.setAttribute("class", value); + } else { + el.className = value; + } +} + +const vShowOriginalDisplay = Symbol("_vod"); +const vShowHidden = Symbol("_vsh"); +const vShow = { + beforeMount(el, { value }, { transition }) { + el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display; + if (transition && value) { + transition.beforeEnter(el); + } else { + setDisplay(el, value); + } + }, + mounted(el, { value }, { transition }) { + if (transition && value) { + transition.enter(el); + } + }, + updated(el, { value, oldValue }, { transition }) { + if (!value === !oldValue) return; + if (transition) { + if (value) { + transition.beforeEnter(el); + setDisplay(el, true); + transition.enter(el); + } else { + transition.leave(el, () => { + setDisplay(el, false); + }); + } + } else { + setDisplay(el, value); + } + }, + beforeUnmount(el, { value }) { + setDisplay(el, value); + } +}; +function setDisplay(el, value) { + el.style.display = value ? el[vShowOriginalDisplay] : "none"; + el[vShowHidden] = !value; +} +function initVShowForSSR() { + vShow.getSSRProps = ({ value }) => { + if (!value) { + return { style: { display: "none" } }; + } + }; +} + +const CSS_VAR_TEXT = Symbol(""); +function useCssVars(getter) { + return; +} + +const displayRE = /(^|;)\s*display\s*:/; +function patchStyle(el, prev, next) { + const style = el.style; + const isCssString = shared.isString(next); + let hasControlledDisplay = false; + if (next && !isCssString) { + if (prev) { + if (!shared.isString(prev)) { + for (const key in prev) { + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } else { + for (const prevStyle of prev.split(";")) { + const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim(); + if (next[key] == null) { + setStyle(style, key, ""); + } + } + } + } + for (const key in next) { + if (key === "display") { + hasControlledDisplay = true; + } + setStyle(style, key, next[key]); + } + } else { + if (isCssString) { + if (prev !== next) { + const cssVarText = style[CSS_VAR_TEXT]; + if (cssVarText) { + next += ";" + cssVarText; + } + style.cssText = next; + hasControlledDisplay = displayRE.test(next); + } + } else if (prev) { + el.removeAttribute("style"); + } + } + if (vShowOriginalDisplay in el) { + el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : ""; + if (el[vShowHidden]) { + style.display = "none"; + } + } +} +const importantRE = /\s*!important$/; +function setStyle(style, name, val) { + if (shared.isArray(val)) { + val.forEach((v) => setStyle(style, name, v)); + } else { + if (val == null) val = ""; + if (name.startsWith("--")) { + style.setProperty(name, val); + } else { + const prefixed = autoPrefix(style, name); + if (importantRE.test(val)) { + style.setProperty( + shared.hyphenate(prefixed), + val.replace(importantRE, ""), + "important" + ); + } else { + style[prefixed] = val; + } + } + } +} +const prefixes = ["Webkit", "Moz", "ms"]; +const prefixCache = {}; +function autoPrefix(style, rawName) { + const cached = prefixCache[rawName]; + if (cached) { + return cached; + } + let name = runtimeCore.camelize(rawName); + if (name !== "filter" && name in style) { + return prefixCache[rawName] = name; + } + name = shared.capitalize(name); + for (let i = 0; i < prefixes.length; i++) { + const prefixed = prefixes[i] + name; + if (prefixed in style) { + return prefixCache[rawName] = prefixed; + } + } + return rawName; +} + +const xlinkNS = "http://www.w3.org/1999/xlink"; +function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecialBooleanAttr(key)) { + if (isSVG && key.startsWith("xlink:")) { + if (value == null) { + el.removeAttributeNS(xlinkNS, key.slice(6, key.length)); + } else { + el.setAttributeNS(xlinkNS, key, value); + } + } else { + if (value == null || isBoolean && !shared.includeBooleanAttr(value)) { + el.removeAttribute(key); + } else { + el.setAttribute( + key, + isBoolean ? "" : shared.isSymbol(value) ? String(value) : value + ); + } + } +} + +function patchDOMProp(el, key, value, parentComponent, attrName) { + if (key === "innerHTML" || key === "textContent") { + if (value != null) { + el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value; + } + return; + } + const tag = el.tagName; + if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally + !tag.includes("-")) { + const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value; + const newValue = value == null ? ( + // #11647: value should be set as empty string for null and undefined, + // but <input type="checkbox"> should be set as 'on'. + el.type === "checkbox" ? "on" : "" + ) : String(value); + if (oldValue !== newValue || !("_value" in el)) { + el.value = newValue; + } + if (value == null) { + el.removeAttribute(key); + } + el._value = value; + return; + } + let needRemove = false; + if (value === "" || value == null) { + const type = typeof el[key]; + if (type === "boolean") { + value = shared.includeBooleanAttr(value); + } else if (value == null && type === "string") { + value = ""; + needRemove = true; + } else if (type === "number") { + value = 0; + needRemove = true; + } + } + try { + el[key] = value; + } catch (e) { + } + needRemove && el.removeAttribute(attrName || key); +} + +function addEventListener(el, event, handler, options) { + el.addEventListener(event, handler, options); +} +function removeEventListener(el, event, handler, options) { + el.removeEventListener(event, handler, options); +} +const veiKey = Symbol("_vei"); +function patchEvent(el, rawName, prevValue, nextValue, instance = null) { + const invokers = el[veiKey] || (el[veiKey] = {}); + const existingInvoker = invokers[rawName]; + if (nextValue && existingInvoker) { + existingInvoker.value = nextValue; + } else { + const [name, options] = parseName(rawName); + if (nextValue) { + const invoker = invokers[rawName] = createInvoker( + nextValue, + instance + ); + addEventListener(el, name, invoker, options); + } else if (existingInvoker) { + removeEventListener(el, name, existingInvoker, options); + invokers[rawName] = void 0; + } + } +} +const optionsModifierRE = /(?:Once|Passive|Capture)$/; +function parseName(name) { + let options; + if (optionsModifierRE.test(name)) { + options = {}; + let m; + while (m = name.match(optionsModifierRE)) { + name = name.slice(0, name.length - m[0].length); + options[m[0].toLowerCase()] = true; + } + } + const event = name[2] === ":" ? name.slice(3) : shared.hyphenate(name.slice(2)); + return [event, options]; +} +let cachedNow = 0; +const p = /* @__PURE__ */ Promise.resolve(); +const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now()); +function createInvoker(initialValue, instance) { + const invoker = (e) => { + if (!e._vts) { + e._vts = Date.now(); + } else if (e._vts <= invoker.attached) { + return; + } + runtimeCore.callWithAsyncErrorHandling( + patchStopImmediatePropagation(e, invoker.value), + instance, + 5, + [e] + ); + }; + invoker.value = initialValue; + invoker.attached = getNow(); + return invoker; +} +function patchStopImmediatePropagation(e, value) { + if (shared.isArray(value)) { + const originalStop = e.stopImmediatePropagation; + e.stopImmediatePropagation = () => { + originalStop.call(e); + e._stopped = true; + }; + return value.map( + (fn) => (e2) => !e2._stopped && fn && fn(e2) + ); + } else { + return value; + } +} + +const isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter +key.charCodeAt(2) > 96 && key.charCodeAt(2) < 123; +const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => { + const isSVG = namespace === "svg"; + if (key === "class") { + patchClass(el, nextValue, isSVG); + } else if (key === "style") { + patchStyle(el, prevValue, nextValue); + } else if (shared.isOn(key)) { + if (!shared.isModelListener(key)) { + patchEvent(el, key, prevValue, nextValue, parentComponent); + } + } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) { + patchDOMProp(el, key, nextValue); + if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) { + patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value"); + } + } else if ( + // #11081 force set props for possible async custom element + el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue)) + ) { + patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key); + } else { + if (key === "true-value") { + el._trueValue = nextValue; + } else if (key === "false-value") { + el._falseValue = nextValue; + } + patchAttr(el, key, nextValue, isSVG); + } +}; +function shouldSetAsProp(el, key, value, isSVG) { + if (isSVG) { + if (key === "innerHTML" || key === "textContent") { + return true; + } + if (key in el && isNativeOn(key) && shared.isFunction(value)) { + return true; + } + return false; + } + if (key === "spellcheck" || key === "draggable" || key === "translate") { + return false; + } + if (key === "form") { + return false; + } + if (key === "list" && el.tagName === "INPUT") { + return false; + } + if (key === "type" && el.tagName === "TEXTAREA") { + return false; + } + if (key === "width" || key === "height") { + const tag = el.tagName; + if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") { + return false; + } + } + if (isNativeOn(key) && shared.isString(value)) { + return false; + } + return key in el; +} + +const REMOVAL = {}; +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function defineCustomElement(options, extraOptions, _createApp) { + const Comp = runtimeCore.defineComponent(options, extraOptions); + if (shared.isPlainObject(Comp)) shared.extend(Comp, extraOptions); + class VueCustomElement extends VueElement { + constructor(initialProps) { + super(Comp, initialProps, _createApp); + } + } + VueCustomElement.def = Comp; + return VueCustomElement; +} +/*! #__NO_SIDE_EFFECTS__ */ +const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => { + return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp); +}; +const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class { +}; +class VueElement extends BaseClass { + constructor(_def, _props = {}, _createApp = createApp) { + super(); + this._def = _def; + this._props = _props; + this._createApp = _createApp; + this._isVueCE = true; + /** + * @internal + */ + this._instance = null; + /** + * @internal + */ + this._app = null; + /** + * @internal + */ + this._nonce = this._def.nonce; + this._connected = false; + this._resolved = false; + this._numberProps = null; + this._styleChildren = /* @__PURE__ */ new WeakSet(); + this._ob = null; + if (this.shadowRoot && _createApp !== createApp) { + this._root = this.shadowRoot; + } else { + if (_def.shadowRoot !== false) { + this.attachShadow({ mode: "open" }); + this._root = this.shadowRoot; + } else { + this._root = this; + } + } + if (!this._def.__asyncLoader) { + this._resolveProps(this._def); + } + } + connectedCallback() { + if (!this.isConnected) return; + if (!this.shadowRoot) { + this._parseSlots(); + } + this._connected = true; + let parent = this; + while (parent = parent && (parent.parentNode || parent.host)) { + if (parent instanceof VueElement) { + this._parent = parent; + break; + } + } + if (!this._instance) { + if (this._resolved) { + this._setParent(); + this._update(); + } else { + if (parent && parent._pendingResolve) { + this._pendingResolve = parent._pendingResolve.then(() => { + this._pendingResolve = void 0; + this._resolveDef(); + }); + } else { + this._resolveDef(); + } + } + } + } + _setParent(parent = this._parent) { + if (parent) { + this._instance.parent = parent._instance; + this._instance.provides = parent._instance.provides; + } + } + disconnectedCallback() { + this._connected = false; + runtimeCore.nextTick(() => { + if (!this._connected) { + if (this._ob) { + this._ob.disconnect(); + this._ob = null; + } + this._app && this._app.unmount(); + if (this._instance) this._instance.ce = void 0; + this._app = this._instance = null; + } + }); + } + /** + * resolve inner component definition (handle possible async component) + */ + _resolveDef() { + if (this._pendingResolve) { + return; + } + for (let i = 0; i < this.attributes.length; i++) { + this._setAttr(this.attributes[i].name); + } + this._ob = new MutationObserver((mutations) => { + for (const m of mutations) { + this._setAttr(m.attributeName); + } + }); + this._ob.observe(this, { attributes: true }); + const resolve = (def, isAsync = false) => { + this._resolved = true; + this._pendingResolve = void 0; + const { props, styles } = def; + let numberProps; + if (props && !shared.isArray(props)) { + for (const key in props) { + const opt = props[key]; + if (opt === Number || opt && opt.type === Number) { + if (key in this._props) { + this._props[key] = shared.toNumber(this._props[key]); + } + (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[shared.camelize(key)] = true; + } + } + } + this._numberProps = numberProps; + if (isAsync) { + this._resolveProps(def); + } + if (this.shadowRoot) { + this._applyStyles(styles); + } + this._mount(def); + }; + const asyncDef = this._def.__asyncLoader; + if (asyncDef) { + this._pendingResolve = asyncDef().then( + (def) => resolve(this._def = def, true) + ); + } else { + resolve(this._def); + } + } + _mount(def) { + this._app = this._createApp(def); + if (def.configureApp) { + def.configureApp(this._app); + } + this._app._ceVNode = this._createVNode(); + this._app.mount(this._root); + const exposed = this._instance && this._instance.exposed; + if (!exposed) return; + for (const key in exposed) { + if (!shared.hasOwn(this, key)) { + Object.defineProperty(this, key, { + // unwrap ref to be consistent with public instance behavior + get: () => runtimeCore.unref(exposed[key]) + }); + } + } + } + _resolveProps(def) { + const { props } = def; + const declaredPropKeys = shared.isArray(props) ? props : Object.keys(props || {}); + for (const key of Object.keys(this)) { + if (key[0] !== "_" && declaredPropKeys.includes(key)) { + this._setProp(key, this[key]); + } + } + for (const key of declaredPropKeys.map(shared.camelize)) { + Object.defineProperty(this, key, { + get() { + return this._getProp(key); + }, + set(val) { + this._setProp(key, val, true, true); + } + }); + } + } + _setAttr(key) { + if (key.startsWith("data-v-")) return; + const has = this.hasAttribute(key); + let value = has ? this.getAttribute(key) : REMOVAL; + const camelKey = shared.camelize(key); + if (has && this._numberProps && this._numberProps[camelKey]) { + value = shared.toNumber(value); + } + this._setProp(camelKey, value, false, true); + } + /** + * @internal + */ + _getProp(key) { + return this._props[key]; + } + /** + * @internal + */ + _setProp(key, val, shouldReflect = true, shouldUpdate = false) { + if (val !== this._props[key]) { + if (val === REMOVAL) { + delete this._props[key]; + } else { + this._props[key] = val; + if (key === "key" && this._app) { + this._app._ceVNode.key = val; + } + } + if (shouldUpdate && this._instance) { + this._update(); + } + if (shouldReflect) { + const ob = this._ob; + ob && ob.disconnect(); + if (val === true) { + this.setAttribute(shared.hyphenate(key), ""); + } else if (typeof val === "string" || typeof val === "number") { + this.setAttribute(shared.hyphenate(key), val + ""); + } else if (!val) { + this.removeAttribute(shared.hyphenate(key)); + } + ob && ob.observe(this, { attributes: true }); + } + } + } + _update() { + render(this._createVNode(), this._root); + } + _createVNode() { + const baseProps = {}; + if (!this.shadowRoot) { + baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this); + } + const vnode = runtimeCore.createVNode(this._def, shared.extend(baseProps, this._props)); + if (!this._instance) { + vnode.ce = (instance) => { + this._instance = instance; + instance.ce = this; + instance.isCE = true; + const dispatch = (event, args) => { + this.dispatchEvent( + new CustomEvent( + event, + shared.isPlainObject(args[0]) ? shared.extend({ detail: args }, args[0]) : { detail: args } + ) + ); + }; + instance.emit = (event, ...args) => { + dispatch(event, args); + if (shared.hyphenate(event) !== event) { + dispatch(shared.hyphenate(event), args); + } + }; + this._setParent(); + }; + } + return vnode; + } + _applyStyles(styles, owner) { + if (!styles) return; + if (owner) { + if (owner === this._def || this._styleChildren.has(owner)) { + return; + } + this._styleChildren.add(owner); + } + const nonce = this._nonce; + for (let i = styles.length - 1; i >= 0; i--) { + const s = document.createElement("style"); + if (nonce) s.setAttribute("nonce", nonce); + s.textContent = styles[i]; + this.shadowRoot.prepend(s); + } + } + /** + * Only called when shadowRoot is false + */ + _parseSlots() { + const slots = this._slots = {}; + let n; + while (n = this.firstChild) { + const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default"; + (slots[slotName] || (slots[slotName] = [])).push(n); + this.removeChild(n); + } + } + /** + * Only called when shadowRoot is false + */ + _renderSlots() { + const outlets = (this._teleportTarget || this).querySelectorAll("slot"); + const scopeId = this._instance.type.__scopeId; + for (let i = 0; i < outlets.length; i++) { + const o = outlets[i]; + const slotName = o.getAttribute("name") || "default"; + const content = this._slots[slotName]; + const parent = o.parentNode; + if (content) { + for (const n of content) { + if (scopeId && n.nodeType === 1) { + const id = scopeId + "-s"; + const walker = document.createTreeWalker(n, 1); + n.setAttribute(id, ""); + let child; + while (child = walker.nextNode()) { + child.setAttribute(id, ""); + } + } + parent.insertBefore(n, o); + } + } else { + while (o.firstChild) parent.insertBefore(o.firstChild, o); + } + parent.removeChild(o); + } + } + /** + * @internal + */ + _injectChildStyle(comp) { + this._applyStyles(comp.styles, comp); + } + /** + * @internal + */ + _removeChildStyle(comp) { + } +} +function useHost(caller) { + const instance = runtimeCore.getCurrentInstance(); + const el = instance && instance.ce; + if (el) { + return el; + } + return null; +} +function useShadowRoot() { + const el = useHost(); + return el && el.shadowRoot; +} + +function useCssModule(name = "$style") { + { + const instance = runtimeCore.getCurrentInstance(); + if (!instance) { + return shared.EMPTY_OBJ; + } + const modules = instance.type.__cssModules; + if (!modules) { + return shared.EMPTY_OBJ; + } + const mod = modules[name]; + if (!mod) { + return shared.EMPTY_OBJ; + } + return mod; + } +} + +const positionMap = /* @__PURE__ */ new WeakMap(); +const newPositionMap = /* @__PURE__ */ new WeakMap(); +const moveCbKey = Symbol("_moveCb"); +const enterCbKey = Symbol("_enterCb"); +const decorate = (t) => { + delete t.props.mode; + return t; +}; +const TransitionGroupImpl = /* @__PURE__ */ decorate({ + name: "TransitionGroup", + props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, { + tag: String, + moveClass: String + }), + setup(props, { slots }) { + const instance = runtimeCore.getCurrentInstance(); + const state = runtimeCore.useTransitionState(); + let prevChildren; + let children; + runtimeCore.onUpdated(() => { + if (!prevChildren.length) { + return; + } + const moveClass = props.moveClass || `${props.name || "v"}-move`; + if (!hasCSSTransform( + prevChildren[0].el, + instance.vnode.el, + moveClass + )) { + return; + } + prevChildren.forEach(callPendingCbs); + prevChildren.forEach(recordPosition); + const movedChildren = prevChildren.filter(applyTranslation); + forceReflow(); + movedChildren.forEach((c) => { + const el = c.el; + const style = el.style; + addTransitionClass(el, moveClass); + style.transform = style.webkitTransform = style.transitionDuration = ""; + const cb = el[moveCbKey] = (e) => { + if (e && e.target !== el) { + return; + } + if (!e || /transform$/.test(e.propertyName)) { + el.removeEventListener("transitionend", cb); + el[moveCbKey] = null; + removeTransitionClass(el, moveClass); + } + }; + el.addEventListener("transitionend", cb); + }); + }); + return () => { + const rawProps = runtimeCore.toRaw(props); + const cssTransitionProps = resolveTransitionProps(rawProps); + let tag = rawProps.tag || runtimeCore.Fragment; + prevChildren = []; + if (children) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.el && child.el instanceof Element) { + prevChildren.push(child); + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks( + child, + cssTransitionProps, + state, + instance + ) + ); + positionMap.set( + child, + child.el.getBoundingClientRect() + ); + } + } + } + children = slots.default ? runtimeCore.getTransitionRawChildren(slots.default()) : []; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (child.key != null) { + runtimeCore.setTransitionHooks( + child, + runtimeCore.resolveTransitionHooks(child, cssTransitionProps, state, instance) + ); + } + } + return runtimeCore.createVNode(tag, null, children); + }; + } +}); +const TransitionGroup = TransitionGroupImpl; +function callPendingCbs(c) { + const el = c.el; + if (el[moveCbKey]) { + el[moveCbKey](); + } + if (el[enterCbKey]) { + el[enterCbKey](); + } +} +function recordPosition(c) { + newPositionMap.set(c, c.el.getBoundingClientRect()); +} +function applyTranslation(c) { + const oldPos = positionMap.get(c); + const newPos = newPositionMap.get(c); + const dx = oldPos.left - newPos.left; + const dy = oldPos.top - newPos.top; + if (dx || dy) { + const s = c.el.style; + s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`; + s.transitionDuration = "0s"; + return c; + } +} +function hasCSSTransform(el, root, moveClass) { + const clone = el.cloneNode(); + const _vtc = el[vtcKey]; + if (_vtc) { + _vtc.forEach((cls) => { + cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c)); + }); + } + moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c)); + clone.style.display = "none"; + const container = root.nodeType === 1 ? root : root.parentNode; + container.appendChild(clone); + const { hasTransform } = getTransitionInfo(clone); + container.removeChild(clone); + return hasTransform; +} + +const getModelAssigner = (vnode) => { + const fn = vnode.props["onUpdate:modelValue"] || false; + return shared.isArray(fn) ? (value) => shared.invokeArrayFns(fn, value) : fn; +}; +function onCompositionStart(e) { + e.target.composing = true; +} +function onCompositionEnd(e) { + const target = e.target; + if (target.composing) { + target.composing = false; + target.dispatchEvent(new Event("input")); + } +} +const assignKey = Symbol("_assign"); +const vModelText = { + created(el, { modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + const castToNumber = number || vnode.props && vnode.props.type === "number"; + addEventListener(el, lazy ? "change" : "input", (e) => { + if (e.target.composing) return; + let domValue = el.value; + if (trim) { + domValue = domValue.trim(); + } + if (castToNumber) { + domValue = shared.looseToNumber(domValue); + } + el[assignKey](domValue); + }); + if (trim) { + addEventListener(el, "change", () => { + el.value = el.value.trim(); + }); + } + if (!lazy) { + addEventListener(el, "compositionstart", onCompositionStart); + addEventListener(el, "compositionend", onCompositionEnd); + addEventListener(el, "change", onCompositionEnd); + } + }, + // set value on mounted so it's after min/max for type="range" + mounted(el, { value }) { + el.value = value == null ? "" : value; + }, + beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (el.composing) return; + const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? shared.looseToNumber(el.value) : el.value; + const newValue = value == null ? "" : value; + if (elValue === newValue) { + return; + } + if (document.activeElement === el && el.type !== "range") { + if (lazy && value === oldValue) { + return; + } + if (trim && el.value.trim() === newValue) { + return; + } + } + el.value = newValue; + } +}; +const vModelCheckbox = { + // #4096 array checkboxes need to be deep traversed + deep: true, + created(el, _, vnode) { + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + const modelValue = el._modelValue; + const elementValue = getValue(el); + const checked = el.checked; + const assign = el[assignKey]; + if (shared.isArray(modelValue)) { + const index = shared.looseIndexOf(modelValue, elementValue); + const found = index !== -1; + if (checked && !found) { + assign(modelValue.concat(elementValue)); + } else if (!checked && found) { + const filtered = [...modelValue]; + filtered.splice(index, 1); + assign(filtered); + } + } else if (shared.isSet(modelValue)) { + const cloned = new Set(modelValue); + if (checked) { + cloned.add(elementValue); + } else { + cloned.delete(elementValue); + } + assign(cloned); + } else { + assign(getCheckboxValue(el, checked)); + } + }); + }, + // set initial checked on mount to wait for true-value/false-value + mounted: setChecked, + beforeUpdate(el, binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + setChecked(el, binding, vnode); + } +}; +function setChecked(el, { value, oldValue }, vnode) { + el._modelValue = value; + let checked; + if (shared.isArray(value)) { + checked = shared.looseIndexOf(value, vnode.props.value) > -1; + } else if (shared.isSet(value)) { + checked = value.has(vnode.props.value); + } else { + if (value === oldValue) return; + checked = shared.looseEqual(value, getCheckboxValue(el, true)); + } + if (el.checked !== checked) { + el.checked = checked; + } +} +const vModelRadio = { + created(el, { value }, vnode) { + el.checked = shared.looseEqual(value, vnode.props.value); + el[assignKey] = getModelAssigner(vnode); + addEventListener(el, "change", () => { + el[assignKey](getValue(el)); + }); + }, + beforeUpdate(el, { value, oldValue }, vnode) { + el[assignKey] = getModelAssigner(vnode); + if (value !== oldValue) { + el.checked = shared.looseEqual(value, vnode.props.value); + } + } +}; +const vModelSelect = { + // <select multiple> value need to be deep traversed + deep: true, + created(el, { value, modifiers: { number } }, vnode) { + const isSetModel = shared.isSet(value); + addEventListener(el, "change", () => { + const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map( + (o) => number ? shared.looseToNumber(getValue(o)) : getValue(o) + ); + el[assignKey]( + el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0] + ); + el._assigning = true; + runtimeCore.nextTick(() => { + el._assigning = false; + }); + }); + el[assignKey] = getModelAssigner(vnode); + }, + // set value in mounted & updated because <select> relies on its children + // <option>s. + mounted(el, { value }) { + setSelected(el, value); + }, + beforeUpdate(el, _binding, vnode) { + el[assignKey] = getModelAssigner(vnode); + }, + updated(el, { value }) { + if (!el._assigning) { + setSelected(el, value); + } + } +}; +function setSelected(el, value) { + const isMultiple = el.multiple; + const isArrayValue = shared.isArray(value); + if (isMultiple && !isArrayValue && !shared.isSet(value)) { + return; + } + for (let i = 0, l = el.options.length; i < l; i++) { + const option = el.options[i]; + const optionValue = getValue(option); + if (isMultiple) { + if (isArrayValue) { + const optionType = typeof optionValue; + if (optionType === "string" || optionType === "number") { + option.selected = value.some((v) => String(v) === String(optionValue)); + } else { + option.selected = shared.looseIndexOf(value, optionValue) > -1; + } + } else { + option.selected = value.has(optionValue); + } + } else if (shared.looseEqual(getValue(option), value)) { + if (el.selectedIndex !== i) el.selectedIndex = i; + return; + } + } + if (!isMultiple && el.selectedIndex !== -1) { + el.selectedIndex = -1; + } +} +function getValue(el) { + return "_value" in el ? el._value : el.value; +} +function getCheckboxValue(el, checked) { + const key = checked ? "_trueValue" : "_falseValue"; + return key in el ? el[key] : checked; +} +const vModelDynamic = { + created(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "created"); + }, + mounted(el, binding, vnode) { + callModelHook(el, binding, vnode, null, "mounted"); + }, + beforeUpdate(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "beforeUpdate"); + }, + updated(el, binding, vnode, prevVNode) { + callModelHook(el, binding, vnode, prevVNode, "updated"); + } +}; +function resolveDynamicModel(tagName, type) { + switch (tagName) { + case "SELECT": + return vModelSelect; + case "TEXTAREA": + return vModelText; + default: + switch (type) { + case "checkbox": + return vModelCheckbox; + case "radio": + return vModelRadio; + default: + return vModelText; + } + } +} +function callModelHook(el, binding, vnode, prevVNode, hook) { + const modelToUse = resolveDynamicModel( + el.tagName, + vnode.props && vnode.props.type + ); + const fn = modelToUse[hook]; + fn && fn(el, binding, vnode, prevVNode); +} +function initVModelForSSR() { + vModelText.getSSRProps = ({ value }) => ({ value }); + vModelRadio.getSSRProps = ({ value }, vnode) => { + if (vnode.props && shared.looseEqual(vnode.props.value, value)) { + return { checked: true }; + } + }; + vModelCheckbox.getSSRProps = ({ value }, vnode) => { + if (shared.isArray(value)) { + if (vnode.props && shared.looseIndexOf(value, vnode.props.value) > -1) { + return { checked: true }; + } + } else if (shared.isSet(value)) { + if (vnode.props && value.has(vnode.props.value)) { + return { checked: true }; + } + } else if (value) { + return { checked: true }; + } + }; + vModelDynamic.getSSRProps = (binding, vnode) => { + if (typeof vnode.type !== "string") { + return; + } + const modelToUse = resolveDynamicModel( + // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase + vnode.type.toUpperCase(), + vnode.props && vnode.props.type + ); + if (modelToUse.getSSRProps) { + return modelToUse.getSSRProps(binding, vnode); + } + }; +} + +const systemModifiers = ["ctrl", "shift", "alt", "meta"]; +const modifierGuards = { + stop: (e) => e.stopPropagation(), + prevent: (e) => e.preventDefault(), + self: (e) => e.target !== e.currentTarget, + ctrl: (e) => !e.ctrlKey, + shift: (e) => !e.shiftKey, + alt: (e) => !e.altKey, + meta: (e) => !e.metaKey, + left: (e) => "button" in e && e.button !== 0, + middle: (e) => "button" in e && e.button !== 1, + right: (e) => "button" in e && e.button !== 2, + exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m)) +}; +const withModifiers = (fn, modifiers) => { + const cache = fn._withMods || (fn._withMods = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => { + for (let i = 0; i < modifiers.length; i++) { + const guard = modifierGuards[modifiers[i]]; + if (guard && guard(event, modifiers)) return; + } + return fn(event, ...args); + }); +}; +const keyNames = { + esc: "escape", + space: " ", + up: "arrow-up", + left: "arrow-left", + right: "arrow-right", + down: "arrow-down", + delete: "backspace" +}; +const withKeys = (fn, modifiers) => { + const cache = fn._withKeys || (fn._withKeys = {}); + const cacheKey = modifiers.join("."); + return cache[cacheKey] || (cache[cacheKey] = (event) => { + if (!("key" in event)) { + return; + } + const eventKey = shared.hyphenate(event.key); + if (modifiers.some( + (k) => k === eventKey || keyNames[k] === eventKey + )) { + return fn(event); + } + }); +}; + +const rendererOptions = /* @__PURE__ */ shared.extend({ patchProp }, nodeOps); +let renderer; +let enabledHydration = false; +function ensureRenderer() { + return renderer || (renderer = runtimeCore.createRenderer(rendererOptions)); +} +function ensureHydrationRenderer() { + renderer = enabledHydration ? renderer : runtimeCore.createHydrationRenderer(rendererOptions); + enabledHydration = true; + return renderer; +} +const render = (...args) => { + ensureRenderer().render(...args); +}; +const hydrate = (...args) => { + ensureHydrationRenderer().hydrate(...args); +}; +const createApp = (...args) => { + const app = ensureRenderer().createApp(...args); + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (!container) return; + const component = app._component; + if (!shared.isFunction(component) && !component.render && !component.template) { + component.template = container.innerHTML; + } + if (container.nodeType === 1) { + container.textContent = ""; + } + const proxy = mount(container, false, resolveRootNamespace(container)); + if (container instanceof Element) { + container.removeAttribute("v-cloak"); + container.setAttribute("data-v-app", ""); + } + return proxy; + }; + return app; +}; +const createSSRApp = (...args) => { + const app = ensureHydrationRenderer().createApp(...args); + const { mount } = app; + app.mount = (containerOrSelector) => { + const container = normalizeContainer(containerOrSelector); + if (container) { + return mount(container, true, resolveRootNamespace(container)); + } + }; + return app; +}; +function resolveRootNamespace(container) { + if (container instanceof SVGElement) { + return "svg"; + } + if (typeof MathMLElement === "function" && container instanceof MathMLElement) { + return "mathml"; + } +} +function normalizeContainer(container) { + if (shared.isString(container)) { + const res = document.querySelector(container); + return res; + } + return container; +} +let ssrDirectiveInitialized = false; +const initDirectivesForSSR = () => { + if (!ssrDirectiveInitialized) { + ssrDirectiveInitialized = true; + initVModelForSSR(); + initVShowForSSR(); + } +} ; + +exports.Transition = Transition; +exports.TransitionGroup = TransitionGroup; +exports.VueElement = VueElement; +exports.createApp = createApp; +exports.createSSRApp = createSSRApp; +exports.defineCustomElement = defineCustomElement; +exports.defineSSRCustomElement = defineSSRCustomElement; +exports.hydrate = hydrate; +exports.initDirectivesForSSR = initDirectivesForSSR; +exports.render = render; +exports.useCssModule = useCssModule; +exports.useCssVars = useCssVars; +exports.useHost = useHost; +exports.useShadowRoot = useShadowRoot; +exports.vModelCheckbox = vModelCheckbox; +exports.vModelDynamic = vModelDynamic; +exports.vModelRadio = vModelRadio; +exports.vModelSelect = vModelSelect; +exports.vModelText = vModelText; +exports.vShow = vShow; +exports.withKeys = withKeys; +exports.withModifiers = withModifiers; +Object.keys(runtimeCore).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeCore[k]; +}); diff --git a/.output/server/node_modules/@vue/runtime-dom/package.json b/.output/server/node_modules/@vue/runtime-dom/package.json new file mode 100644 index 0000000..ad38027 --- /dev/null +++ b/.output/server/node_modules/@vue/runtime-dom/package.json @@ -0,0 +1,63 @@ +{ + "name": "@vue/runtime-dom", + "version": "3.5.13", + "description": "@vue/runtime-dom", + "main": "index.js", + "module": "dist/runtime-dom.esm-bundler.js", + "types": "dist/runtime-dom.d.ts", + "unpkg": "dist/runtime-dom.global.js", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/runtime-dom.d.ts", + "node": { + "production": "./dist/runtime-dom.cjs.prod.js", + "development": "./dist/runtime-dom.cjs.js", + "default": "./dist/runtime-dom.cjs.prod.js" + }, + "module": "./dist/runtime-dom.esm-bundler.js", + "import": "./dist/runtime-dom.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "name": "VueRuntimeDOM", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs", + "global" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/runtime-dom" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-dom#readme", + "dependencies": { + "csstype": "^3.1.3", + "@vue/shared": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/reactivity": "3.5.13" + }, + "devDependencies": { + "@types/trusted-types": "^2.0.7" + }, + "__npminstall_done": true, + "_from": "@vue/runtime-dom@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js b/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js new file mode 100644 index 0000000..b85ba7a --- /dev/null +++ b/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js @@ -0,0 +1,857 @@ +/** +* @vue/server-renderer v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var Vue = require('vue'); +var shared = require('@vue/shared'); +var compilerSsr = require('@vue/compiler-ssr'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var Vue__namespace = /*#__PURE__*/_interopNamespaceDefault(Vue); + +const shouldIgnoreProp = /* @__PURE__ */ shared.makeMap( + `,key,ref,innerHTML,textContent,ref_key,ref_for` +); +function ssrRenderAttrs(props, tag) { + let ret = ""; + for (const key in props) { + if (shouldIgnoreProp(key) || shared.isOn(key) || tag === "textarea" && key === "value") { + continue; + } + const value = props[key]; + if (key === "class") { + ret += ` class="${ssrRenderClass(value)}"`; + } else if (key === "style") { + ret += ` style="${ssrRenderStyle(value)}"`; + } else if (key === "className") { + ret += ` class="${String(value)}"`; + } else { + ret += ssrRenderDynamicAttr(key, value, tag); + } + } + return ret; +} +function ssrRenderDynamicAttr(key, value, tag) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + const attrKey = tag && (tag.indexOf("-") > 0 || shared.isSVGTag(tag)) ? key : shared.propsToAttrMap[key] || key.toLowerCase(); + if (shared.isBooleanAttr(attrKey)) { + return shared.includeBooleanAttr(value) ? ` ${attrKey}` : ``; + } else if (shared.isSSRSafeAttrName(attrKey)) { + return value === "" ? ` ${attrKey}` : ` ${attrKey}="${shared.escapeHtml(value)}"`; + } else { + console.warn( + `[@vue/server-renderer] Skipped rendering unsafe attribute name: ${attrKey}` + ); + return ``; + } +} +function ssrRenderAttr(key, value) { + if (!shared.isRenderableAttrValue(value)) { + return ``; + } + return ` ${key}="${shared.escapeHtml(value)}"`; +} +function ssrRenderClass(raw) { + return shared.escapeHtml(shared.normalizeClass(raw)); +} +function ssrRenderStyle(raw) { + if (!raw) { + return ""; + } + if (shared.isString(raw)) { + return shared.escapeHtml(raw); + } + const styles = shared.normalizeStyle(raw); + return shared.escapeHtml(shared.stringifyStyle(styles)); +} + +function ssrRenderComponent(comp, props = null, children = null, parentComponent = null, slotScopeId) { + return renderComponentVNode( + Vue.createVNode(comp, props, children), + parentComponent, + slotScopeId + ); +} + +const { ensureValidVNode } = Vue.ssrUtils; +function ssrRenderSlot(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId) { + push(`<!--[-->`); + ssrRenderSlotInner( + slots, + slotName, + slotProps, + fallbackRenderFn, + push, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); +} +function ssrRenderSlotInner(slots, slotName, slotProps, fallbackRenderFn, push, parentComponent, slotScopeId, transition) { + const slotFn = slots[slotName]; + if (slotFn) { + const slotBuffer = []; + const bufferedPush = (item) => { + slotBuffer.push(item); + }; + const ret = slotFn( + slotProps, + bufferedPush, + parentComponent, + slotScopeId ? " " + slotScopeId : "" + ); + if (shared.isArray(ret)) { + const validSlotContent = ensureValidVNode(ret); + if (validSlotContent) { + renderVNodeChildren( + push, + validSlotContent, + parentComponent, + slotScopeId + ); + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let isEmptySlot = true; + if (transition) { + isEmptySlot = false; + } else { + for (let i = 0; i < slotBuffer.length; i++) { + if (!isComment(slotBuffer[i])) { + isEmptySlot = false; + break; + } + } + } + if (isEmptySlot) { + if (fallbackRenderFn) { + fallbackRenderFn(); + } + } else { + let start = 0; + let end = slotBuffer.length; + if (transition && slotBuffer[0] === "<!--[-->" && slotBuffer[end - 1] === "<!--]-->") { + start++; + end--; + } + for (let i = start; i < end; i++) { + push(slotBuffer[i]); + } + } + } + } else if (fallbackRenderFn) { + fallbackRenderFn(); + } +} +const commentTestRE = /^<!--[\s\S]*-->$/; +const commentRE = /<!--[^]*?-->/gm; +function isComment(item) { + if (typeof item !== "string" || !commentTestRE.test(item)) return false; + if (item.length <= 8) return true; + return !item.replace(commentRE, "").trim(); +} + +function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) { + parentPush("<!--teleport start-->"); + const context = parentComponent.appContext.provides[Vue.ssrContextKey]; + const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {}); + const targetBuffer = teleportBuffers[target] || (teleportBuffers[target] = []); + const bufferIndex = targetBuffer.length; + let teleportContent; + if (disabled) { + contentRenderFn(parentPush); + teleportContent = `<!--teleport start anchor--><!--teleport anchor-->`; + } else { + const { getBuffer, push } = createBuffer(); + push(`<!--teleport start anchor-->`); + contentRenderFn(push); + push(`<!--teleport anchor-->`); + teleportContent = getBuffer(); + } + targetBuffer.splice(bufferIndex, 0, teleportContent); + parentPush("<!--teleport end-->"); +} + +function ssrInterpolate(value) { + return shared.escapeHtml(shared.toDisplayString(value)); +} + +function ssrRenderList(source, renderItem) { + if (shared.isArray(source) || shared.isString(source)) { + for (let i = 0, l = source.length; i < l; i++) { + renderItem(source[i], i); + } + } else if (typeof source === "number") { + for (let i = 0; i < source; i++) { + renderItem(i + 1, i); + } + } else if (shared.isObject(source)) { + if (source[Symbol.iterator]) { + const arr = Array.from(source); + for (let i = 0, l = arr.length; i < l; i++) { + renderItem(arr[i], i); + } + } else { + const keys = Object.keys(source); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + renderItem(source[key], key, i); + } + } + } +} + +async function ssrRenderSuspense(push, { default: renderContent }) { + if (renderContent) { + renderContent(); + } else { + push(`<!---->`); + } +} + +function ssrGetDirectiveProps(instance, dir, value, arg, modifiers = {}) { + if (typeof dir !== "function" && dir.getSSRProps) { + return dir.getSSRProps( + { + dir, + instance: Vue.ssrUtils.getComponentPublicInstance(instance.$), + value, + oldValue: void 0, + arg, + modifiers + }, + null + ) || {}; + } + return {}; +} + +const ssrLooseEqual = shared.looseEqual; +function ssrLooseContain(arr, value) { + return shared.looseIndexOf(arr, value) > -1; +} +function ssrRenderDynamicModel(type, model, value) { + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? " checked" : ""; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? " checked" : ""; + default: + return ssrRenderAttr("value", model); + } +} +function ssrGetDynamicModelProps(existingProps = {}, model) { + const { type, value } = existingProps; + switch (type) { + case "radio": + return shared.looseEqual(model, value) ? { checked: true } : null; + case "checkbox": + return (shared.isArray(model) ? ssrLooseContain(model, value) : model) ? { checked: true } : null; + default: + return { value: model }; + } +} + +var helpers = /*#__PURE__*/Object.freeze({ + __proto__: null, + ssrGetDirectiveProps: ssrGetDirectiveProps, + ssrGetDynamicModelProps: ssrGetDynamicModelProps, + ssrIncludeBooleanAttr: shared.includeBooleanAttr, + ssrInterpolate: ssrInterpolate, + ssrLooseContain: ssrLooseContain, + ssrLooseEqual: ssrLooseEqual, + ssrRenderAttr: ssrRenderAttr, + ssrRenderAttrs: ssrRenderAttrs, + ssrRenderClass: ssrRenderClass, + ssrRenderComponent: ssrRenderComponent, + ssrRenderDynamicAttr: ssrRenderDynamicAttr, + ssrRenderDynamicModel: ssrRenderDynamicModel, + ssrRenderList: ssrRenderList, + ssrRenderSlot: ssrRenderSlot, + ssrRenderSlotInner: ssrRenderSlotInner, + ssrRenderStyle: ssrRenderStyle, + ssrRenderSuspense: ssrRenderSuspense, + ssrRenderTeleport: ssrRenderTeleport, + ssrRenderVNode: renderVNode +}); + +const compileCache = /* @__PURE__ */ Object.create(null); +function ssrCompile(template, instance) { + const Component = instance.type; + const { isCustomElement, compilerOptions } = instance.appContext.config; + const { delimiters, compilerOptions: componentCompilerOptions } = Component; + const finalCompilerOptions = shared.extend( + shared.extend( + { + isCustomElement, + delimiters + }, + compilerOptions + ), + componentCompilerOptions + ); + finalCompilerOptions.isCustomElement = finalCompilerOptions.isCustomElement || shared.NO; + finalCompilerOptions.isNativeTag = finalCompilerOptions.isNativeTag || shared.NO; + const cacheKey = JSON.stringify( + { + template, + compilerOptions: finalCompilerOptions + }, + (key, value) => { + return shared.isFunction(value) ? value.toString() : value; + } + ); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + finalCompilerOptions.onError = (err) => { + { + throw err; + } + }; + const { code } = compilerSsr.compile(template, finalCompilerOptions); + const requireMap = { + vue: Vue__namespace, + "vue/server-renderer": helpers + }; + const fakeRequire = (id) => requireMap[id]; + return compileCache[cacheKey] = Function("require", code)(fakeRequire); +} + +const { + createComponentInstance, + setCurrentRenderingInstance, + setupComponent, + renderComponentRoot, + normalizeVNode, + pushWarningContext, + popWarningContext +} = Vue.ssrUtils; +function createBuffer() { + let appendable = false; + const buffer = []; + return { + getBuffer() { + return buffer; + }, + push(item) { + const isStringItem = shared.isString(item); + if (appendable && isStringItem) { + buffer[buffer.length - 1] += item; + return; + } + buffer.push(item); + appendable = isStringItem; + if (shared.isPromise(item) || shared.isArray(item) && item.hasAsync) { + buffer.hasAsync = true; + } + } + }; +} +function renderComponentVNode(vnode, parentComponent = null, slotScopeId) { + const instance = vnode.component = createComponentInstance( + vnode, + parentComponent, + null + ); + const res = setupComponent( + instance, + true + /* isSSR */ + ); + const hasAsyncSetup = shared.isPromise(res); + let prefetches = instance.sp; + if (hasAsyncSetup || prefetches) { + const p = Promise.resolve(res).then(() => { + if (hasAsyncSetup) prefetches = instance.sp; + if (prefetches) { + return Promise.all( + prefetches.map((prefetch) => prefetch.call(instance.proxy)) + ); + } + }).catch(shared.NOOP); + return p.then(() => renderComponentSubTree(instance, slotScopeId)); + } else { + return renderComponentSubTree(instance, slotScopeId); + } +} +function renderComponentSubTree(instance, slotScopeId) { + const comp = instance.type; + const { getBuffer, push } = createBuffer(); + if (shared.isFunction(comp)) { + let root = renderComponentRoot(instance); + if (!comp.props) { + for (const key in instance.attrs) { + if (key.startsWith(`data-v-`)) { + (root.props || (root.props = {}))[key] = ``; + } + } + } + renderVNode(push, instance.subTree = root, instance, slotScopeId); + } else { + if ((!instance.render || instance.render === shared.NOOP) && !instance.ssrRender && !comp.ssrRender && shared.isString(comp.template)) { + comp.ssrRender = ssrCompile(comp.template, instance); + } + const ssrRender = instance.ssrRender || comp.ssrRender; + if (ssrRender) { + let attrs = instance.inheritAttrs !== false ? instance.attrs : void 0; + let hasCloned = false; + let cur = instance; + while (true) { + const scopeId = cur.vnode.scopeId; + if (scopeId) { + if (!hasCloned) { + attrs = { ...attrs }; + hasCloned = true; + } + attrs[scopeId] = ""; + } + const parent = cur.parent; + if (parent && parent.subTree && parent.subTree === cur.vnode) { + cur = parent; + } else { + break; + } + } + if (slotScopeId) { + if (!hasCloned) attrs = { ...attrs }; + const slotScopeIdList = slotScopeId.trim().split(" "); + for (let i = 0; i < slotScopeIdList.length; i++) { + attrs[slotScopeIdList[i]] = ""; + } + } + const prev = setCurrentRenderingInstance(instance); + try { + ssrRender( + instance.proxy, + push, + instance, + attrs, + // compiler-optimized bindings + instance.props, + instance.setupState, + instance.data, + instance.ctx + ); + } finally { + setCurrentRenderingInstance(prev); + } + } else if (instance.render && instance.render !== shared.NOOP) { + renderVNode( + push, + instance.subTree = renderComponentRoot(instance), + instance, + slotScopeId + ); + } else { + const componentName = comp.name || comp.__file || `<Anonymous>`; + Vue.warn(`Component ${componentName} is missing template or render function.`); + push(`<!---->`); + } + } + return getBuffer(); +} +function renderVNode(push, vnode, parentComponent, slotScopeId) { + const { type, shapeFlag, children, dirs, props } = vnode; + if (dirs) { + vnode.props = applySSRDirectives(vnode, props, dirs); + } + switch (type) { + case Vue.Text: + push(shared.escapeHtml(children)); + break; + case Vue.Comment: + push( + children ? `<!--${shared.escapeHtmlComment(children)}-->` : `<!---->` + ); + break; + case Vue.Static: + push(children); + break; + case Vue.Fragment: + if (vnode.slotScopeIds) { + slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" "); + } + push(`<!--[-->`); + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + push(`<!--]-->`); + break; + default: + if (shapeFlag & 1) { + renderElementVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 6) { + push(renderComponentVNode(vnode, parentComponent, slotScopeId)); + } else if (shapeFlag & 64) { + renderTeleportVNode(push, vnode, parentComponent, slotScopeId); + } else if (shapeFlag & 128) { + renderVNode(push, vnode.ssContent, parentComponent, slotScopeId); + } else { + Vue.warn( + "[@vue/server-renderer] Invalid VNode type:", + type, + `(${typeof type})` + ); + } + } +} +function renderVNodeChildren(push, children, parentComponent, slotScopeId) { + for (let i = 0; i < children.length; i++) { + renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId); + } +} +function renderElementVNode(push, vnode, parentComponent, slotScopeId) { + const tag = vnode.type; + let { props, children, shapeFlag, scopeId } = vnode; + let openTag = `<${tag}`; + if (props) { + openTag += ssrRenderAttrs(props, tag); + } + if (scopeId) { + openTag += ` ${scopeId}`; + } + let curParent = parentComponent; + let curVnode = vnode; + while (curParent && curVnode === curParent.subTree) { + curVnode = curParent.vnode; + if (curVnode.scopeId) { + openTag += ` ${curVnode.scopeId}`; + } + curParent = curParent.parent; + } + if (slotScopeId) { + openTag += ` ${slotScopeId}`; + } + push(openTag + `>`); + if (!shared.isVoidTag(tag)) { + let hasChildrenOverride = false; + if (props) { + if (props.innerHTML) { + hasChildrenOverride = true; + push(props.innerHTML); + } else if (props.textContent) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.textContent)); + } else if (tag === "textarea" && props.value) { + hasChildrenOverride = true; + push(shared.escapeHtml(props.value)); + } + } + if (!hasChildrenOverride) { + if (shapeFlag & 8) { + push(shared.escapeHtml(children)); + } else if (shapeFlag & 16) { + renderVNodeChildren( + push, + children, + parentComponent, + slotScopeId + ); + } + } + push(`</${tag}>`); + } +} +function applySSRDirectives(vnode, rawProps, dirs) { + const toMerge = []; + for (let i = 0; i < dirs.length; i++) { + const binding = dirs[i]; + const { + dir: { getSSRProps } + } = binding; + if (getSSRProps) { + const props = getSSRProps(binding, vnode); + if (props) toMerge.push(props); + } + } + return Vue.mergeProps(rawProps || {}, ...toMerge); +} +function renderTeleportVNode(push, vnode, parentComponent, slotScopeId) { + const target = vnode.props && vnode.props.to; + const disabled = vnode.props && vnode.props.disabled; + if (!target) { + if (!disabled) { + Vue.warn(`[@vue/server-renderer] Teleport is missing target prop.`); + } + return []; + } + if (!shared.isString(target)) { + Vue.warn( + `[@vue/server-renderer] Teleport target must be a query selector string.` + ); + return []; + } + ssrRenderTeleport( + push, + (push2) => { + renderVNodeChildren( + push2, + vnode.children, + parentComponent, + slotScopeId + ); + }, + target, + disabled || disabled === "", + parentComponent + ); +} + +const { isVNode: isVNode$1 } = Vue.ssrUtils; +function nestedUnrollBuffer(buffer, parentRet, startIndex) { + if (!buffer.hasAsync) { + return parentRet + unrollBufferSync$1(buffer); + } + let ret = parentRet; + for (let i = startIndex; i < buffer.length; i += 1) { + const item = buffer[i]; + if (shared.isString(item)) { + ret += item; + continue; + } + if (shared.isPromise(item)) { + return item.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, ret, i); + }); + } + const result = nestedUnrollBuffer(item, ret, 0); + if (shared.isPromise(result)) { + return result.then((nestedItem) => { + buffer[i] = nestedItem; + return nestedUnrollBuffer(buffer, "", i); + }); + } + ret = result; + } + return ret; +} +function unrollBuffer$1(buffer) { + return nestedUnrollBuffer(buffer, "", 0); +} +function unrollBufferSync$1(buffer) { + let ret = ""; + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + ret += item; + } else { + ret += unrollBufferSync$1(item); + } + } + return ret; +} +async function renderToString(input, context = {}) { + if (isVNode$1(input)) { + return renderToString(Vue.createApp({ render: () => input }), context); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + const buffer = await renderComponentVNode(vnode); + const result = await unrollBuffer$1(buffer); + await resolveTeleports(context); + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + return result; +} +async function resolveTeleports(context) { + if (context.__teleportBuffers) { + context.teleports = context.teleports || {}; + for (const key in context.__teleportBuffers) { + context.teleports[key] = await unrollBuffer$1( + await Promise.all([context.__teleportBuffers[key]]) + ); + } + } +} + +const { isVNode } = Vue.ssrUtils; +async function unrollBuffer(buffer, stream) { + if (buffer.hasAsync) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isPromise(item)) { + item = await item; + } + if (shared.isString(item)) { + stream.push(item); + } else { + await unrollBuffer(item, stream); + } + } + } else { + unrollBufferSync(buffer, stream); + } +} +function unrollBufferSync(buffer, stream) { + for (let i = 0; i < buffer.length; i++) { + let item = buffer[i]; + if (shared.isString(item)) { + stream.push(item); + } else { + unrollBufferSync(item, stream); + } + } +} +function renderToSimpleStream(input, context, stream) { + if (isVNode(input)) { + return renderToSimpleStream( + Vue.createApp({ render: () => input }), + context, + stream + ); + } + const vnode = Vue.createVNode(input._component, input._props); + vnode.appContext = input._context; + input.provide(Vue.ssrContextKey, context); + Promise.resolve(renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => { + if (context.__watcherHandles) { + for (const unwatch of context.__watcherHandles) { + unwatch(); + } + } + }).then(() => stream.push(null)).catch((error) => { + stream.destroy(error); + }); + return stream; +} +function renderToStream(input, context = {}) { + console.warn( + `[@vue/server-renderer] renderToStream is deprecated - use renderToNodeStream instead.` + ); + return renderToNodeStream(input, context); +} +function renderToNodeStream(input, context = {}) { + const stream = new (require("node:stream")).Readable({ read() { + } }) ; + if (!stream) { + throw new Error( + `ESM build of renderToStream() does not support renderToNodeStream(). Use pipeToNodeWritable() with an existing Node.js Writable stream instance instead.` + ); + } + return renderToSimpleStream(input, context, stream); +} +function pipeToNodeWritable(input, context = {}, writable) { + renderToSimpleStream(input, context, { + push(content) { + if (content != null) { + writable.write(content); + } else { + writable.end(); + } + }, + destroy(err) { + writable.destroy(err); + } + }); +} +function renderToWebStream(input, context = {}) { + if (typeof ReadableStream !== "function") { + throw new Error( + `ReadableStream constructor is not available in the global scope. If the target environment does support web streams, consider using pipeToWebWritable() with an existing WritableStream instance instead.` + ); + } + const encoder = new TextEncoder(); + let cancelled = false; + return new ReadableStream({ + start(controller) { + renderToSimpleStream(input, context, { + push(content) { + if (cancelled) return; + if (content != null) { + controller.enqueue(encoder.encode(content)); + } else { + controller.close(); + } + }, + destroy(err) { + controller.error(err); + } + }); + }, + cancel() { + cancelled = true; + } + }); +} +function pipeToWebWritable(input, context = {}, writable) { + const writer = writable.getWriter(); + const encoder = new TextEncoder(); + let hasReady = false; + try { + hasReady = shared.isPromise(writer.ready); + } catch (e) { + } + renderToSimpleStream(input, context, { + async push(content) { + if (hasReady) { + await writer.ready; + } + if (content != null) { + return writer.write(encoder.encode(content)); + } else { + return writer.close(); + } + }, + destroy(err) { + console.log(err); + writer.close(); + } + }); +} + +Vue.initDirectivesForSSR(); + +exports.ssrIncludeBooleanAttr = shared.includeBooleanAttr; +exports.pipeToNodeWritable = pipeToNodeWritable; +exports.pipeToWebWritable = pipeToWebWritable; +exports.renderToNodeStream = renderToNodeStream; +exports.renderToSimpleStream = renderToSimpleStream; +exports.renderToStream = renderToStream; +exports.renderToString = renderToString; +exports.renderToWebStream = renderToWebStream; +exports.ssrGetDirectiveProps = ssrGetDirectiveProps; +exports.ssrGetDynamicModelProps = ssrGetDynamicModelProps; +exports.ssrInterpolate = ssrInterpolate; +exports.ssrLooseContain = ssrLooseContain; +exports.ssrLooseEqual = ssrLooseEqual; +exports.ssrRenderAttr = ssrRenderAttr; +exports.ssrRenderAttrs = ssrRenderAttrs; +exports.ssrRenderClass = ssrRenderClass; +exports.ssrRenderComponent = ssrRenderComponent; +exports.ssrRenderDynamicAttr = ssrRenderDynamicAttr; +exports.ssrRenderDynamicModel = ssrRenderDynamicModel; +exports.ssrRenderList = ssrRenderList; +exports.ssrRenderSlot = ssrRenderSlot; +exports.ssrRenderSlotInner = ssrRenderSlotInner; +exports.ssrRenderStyle = ssrRenderStyle; +exports.ssrRenderSuspense = ssrRenderSuspense; +exports.ssrRenderTeleport = ssrRenderTeleport; +exports.ssrRenderVNode = renderVNode; diff --git a/.output/server/node_modules/@vue/server-renderer/package.json b/.output/server/node_modules/@vue/server-renderer/package.json new file mode 100644 index 0000000..a75958e --- /dev/null +++ b/.output/server/node_modules/@vue/server-renderer/package.json @@ -0,0 +1,58 @@ +{ + "name": "@vue/server-renderer", + "version": "3.5.13", + "description": "@vue/server-renderer", + "main": "index.js", + "module": "dist/server-renderer.esm-bundler.js", + "types": "dist/server-renderer.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/server-renderer.d.ts", + "node": { + "production": "./dist/server-renderer.cjs.prod.js", + "development": "./dist/server-renderer.cjs.js", + "default": "./dist/server-renderer.cjs.prod.js" + }, + "module": "./dist/server-renderer.esm-bundler.js", + "import": "./dist/server-renderer.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "buildOptions": { + "name": "VueServerRenderer", + "formats": [ + "esm-bundler", + "esm-browser", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/server-renderer" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/server-renderer#readme", + "peerDependencies": { + "vue": "3.5.13" + }, + "dependencies": { + "@vue/shared": "3.5.13", + "@vue/compiler-ssr": "3.5.13" + }, + "__npminstall_done": true, + "_from": "@vue/server-renderer@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js b/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js new file mode 100644 index 0000000..14b1902 --- /dev/null +++ b/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js @@ -0,0 +1,594 @@ +/** +* @vue/shared v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; +} + +const EMPTY_OBJ = {}; +const EMPTY_ARR = []; +const NOOP = () => { +}; +const NO = () => false; +const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +const isModelListener = (key) => key.startsWith("onUpdate:"); +const extend = Object.assign; +const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const hasOwn = (val, key) => hasOwnProperty.call(val, key); +const isArray = Array.isArray; +const isMap = (val) => toTypeString(val) === "[object Map]"; +const isSet = (val) => toTypeString(val) === "[object Set]"; +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isSymbol = (val) => typeof val === "symbol"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +const camelizeRE = /-(\w)/g; +const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); + } +); +const hyphenateRE = /\B([A-Z])/g; +const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } +); +const hasChanged = (value, oldValue) => !Object.is(value, oldValue); +const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name) { + return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`; +} +function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); +} + +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "CACHED": -1, + "-1": "CACHED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` +}; + +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; + +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; + +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; + +const range = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} + +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} + +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name) { + if (attrValidationCache.hasOwnProperty(name)) { + return attrValidationCache[name]; + } + const isUnsafe = unsafeAttrCharRE.test(name); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name}`); + } + return attrValidationCache[name] = !isUnsafe; +} +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +const isKnownMathMLAttr = /* @__PURE__ */ makeMap( + `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} + +const escapeRE = /["'&<>]/; +function escapeHtml(string) { + const str = "" + string; + const match = escapeRE.exec(str); + if (!match) { + return str; + } + let html = ""; + let escaped; + let index; + let lastIndex = 0; + for (index = match.index; index < str.length; index++) { + switch (str.charCodeAt(index)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex !== index) { + html += str.slice(lastIndex, index); + } + lastIndex = index + 1; + html += escaped; + } + return lastIndex !== index ? html + str.slice(lastIndex, index) : html; +} +const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g; +function escapeHtmlComment(src) { + return src.replace(commentStripRE, ""); +} +const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; +function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` + ); +} + +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} + +const isRef = (val) => { + return !!(val && val["__v_isRef"] === true); +}; +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +exports.EMPTY_ARR = EMPTY_ARR; +exports.EMPTY_OBJ = EMPTY_OBJ; +exports.NO = NO; +exports.NOOP = NOOP; +exports.PatchFlagNames = PatchFlagNames; +exports.PatchFlags = PatchFlags; +exports.ShapeFlags = ShapeFlags; +exports.SlotFlags = SlotFlags; +exports.camelize = camelize; +exports.capitalize = capitalize; +exports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE; +exports.def = def; +exports.escapeHtml = escapeHtml; +exports.escapeHtmlComment = escapeHtmlComment; +exports.extend = extend; +exports.genCacheKey = genCacheKey; +exports.genPropsAccessExp = genPropsAccessExp; +exports.generateCodeFrame = generateCodeFrame; +exports.getEscapedCssVarName = getEscapedCssVarName; +exports.getGlobalThis = getGlobalThis; +exports.hasChanged = hasChanged; +exports.hasOwn = hasOwn; +exports.hyphenate = hyphenate; +exports.includeBooleanAttr = includeBooleanAttr; +exports.invokeArrayFns = invokeArrayFns; +exports.isArray = isArray; +exports.isBooleanAttr = isBooleanAttr; +exports.isBuiltInDirective = isBuiltInDirective; +exports.isDate = isDate; +exports.isFunction = isFunction; +exports.isGloballyAllowed = isGloballyAllowed; +exports.isGloballyWhitelisted = isGloballyWhitelisted; +exports.isHTMLTag = isHTMLTag; +exports.isIntegerKey = isIntegerKey; +exports.isKnownHtmlAttr = isKnownHtmlAttr; +exports.isKnownMathMLAttr = isKnownMathMLAttr; +exports.isKnownSvgAttr = isKnownSvgAttr; +exports.isMap = isMap; +exports.isMathMLTag = isMathMLTag; +exports.isModelListener = isModelListener; +exports.isObject = isObject; +exports.isOn = isOn; +exports.isPlainObject = isPlainObject; +exports.isPromise = isPromise; +exports.isRegExp = isRegExp; +exports.isRenderableAttrValue = isRenderableAttrValue; +exports.isReservedProp = isReservedProp; +exports.isSSRSafeAttrName = isSSRSafeAttrName; +exports.isSVGTag = isSVGTag; +exports.isSet = isSet; +exports.isSpecialBooleanAttr = isSpecialBooleanAttr; +exports.isString = isString; +exports.isSymbol = isSymbol; +exports.isVoidTag = isVoidTag; +exports.looseEqual = looseEqual; +exports.looseIndexOf = looseIndexOf; +exports.looseToNumber = looseToNumber; +exports.makeMap = makeMap; +exports.normalizeClass = normalizeClass; +exports.normalizeProps = normalizeProps; +exports.normalizeStyle = normalizeStyle; +exports.objectToString = objectToString; +exports.parseStringStyle = parseStringStyle; +exports.propsToAttrMap = propsToAttrMap; +exports.remove = remove; +exports.slotFlagsText = slotFlagsText; +exports.stringifyStyle = stringifyStyle; +exports.toDisplayString = toDisplayString; +exports.toHandlerKey = toHandlerKey; +exports.toNumber = toNumber; +exports.toRawType = toRawType; +exports.toTypeString = toTypeString; diff --git a/.output/server/node_modules/@vue/shared/package.json b/.output/server/node_modules/@vue/shared/package.json new file mode 100644 index 0000000..1487b5c --- /dev/null +++ b/.output/server/node_modules/@vue/shared/package.json @@ -0,0 +1,50 @@ +{ + "name": "@vue/shared", + "version": "3.5.13", + "description": "internal utils shared across @vue packages", + "main": "index.js", + "module": "dist/shared.esm-bundler.js", + "types": "dist/shared.d.ts", + "files": [ + "index.js", + "dist" + ], + "exports": { + ".": { + "types": "./dist/shared.d.ts", + "node": { + "production": "./dist/shared.cjs.prod.js", + "development": "./dist/shared.cjs.js", + "default": "./dist/shared.cjs.prod.js" + }, + "module": "./dist/shared.esm-bundler.js", + "import": "./dist/shared.esm-bundler.js", + "require": "./index.js" + }, + "./*": "./*" + }, + "sideEffects": false, + "buildOptions": { + "formats": [ + "esm-bundler", + "cjs" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git", + "directory": "packages/shared" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/shared#readme", + "__npminstall_done": true, + "_from": "@vue/shared@3.5.13", + "_resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/asynckit/index.js b/.output/server/node_modules/asynckit/index.js new file mode 100644 index 0000000..455f945 --- /dev/null +++ b/.output/server/node_modules/asynckit/index.js @@ -0,0 +1,6 @@ +module.exports = +{ + parallel : require('./parallel.js'), + serial : require('./serial.js'), + serialOrdered : require('./serialOrdered.js') +}; diff --git a/.output/server/node_modules/asynckit/lib/abort.js b/.output/server/node_modules/asynckit/lib/abort.js new file mode 100644 index 0000000..114367e --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/abort.js @@ -0,0 +1,29 @@ +// API +module.exports = abort; + +/** + * Aborts leftover active jobs + * + * @param {object} state - current state object + */ +function abort(state) +{ + Object.keys(state.jobs).forEach(clean.bind(state)); + + // reset leftover jobs + state.jobs = {}; +} + +/** + * Cleans up leftover job by invoking abort function for the provided job id + * + * @this state + * @param {string|number} key - job id to abort + */ +function clean(key) +{ + if (typeof this.jobs[key] == 'function') + { + this.jobs[key](); + } +} diff --git a/.output/server/node_modules/asynckit/lib/async.js b/.output/server/node_modules/asynckit/lib/async.js new file mode 100644 index 0000000..7f1288a --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/async.js @@ -0,0 +1,34 @@ +var defer = require('./defer.js'); + +// API +module.exports = async; + +/** + * Runs provided callback asynchronously + * even if callback itself is not + * + * @param {function} callback - callback to invoke + * @returns {function} - augmented callback + */ +function async(callback) +{ + var isAsync = false; + + // check if async happened + defer(function() { isAsync = true; }); + + return function async_callback(err, result) + { + if (isAsync) + { + callback(err, result); + } + else + { + defer(function nextTick_callback() + { + callback(err, result); + }); + } + }; +} diff --git a/.output/server/node_modules/asynckit/lib/defer.js b/.output/server/node_modules/asynckit/lib/defer.js new file mode 100644 index 0000000..b67110c --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/defer.js @@ -0,0 +1,26 @@ +module.exports = defer; + +/** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ +function defer(fn) +{ + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } +} diff --git a/.output/server/node_modules/asynckit/lib/iterate.js b/.output/server/node_modules/asynckit/lib/iterate.js new file mode 100644 index 0000000..5d2839a --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/iterate.js @@ -0,0 +1,75 @@ +var async = require('./async.js') + , abort = require('./abort.js') + ; + +// API +module.exports = iterate; + +/** + * Iterates over each job object + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {object} state - current job status + * @param {function} callback - invoked when all elements processed + */ +function iterate(list, iterator, state, callback) +{ + // store current index + var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; + + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) + { + // don't repeat yourself + // skip secondary callbacks + if (!(key in state.jobs)) + { + return; + } + + // clean up jobs + delete state.jobs[key]; + + if (error) + { + // don't process rest of the results + // stop still active jobs + // and reset the list + abort(state); + } + else + { + state.results[key] = output; + } + + // return salvaged results + callback(error, state.results); + }); +} + +/** + * Runs iterator over provided job element + * + * @param {function} iterator - iterator to invoke + * @param {string|number} key - key/index of the element in the list of jobs + * @param {mixed} item - job description + * @param {function} callback - invoked after iterator is done with the job + * @returns {function|mixed} - job abort function or something else + */ +function runJob(iterator, key, item, callback) +{ + var aborter; + + // allow shortcut if iterator expects only two arguments + if (iterator.length == 2) + { + aborter = iterator(item, async(callback)); + } + // otherwise go with full three arguments + else + { + aborter = iterator(item, key, async(callback)); + } + + return aborter; +} diff --git a/.output/server/node_modules/asynckit/lib/state.js b/.output/server/node_modules/asynckit/lib/state.js new file mode 100644 index 0000000..cbea7ad --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/state.js @@ -0,0 +1,37 @@ +// API +module.exports = state; + +/** + * Creates initial state object + * for iteration over list + * + * @param {array|object} list - list to iterate over + * @param {function|null} sortMethod - function to use for keys sort, + * or `null` to keep them as is + * @returns {object} - initial state object + */ +function state(list, sortMethod) +{ + var isNamedList = !Array.isArray(list) + , initState = + { + index : 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs : {}, + results : isNamedList ? {} : [], + size : isNamedList ? Object.keys(list).length : list.length + } + ; + + if (sortMethod) + { + // sort array keys based on it's values + // sort object's keys just on own merit + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) + { + return sortMethod(list[a], list[b]); + }); + } + + return initState; +} diff --git a/.output/server/node_modules/asynckit/lib/terminator.js b/.output/server/node_modules/asynckit/lib/terminator.js new file mode 100644 index 0000000..d6eb992 --- /dev/null +++ b/.output/server/node_modules/asynckit/lib/terminator.js @@ -0,0 +1,29 @@ +var abort = require('./abort.js') + , async = require('./async.js') + ; + +// API +module.exports = terminator; + +/** + * Terminates jobs in the attached state context + * + * @this AsyncKitState# + * @param {function} callback - final callback to invoke after termination + */ +function terminator(callback) +{ + if (!Object.keys(this.jobs).length) + { + return; + } + + // fast forward iteration index + this.index = this.size; + + // abort jobs + abort(this); + + // send back results we have so far + async(callback)(null, this.results); +} diff --git a/.output/server/node_modules/asynckit/package.json b/.output/server/node_modules/asynckit/package.json new file mode 100644 index 0000000..6949540 --- /dev/null +++ b/.output/server/node_modules/asynckit/package.json @@ -0,0 +1,66 @@ +{ + "name": "asynckit", + "version": "0.4.0", + "description": "Minimal async jobs utility library, with streams support", + "main": "index.js", + "scripts": { + "clean": "rimraf coverage", + "lint": "eslint *.js lib/*.js test/*.js", + "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", + "win-test": "tape test/test-*.js", + "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", + "report": "istanbul report", + "size": "browserify index.js | size-table asynckit", + "debug": "tape test/test-*.js" + }, + "pre-commit": [ + "clean", + "lint", + "test", + "browser", + "report", + "size" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/alexindigo/asynckit.git" + }, + "keywords": [ + "async", + "jobs", + "parallel", + "serial", + "iterator", + "array", + "object", + "stream", + "destroy", + "terminate", + "abort" + ], + "author": "Alex Indigo <iam@alexindigo.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/alexindigo/asynckit/issues" + }, + "homepage": "https://github.com/alexindigo/asynckit#readme", + "devDependencies": { + "browserify": "^13.0.0", + "browserify-istanbul": "^2.0.0", + "coveralls": "^2.11.9", + "eslint": "^2.9.0", + "istanbul": "^0.4.3", + "obake": "^0.1.2", + "phantomjs-prebuilt": "^2.1.7", + "pre-commit": "^1.1.3", + "reamde": "^1.1.0", + "rimraf": "^2.5.2", + "size-table": "^0.2.0", + "tap-spec": "^4.1.1", + "tape": "^4.5.1" + }, + "dependencies": {}, + "__npminstall_done": true, + "_from": "asynckit@0.4.0", + "_resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/asynckit/parallel.js b/.output/server/node_modules/asynckit/parallel.js new file mode 100644 index 0000000..3c50344 --- /dev/null +++ b/.output/server/node_modules/asynckit/parallel.js @@ -0,0 +1,43 @@ +var iterate = require('./lib/iterate.js') + , initState = require('./lib/state.js') + , terminator = require('./lib/terminator.js') + ; + +// Public API +module.exports = parallel; + +/** + * Runs iterator over provided array elements in parallel + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function parallel(list, iterator, callback) +{ + var state = initState(list); + + while (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, function(error, result) + { + if (error) + { + callback(error, result); + return; + } + + // looks like it's the last one + if (Object.keys(state.jobs).length === 0) + { + callback(null, state.results); + return; + } + }); + + state.index++; + } + + return terminator.bind(state, callback); +} diff --git a/.output/server/node_modules/asynckit/serial.js b/.output/server/node_modules/asynckit/serial.js new file mode 100644 index 0000000..6cd949a --- /dev/null +++ b/.output/server/node_modules/asynckit/serial.js @@ -0,0 +1,17 @@ +var serialOrdered = require('./serialOrdered.js'); + +// Public API +module.exports = serial; + +/** + * Runs iterator over provided array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serial(list, iterator, callback) +{ + return serialOrdered(list, iterator, null, callback); +} diff --git a/.output/server/node_modules/asynckit/serialOrdered.js b/.output/server/node_modules/asynckit/serialOrdered.js new file mode 100644 index 0000000..607eafe --- /dev/null +++ b/.output/server/node_modules/asynckit/serialOrdered.js @@ -0,0 +1,75 @@ +var iterate = require('./lib/iterate.js') + , initState = require('./lib/state.js') + , terminator = require('./lib/terminator.js') + ; + +// Public API +module.exports = serialOrdered; +// sorting helpers +module.exports.ascending = ascending; +module.exports.descending = descending; + +/** + * Runs iterator over provided sorted array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serialOrdered(list, iterator, sortMethod, callback) +{ + var state = initState(list, sortMethod); + + iterate(list, iterator, state, function iteratorHandler(error, result) + { + if (error) + { + callback(error, result); + return; + } + + state.index++; + + // are we there yet? + if (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, iteratorHandler); + return; + } + + // done here + callback(null, state.results); + }); + + return terminator.bind(state, callback); +} + +/* + * -- Sort methods + */ + +/** + * sort helper to sort array elements in ascending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function ascending(a, b) +{ + return a < b ? -1 : a > b ? 1 : 0; +} + +/** + * sort helper to sort array elements in descending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function descending(a, b) +{ + return -1 * ascending(a, b); +} diff --git a/.output/server/node_modules/axios/index.js b/.output/server/node_modules/axios/index.js new file mode 100644 index 0000000..fba3990 --- /dev/null +++ b/.output/server/node_modules/axios/index.js @@ -0,0 +1,43 @@ +import axios from './lib/axios.js'; + +// This module is intended to unwrap Axios default export as named. +// Keep top-level export same with static properties +// so that it can keep same with es module or cjs +const { + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + getAdapter, + mergeConfig +} = axios; + +export { + axios as default, + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + getAdapter, + mergeConfig +} diff --git a/.output/server/node_modules/axios/lib/adapters/adapters.js b/.output/server/node_modules/axios/lib/adapters/adapters.js new file mode 100644 index 0000000..b466dd5 --- /dev/null +++ b/.output/server/node_modules/axios/lib/adapters/adapters.js @@ -0,0 +1,79 @@ +import utils from '../utils.js'; +import httpAdapter from './http.js'; +import xhrAdapter from './xhr.js'; +import fetchAdapter from './fetch.js'; +import AxiosError from "../core/AxiosError.js"; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter, + fetch: fetchAdapter +} + +utils.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const renderReason = (reason) => `- ${reason}`; + +const isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false; + +export default { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + + const reasons = Object.entries(rejectedReasons) + .map(([id, state]) => `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length ? + (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) : + 'as no adapter specified'; + + throw new AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + 'ERR_NOT_SUPPORT' + ); + } + + return adapter; + }, + adapters: knownAdapters +} diff --git a/.output/server/node_modules/axios/lib/adapters/fetch.js b/.output/server/node_modules/axios/lib/adapters/fetch.js new file mode 100644 index 0000000..f871a05 --- /dev/null +++ b/.output/server/node_modules/axios/lib/adapters/fetch.js @@ -0,0 +1,229 @@ +import platform from "../platform/index.js"; +import utils from "../utils.js"; +import AxiosError from "../core/AxiosError.js"; +import composeSignals from "../helpers/composeSignals.js"; +import {trackStream} from "../helpers/trackStream.js"; +import AxiosHeaders from "../core/AxiosHeaders.js"; +import {progressEventReducer, progressEventDecorator, asyncDecorator} from "../helpers/progressEventReducer.js"; +import resolveConfig from "../helpers/resolveConfig.js"; +import settle from "../core/settle.js"; + +const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function'; +const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function'; + +// used only inside the fetch adapter +const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? + ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : + async (str) => new Uint8Array(await new Response(str).arrayBuffer()) +); + +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false + } +} + +const supportsRequestStream = isReadableStreamSupported && test(() => { + let duplexAccessed = false; + + const hasContentType = new Request(platform.origin, { + body: new ReadableStream(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + }, + }).headers.has('Content-Type'); + + return duplexAccessed && !hasContentType; +}); + +const DEFAULT_CHUNK_SIZE = 64 * 1024; + +const supportsResponseStream = isReadableStreamSupported && + test(() => utils.isReadableStream(new Response('').body)); + + +const resolvers = { + stream: supportsResponseStream && ((res) => res.body) +}; + +isFetchSupported && (((res) => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => { + !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() : + (_, config) => { + throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config); + }) + }); +})(new Response)); + +const getBodyLength = async (body) => { + if (body == null) { + return 0; + } + + if(utils.isBlob(body)) { + return body.size; + } + + if(utils.isSpecCompliantForm(body)) { + const _request = new Request(platform.origin, { + method: 'POST', + body, + }); + return (await _request.arrayBuffer()).byteLength; + } + + if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) { + return body.byteLength; + } + + if(utils.isURLSearchParams(body)) { + body = body + ''; + } + + if(utils.isString(body)) { + return (await encodeText(body)).byteLength; + } +} + +const resolveBodyLength = async (headers, body) => { + const length = utils.toFiniteNumber(headers.getContentLength()); + + return length == null ? getBodyLength(body) : length; +} + +export default isFetchSupported && (async (config) => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions + } = resolveConfig(config); + + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + + let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout); + + let request; + + const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => { + composedSignal.unsubscribe(); + }); + + let requestContentLength; + + try { + if ( + onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' && + (requestContentLength = await resolveBodyLength(headers, data)) !== 0 + ) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: "half" + }); + + let contentTypeHeader; + + if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader) + } + + if (_request.body) { + const [onProgress, flush] = progressEventDecorator( + requestContentLength, + progressEventReducer(asyncDecorator(onUploadProgress)) + ); + + data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); + } + } + + if (!utils.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = "credentials" in Request.prototype; + request = new Request(url, { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: headers.normalize().toJSON(), + body: data, + duplex: "half", + credentials: isCredentialsSupported ? withCredentials : undefined + }); + + let response = await fetch(request); + + const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + + if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { + const options = {}; + + ['status', 'statusText', 'headers'].forEach(prop => { + options[prop] = response[prop]; + }); + + const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length')); + + const [onProgress, flush] = onDownloadProgress && progressEventDecorator( + responseContentLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true) + ) || []; + + response = new Response( + trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), + options + ); + } + + responseType = responseType || 'text'; + + let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config); + + !isStreamResponse && unsubscribe && unsubscribe(); + + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request + }) + }) + } catch (err) { + unsubscribe && unsubscribe(); + + if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { + throw Object.assign( + new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), + { + cause: err.cause || err + } + ) + } + + throw AxiosError.from(err, err && err.code, config, request); + } +}); + + diff --git a/.output/server/node_modules/axios/lib/adapters/http.js b/.output/server/node_modules/axios/lib/adapters/http.js new file mode 100644 index 0000000..da0a42d --- /dev/null +++ b/.output/server/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,695 @@ +'use strict'; + +import utils from './../utils.js'; +import settle from './../core/settle.js'; +import buildFullPath from '../core/buildFullPath.js'; +import buildURL from './../helpers/buildURL.js'; +import proxyFromEnv from 'proxy-from-env'; +import http from 'http'; +import https from 'https'; +import util from 'util'; +import followRedirects from 'follow-redirects'; +import zlib from 'zlib'; +import {VERSION} from '../env/data.js'; +import transitionalDefaults from '../defaults/transitional.js'; +import AxiosError from '../core/AxiosError.js'; +import CanceledError from '../cancel/CanceledError.js'; +import platform from '../platform/index.js'; +import fromDataURI from '../helpers/fromDataURI.js'; +import stream from 'stream'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import AxiosTransformStream from '../helpers/AxiosTransformStream.js'; +import {EventEmitter} from 'events'; +import formDataToStream from "../helpers/formDataToStream.js"; +import readBlob from "../helpers/readBlob.js"; +import ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js'; +import callbackify from "../helpers/callbackify.js"; +import {progressEventReducer, progressEventDecorator, asyncDecorator} from "../helpers/progressEventReducer.js"; + +const zlibOptions = { + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH +}; + +const brotliOptions = { + flush: zlib.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH +} + +const isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress); + +const {http: httpFollow, https: httpsFollow} = followRedirects; + +const isHttps = /https:?/; + +const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); + +const flushOnFinish = (stream, [throttled, flush]) => { + stream + .on('end', flush) + .on('error', flush); + + return throttled; +} + +/** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object<string, any>} options - The options object that was passed to the request. + * + * @returns {Object<string, any>} + */ +function dispatchBeforeRedirect(options, responseDetails) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options, responseDetails); + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = proxyFromEnv.getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; +} + +const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + } + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + } + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }) +}; + +const resolveFamily = ({address, family}) => { + if (!utils.isString(address)) { + throw TypeError('address must be a string'); + } + return ({ + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4) + }); +} + +const buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family}); + +/*eslint consistent-return:0*/ +export default isHttpAdapterSupported && function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + let {data, lookup, family} = config; + const {responseType, responseEncoding} = config; + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + + if (lookup) { + const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + if (err) { + return cb(err); + } + + const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; + + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + } + } + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter(); + + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + } + + onDone((value, isRejected) => { + isDone = true; + if (isRejected) { + rejected = true; + onFinished(); + } + }); + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config + }); + } + + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = stream.Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders(), + config + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError( + 'Unsupported protocol ' + protocol, + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + const headers = AxiosHeaders.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const {onUploadProgress, onDownloadProgress} = config; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = formDataToStream(data, (formHeaders) => { + headers.set(formHeaders); + }, { + tag: `axios-${VERSION}-boundary`, + boundary: userBoundary && userBoundary[1] || undefined + }); + // support for https://www.npmjs.com/package/form-data api + } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util.promisify(data.getLength).call(data); + Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils.isBlob(data) || utils.isFile(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream.Readable.from(readBlob(data)); + } else if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(new AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject(new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + } + + const contentLength = utils.toFiniteNumber(headers.getContentLength()); + + if (utils.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils.isStream(data)) { + data = stream.Readable.from(data, {objectMode: false}); + } + + data = stream.pipeline([data, new AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxUploadRate) + })], utils.noop); + + onUploadProgress && data.on('progress', flushOnFinish( + data, + progressEventDecorator( + contentLength, + progressEventReducer(asyncDecorator(onUploadProgress), false, 3) + ) + )); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + + headers.set( + 'Accept-Encoding', + 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + // cacheable-lookup integration hotfix + !utils.isUndefined(lookup) && (options.lookup = lookup); + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname.startsWith("[") ? parsed.hostname.slice(1, -1) : parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress || maxDownloadRate) { + const transformStream = new AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', flushOnFinish( + transformStream, + progressEventDecorator( + responseLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true, 3) + ) + )); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib.createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0]; + + const offListeners = stream.finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new AxiosError( + 'stream has been aborted', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + + if (Number.isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + req + )); + abort(); + }); + } + + + // Send the request + if (utils.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', err => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); +} + +export const __setProxy = setProxy; diff --git a/.output/server/node_modules/axios/lib/adapters/xhr.js b/.output/server/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 0000000..a7ee548 --- /dev/null +++ b/.output/server/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,197 @@ +import utils from './../utils.js'; +import settle from './../core/settle.js'; +import transitionalDefaults from '../defaults/transitional.js'; +import AxiosError from '../core/AxiosError.js'; +import CanceledError from '../cancel/CanceledError.js'; +import parseProtocol from '../helpers/parseProtocol.js'; +import platform from '../platform/index.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import {progressEventReducer} from '../helpers/progressEventReducer.js'; +import resolveConfig from "../helpers/resolveConfig.js"; + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +export default isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = resolveConfig(config); + let requestData = _config.data; + const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); + let {responseType, onUploadProgress, onDownloadProgress} = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + + let request = new XMLHttpRequest(); + + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = !responseType || responseType === 'text' || responseType === 'json' ? + request.responseText : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = _config.transitional || transitionalDefaults; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true)); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress)); + + request.upload.addEventListener('progress', uploadThrottled); + + request.upload.addEventListener('loadend', flushUpload); + } + + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(_config.url); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +} diff --git a/.output/server/node_modules/axios/lib/axios.js b/.output/server/node_modules/axios/lib/axios.js new file mode 100644 index 0000000..873f246 --- /dev/null +++ b/.output/server/node_modules/axios/lib/axios.js @@ -0,0 +1,89 @@ +'use strict'; + +import utils from './utils.js'; +import bind from './helpers/bind.js'; +import Axios from './core/Axios.js'; +import mergeConfig from './core/mergeConfig.js'; +import defaults from './defaults/index.js'; +import formDataToJSON from './helpers/formDataToJSON.js'; +import CanceledError from './cancel/CanceledError.js'; +import CancelToken from './cancel/CancelToken.js'; +import isCancel from './cancel/isCancel.js'; +import {VERSION} from './env/data.js'; +import toFormData from './helpers/toFormData.js'; +import AxiosError from './core/AxiosError.js'; +import spread from './helpers/spread.js'; +import isAxiosError from './helpers/isAxiosError.js'; +import AxiosHeaders from "./core/AxiosHeaders.js"; +import adapters from './adapters/adapters.js'; +import HttpStatusCode from './helpers/HttpStatusCode.js'; + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios(defaultConfig); + const instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context, {allOwnKeys: true}); + + // Copy context to instance + utils.extend(instance, context, null, {allOwnKeys: true}); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders; + +axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = HttpStatusCode; + +axios.default = axios; + +// this module should only have a default export +export default axios diff --git a/.output/server/node_modules/axios/lib/cancel/CancelToken.js b/.output/server/node_modules/axios/lib/cancel/CancelToken.js new file mode 100644 index 0000000..0fc2025 --- /dev/null +++ b/.output/server/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,135 @@ +'use strict'; + +import CanceledError from './CanceledError.js'; + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise(resolve => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + toAbortSignal() { + const controller = new AbortController(); + + const abort = (err) => { + controller.abort(err); + }; + + this.subscribe(abort); + + controller.signal.unsubscribe = () => this.unsubscribe(abort); + + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } +} + +export default CancelToken; diff --git a/.output/server/node_modules/axios/lib/cancel/CanceledError.js b/.output/server/node_modules/axios/lib/cancel/CanceledError.js new file mode 100644 index 0000000..880066e --- /dev/null +++ b/.output/server/node_modules/axios/lib/cancel/CanceledError.js @@ -0,0 +1,25 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import utils from '../utils.js'; + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ +function CanceledError(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +export default CanceledError; diff --git a/.output/server/node_modules/axios/lib/cancel/isCancel.js b/.output/server/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 0000000..a444a12 --- /dev/null +++ b/.output/server/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'use strict'; + +export default function isCancel(value) { + return !!(value && value.__CANCEL__); +} diff --git a/.output/server/node_modules/axios/lib/core/Axios.js b/.output/server/node_modules/axios/lib/core/Axios.js new file mode 100644 index 0000000..6dd3c2c --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,233 @@ +'use strict'; + +import utils from './../utils.js'; +import buildURL from '../helpers/buildURL.js'; +import InterceptorManager from './InterceptorManager.js'; +import dispatchRequest from './dispatchRequest.js'; +import mergeConfig from './mergeConfig.js'; +import buildFullPath from './buildFullPath.js'; +import validator from '../helpers/validator.js'; +import AxiosHeaders from './AxiosHeaders.js'; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + + Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); + + // slice off the Error: ... line + const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : ''; + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) { + err.stack += '\n' + stack + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + + throw err; + } + } + + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const {transitional, paramsSerializer, headers} = config; + + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + if (paramsSerializer != null) { + if (utils.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer + } + } else { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + } + + validator.assertOptions(config, { + baseUrl: validators.spelling('baseURL'), + withXsrfToken: validators.spelling('withXSRFToken') + }, true); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + headers && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); + + config.headers = AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + i = 0; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url, + data + })); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +export default Axios; diff --git a/.output/server/node_modules/axios/lib/core/AxiosError.js b/.output/server/node_modules/axios/lib/core/AxiosError.js new file mode 100644 index 0000000..73da248 --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/AxiosError.js @@ -0,0 +1,103 @@ +'use strict'; + +import utils from '../utils.js'; + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ +function AxiosError(message, code, config, request, response) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status ? response.status : null; + } +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils.toJSONObject(this.config), + code: this.code, + status: this.status + }; + } +}); + +const prototype = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +export default AxiosError; diff --git a/.output/server/node_modules/axios/lib/core/AxiosHeaders.js b/.output/server/node_modules/axios/lib/core/AxiosHeaders.js new file mode 100644 index 0000000..7b576e9 --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/AxiosHeaders.js @@ -0,0 +1,302 @@ +'use strict'; + +import utils from '../utils.js'; +import parseHeaders from '../helpers/parseHeaders.js'; + +const $internals = Symbol('internals'); + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils.isArray(value) ? value.map(normalizeValue) : String(value); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils.isString(value)) return; + + if (utils.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header.trim() + .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach(methodName => { + Object.defineProperty(obj, methodName + accessorName, { + value: function(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils.findKey(self, lHeader); + + if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite) + } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils.isHeaders(header)) { + for (const [key, value] of header.entries()) { + setHeader(value, key, rewrite); + } + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils.forEach(this, (value, header) => { + const key = utils.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = this[$internals] = (this[$internals] = { + accessors: {} + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +// reserved names hotfix +utils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + } + } +}); + +utils.freezeMethods(AxiosHeaders); + +export default AxiosHeaders; diff --git a/.output/server/node_modules/axios/lib/core/InterceptorManager.js b/.output/server/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 0000000..6657a9d --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,71 @@ +'use strict'; + +import utils from './../utils.js'; + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +export default InterceptorManager; diff --git a/.output/server/node_modules/axios/lib/core/buildFullPath.js b/.output/server/node_modules/axios/lib/core/buildFullPath.js new file mode 100644 index 0000000..b60927c --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,21 @@ +'use strict'; + +import isAbsoluteURL from '../helpers/isAbsoluteURL.js'; +import combineURLs from '../helpers/combineURLs.js'; + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +export default function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} diff --git a/.output/server/node_modules/axios/lib/core/dispatchRequest.js b/.output/server/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 0000000..9e306aa --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,81 @@ +'use strict'; + +import transformData from './transformData.js'; +import isCancel from '../cancel/isCancel.js'; +import defaults from '../defaults/index.js'; +import CanceledError from '../cancel/CanceledError.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; +import adapters from "../adapters/adapters.js"; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +export default function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call( + config, + config.transformRequest + ); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} diff --git a/.output/server/node_modules/axios/lib/core/mergeConfig.js b/.output/server/node_modules/axios/lib/core/mergeConfig.js new file mode 100644 index 0000000..c510073 --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,106 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosHeaders from "./AxiosHeaders.js"; + +const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing; + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +export default function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, prop, caseless) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge.call({caseless}, target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, prop , caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, prop , caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, prop , caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true) + }; + + utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} diff --git a/.output/server/node_modules/axios/lib/core/settle.js b/.output/server/node_modules/axios/lib/core/settle.js new file mode 100644 index 0000000..ac905c4 --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/settle.js @@ -0,0 +1,27 @@ +'use strict'; + +import AxiosError from './AxiosError.js'; + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +export default function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} diff --git a/.output/server/node_modules/axios/lib/core/transformData.js b/.output/server/node_modules/axios/lib/core/transformData.js new file mode 100644 index 0000000..eeb5a8a --- /dev/null +++ b/.output/server/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,28 @@ +'use strict'; + +import utils from './../utils.js'; +import defaults from '../defaults/index.js'; +import AxiosHeaders from '../core/AxiosHeaders.js'; + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +export default function transformData(fns, response) { + const config = this || defaults; + const context = response || config; + const headers = AxiosHeaders.from(context.headers); + let data = context.data; + + utils.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} diff --git a/.output/server/node_modules/axios/lib/defaults/index.js b/.output/server/node_modules/axios/lib/defaults/index.js new file mode 100644 index 0000000..e543fea --- /dev/null +++ b/.output/server/node_modules/axios/lib/defaults/index.js @@ -0,0 +1,161 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosError from '../core/AxiosError.js'; +import transitionalDefaults from './transitional.js'; +import toFormData from '../helpers/toFormData.js'; +import toURLEncodedForm from '../helpers/toURLEncodedForm.js'; +import platform from '../platform/index.js'; +import formDataToJSON from '../helpers/formDataToJSON.js'; + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + + transitional: transitionalDefaults, + + adapter: ['xhr', 'http', 'fetch'], + + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils.isObject(data); + + if (isObjectPayload && utils.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils.isFormData(data); + + if (isFormData) { + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) || + utils.isReadableStream(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (utils.isResponse(data) || utils.isReadableStream(data)) { + return data; + } + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*', + 'Content-Type': undefined + } + } +}; + +utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { + defaults.headers[method] = {}; +}); + +export default defaults; diff --git a/.output/server/node_modules/axios/lib/defaults/transitional.js b/.output/server/node_modules/axios/lib/defaults/transitional.js new file mode 100644 index 0000000..f891331 --- /dev/null +++ b/.output/server/node_modules/axios/lib/defaults/transitional.js @@ -0,0 +1,7 @@ +'use strict'; + +export default { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; diff --git a/.output/server/node_modules/axios/lib/env/data.js b/.output/server/node_modules/axios/lib/env/data.js new file mode 100644 index 0000000..28eb8d1 --- /dev/null +++ b/.output/server/node_modules/axios/lib/env/data.js @@ -0,0 +1 @@ +export const VERSION = "1.7.9"; \ No newline at end of file diff --git a/.output/server/node_modules/axios/lib/helpers/AxiosTransformStream.js b/.output/server/node_modules/axios/lib/helpers/AxiosTransformStream.js new file mode 100644 index 0000000..4140071 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/AxiosTransformStream.js @@ -0,0 +1,143 @@ +'use strict'; + +import stream from 'stream'; +import utils from '../utils.js'; + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends stream.Transform{ + constructor(options) { + options = utils.toFlatObject(options, { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15 + }, null, (prop, source) => { + return !utils.isUndefined(source[prop]); + }); + + super({ + readableHighWaterMark: options.chunkSize + }); + + const internals = this[kInternals] = { + timeWindow: options.timeWindow, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = (maxRate / divider); + const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; + + const pushChunk = (_chunk, _callback) => { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + internals.isCaptured && this.emit('progress', internals.bytesSeen); + + if (this.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + } + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk(_chunk, chunkRemainder ? () => { + process.nextTick(_callback, null, chunkRemainder); + } : _callback); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } +} + +export default AxiosTransformStream; diff --git a/.output/server/node_modules/axios/lib/helpers/AxiosURLSearchParams.js b/.output/server/node_modules/axios/lib/helpers/AxiosURLSearchParams.js new file mode 100644 index 0000000..b9aa9f0 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/AxiosURLSearchParams.js @@ -0,0 +1,58 @@ +'use strict'; + +import toFormData from './toFormData.js'; + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object<string, any>} params - The parameters to be converted to a FormData object. + * @param {Object<string, any>} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder ? function(value) { + return encoder.call(this, value, encode); + } : encode; + + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); +}; + +export default AxiosURLSearchParams; diff --git a/.output/server/node_modules/axios/lib/helpers/HttpStatusCode.js b/.output/server/node_modules/axios/lib/helpers/HttpStatusCode.js new file mode 100644 index 0000000..b3e7adc --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/HttpStatusCode.js @@ -0,0 +1,71 @@ +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +export default HttpStatusCode; diff --git a/.output/server/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js b/.output/server/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js new file mode 100644 index 0000000..d1791f0 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js @@ -0,0 +1,28 @@ +"use strict"; + +import stream from "stream"; + +class ZlibHeaderTransformStream extends stream.Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } +} + +export default ZlibHeaderTransformStream; diff --git a/.output/server/node_modules/axios/lib/helpers/bind.js b/.output/server/node_modules/axios/lib/helpers/bind.js new file mode 100644 index 0000000..b3aa83b --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,7 @@ +'use strict'; + +export default function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} diff --git a/.output/server/node_modules/axios/lib/helpers/buildURL.js b/.output/server/node_modules/axios/lib/helpers/buildURL.js new file mode 100644 index 0000000..5c5eb57 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,69 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js'; + +/** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded counterparts + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +export default function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + if (utils.isFunction(options)) { + options = { + serialize: options + }; + } + + const serializeFn = options && options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils.isURLSearchParams(params) ? + params.toString() : + new AxiosURLSearchParams(params, options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf("#"); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} diff --git a/.output/server/node_modules/axios/lib/helpers/callbackify.js b/.output/server/node_modules/axios/lib/helpers/callbackify.js new file mode 100644 index 0000000..4603bad --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/callbackify.js @@ -0,0 +1,16 @@ +import utils from "../utils.js"; + +const callbackify = (fn, reducer) => { + return utils.isAsyncFn(fn) ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then((value) => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } : fn; +} + +export default callbackify; diff --git a/.output/server/node_modules/axios/lib/helpers/combineURLs.js b/.output/server/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 0000000..9f04f02 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +export default function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} diff --git a/.output/server/node_modules/axios/lib/helpers/composeSignals.js b/.output/server/node_modules/axios/lib/helpers/composeSignals.js new file mode 100644 index 0000000..84087c8 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/composeSignals.js @@ -0,0 +1,48 @@ +import CanceledError from "../cancel/CanceledError.js"; +import AxiosError from "../core/AxiosError.js"; +import utils from '../utils.js'; + +const composeSignals = (signals, timeout) => { + const {length} = (signals = signals ? signals.filter(Boolean) : []); + + if (timeout || length) { + let controller = new AbortController(); + + let aborted; + + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); + } + } + + let timer = timeout && setTimeout(() => { + timer = null; + onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT)) + }, timeout) + + const unsubscribe = () => { + if (signals) { + timer && clearTimeout(timer); + timer = null; + signals.forEach(signal => { + signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); + }); + signals = null; + } + } + + signals.forEach((signal) => signal.addEventListener('abort', onabort)); + + const {signal} = controller; + + signal.unsubscribe = () => utils.asap(unsubscribe); + + return signal; + } +} + +export default composeSignals; diff --git a/.output/server/node_modules/axios/lib/helpers/cookies.js b/.output/server/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 0000000..d039ac4 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,42 @@ +import utils from './../utils.js'; +import platform from '../platform/index.js'; + +export default platform.hasStandardBrowserEnv ? + + // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure) { + const cookie = [name + '=' + encodeURIComponent(value)]; + + utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); + + utils.isString(path) && cookie.push('path=' + path); + + utils.isString(domain) && cookie.push('domain=' + domain); + + secure === true && cookie.push('secure'); + + document.cookie = cookie.join('; '); + }, + + read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000); + } + } + + : + + // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {} + }; + diff --git a/.output/server/node_modules/axios/lib/helpers/formDataToJSON.js b/.output/server/node_modules/axios/lib/helpers/formDataToJSON.js new file mode 100644 index 0000000..906ce60 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/formDataToJSON.js @@ -0,0 +1,95 @@ +'use strict'; + +import utils from '../utils.js'; + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array<any>} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object<string, any> | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + + if (name === '__proto__') return true; + + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils.isArray(target) ? target.length : name; + + if (isLast) { + if (utils.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { + const obj = {}; + + utils.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +export default formDataToJSON; diff --git a/.output/server/node_modules/axios/lib/helpers/formDataToStream.js b/.output/server/node_modules/axios/lib/helpers/formDataToStream.js new file mode 100644 index 0000000..77ffab1 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/formDataToStream.js @@ -0,0 +1,111 @@ +import util from 'util'; +import {Readable} from 'stream'; +import utils from "../utils.js"; +import readBlob from "./readBlob.js"; + +const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder(); + +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; + +class FormDataPart { + constructor(name, value) { + const {escapeName} = this.constructor; + const isStringValue = utils.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}` + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode(){ + yield this.headers; + + const {value} = this; + + if(utils.isTypedArray(value)) { + yield value; + } else { + yield* readBlob(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace(/[\r\n"]/g, (match) => ({ + '\r' : '%0D', + '\n' : '%0A', + '"' : '%22', + }[match])); + } +} + +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET) + } = options || {}; + + if(!utils.isFormData(form)) { + throw TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}` + } + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return Readable.from((async function *() { + for(const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })()); +}; + +export default formDataToStream; diff --git a/.output/server/node_modules/axios/lib/helpers/fromDataURI.js b/.output/server/node_modules/axios/lib/helpers/fromDataURI.js new file mode 100644 index 0000000..eb71d3f --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/fromDataURI.js @@ -0,0 +1,53 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import parseProtocol from './parseProtocol.js'; +import platform from '../platform/index.js'; + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +export default function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], {type: mime}); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} diff --git a/.output/server/node_modules/axios/lib/helpers/isAbsoluteURL.js b/.output/server/node_modules/axios/lib/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..4747a45 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,15 @@ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +export default function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} diff --git a/.output/server/node_modules/axios/lib/helpers/isAxiosError.js b/.output/server/node_modules/axios/lib/helpers/isAxiosError.js new file mode 100644 index 0000000..da6cd63 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/isAxiosError.js @@ -0,0 +1,14 @@ +'use strict'; + +import utils from './../utils.js'; + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +export default function isAxiosError(payload) { + return utils.isObject(payload) && (payload.isAxiosError === true); +} diff --git a/.output/server/node_modules/axios/lib/helpers/isURLSameOrigin.js b/.output/server/node_modules/axios/lib/helpers/isURLSameOrigin.js new file mode 100644 index 0000000..6a92aa1 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,14 @@ +import platform from '../platform/index.js'; + +export default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => { + url = new URL(url, platform.origin); + + return ( + origin.protocol === url.protocol && + origin.host === url.host && + (isMSIE || origin.port === url.port) + ); +})( + new URL(platform.origin), + platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) +) : () => true; diff --git a/.output/server/node_modules/axios/lib/helpers/parseHeaders.js b/.output/server/node_modules/axios/lib/helpers/parseHeaders.js new file mode 100644 index 0000000..50af948 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,55 @@ +'use strict'; + +import utils from './../utils.js'; + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils.toObjectSet([ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +export default rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; diff --git a/.output/server/node_modules/axios/lib/helpers/parseProtocol.js b/.output/server/node_modules/axios/lib/helpers/parseProtocol.js new file mode 100644 index 0000000..586ec96 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/parseProtocol.js @@ -0,0 +1,6 @@ +'use strict'; + +export default function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} diff --git a/.output/server/node_modules/axios/lib/helpers/progressEventReducer.js b/.output/server/node_modules/axios/lib/helpers/progressEventReducer.js new file mode 100644 index 0000000..ff601cc --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/progressEventReducer.js @@ -0,0 +1,44 @@ +import speedometer from "./speedometer.js"; +import throttle from "./throttle.js"; +import utils from "../utils.js"; + +export const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return throttle(e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true + }; + + listener(data); + }, freq); +} + +export const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + + return [(loaded) => throttled[0]({ + lengthComputable, + total, + loaded + }), throttled[1]]; +} + +export const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args)); diff --git a/.output/server/node_modules/axios/lib/helpers/readBlob.js b/.output/server/node_modules/axios/lib/helpers/readBlob.js new file mode 100644 index 0000000..6de748e --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/readBlob.js @@ -0,0 +1,15 @@ +const {asyncIterator} = Symbol; + +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream() + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer() + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +} + +export default readBlob; diff --git a/.output/server/node_modules/axios/lib/helpers/resolveConfig.js b/.output/server/node_modules/axios/lib/helpers/resolveConfig.js new file mode 100644 index 0000000..5e84c5c --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/resolveConfig.js @@ -0,0 +1,57 @@ +import platform from "../platform/index.js"; +import utils from "../utils.js"; +import isURLSameOrigin from "./isURLSameOrigin.js"; +import cookies from "./cookies.js"; +import buildFullPath from "../core/buildFullPath.js"; +import mergeConfig from "../core/mergeConfig.js"; +import AxiosHeaders from "../core/AxiosHeaders.js"; +import buildURL from "./buildURL.js"; + +export default (config) => { + const newConfig = mergeConfig({}, config); + + let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig; + + newConfig.headers = headers = AxiosHeaders.from(headers); + + newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer); + + // HTTP basic authentication + if (auth) { + headers.set('Authorization', 'Basic ' + + btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : '')) + ); + } + + let contentType; + + if (utils.isFormData(data)) { + if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { + headers.setContentType(undefined); // Let the browser set it + } else if ((contentType = headers.getContentType()) !== false) { + // fix semicolon duplication issue for ReactNative FormData implementation + const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : []; + headers.setContentType([type || 'multipart/form-data', ...tokens].join('; ')); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (platform.hasStandardBrowserEnv) { + withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig)); + + if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) { + // Add xsrf header + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + + return newConfig; +} + diff --git a/.output/server/node_modules/axios/lib/helpers/speedometer.js b/.output/server/node_modules/axios/lib/helpers/speedometer.js new file mode 100644 index 0000000..3b3c666 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/speedometer.js @@ -0,0 +1,55 @@ +'use strict'; + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; +} + +export default speedometer; diff --git a/.output/server/node_modules/axios/lib/helpers/spread.js b/.output/server/node_modules/axios/lib/helpers/spread.js new file mode 100644 index 0000000..13479cb --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +export default function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} diff --git a/.output/server/node_modules/axios/lib/helpers/throttle.js b/.output/server/node_modules/axios/lib/helpers/throttle.js new file mode 100644 index 0000000..e256272 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/throttle.js @@ -0,0 +1,44 @@ +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn.apply(null, args); + } + + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if ( passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs) + }, threshold - passed); + } + } + } + + const flush = () => lastArgs && invoke(lastArgs); + + return [throttled, flush]; +} + +export default throttle; diff --git a/.output/server/node_modules/axios/lib/helpers/toFormData.js b/.output/server/node_modules/axios/lib/helpers/toFormData.js new file mode 100644 index 0000000..a41e966 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/toFormData.js @@ -0,0 +1,219 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosError from '../core/AxiosError.js'; +// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored +import PlatformFormData from '../platform/node/classes/FormData.js'; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils.isPlainObject(thing) || utils.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array<any>} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object<any, any>} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object<string, any>} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (PlatformFormData || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils.isUndefined(source[option]); + }); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + const useBlob = _Blob && utils.isSpecCompliantForm(formData); + + if (!utils.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils.isDate(value)) { + return value.toISOString(); + } + + if (!useBlob && utils.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array<String|Number>} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (value && !path && typeof value === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils.isArray(value) && isFlatArray(value)) || + ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)) + )) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + + function build(value, path) { + if (utils.isUndefined(value)) return; + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils.forEach(value, function each(el, key) { + const result = !(utils.isUndefined(el) || el === null) && visitor.call( + formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers + ); + + if (result === true) { + build(el, path ? path.concat(key) : [key]); + } + }); + + stack.pop(); + } + + if (!utils.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +export default toFormData; diff --git a/.output/server/node_modules/axios/lib/helpers/toURLEncodedForm.js b/.output/server/node_modules/axios/lib/helpers/toURLEncodedForm.js new file mode 100644 index 0000000..988a38a --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/toURLEncodedForm.js @@ -0,0 +1,18 @@ +'use strict'; + +import utils from '../utils.js'; +import toFormData from './toFormData.js'; +import platform from '../platform/index.js'; + +export default function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (platform.isNode && utils.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); +} diff --git a/.output/server/node_modules/axios/lib/helpers/trackStream.js b/.output/server/node_modules/axios/lib/helpers/trackStream.js new file mode 100644 index 0000000..95d6008 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/trackStream.js @@ -0,0 +1,87 @@ + +export const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + + if (!chunkSize || len < chunkSize) { + yield chunk; + return; + } + + let pos = 0; + let end; + + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +} + +export const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +} + +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + + const reader = stream.getReader(); + try { + for (;;) { + const {done, value} = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +} + +export const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + + let bytes = 0; + let done; + let _onFinish = (e) => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + } + + return new ReadableStream({ + async pull(controller) { + try { + const {done, value} = await iterator.next(); + + if (done) { + _onFinish(); + controller.close(); + return; + } + + let len = value.byteLength; + if (onProgress) { + let loadedBytes = bytes += len; + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + } + }, { + highWaterMark: 2 + }) +} diff --git a/.output/server/node_modules/axios/lib/helpers/validator.js b/.output/server/node_modules/axios/lib/helpers/validator.js new file mode 100644 index 0000000..1270568 --- /dev/null +++ b/.output/server/node_modules/axios/lib/helpers/validator.js @@ -0,0 +1,99 @@ +'use strict'; + +import {VERSION} from '../env/data.js'; +import AxiosError from '../core/AxiosError.js'; + +const validators = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +validators.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + } +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +export default { + assertOptions, + validators +}; diff --git a/.output/server/node_modules/axios/lib/platform/common/utils.js b/.output/server/node_modules/axios/lib/platform/common/utils.js new file mode 100644 index 0000000..52a3186 --- /dev/null +++ b/.output/server/node_modules/axios/lib/platform/common/utils.js @@ -0,0 +1,51 @@ +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +const _navigator = typeof navigator === 'object' && navigator || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = hasBrowserEnv && + (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +const origin = hasBrowserEnv && window.location.href || 'http://localhost'; + +export { + hasBrowserEnv, + hasStandardBrowserWebWorkerEnv, + hasStandardBrowserEnv, + _navigator as navigator, + origin +} diff --git a/.output/server/node_modules/axios/lib/platform/index.js b/.output/server/node_modules/axios/lib/platform/index.js new file mode 100644 index 0000000..860ba21 --- /dev/null +++ b/.output/server/node_modules/axios/lib/platform/index.js @@ -0,0 +1,7 @@ +import platform from './node/index.js'; +import * as utils from './common/utils.js'; + +export default { + ...utils, + ...platform +} diff --git a/.output/server/node_modules/axios/lib/platform/node/classes/FormData.js b/.output/server/node_modules/axios/lib/platform/node/classes/FormData.js new file mode 100644 index 0000000..b07f947 --- /dev/null +++ b/.output/server/node_modules/axios/lib/platform/node/classes/FormData.js @@ -0,0 +1,3 @@ +import FormData from 'form-data'; + +export default FormData; diff --git a/.output/server/node_modules/axios/lib/platform/node/classes/URLSearchParams.js b/.output/server/node_modules/axios/lib/platform/node/classes/URLSearchParams.js new file mode 100644 index 0000000..fba5842 --- /dev/null +++ b/.output/server/node_modules/axios/lib/platform/node/classes/URLSearchParams.js @@ -0,0 +1,4 @@ +'use strict'; + +import url from 'url'; +export default url.URLSearchParams; diff --git a/.output/server/node_modules/axios/lib/platform/node/index.js b/.output/server/node_modules/axios/lib/platform/node/index.js new file mode 100644 index 0000000..aef514a --- /dev/null +++ b/.output/server/node_modules/axios/lib/platform/node/index.js @@ -0,0 +1,12 @@ +import URLSearchParams from './classes/URLSearchParams.js' +import FormData from './classes/FormData.js' + +export default { + isNode: true, + classes: { + URLSearchParams, + FormData, + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] +}; diff --git a/.output/server/node_modules/axios/lib/utils.js b/.output/server/node_modules/axios/lib/utils.js new file mode 100644 index 0000000..32679da --- /dev/null +++ b/.output/server/node_modules/axios/lib/utils.js @@ -0,0 +1,760 @@ +'use strict'; + +import bind from './helpers/bind.js'; + +// utils is a library of generic helper functions non-specific to axios + +const {toString} = Object.prototype; +const {getPrototypeOf} = Object; + +const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type +} + +const typeOfTest = type => thing => typeof thing === type; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const {isArray} = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = thing => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +} + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +const isFormData = (thing) => { + let kind; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || ( + isFunction(thing.append) && ( + (kind = kindOf(thing)) === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') + ) + ) + ) +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => str.trim ? + str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Boolean} [allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, {allOwnKeys = false} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +function findKey(obj, key) { + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== "undefined") return globalThis; + return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global) +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + } + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {allOwnKeys}); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); +} + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +} + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +} + + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +} + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object<any, any>} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[Symbol.iterator]; + + const iterator = generator.call(obj); + + let result; + + while ((result = iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +} + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array<boolean>} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +} + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, + function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + } + ); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +} + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error('Can not rewrite read-only method \'' + name + '\''); + }; + } + }); +} + +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach(value => { + obj[value] = true; + }); + } + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +} + +const noop = () => {} + +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite(value = +value) ? value : defaultValue; +} + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz' + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT +} + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const {length} = alphabet; + while (size--) { + str += alphabet[Math.random() * length|0] + } + + return str; +} + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + } + + return visit(obj, 0); +} + +const isAsyncFn = kindOfTest('AsyncFunction'); + +const isThenable = (thing) => + thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + + return postMessageSupported ? ((token, callbacks) => { + _global.addEventListener("message", ({source, data}) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, false); + + return (cb) => { + callbacks.push(cb); + _global.postMessage(token, "*"); + } + })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb); +})( + typeof setImmediate === 'function', + isFunction(_global.postMessage) +); + +const asap = typeof queueMicrotask !== 'undefined' ? + queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate); + +// ********************* + +export default { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap +}; diff --git a/.output/server/node_modules/axios/package.json b/.output/server/node_modules/axios/package.json new file mode 100644 index 0000000..85962aa --- /dev/null +++ b/.output/server/node_modules/axios/package.json @@ -0,0 +1,222 @@ +{ + "name": "axios", + "version": "1.7.9", + "description": "Promise based HTTP client for the browser and node.js", + "main": "index.js", + "exports": { + ".": { + "types": { + "require": "./index.d.cts", + "default": "./index.d.ts" + }, + "browser": { + "require": "./dist/browser/axios.cjs", + "default": "./index.js" + }, + "default": { + "require": "./dist/node/axios.cjs", + "default": "./index.js" + } + }, + "./lib/adapters/http.js": "./lib/adapters/http.js", + "./lib/adapters/xhr.js": "./lib/adapters/xhr.js", + "./unsafe/*": "./lib/*", + "./unsafe/core/settle.js": "./lib/core/settle.js", + "./unsafe/core/buildFullPath.js": "./lib/core/buildFullPath.js", + "./unsafe/helpers/isAbsoluteURL.js": "./lib/helpers/isAbsoluteURL.js", + "./unsafe/helpers/buildURL.js": "./lib/helpers/buildURL.js", + "./unsafe/helpers/combineURLs.js": "./lib/helpers/combineURLs.js", + "./unsafe/adapters/http.js": "./lib/adapters/http.js", + "./unsafe/adapters/xhr.js": "./lib/adapters/xhr.js", + "./unsafe/utils.js": "./lib/utils.js", + "./package.json": "./package.json" + }, + "type": "module", + "types": "index.d.ts", + "scripts": { + "test": "npm run test:eslint && npm run test:mocha && npm run test:karma && npm run test:dtslint && npm run test:exports", + "test:eslint": "node bin/ssl_hotfix.js eslint lib/**/*.js", + "test:dtslint": "dtslint --localTs node_modules/typescript/lib", + "test:mocha": "node bin/ssl_hotfix.js mocha test/unit/**/*.js --timeout 30000 --exit", + "test:exports": "node bin/ssl_hotfix.js mocha test/module/test.js --timeout 30000 --exit", + "test:karma": "node bin/ssl_hotfix.js cross-env LISTEN_ADDR=:: karma start karma.conf.cjs --single-run", + "test:karma:firefox": "node bin/ssl_hotfix.js cross-env LISTEN_ADDR=:: Browsers=Firefox karma start karma.conf.cjs --single-run", + "test:karma:server": "node bin/ssl_hotfix.js cross-env karma start karma.conf.cjs", + "test:build:version": "node ./bin/check-build-version.js", + "start": "node ./sandbox/server.js", + "preversion": "gulp version", + "version": "npm run build && git add dist && git add package.json", + "prepublishOnly": "npm run test:build:version", + "postpublish": "git push && git push --tags", + "build": "gulp clear && cross-env NODE_ENV=production rollup -c -m", + "examples": "node ./examples/server.js", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "fix": "eslint --fix lib/**/*.js", + "prepare": "husky install && npm run prepare:hooks", + "prepare:hooks": "npx husky set .husky/commit-msg \"npx commitlint --edit $1\"", + "release:dry": "release-it --dry-run --no-npm", + "release:info": "release-it --release-version", + "release:beta:no-npm": "release-it --preRelease=beta --no-npm", + "release:beta": "release-it --preRelease=beta", + "release:no-npm": "release-it --no-npm", + "release:changelog:fix": "node ./bin/injectContributorsList.js && git add CHANGELOG.md", + "release": "release-it" + }, + "repository": { + "type": "git", + "url": "https://github.com/axios/axios.git" + }, + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "author": "Matt Zabriskie", + "license": "MIT", + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "homepage": "https://axios-http.com", + "devDependencies": { + "@babel/core": "^7.23.9", + "@babel/preset-env": "^7.23.9", + "@commitlint/cli": "^17.8.1", + "@commitlint/config-conventional": "^17.8.1", + "@release-it/conventional-changelog": "^5.1.1", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^15.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-multi-entry": "^4.1.0", + "@rollup/plugin-node-resolve": "^9.0.0", + "abortcontroller-polyfill": "^1.7.5", + "auto-changelog": "^2.4.0", + "body-parser": "^1.20.2", + "chalk": "^5.3.0", + "coveralls": "^3.1.1", + "cross-env": "^7.0.3", + "dev-null": "^0.1.1", + "dtslint": "^4.2.1", + "es6-promise": "^4.2.8", + "eslint": "^8.56.0", + "express": "^4.18.2", + "formdata-node": "^5.0.1", + "formidable": "^2.1.2", + "fs-extra": "^10.1.0", + "get-stream": "^3.0.0", + "gulp": "^4.0.2", + "gzip-size": "^7.0.0", + "handlebars": "^4.7.8", + "husky": "^8.0.3", + "istanbul-instrumenter-loader": "^3.0.1", + "jasmine-core": "^2.99.1", + "karma": "^6.3.17", + "karma-chrome-launcher": "^3.2.0", + "karma-firefox-launcher": "^2.1.2", + "karma-jasmine": "^1.1.2", + "karma-jasmine-ajax": "^0.1.13", + "karma-rollup-preprocessor": "^7.0.8", + "karma-safari-launcher": "^1.0.0", + "karma-sauce-launcher": "^4.3.6", + "karma-sinon": "^1.0.5", + "karma-sourcemap-loader": "^0.3.8", + "memoizee": "^0.4.15", + "minimist": "^1.2.8", + "mocha": "^10.3.0", + "multer": "^1.4.4", + "pretty-bytes": "^6.1.1", + "release-it": "^15.11.0", + "rollup": "^2.79.1", + "rollup-plugin-auto-external": "^2.0.0", + "rollup-plugin-bundle-size": "^1.0.3", + "rollup-plugin-terser": "^7.0.2", + "sinon": "^4.5.0", + "stream-throttle": "^0.1.3", + "string-replace-async": "^3.0.2", + "terser-webpack-plugin": "^4.2.3", + "typescript": "^4.9.5", + "@rollup/plugin-alias": "^5.1.0" + }, + "browser": { + "./lib/adapters/http.js": "./lib/helpers/null.js", + "./lib/platform/node/index.js": "./lib/platform/browser/index.js", + "./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js" + }, + "jsdelivr": "dist/axios.min.js", + "unpkg": "dist/axios.min.js", + "typings": "./index.d.ts", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ], + "contributors": [ + "Matt Zabriskie (https://github.com/mzabriskie)", + "Nick Uraltsev (https://github.com/nickuraltsev)", + "Dmitriy Mozgovoy (https://github.com/DigitalBrainJS)", + "Jay (https://github.com/jasonsaayman)", + "Emily Morehouse (https://github.com/emilyemorehouse)", + "Justin Beckwith (https://github.com/JustinBeckwith)", + "Rubén Norte (https://github.com/rubennorte)", + "Martti Laine (https://github.com/codeclown)", + "Xianming Zhong (https://github.com/chinesedfan)", + "Remco Haszing (https://github.com/remcohaszing)", + "Rikki Gibson (https://github.com/RikkiGibson)", + "Yasu Flores (https://github.com/yasuf)", + "Ben Carp (https://github.com/carpben)" + ], + "sideEffects": false, + "release-it": { + "git": { + "commitMessage": "chore(release): v${version}", + "push": true, + "commit": true, + "tag": true, + "requireCommits": false, + "requireCleanWorkingDir": false + }, + "github": { + "release": true, + "draft": true + }, + "npm": { + "publish": false, + "ignoreVersion": false + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": "angular", + "infile": "CHANGELOG.md", + "header": "# Changelog" + } + }, + "hooks": { + "before:init": "npm test", + "after:bump": "gulp version --bump ${version} && npm run build && npm run test:build:version && git add ./dist && git add ./package-lock.json", + "before:release": "npm run release:changelog:fix", + "after:release": "echo Successfully released ${name} v${version} to ${repo.repository}." + } + }, + "commitlint": { + "rules": { + "header-max-length": [ + 2, + "always", + 130 + ] + }, + "extends": [ + "@commitlint/config-conventional" + ] + }, + "__npminstall_done": true, + "_from": "axios@1.7.9", + "_resolved": "https://registry.npmmirror.com/axios/-/axios-1.7.9.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/call-bind-apply-helpers/actualApply.js b/.output/server/node_modules/call-bind-apply-helpers/actualApply.js new file mode 100644 index 0000000..ffa5135 --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/actualApply.js @@ -0,0 +1,10 @@ +'use strict'; + +var bind = require('function-bind'); + +var $apply = require('./functionApply'); +var $call = require('./functionCall'); +var $reflectApply = require('./reflectApply'); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); diff --git a/.output/server/node_modules/call-bind-apply-helpers/functionApply.js b/.output/server/node_modules/call-bind-apply-helpers/functionApply.js new file mode 100644 index 0000000..c71df9c --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/functionApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; diff --git a/.output/server/node_modules/call-bind-apply-helpers/functionCall.js b/.output/server/node_modules/call-bind-apply-helpers/functionCall.js new file mode 100644 index 0000000..7a8d873 --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/functionCall.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; diff --git a/.output/server/node_modules/call-bind-apply-helpers/index.js b/.output/server/node_modules/call-bind-apply-helpers/index.js new file mode 100644 index 0000000..2f6dab4 --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/index.js @@ -0,0 +1,15 @@ +'use strict'; + +var bind = require('function-bind'); +var $TypeError = require('es-errors/type'); + +var $call = require('./functionCall'); +var $actualApply = require('./actualApply'); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; diff --git a/.output/server/node_modules/call-bind-apply-helpers/package.json b/.output/server/node_modules/call-bind-apply-helpers/package.json new file mode 100644 index 0000000..13b1103 --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/package.json @@ -0,0 +1,88 @@ +{ + "name": "call-bind-apply-helpers", + "version": "1.0.2", + "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", + "main": "index.js", + "exports": { + ".": "./index.js", + "./actualApply": "./actualApply.js", + "./applyBind": "./applyBind.js", + "./functionApply": "./functionApply.js", + "./functionCall": "./functionCall.js", + "./reflectApply": "./reflectApply.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" + }, + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" + }, + "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.3", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/for-each": "^0.3.3", + "@types/function-bind": "^1.1.10", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.5", + "has-strict-mode": "^1.1.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.4", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "call-bind-apply-helpers@1.0.2", + "_resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/call-bind-apply-helpers/reflectApply.js b/.output/server/node_modules/call-bind-apply-helpers/reflectApply.js new file mode 100644 index 0000000..3d03caa --- /dev/null +++ b/.output/server/node_modules/call-bind-apply-helpers/reflectApply.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/.output/server/node_modules/call-bound/index.js b/.output/server/node_modules/call-bound/index.js new file mode 100644 index 0000000..3bb4012 --- /dev/null +++ b/.output/server/node_modules/call-bound/index.js @@ -0,0 +1,18 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBindBasic = require('call-bind-apply-helpers'); + +/** @type {(thisArg: string, searchString: string, position?: number) => number} */ +var $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]); + +/** @type {import('.')} */ +module.exports = function callBoundIntrinsic(name, allowMissing) { + // eslint-disable-next-line no-extra-parens + var intrinsic = /** @type {Parameters<typeof callBindBasic>[0][0]} */ (GetIntrinsic(name, !!allowMissing)); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBindBasic([intrinsic]); + } + return intrinsic; +}; diff --git a/.output/server/node_modules/call-bound/package.json b/.output/server/node_modules/call-bound/package.json new file mode 100644 index 0000000..1e5e297 --- /dev/null +++ b/.output/server/node_modules/call-bound/package.json @@ -0,0 +1,102 @@ +{ + "name": "call-bound", + "version": "1.0.3", + "description": "Robust call-bound JavaScript intrinsics, using `call-bind` and `get-intrinsic`.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/call-bound.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "callbind", + "callbound", + "call", + "bind", + "bound", + "call-bind", + "call-bound", + "function", + "es-abstract" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/call-bound/issues" + }, + "homepage": "https://github.com/ljharb/call-bound#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-strict-mode": "^1.0.1", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "call-bound@1.0.3", + "_resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.3.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/combined-stream/lib/combined_stream.js b/.output/server/node_modules/combined-stream/lib/combined_stream.js new file mode 100644 index 0000000..125f097 --- /dev/null +++ b/.output/server/node_modules/combined-stream/lib/combined_stream.js @@ -0,0 +1,208 @@ +var util = require('util'); +var Stream = require('stream').Stream; +var DelayedStream = require('delayed-stream'); + +module.exports = CombinedStream; +function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + + this._released = false; + this._streams = []; + this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; +} +util.inherits(CombinedStream, Stream); + +CombinedStream.create = function(options) { + var combinedStream = new this(); + + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + + return combinedStream; +}; + +CombinedStream.isStreamLike = function(stream) { + return (typeof stream !== 'function') + && (typeof stream !== 'string') + && (typeof stream !== 'boolean') + && (typeof stream !== 'number') + && (!Buffer.isBuffer(stream)); +}; + +CombinedStream.prototype.append = function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + + if (isStreamLike) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams, + }); + stream.on('data', this._checkDataSize.bind(this)); + stream = newStream; + } + + this._handleErrors(stream); + + if (this.pauseStreams) { + stream.pause(); + } + } + + this._streams.push(stream); + return this; +}; + +CombinedStream.prototype.pipe = function(dest, options) { + Stream.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; +}; + +CombinedStream.prototype._getNext = function() { + this._currentStream = null; + + if (this._insideLoop) { + this._pendingNext = true; + return; // defer call + } + + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } +}; + +CombinedStream.prototype._realGetNext = function() { + var stream = this._streams.shift(); + + + if (typeof stream == 'undefined') { + this.end(); + return; + } + + if (typeof stream !== 'function') { + this._pipeNext(stream); + return; + } + + var getStream = stream; + getStream(function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('data', this._checkDataSize.bind(this)); + this._handleErrors(stream); + } + + this._pipeNext(stream); + }.bind(this)); +}; + +CombinedStream.prototype._pipeNext = function(stream) { + this._currentStream = stream; + + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('end', this._getNext.bind(this)); + stream.pipe(this, {end: false}); + return; + } + + var value = stream; + this.write(value); + this._getNext(); +}; + +CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on('error', function(err) { + self._emitError(err); + }); +}; + +CombinedStream.prototype.write = function(data) { + this.emit('data', data); +}; + +CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); + this.emit('pause'); +}; + +CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); + this.emit('resume'); +}; + +CombinedStream.prototype.end = function() { + this._reset(); + this.emit('end'); +}; + +CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit('close'); +}; + +CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; +}; + +CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this._emitError(new Error(message)); +}; + +CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + + var self = this; + this._streams.forEach(function(stream) { + if (!stream.dataSize) { + return; + } + + self.dataSize += stream.dataSize; + }); + + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } +}; + +CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit('error', err); +}; diff --git a/.output/server/node_modules/combined-stream/package.json b/.output/server/node_modules/combined-stream/package.json new file mode 100644 index 0000000..1debcea --- /dev/null +++ b/.output/server/node_modules/combined-stream/package.json @@ -0,0 +1,28 @@ +{ + "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)", + "name": "combined-stream", + "description": "A stream that emits multiple other streams one after another.", + "version": "1.0.8", + "homepage": "https://github.com/felixge/node-combined-stream", + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-combined-stream.git" + }, + "main": "./lib/combined_stream", + "scripts": { + "test": "node test/run.js" + }, + "engines": { + "node": ">= 0.8" + }, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "devDependencies": { + "far": "~0.0.7" + }, + "license": "MIT", + "__npminstall_done": true, + "_from": "combined-stream@1.0.8", + "_resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/dayjs.min.js b/.output/server/node_modules/dayjs/dayjs.min.js new file mode 100644 index 0000000..61916d8 --- /dev/null +++ b/.output/server/node_modules/dayjs/dayjs.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/package.json b/.output/server/node_modules/dayjs/package.json new file mode 100644 index 0000000..6e68704 --- /dev/null +++ b/.output/server/node_modules/dayjs/package.json @@ -0,0 +1,87 @@ +{ + "name": "dayjs", + "version": "1.11.13", + "description": "2KB immutable date time library alternative to Moment.js with the same modern API ", + "main": "dayjs.min.js", + "types": "index.d.ts", + "scripts": { + "test": "TZ=Pacific/Auckland npm run test-tz && TZ=Europe/London npm run test-tz && TZ=America/Whitehorse npm run test-tz && npm run test-tz && jest", + "test-tz": "date && jest test/timezone.test --coverage=false", + "lint": "./node_modules/.bin/eslint src/* test/* build/*", + "prettier": "prettier --write \"docs/**/*.md\"", + "babel": "cross-env BABEL_ENV=build babel src --out-dir esm --copy-files && node build/esm", + "build": "cross-env BABEL_ENV=build node build && npm run size", + "sauce": "npx karma start karma.sauce.conf.js", + "test:sauce": "npm run sauce -- 0 && npm run sauce -- 1 && npm run sauce -- 2 && npm run sauce -- 3", + "size": "size-limit && gzip-size dayjs.min.js" + }, + "pre-commit": [ + "lint" + ], + "size-limit": [ + { + "limit": "2.99 KB", + "path": "dayjs.min.js" + } + ], + "jest": { + "roots": [ + "test" + ], + "testRegex": "test/(.*?/)?.*test.js$", + "testURL": "http://localhost", + "coverageDirectory": "./coverage/", + "collectCoverage": true, + "collectCoverageFrom": [ + "src/**/*" + ] + }, + "keywords": [ + "dayjs", + "date", + "time", + "immutable", + "moment" + ], + "author": "iamkun", + "license": "MIT", + "homepage": "https://day.js.org", + "repository": { + "type": "git", + "url": "https://github.com/iamkun/dayjs.git" + }, + "devDependencies": { + "@babel/cli": "^7.0.0-beta.44", + "@babel/core": "^7.0.0-beta.44", + "@babel/node": "^7.0.0-beta.44", + "@babel/preset-env": "^7.0.0-beta.44", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^22.4.3", + "babel-plugin-external-helpers": "^6.22.0", + "cross-env": "^5.1.6", + "eslint": "^4.19.1", + "eslint-config-airbnb-base": "^12.1.0", + "eslint-plugin-import": "^2.10.0", + "eslint-plugin-jest": "^21.15.0", + "gzip-size-cli": "^2.1.0", + "jasmine-core": "^2.99.1", + "jest": "^22.4.3", + "karma": "^2.0.2", + "karma-jasmine": "^1.1.2", + "karma-sauce-launcher": "^1.1.0", + "mockdate": "^2.0.2", + "moment": "2.29.2", + "moment-timezone": "0.5.31", + "ncp": "^2.0.0", + "pre-commit": "^1.2.2", + "prettier": "^1.16.1", + "rollup": "^2.45.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-terser": "^7.0.2", + "size-limit": "^0.18.0", + "typescript": "^2.8.3" + }, + "__npminstall_done": true, + "_from": "dayjs@1.11.13", + "_resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/advancedFormat.js b/.output/server/node_modules/dayjs/plugin/advancedFormat.js new file mode 100644 index 0000000..88d62e7 --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/advancedFormat.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){"use strict";return function(e,t){var r=t.prototype,n=r.format;r.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return n.bind(this)(e);var s=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return s.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return s.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return s.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return n.bind(this)(a)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/customParseFormat.js b/.output/server/node_modules/dayjs/plugin/customParseFormat.js new file mode 100644 index 0000000..10a806e --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/customParseFormat.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){"use strict";var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,f("seconds")],ss:[i,f("seconds")],m:[i,f("minutes")],mm:[i,f("minutes")],H:[i,f("hours")],h:[i,f("hours")],HH:[i,f("hours")],hh:[i,f("hours")],D:[i,f("day")],DD:[r,f("day")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],w:[i,f("week")],ww:[r,f("week")],M:[i,f("month")],MM:[r,f("month")],MMM:[o,function(e){var t=u("months"),n=(u("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,f("year")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\d{4}/,f("year")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\[|\]$/g,"")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if("string"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,"")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if("string"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date("")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date("")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(""))}else i.call(this,e)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/dayOfYear.js b/.output/server/node_modules/dayjs/plugin/dayOfYear.js new file mode 100644 index 0000000..4a57000 --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/dayOfYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_dayOfYear=t()}(this,(function(){"use strict";return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf("day")-n(this).startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"day")}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/isSameOrAfter.js b/.output/server/node_modules/dayjs/plugin/isSameOrAfter.js new file mode 100644 index 0000000..76f8a33 --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/isSameOrAfter.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){"use strict";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/isSameOrBefore.js b/.output/server/node_modules/dayjs/plugin/isSameOrBefore.js new file mode 100644 index 0000000..57a767e --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/isSameOrBefore.js @@ -0,0 +1 @@ +!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){"use strict";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/localeData.js b/.output/server/node_modules/dayjs/plugin/localeData.js new file mode 100644 index 0000000..55e01ee --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/localeData.js @@ -0,0 +1 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){"use strict";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/weekOfYear.js b/.output/server/node_modules/dayjs/plugin/weekOfYear.js new file mode 100644 index 0000000..7e234c4 --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/weekOfYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){"use strict";var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}})); \ No newline at end of file diff --git a/.output/server/node_modules/dayjs/plugin/weekYear.js b/.output/server/node_modules/dayjs/plugin/weekYear.js new file mode 100644 index 0000000..d90d137 --- /dev/null +++ b/.output/server/node_modules/dayjs/plugin/weekYear.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekYear=t()}(this,(function(){"use strict";return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return 1===t&&11===e?n+1:0===e&&t>=52?n-1:n}}})); \ No newline at end of file diff --git a/.output/server/node_modules/debug/package.json b/.output/server/node_modules/debug/package.json new file mode 100644 index 0000000..aed8a88 --- /dev/null +++ b/.output/server/node_modules/debug/package.json @@ -0,0 +1,68 @@ +{ + "name": "debug", + "version": "4.4.0", + "repository": { + "type": "git", + "url": "git://github.com/debug-js/debug.git" + }, + "description": "Lightweight debugging utility for Node.js and the browser", + "keywords": [ + "debug", + "log", + "debugger" + ], + "files": [ + "src", + "LICENSE", + "README.md" + ], + "author": "Josh Junon (https://github.com/qix-)", + "contributors": [ + "TJ Holowaychuk <tj@vision-media.ca>", + "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)", + "Andrew Rhyne <rhyneandrew@gmail.com>" + ], + "license": "MIT", + "scripts": { + "lint": "xo", + "test": "npm run test:node && npm run test:browser && npm run lint", + "test:node": "istanbul cover _mocha -- test.js test.node.js", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls" + }, + "dependencies": { + "ms": "^2.1.3" + }, + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "istanbul": "^0.4.5", + "karma": "^3.1.4", + "karma-browserify": "^6.0.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "mocha": "^5.2.0", + "mocha-lcov-reporter": "^1.2.0", + "sinon": "^14.0.0", + "xo": "^0.23.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "main": "./src/index.js", + "browser": "./src/browser.js", + "engines": { + "node": ">=6.0" + }, + "xo": { + "rules": { + "import/extensions": "off" + } + }, + "__npminstall_done": true, + "_from": "debug@4.4.0", + "_resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/debug/src/browser.js b/.output/server/node_modules/debug/src/browser.js new file mode 100644 index 0000000..df8e179 --- /dev/null +++ b/.output/server/node_modules/debug/src/browser.js @@ -0,0 +1,272 @@ +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + let m; + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + // eslint-disable-next-line no-return-assign + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; diff --git a/.output/server/node_modules/debug/src/common.js b/.output/server/node_modules/debug/src/common.js new file mode 100644 index 0000000..528c7ec --- /dev/null +++ b/.output/server/node_modules/debug/src/common.js @@ -0,0 +1,292 @@ + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require('ms'); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + const split = (typeof namespaces === 'string' ? namespaces : '') + .trim() + .replace(' ', ',') + .split(',') + .filter(Boolean); + + for (const ns of split) { + if (ns[0] === '-') { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + + /** + * Checks if the given string matches a namespace template, honoring + * asterisks as wildcards. + * + * @param {String} search + * @param {String} template + * @return {Boolean} + */ + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { + // Match character or proceed with wildcard + if (template[templateIndex] === '*') { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; // Skip the '*' + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition + // Backtrack to the last '*' and try to match more characters + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; // No match + } + } + + // Handle trailing '*' in template + while (templateIndex < template.length && template[templateIndex] === '*') { + templateIndex++; + } + + return templateIndex === template.length; + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; diff --git a/.output/server/node_modules/debug/src/index.js b/.output/server/node_modules/debug/src/index.js new file mode 100644 index 0000000..bf4c57f --- /dev/null +++ b/.output/server/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = require('./browser.js'); +} else { + module.exports = require('./node.js'); +} diff --git a/.output/server/node_modules/debug/src/node.js b/.output/server/node_modules/debug/src/node.js new file mode 100644 index 0000000..715560a --- /dev/null +++ b/.output/server/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * Module dependencies. + */ + +const tty = require('tty'); +const util = require('util'); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = require('supports-color'); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = require('./common')(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; diff --git a/.output/server/node_modules/delayed-stream/lib/delayed_stream.js b/.output/server/node_modules/delayed-stream/lib/delayed_stream.js new file mode 100644 index 0000000..b38fc85 --- /dev/null +++ b/.output/server/node_modules/delayed-stream/lib/delayed_stream.js @@ -0,0 +1,107 @@ +var Stream = require('stream').Stream; +var util = require('util'); + +module.exports = DelayedStream; +function DelayedStream() { + this.source = null; + this.dataSize = 0; + this.maxDataSize = 1024 * 1024; + this.pauseStream = true; + + this._maxDataSizeExceeded = false; + this._released = false; + this._bufferedEvents = []; +} +util.inherits(DelayedStream, Stream); + +DelayedStream.create = function(source, options) { + var delayedStream = new this(); + + options = options || {}; + for (var option in options) { + delayedStream[option] = options[option]; + } + + delayedStream.source = source; + + var realEmit = source.emit; + source.emit = function() { + delayedStream._handleEmit(arguments); + return realEmit.apply(source, arguments); + }; + + source.on('error', function() {}); + if (delayedStream.pauseStream) { + source.pause(); + } + + return delayedStream; +}; + +Object.defineProperty(DelayedStream.prototype, 'readable', { + configurable: true, + enumerable: true, + get: function() { + return this.source.readable; + } +}); + +DelayedStream.prototype.setEncoding = function() { + return this.source.setEncoding.apply(this.source, arguments); +}; + +DelayedStream.prototype.resume = function() { + if (!this._released) { + this.release(); + } + + this.source.resume(); +}; + +DelayedStream.prototype.pause = function() { + this.source.pause(); +}; + +DelayedStream.prototype.release = function() { + this._released = true; + + this._bufferedEvents.forEach(function(args) { + this.emit.apply(this, args); + }.bind(this)); + this._bufferedEvents = []; +}; + +DelayedStream.prototype.pipe = function() { + var r = Stream.prototype.pipe.apply(this, arguments); + this.resume(); + return r; +}; + +DelayedStream.prototype._handleEmit = function(args) { + if (this._released) { + this.emit.apply(this, args); + return; + } + + if (args[0] === 'data') { + this.dataSize += args[1].length; + this._checkIfMaxDataSizeExceeded(); + } + + this._bufferedEvents.push(args); +}; + +DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { + if (this._maxDataSizeExceeded) { + return; + } + + if (this.dataSize <= this.maxDataSize) { + return; + } + + this._maxDataSizeExceeded = true; + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' + this.emit('error', new Error(message)); +}; diff --git a/.output/server/node_modules/delayed-stream/package.json b/.output/server/node_modules/delayed-stream/package.json new file mode 100644 index 0000000..b444657 --- /dev/null +++ b/.output/server/node_modules/delayed-stream/package.json @@ -0,0 +1,30 @@ +{ + "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)", + "contributors": [ + "Mike Atkins <apeherder@gmail.com>" + ], + "name": "delayed-stream", + "description": "Buffers events from a stream until you are ready to handle them.", + "license": "MIT", + "version": "1.0.0", + "homepage": "https://github.com/felixge/node-delayed-stream", + "repository": { + "type": "git", + "url": "git://github.com/felixge/node-delayed-stream.git" + }, + "main": "./lib/delayed_stream", + "engines": { + "node": ">=0.4.0" + }, + "scripts": { + "test": "make test" + }, + "dependencies": {}, + "devDependencies": { + "fake": "0.2.0", + "far": "0.0.1" + }, + "__npminstall_done": true, + "_from": "delayed-stream@1.0.0", + "_resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/devalue/index.js b/.output/server/node_modules/devalue/index.js new file mode 100644 index 0000000..2bdd761 --- /dev/null +++ b/.output/server/node_modules/devalue/index.js @@ -0,0 +1,3 @@ +export { uneval } from './src/uneval.js'; +export { parse, unflatten } from './src/parse.js'; +export { stringify } from './src/stringify.js'; diff --git a/.output/server/node_modules/devalue/package.json b/.output/server/node_modules/devalue/package.json new file mode 100644 index 0000000..5fa3ff6 --- /dev/null +++ b/.output/server/node_modules/devalue/package.json @@ -0,0 +1,37 @@ +{ + "name": "devalue", + "description": "Gets the job done when JSON.stringify can't", + "version": "5.1.1", + "repository": "Rich-Harris/devalue", + "sideEffects": false, + "exports": { + ".": { + "types": "./types/index.d.ts", + "import": "./index.js", + "default": "./index.js" + } + }, + "files": [ + "index.js", + "src", + "types" + ], + "types": "./types/index.d.ts", + "devDependencies": { + "dts-buddy": "^0.0.4", + "publint": "^0.1.7", + "typescript": "^3.1.3", + "uvu": "^0.5.6" + }, + "scripts": { + "build": "dts-buddy", + "test": "uvu test", + "prepublishOnly": "npm test && npm run build && publint" + }, + "license": "MIT", + "type": "module", + "packageManager": "pnpm@8.5.1", + "__npminstall_done": true, + "_from": "devalue@5.1.1", + "_resolved": "https://registry.npmmirror.com/devalue/-/devalue-5.1.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/devalue/src/base64.js b/.output/server/node_modules/devalue/src/base64.js new file mode 100644 index 0000000..23bd6b6 --- /dev/null +++ b/.output/server/node_modules/devalue/src/base64.js @@ -0,0 +1,110 @@ +/** + * Base64 Encodes an arraybuffer + * @param {ArrayBuffer} arraybuffer + * @returns {string} + */ +export function encode64(arraybuffer) { + const dv = new DataView(arraybuffer); + let binaryString = ""; + + for (let i = 0; i < arraybuffer.byteLength; i++) { + binaryString += String.fromCharCode(dv.getUint8(i)); + } + + return binaryToAscii(binaryString); +} + +/** + * Decodes a base64 string into an arraybuffer + * @param {string} string + * @returns {ArrayBuffer} + */ +export function decode64(string) { + const binaryString = asciiToBinary(string); + const arraybuffer = new ArrayBuffer(binaryString.length); + const dv = new DataView(arraybuffer); + + for (let i = 0; i < arraybuffer.byteLength; i++) { + dv.setUint8(i, binaryString.charCodeAt(i)); + } + + return arraybuffer; +} + +const KEY_STRING = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +/** + * Substitute for atob since it's deprecated in node. + * Does not do any input validation. + * + * @see https://github.com/jsdom/abab/blob/master/lib/atob.js + * + * @param {string} data + * @returns {string} + */ +function asciiToBinary(data) { + if (data.length % 4 === 0) { + data = data.replace(/==?$/, ""); + } + + let output = ""; + let buffer = 0; + let accumulatedBits = 0; + + for (let i = 0; i < data.length; i++) { + buffer <<= 6; + buffer |= KEY_STRING.indexOf(data[i]); + accumulatedBits += 6; + if (accumulatedBits === 24) { + output += String.fromCharCode((buffer & 0xff0000) >> 16); + output += String.fromCharCode((buffer & 0xff00) >> 8); + output += String.fromCharCode(buffer & 0xff); + buffer = accumulatedBits = 0; + } + } + if (accumulatedBits === 12) { + buffer >>= 4; + output += String.fromCharCode(buffer); + } else if (accumulatedBits === 18) { + buffer >>= 2; + output += String.fromCharCode((buffer & 0xff00) >> 8); + output += String.fromCharCode(buffer & 0xff); + } + return output; +} + +/** + * Substitute for btoa since it's deprecated in node. + * Does not do any input validation. + * + * @see https://github.com/jsdom/abab/blob/master/lib/btoa.js + * + * @param {string} str + * @returns {string} + */ +function binaryToAscii(str) { + let out = ""; + for (let i = 0; i < str.length; i += 3) { + /** @type {[number, number, number, number]} */ + const groupsOfSix = [undefined, undefined, undefined, undefined]; + groupsOfSix[0] = str.charCodeAt(i) >> 2; + groupsOfSix[1] = (str.charCodeAt(i) & 0x03) << 4; + if (str.length > i + 1) { + groupsOfSix[1] |= str.charCodeAt(i + 1) >> 4; + groupsOfSix[2] = (str.charCodeAt(i + 1) & 0x0f) << 2; + } + if (str.length > i + 2) { + groupsOfSix[2] |= str.charCodeAt(i + 2) >> 6; + groupsOfSix[3] = str.charCodeAt(i + 2) & 0x3f; + } + for (let j = 0; j < groupsOfSix.length; j++) { + if (typeof groupsOfSix[j] === "undefined") { + out += "="; + } else { + out += KEY_STRING[groupsOfSix[j]]; + } + } + } + return out; +} diff --git a/.output/server/node_modules/devalue/src/constants.js b/.output/server/node_modules/devalue/src/constants.js new file mode 100644 index 0000000..ea9fda2 --- /dev/null +++ b/.output/server/node_modules/devalue/src/constants.js @@ -0,0 +1,6 @@ +export const UNDEFINED = -1; +export const HOLE = -2; +export const NAN = -3; +export const POSITIVE_INFINITY = -4; +export const NEGATIVE_INFINITY = -5; +export const NEGATIVE_ZERO = -6; diff --git a/.output/server/node_modules/devalue/src/parse.js b/.output/server/node_modules/devalue/src/parse.js new file mode 100644 index 0000000..f0fe2c1 --- /dev/null +++ b/.output/server/node_modules/devalue/src/parse.js @@ -0,0 +1,160 @@ +import { decode64 } from './base64.js'; +import { + HOLE, + NAN, + NEGATIVE_INFINITY, + NEGATIVE_ZERO, + POSITIVE_INFINITY, + UNDEFINED +} from './constants.js'; + +/** + * Revive a value serialized with `devalue.stringify` + * @param {string} serialized + * @param {Record<string, (value: any) => any>} [revivers] + */ +export function parse(serialized, revivers) { + return unflatten(JSON.parse(serialized), revivers); +} + +/** + * Revive a value flattened with `devalue.stringify` + * @param {number | any[]} parsed + * @param {Record<string, (value: any) => any>} [revivers] + */ +export function unflatten(parsed, revivers) { + if (typeof parsed === 'number') return hydrate(parsed, true); + + if (!Array.isArray(parsed) || parsed.length === 0) { + throw new Error('Invalid input'); + } + + const values = /** @type {any[]} */ (parsed); + + const hydrated = Array(values.length); + + /** + * @param {number} index + * @returns {any} + */ + function hydrate(index, standalone = false) { + if (index === UNDEFINED) return undefined; + if (index === NAN) return NaN; + if (index === POSITIVE_INFINITY) return Infinity; + if (index === NEGATIVE_INFINITY) return -Infinity; + if (index === NEGATIVE_ZERO) return -0; + + if (standalone) throw new Error(`Invalid input`); + + if (index in hydrated) return hydrated[index]; + + const value = values[index]; + + if (!value || typeof value !== 'object') { + hydrated[index] = value; + } else if (Array.isArray(value)) { + if (typeof value[0] === 'string') { + const type = value[0]; + + const reviver = revivers?.[type]; + if (reviver) { + return (hydrated[index] = reviver(hydrate(value[1]))); + } + + switch (type) { + case 'Date': + hydrated[index] = new Date(value[1]); + break; + + case 'Set': + const set = new Set(); + hydrated[index] = set; + for (let i = 1; i < value.length; i += 1) { + set.add(hydrate(value[i])); + } + break; + + case 'Map': + const map = new Map(); + hydrated[index] = map; + for (let i = 1; i < value.length; i += 2) { + map.set(hydrate(value[i]), hydrate(value[i + 1])); + } + break; + + case 'RegExp': + hydrated[index] = new RegExp(value[1], value[2]); + break; + + case 'Object': + hydrated[index] = Object(value[1]); + break; + + case 'BigInt': + hydrated[index] = BigInt(value[1]); + break; + + case 'null': + const obj = Object.create(null); + hydrated[index] = obj; + for (let i = 1; i < value.length; i += 2) { + obj[value[i]] = hydrate(value[i + 1]); + } + break; + + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": { + const TypedArrayConstructor = globalThis[type]; + const base64 = value[1]; + const arraybuffer = decode64(base64); + const typedArray = new TypedArrayConstructor(arraybuffer); + hydrated[index] = typedArray; + break; + } + + case "ArrayBuffer": { + const base64 = value[1]; + const arraybuffer = decode64(base64); + hydrated[index] = arraybuffer; + break; + } + + default: + throw new Error(`Unknown type ${type}`); + } + } else { + const array = new Array(value.length); + hydrated[index] = array; + + for (let i = 0; i < value.length; i += 1) { + const n = value[i]; + if (n === HOLE) continue; + + array[i] = hydrate(n); + } + } + } else { + /** @type {Record<string, any>} */ + const object = {}; + hydrated[index] = object; + + for (const key in value) { + const n = value[key]; + object[key] = hydrate(n); + } + } + + return hydrated[index]; + } + + return hydrate(0); +} diff --git a/.output/server/node_modules/devalue/src/stringify.js b/.output/server/node_modules/devalue/src/stringify.js new file mode 100644 index 0000000..df291fd --- /dev/null +++ b/.output/server/node_modules/devalue/src/stringify.js @@ -0,0 +1,232 @@ +import { + DevalueError, + enumerable_symbols, + get_type, + is_plain_object, + is_primitive, + stringify_key, + stringify_string +} from './utils.js'; +import { + HOLE, + NAN, + NEGATIVE_INFINITY, + NEGATIVE_ZERO, + POSITIVE_INFINITY, + UNDEFINED +} from './constants.js'; +import { encode64 } from './base64.js'; + +/** + * Turn a value into a JSON string that can be parsed with `devalue.parse` + * @param {any} value + * @param {Record<string, (value: any) => any>} [reducers] + */ +export function stringify(value, reducers) { + /** @type {any[]} */ + const stringified = []; + + /** @type {Map<any, number>} */ + const indexes = new Map(); + + /** @type {Array<{ key: string, fn: (value: any) => any }>} */ + const custom = []; + if (reducers) { + for (const key of Object.getOwnPropertyNames(reducers)) { + custom.push({ key, fn: reducers[key] }); + } + } + + /** @type {string[]} */ + const keys = []; + + let p = 0; + + /** @param {any} thing */ + function flatten(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (indexes.has(thing)) return indexes.get(thing); + + if (thing === undefined) return UNDEFINED; + if (Number.isNaN(thing)) return NAN; + if (thing === Infinity) return POSITIVE_INFINITY; + if (thing === -Infinity) return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO; + + const index = p++; + indexes.set(thing, index); + + for (const { key, fn } of custom) { + const value = fn(thing); + if (value) { + stringified[index] = `["${key}",${flatten(value)}]`; + return index; + } + } + + let str = ''; + + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + str = `["Object",${stringify_primitive(thing)}]`; + break; + + case 'BigInt': + str = `["BigInt",${thing}]`; + break; + + case 'Date': + const valid = !isNaN(thing.getDate()); + str = `["Date","${valid ? thing.toISOString() : ''}"]`; + break; + + case 'RegExp': + const { source, flags } = thing; + str = flags + ? `["RegExp",${stringify_string(source)},"${flags}"]` + : `["RegExp",${stringify_string(source)}]`; + break; + + case 'Array': + str = '['; + + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) str += ','; + + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + + str += ']'; + + break; + + case 'Set': + str = '["Set"'; + + for (const value of thing) { + str += `,${flatten(value)}`; + } + + str += ']'; + break; + + case 'Map': + str = '["Map"'; + + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})` + ); + str += `,${flatten(key)},${flatten(value)}`; + keys.pop(); + } + + str += ']'; + break; + + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": { + /** @type {import("./types.js").TypedArray} */ + const typedArray = thing; + const base64 = encode64(typedArray.buffer); + str = '["' + type + '","' + base64 + '"]'; + break; + } + + case "ArrayBuffer": { + /** @type {ArrayBuffer} */ + const arraybuffer = thing; + const base64 = encode64(arraybuffer); + + str = `["ArrayBuffer","${base64}"]`; + break; + } + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (enumerable_symbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(stringify_key(key)); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += ']'; + } else { + str = '{'; + let started = false; + for (const key in thing) { + if (started) str += ','; + started = true; + keys.push(stringify_key(key)); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += '}'; + } + } + } + + stringified[index] = str; + return index; + } + + const index = flatten(value); + + // special case — value is represented as a negative index + if (index < 0) return `${index}`; + + return `[${stringified.join(',')}]`; +} + +/** + * @param {any} thing + * @returns {string} + */ +function stringify_primitive(thing) { + const type = typeof thing; + if (type === 'string') return stringify_string(thing); + if (thing instanceof String) return stringify_string(thing.toString()); + if (thing === void 0) return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString(); + if (type === 'bigint') return `["BigInt","${thing}"]`; + return String(thing); +} diff --git a/.output/server/node_modules/devalue/src/uneval.js b/.output/server/node_modules/devalue/src/uneval.js new file mode 100644 index 0000000..ce3ef34 --- /dev/null +++ b/.output/server/node_modules/devalue/src/uneval.js @@ -0,0 +1,351 @@ +import { + DevalueError, + enumerable_symbols, + escaped, + get_type, + is_plain_object, + is_primitive, + stringify_key, + stringify_string +} from './utils.js'; + +const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$'; +const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g; +const reserved = + /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/; + +/** + * Turn a value into the JavaScript that creates an equivalent value + * @param {any} value + * @param {(value: any) => string | void} [replacer] + */ +export function uneval(value, replacer) { + const counts = new Map(); + + /** @type {string[]} */ + const keys = []; + + const custom = new Map(); + + /** @param {any} thing */ + function walk(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (!is_primitive(thing)) { + if (counts.has(thing)) { + counts.set(thing, counts.get(thing) + 1); + return; + } + + counts.set(thing, 1); + + if (replacer) { + const str = replacer(thing); + + if (typeof str === 'string') { + custom.set(thing, str); + return; + } + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'BigInt': + case 'String': + case 'Boolean': + case 'Date': + case 'RegExp': + return; + + case 'Array': + /** @type {any[]} */ (thing).forEach((value, i) => { + keys.push(`[${i}]`); + walk(value); + keys.pop(); + }); + break; + + case 'Set': + Array.from(thing).forEach(walk); + break; + + case 'Map': + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})` + ); + walk(value); + keys.pop(); + } + break; + + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": + return; + + case "ArrayBuffer": + return; + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (enumerable_symbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + for (const key in thing) { + keys.push(stringify_key(key)); + walk(thing[key]); + keys.pop(); + } + } + } + } + + walk(value); + + const names = new Map(); + + Array.from(counts) + .filter((entry) => entry[1] > 1) + .sort((a, b) => b[1] - a[1]) + .forEach((entry, i) => { + names.set(entry[0], get_name(i)); + }); + + /** + * @param {any} thing + * @returns {string} + */ + function stringify(thing) { + if (names.has(thing)) { + return names.get(thing); + } + + if (is_primitive(thing)) { + return stringify_primitive(thing); + } + + if (custom.has(thing)) { + return custom.get(thing); + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + return `Object(${stringify(thing.valueOf())})`; + + case 'RegExp': + return `new RegExp(${stringify_string(thing.source)}, "${ + thing.flags + }")`; + + case 'Date': + return `new Date(${thing.getTime()})`; + + case 'Array': + const members = /** @type {any[]} */ (thing).map((v, i) => + i in thing ? stringify(v) : '' + ); + const tail = thing.length === 0 || thing.length - 1 in thing ? '' : ','; + return `[${members.join(',')}${tail}]`; + + case 'Set': + case 'Map': + return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`; + + case "Int8Array": + case "Uint8Array": + case "Uint8ClampedArray": + case "Int16Array": + case "Uint16Array": + case "Int32Array": + case "Uint32Array": + case "Float32Array": + case "Float64Array": + case "BigInt64Array": + case "BigUint64Array": { + /** @type {import("./types.js").TypedArray} */ + const typedArray = thing; + return `new ${type}([${typedArray.toString()}])`; + } + + case "ArrayBuffer": { + const ui8 = new Uint8Array(thing); + return `new Uint8Array([${ui8.toString()}]).buffer`; + } + + default: + const obj = `{${Object.keys(thing) + .map((key) => `${safe_key(key)}:${stringify(thing[key])}`) + .join(',')}}`; + const proto = Object.getPrototypeOf(thing); + if (proto === null) { + return Object.keys(thing).length > 0 + ? `Object.assign(Object.create(null),${obj})` + : `Object.create(null)`; + } + + return obj; + } + } + + const str = stringify(value); + + if (names.size) { + /** @type {string[]} */ + const params = []; + + /** @type {string[]} */ + const statements = []; + + /** @type {string[]} */ + const values = []; + + names.forEach((name, thing) => { + params.push(name); + + if (custom.has(thing)) { + values.push(/** @type {string} */ (custom.get(thing))); + return; + } + + if (is_primitive(thing)) { + values.push(stringify_primitive(thing)); + return; + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + values.push(`Object(${stringify(thing.valueOf())})`); + break; + + case 'RegExp': + values.push(thing.toString()); + break; + + case 'Date': + values.push(`new Date(${thing.getTime()})`); + break; + + case 'Array': + values.push(`Array(${thing.length})`); + /** @type {any[]} */ (thing).forEach((v, i) => { + statements.push(`${name}[${i}]=${stringify(v)}`); + }); + break; + + case 'Set': + values.push(`new Set`); + statements.push( + `${name}.${Array.from(thing) + .map((v) => `add(${stringify(v)})`) + .join('.')}` + ); + break; + + case 'Map': + values.push(`new Map`); + statements.push( + `${name}.${Array.from(thing) + .map(([k, v]) => `set(${stringify(k)}, ${stringify(v)})`) + .join('.')}` + ); + break; + + default: + values.push( + Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}' + ); + Object.keys(thing).forEach((key) => { + statements.push( + `${name}${safe_prop(key)}=${stringify(thing[key])}` + ); + }); + } + }); + + statements.push(`return ${str}`); + + return `(function(${params.join(',')}){${statements.join( + ';' + )}}(${values.join(',')}))`; + } else { + return str; + } +} + +/** @param {number} num */ +function get_name(num) { + let name = ''; + + do { + name = chars[num % chars.length] + name; + num = ~~(num / chars.length) - 1; + } while (num >= 0); + + return reserved.test(name) ? `${name}0` : name; +} + +/** @param {string} c */ +function escape_unsafe_char(c) { + return escaped[c] || c; +} + +/** @param {string} str */ +function escape_unsafe_chars(str) { + return str.replace(unsafe_chars, escape_unsafe_char); +} + +/** @param {string} key */ +function safe_key(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? key + : escape_unsafe_chars(JSON.stringify(key)); +} + +/** @param {string} key */ +function safe_prop(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? `.${key}` + : `[${escape_unsafe_chars(JSON.stringify(key))}]`; +} + +/** @param {any} thing */ +function stringify_primitive(thing) { + if (typeof thing === 'string') return stringify_string(thing); + if (thing === void 0) return 'void 0'; + if (thing === 0 && 1 / thing < 0) return '-0'; + const str = String(thing); + if (typeof thing === 'number') return str.replace(/^(-)?0\./, '$1.'); + if (typeof thing === 'bigint') return thing + 'n'; + return str; +} diff --git a/.output/server/node_modules/devalue/src/utils.js b/.output/server/node_modules/devalue/src/utils.js new file mode 100644 index 0000000..9dc9e51 --- /dev/null +++ b/.output/server/node_modules/devalue/src/utils.js @@ -0,0 +1,113 @@ +/** @type {Record<string, string>} */ +export const escaped = { + '<': '\\u003C', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\u2028': '\\u2028', + '\u2029': '\\u2029' +}; + +export class DevalueError extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = 'DevalueError'; + this.path = keys.join(''); + } +} + +/** @param {any} thing */ +export function is_primitive(thing) { + return Object(thing) !== thing; +} + +const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype +) + .sort() + .join('\0'); + +/** @param {any} thing */ +export function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + + return ( + proto === Object.prototype || + proto === null || + Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names + ); +} + +/** @param {any} thing */ +export function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} + +/** @param {string} char */ +function get_escaped_char(char) { + switch (char) { + case '"': + return '\\"'; + case '<': + return '\\u003C'; + case '\\': + return '\\\\'; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\t': + return '\\t'; + case '\b': + return '\\b'; + case '\f': + return '\\f'; + case '\u2028': + return '\\u2028'; + case '\u2029': + return '\\u2029'; + default: + return char < ' ' + ? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}` + : ''; + } +} + +/** @param {string} str */ +export function stringify_string(str) { + let result = ''; + let last_pos = 0; + const len = str.length; + + for (let i = 0; i < len; i += 1) { + const char = str[i]; + const replacement = get_escaped_char(char); + if (replacement) { + result += str.slice(last_pos, i) + replacement; + last_pos = i + 1; + } + } + + return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; +} + +/** @param {Record<string | symbol, any>} object */ +export function enumerable_symbols(object) { + return Object.getOwnPropertySymbols(object).filter( + (symbol) => Object.getOwnPropertyDescriptor(object, symbol).enumerable + ); +} + +const is_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/; + +/** @param {string} key */ +export function stringify_key(key) { + return is_identifier.test(key) ? '.' + key : '[' + JSON.stringify(key) + ']'; +} diff --git a/.output/server/node_modules/dunder-proto/get.js b/.output/server/node_modules/dunder-proto/get.js new file mode 100644 index 0000000..45093df --- /dev/null +++ b/.output/server/node_modules/dunder-proto/get.js @@ -0,0 +1,30 @@ +'use strict'; + +var callBind = require('call-bind-apply-helpers'); +var gOPD = require('gopd'); + +var hasProtoAccessor; +try { + // eslint-disable-next-line no-extra-parens, no-proto + hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype; +} catch (e) { + if (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') { + throw e; + } +} + +// eslint-disable-next-line no-extra-parens +var desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__')); + +var $Object = Object; +var $getPrototypeOf = $Object.getPrototypeOf; + +/** @type {import('./get')} */ +module.exports = desc && typeof desc.get === 'function' + ? callBind([desc.get]) + : typeof $getPrototypeOf === 'function' + ? /** @type {import('./get')} */ function getDunder(value) { + // eslint-disable-next-line eqeqeq + return $getPrototypeOf(value == null ? value : $Object(value)); + } + : false; diff --git a/.output/server/node_modules/dunder-proto/package.json b/.output/server/node_modules/dunder-proto/package.json new file mode 100644 index 0000000..11d3ad9 --- /dev/null +++ b/.output/server/node_modules/dunder-proto/package.json @@ -0,0 +1,79 @@ +{ + "name": "dunder-proto", + "version": "1.0.1", + "description": "If available, the `Object.prototype.__proto__` accessor and mutator, call-bound", + "main": false, + "exports": { + "./get": "./get.js", + "./set": "./set.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/es-shims/dunder-proto.git" + }, + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/es-shims/dunder-proto/issues" + }, + "homepage": "https://github.com/es-shims/dunder-proto#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/tape": "^5.7.0", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "testling": { + "files": "test/index.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "dunder-proto@1.0.1", + "_resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/entities/lib/decode.js b/.output/server/node_modules/entities/lib/decode.js new file mode 100644 index 0000000..aa4a42c --- /dev/null +++ b/.output/server/node_modules/entities/lib/decode.js @@ -0,0 +1,536 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0; +var decode_data_html_js_1 = __importDefault(require("./generated/decode-data-html.js")); +exports.htmlDecodeTree = decode_data_html_js_1.default; +var decode_data_xml_js_1 = __importDefault(require("./generated/decode-data-xml.js")); +exports.xmlDecodeTree = decode_data_xml_js_1.default; +var decode_codepoint_js_1 = __importStar(require("./decode_codepoint.js")); +exports.decodeCodePoint = decode_codepoint_js_1.default; +var decode_codepoint_js_2 = require("./decode_codepoint.js"); +Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } }); +Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } }); +var CharCodes; +(function (CharCodes) { + CharCodes[CharCodes["NUM"] = 35] = "NUM"; + CharCodes[CharCodes["SEMI"] = 59] = "SEMI"; + CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS"; + CharCodes[CharCodes["ZERO"] = 48] = "ZERO"; + CharCodes[CharCodes["NINE"] = 57] = "NINE"; + CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A"; + CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F"; + CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X"; + CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A"; + CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F"; + CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z"; +})(CharCodes || (CharCodes = {})); +/** Bit that needs to be set to convert an upper case ASCII character to lower case */ +var TO_LOWER_BIT = 32; +var BinTrieFlags; +(function (BinTrieFlags) { + BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; + BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE"; +})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {})); +function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; +} +function isHexadecimalCharacter(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F)); +} +function isAsciiAlphaNumeric(code) { + return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) || + (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) || + isNumber(code)); +} +/** + * Checks if the given character is a valid end character for an entity in an attribute. + * + * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error. + * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state + */ +function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); +} +var EntityDecoderState; +(function (EntityDecoderState) { + EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity"; +})(EntityDecoderState || (EntityDecoderState = {})); +var DecodingMode; +(function (DecodingMode) { + /** Entities in text nodes that can end with any character. */ + DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy"; + /** Only allow entities terminated with a semicolon. */ + DecodingMode[DecodingMode["Strict"] = 1] = "Strict"; + /** Entities in attributes have limitations on ending characters. */ + DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute"; +})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {})); +/** + * Token decoder with support of writing partial entities. + */ +var EntityDecoder = /** @class */ (function () { + function EntityDecoder( + /** The tree used to decode entities. */ + decodeTree, + /** + * The function that is called when a codepoint is decoded. + * + * For multi-byte named entities, this will be called multiple times, + * with the second codepoint, and the same `consumed` value. + * + * @param codepoint The decoded codepoint. + * @param consumed The number of bytes consumed by the decoder. + */ + emitCodePoint, + /** An object that is used to produce errors. */ + errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + /** The current state of the decoder. */ + this.state = EntityDecoderState.EntityStart; + /** Characters that were consumed while parsing an entity. */ + this.consumed = 1; + /** + * The result of the entity. + * + * Either the result index of a numeric entity, or the codepoint of a + * numeric entity. + */ + this.result = 0; + /** The current index in the decode tree. */ + this.treeIndex = 0; + /** The number of characters that were consumed in excess. */ + this.excess = 1; + /** The mode in which the decoder is operating. */ + this.decodeMode = DecodingMode.Strict; + } + /** Resets the instance to make it reusable. */ + EntityDecoder.prototype.startEntity = function (decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + }; + /** + * Write an entity to the decoder. This can be called multiple times with partial entities. + * If the entity is incomplete, the decoder will return -1. + * + * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the + * entity is incomplete, and resume when the next string is written. + * + * @param string The string containing the entity (or a continuation of the entity). + * @param offset The offset at which the entity begins. Should be 0 if this is not the first call. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.write = function (str, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (str.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(str, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(str, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(str, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(str, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(str, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(str, offset); + } + } + }; + /** + * Switches between the numeric decimal and hexadecimal states. + * + * Equivalent to the `Numeric character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericStart = function (str, offset) { + if (offset >= str.length) { + return -1; + } + if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(str, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(str, offset); + }; + EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) { + if (start !== end) { + var digitCount = end - start; + this.result = + this.result * Math.pow(base, digitCount) + + parseInt(str.substr(start, digitCount), base); + this.consumed += digitCount; + } + }; + /** + * Parses a hexadecimal numeric entity. + * + * Equivalent to the `Hexademical character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericHex = function (str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + offset += 1; + } + else { + this.addToNumericResult(str, startIdx, offset, 16); + return this.emitNumericEntity(char, 3); + } + } + this.addToNumericResult(str, startIdx, offset, 16); + return -1; + }; + /** + * Parses a decimal numeric entity. + * + * Equivalent to the `Decimal character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNumericDecimal = function (str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char)) { + offset += 1; + } + else { + this.addToNumericResult(str, startIdx, offset, 10); + return this.emitNumericEntity(char, 2); + } + } + this.addToNumericResult(str, startIdx, offset, 10); + return -1; + }; + /** + * Validate and emit a numeric entity. + * + * Implements the logic from the `Hexademical character reference start + * state` and `Numeric character reference end state` in the HTML spec. + * + * @param lastCp The last code point of the entity. Used to see if the + * entity was terminated with a semicolon. + * @param expectedLength The minimum number of characters that should be + * consumed. Used to validate that at least one digit + * was consumed. + * @returns The number of characters that were consumed. + */ + EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) { + var _a; + // Ensure we consumed at least one digit. + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + // Figure out if this is a legit end of the entity + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } + else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + }; + /** + * Parses a named entity. + * + * Equivalent to the `Named character reference state` in the HTML spec. + * + * @param str The string containing the entity (or a continuation of the entity). + * @param offset The current offset. + * @returns The number of characters that were consumed, or -1 if the entity is incomplete. + */ + EntityDecoder.prototype.stateNamedEntity = function (str, offset) { + var decodeTree = this.decodeTree; + var current = decodeTree[this.treeIndex]; + // The mask is the number of bytes of the value, including the current byte. + var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + for (; offset < str.length; offset++, this.excess++) { + var char = str.charCodeAt(offset); + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || + // If we are parsing an attribute + (this.decodeMode === DecodingMode.Attribute && + // We shouldn't have consumed any characters after the entity, + (valueLength === 0 || + // And there should be no invalid characters. + isEntityInAttributeInvalidEnd(char))) + ? 0 + : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + // If the branch is a value, store it and continue + if (valueLength !== 0) { + // If the entity is terminated by a semicolon, we are done. + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it. + if (this.decodeMode !== DecodingMode.Strict) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + } + return -1; + }; + /** + * Emit a named entity that was not terminated with a semicolon. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () { + var _a; + var _b = this, result = _b.result, decodeTree = _b.decodeTree; + var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + }; + /** + * Emit a named entity. + * + * @param result The index of the entity in the decode tree. + * @param valueLength The number of bytes in the entity. + * @param consumed The number of characters consumed. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) { + var decodeTree = this.decodeTree; + this.emitCodePoint(valueLength === 1 + ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH + : decodeTree[result + 1], consumed); + if (valueLength === 3) { + // For multi-byte values, we need to emit the second byte. + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + }; + /** + * Signal to the parser that the end of the input was reached. + * + * Remaining data will be emitted and relevant errors will be produced. + * + * @returns The number of characters consumed. + */ + EntityDecoder.prototype.end = function () { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + // Emit a named entity if we have one. + return this.result !== 0 && + (this.decodeMode !== DecodingMode.Attribute || + this.result === this.treeIndex) + ? this.emitNotTerminatedNamedEntity() + : 0; + } + // Otherwise, emit a numeric entity if we have one. + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + // Return 0 if we have no entity. + return 0; + } + } + }; + return EntityDecoder; +}()); +exports.EntityDecoder = EntityDecoder; +/** + * Creates a function that decodes entities in a string. + * + * @param decodeTree The decode tree. + * @returns A function that decodes entities in a string. + */ +function getDecoder(decodeTree) { + var ret = ""; + var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); }); + return function decodeWithTrie(str, decodeMode) { + var lastIndex = 0; + var offset = 0; + while ((offset = str.indexOf("&", offset)) >= 0) { + ret += str.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + var len = decoder.write(str, + // Skip the "&" + offset + 1); + if (len < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + len; + // If `len` is 0, skip the current `&` and continue. + offset = len === 0 ? lastIndex + 1 : lastIndex; + } + var result = ret + str.slice(lastIndex); + // Make sure we don't keep a reference to the final string. + ret = ""; + return result; + }; +} +/** + * Determines the branch of the current node that is taken given the current + * character. This function is used to traverse the trie. + * + * @param decodeTree The trie. + * @param current The current node. + * @param nodeIdx The index right after the current node and its value. + * @param char The current character. + * @returns The index of the next node, or -1 if no branch is taken. + */ +function determineBranch(decodeTree, current, nodeIdx, char) { + var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + var jumpOffset = current & BinTrieFlags.JUMP_TABLE; + // Case 1: Single branch encoded in jump offset + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; + } + // Case 2: Multiple branches encoded in jump table + if (jumpOffset) { + var value = char - jumpOffset; + return value < 0 || value >= branchCount + ? -1 + : decodeTree[nodeIdx + value] - 1; + } + // Case 3: Multiple branches encoded in dictionary + // Binary search for the character. + var lo = nodeIdx; + var hi = lo + branchCount - 1; + while (lo <= hi) { + var mid = (lo + hi) >>> 1; + var midVal = decodeTree[mid]; + if (midVal < char) { + lo = mid + 1; + } + else if (midVal > char) { + hi = mid - 1; + } + else { + return decodeTree[mid + branchCount]; + } + } + return -1; +} +exports.determineBranch = determineBranch; +var htmlDecoder = getDecoder(decode_data_html_js_1.default); +var xmlDecoder = getDecoder(decode_data_xml_js_1.default); +/** + * Decodes an HTML string. + * + * @param str The string to decode. + * @param mode The decoding mode. + * @returns The decoded string. + */ +function decodeHTML(str, mode) { + if (mode === void 0) { mode = DecodingMode.Legacy; } + return htmlDecoder(str, mode); +} +exports.decodeHTML = decodeHTML; +/** + * Decodes an HTML string in an attribute. + * + * @param str The string to decode. + * @returns The decoded string. + */ +function decodeHTMLAttribute(str) { + return htmlDecoder(str, DecodingMode.Attribute); +} +exports.decodeHTMLAttribute = decodeHTMLAttribute; +/** + * Decodes an HTML string, requiring all entities to be terminated by a semicolon. + * + * @param str The string to decode. + * @returns The decoded string. + */ +function decodeHTMLStrict(str) { + return htmlDecoder(str, DecodingMode.Strict); +} +exports.decodeHTMLStrict = decodeHTMLStrict; +/** + * Decodes an XML string, requiring all entities to be terminated by a semicolon. + * + * @param str The string to decode. + * @returns The decoded string. + */ +function decodeXML(str) { + return xmlDecoder(str, DecodingMode.Strict); +} +exports.decodeXML = decodeXML; +//# sourceMappingURL=decode.js.map \ No newline at end of file diff --git a/.output/server/node_modules/entities/lib/decode_codepoint.js b/.output/server/node_modules/entities/lib/decode_codepoint.js new file mode 100644 index 0000000..1205346 --- /dev/null +++ b/.output/server/node_modules/entities/lib/decode_codepoint.js @@ -0,0 +1,76 @@ +"use strict"; +// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134 +var _a; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.replaceCodePoint = exports.fromCodePoint = void 0; +var decodeMap = new Map([ + [0, 65533], + // C1 Unicode control character reference replacements + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376], +]); +/** + * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. + */ +exports.fromCodePoint = +// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins +(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) { + var output = ""; + if (codePoint > 0xffff) { + codePoint -= 0x10000; + output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800); + codePoint = 0xdc00 | (codePoint & 0x3ff); + } + output += String.fromCharCode(codePoint); + return output; +}; +/** + * Replace the given code point with a replacement character if it is a + * surrogate or is outside the valid range. Otherwise return the code + * point unchanged. + */ +function replaceCodePoint(codePoint) { + var _a; + if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { + return 0xfffd; + } + return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; +} +exports.replaceCodePoint = replaceCodePoint; +/** + * Replace the code point if relevant, then convert it to a string. + * + * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. + * @param codePoint The code point to decode. + * @returns The decoded code point. + */ +function decodeCodePoint(codePoint) { + return (0, exports.fromCodePoint)(replaceCodePoint(codePoint)); +} +exports.default = decodeCodePoint; +//# sourceMappingURL=decode_codepoint.js.map \ No newline at end of file diff --git a/.output/server/node_modules/entities/lib/generated/decode-data-html.js b/.output/server/node_modules/entities/lib/generated/decode-data-html.js new file mode 100644 index 0000000..295cd9b --- /dev/null +++ b/.output/server/node_modules/entities/lib/generated/decode-data-html.js @@ -0,0 +1,9 @@ +"use strict"; +// Generated using scripts/write-decode-map.ts +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = new Uint16Array( +// prettier-ignore +"\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c" + .split("") + .map(function (c) { return c.charCodeAt(0); })); +//# sourceMappingURL=decode-data-html.js.map \ No newline at end of file diff --git a/.output/server/node_modules/entities/lib/generated/decode-data-xml.js b/.output/server/node_modules/entities/lib/generated/decode-data-xml.js new file mode 100644 index 0000000..8fee783 --- /dev/null +++ b/.output/server/node_modules/entities/lib/generated/decode-data-xml.js @@ -0,0 +1,9 @@ +"use strict"; +// Generated using scripts/write-decode-map.ts +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = new Uint16Array( +// prettier-ignore +"\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022" + .split("") + .map(function (c) { return c.charCodeAt(0); })); +//# sourceMappingURL=decode-data-xml.js.map \ No newline at end of file diff --git a/.output/server/node_modules/entities/package.json b/.output/server/node_modules/entities/package.json new file mode 100644 index 0000000..b0c9844 --- /dev/null +++ b/.output/server/node_modules/entities/package.json @@ -0,0 +1,93 @@ +{ + "name": "entities", + "version": "4.5.0", + "description": "Encode & decode XML and HTML entities with ease & speed", + "author": "Felix Boehm <me@feedic.com>", + "funding": "https://github.com/fb55/entities?sponsor=1", + "sideEffects": false, + "keywords": [ + "entity", + "decoding", + "encoding", + "html", + "xml", + "html entities" + ], + "directories": { + "lib": "lib/" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "module": "lib/esm/index.js", + "exports": { + ".": { + "require": "./lib/index.js", + "import": "./lib/esm/index.js" + }, + "./lib/decode.js": { + "require": "./lib/decode.js", + "import": "./lib/esm/decode.js" + }, + "./lib/escape.js": { + "require": "./lib/escape.js", + "import": "./lib/esm/escape.js" + } + }, + "files": [ + "lib/**/*" + ], + "engines": { + "node": ">=0.12" + }, + "devDependencies": { + "@types/jest": "^28.1.8", + "@types/node": "^18.15.11", + "@typescript-eslint/eslint-plugin": "^5.58.0", + "@typescript-eslint/parser": "^5.58.0", + "eslint": "^8.38.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-node": "^11.1.0", + "jest": "^28.1.3", + "prettier": "^2.8.7", + "ts-jest": "^28.0.8", + "typedoc": "^0.24.1", + "typescript": "^5.0.4" + }, + "scripts": { + "test": "npm run test:jest && npm run lint", + "test:jest": "jest", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint .", + "lint:prettier": "npm run prettier -- --check", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "build": "npm run build:cjs && npm run build:esm", + "build:cjs": "tsc --sourceRoot https://raw.githubusercontent.com/fb55/entities/$(git rev-parse HEAD)/src/", + "build:esm": "npm run build:cjs -- --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json", + "build:docs": "typedoc --hideGenerator src/index.ts", + "build:trie": "ts-node scripts/write-decode-map.ts", + "build:encode-trie": "ts-node scripts/write-encode-map.ts", + "prepare": "npm run build" + }, + "repository": { + "type": "git", + "url": "git://github.com/fb55/entities.git" + }, + "license": "BSD-2-Clause", + "jest": { + "preset": "ts-jest", + "coverageProvider": "v8", + "moduleNameMapper": { + "^(.*)\\.js$": "$1" + } + }, + "prettier": { + "tabWidth": 4, + "proseWrap": "always" + }, + "__npminstall_done": true, + "_from": "entities@4.5.0", + "_resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/es-define-property/index.js b/.output/server/node_modules/es-define-property/index.js new file mode 100644 index 0000000..e0a2925 --- /dev/null +++ b/.output/server/node_modules/es-define-property/index.js @@ -0,0 +1,14 @@ +'use strict'; + +/** @type {import('.')} */ +var $defineProperty = Object.defineProperty || false; +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = false; + } +} + +module.exports = $defineProperty; diff --git a/.output/server/node_modules/es-define-property/package.json b/.output/server/node_modules/es-define-property/package.json new file mode 100644 index 0000000..3b29341 --- /dev/null +++ b/.output/server/node_modules/es-define-property/package.json @@ -0,0 +1,84 @@ +{ + "name": "es-define-property", + "version": "1.0.1", + "description": "`Object.defineProperty`, but not IE 8's broken one.", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-define-property.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "define", + "property", + "defineProperty", + "Object.defineProperty" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-define-property/issues" + }, + "homepage": "https://github.com/ljharb/es-define-property#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/gopd": "^1.0.3", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "gopd": "^1.2.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "__npminstall_done": true, + "_from": "es-define-property@1.0.1", + "_resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/es-errors/eval.js b/.output/server/node_modules/es-errors/eval.js new file mode 100644 index 0000000..725ccb6 --- /dev/null +++ b/.output/server/node_modules/es-errors/eval.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./eval')} */ +module.exports = EvalError; diff --git a/.output/server/node_modules/es-errors/index.js b/.output/server/node_modules/es-errors/index.js new file mode 100644 index 0000000..cc0c521 --- /dev/null +++ b/.output/server/node_modules/es-errors/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Error; diff --git a/.output/server/node_modules/es-errors/package.json b/.output/server/node_modules/es-errors/package.json new file mode 100644 index 0000000..5aec5b0 --- /dev/null +++ b/.output/server/node_modules/es-errors/package.json @@ -0,0 +1,83 @@ +{ + "name": "es-errors", + "version": "1.3.0", + "description": "A simple cache for a few of the JS Error constructors.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./eval": "./eval.js", + "./range": "./range.js", + "./ref": "./ref.js", + "./syntax": "./syntax.js", + "./type": "./type.js", + "./uri": "./uri.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "aud --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-errors.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "error", + "typeerror", + "syntaxerror", + "rangeerror" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-errors/issues" + }, + "homepage": "https://github.com/ljharb/es-errors#readme", + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eclint": "^2.8.1", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "es-errors@1.3.0", + "_resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/es-errors/range.js b/.output/server/node_modules/es-errors/range.js new file mode 100644 index 0000000..2044fe0 --- /dev/null +++ b/.output/server/node_modules/es-errors/range.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./range')} */ +module.exports = RangeError; diff --git a/.output/server/node_modules/es-errors/ref.js b/.output/server/node_modules/es-errors/ref.js new file mode 100644 index 0000000..d7c430f --- /dev/null +++ b/.output/server/node_modules/es-errors/ref.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./ref')} */ +module.exports = ReferenceError; diff --git a/.output/server/node_modules/es-errors/syntax.js b/.output/server/node_modules/es-errors/syntax.js new file mode 100644 index 0000000..5f5fdde --- /dev/null +++ b/.output/server/node_modules/es-errors/syntax.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./syntax')} */ +module.exports = SyntaxError; diff --git a/.output/server/node_modules/es-errors/type.js b/.output/server/node_modules/es-errors/type.js new file mode 100644 index 0000000..9769e44 --- /dev/null +++ b/.output/server/node_modules/es-errors/type.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./type')} */ +module.exports = TypeError; diff --git a/.output/server/node_modules/es-errors/uri.js b/.output/server/node_modules/es-errors/uri.js new file mode 100644 index 0000000..e9cd1c7 --- /dev/null +++ b/.output/server/node_modules/es-errors/uri.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./uri')} */ +module.exports = URIError; diff --git a/.output/server/node_modules/es-object-atoms/index.js b/.output/server/node_modules/es-object-atoms/index.js new file mode 100644 index 0000000..1d33cef --- /dev/null +++ b/.output/server/node_modules/es-object-atoms/index.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('.')} */ +module.exports = Object; diff --git a/.output/server/node_modules/es-object-atoms/package.json b/.output/server/node_modules/es-object-atoms/package.json new file mode 100644 index 0000000..eb6bac9 --- /dev/null +++ b/.output/server/node_modules/es-object-atoms/package.json @@ -0,0 +1,83 @@ +{ + "name": "es-object-atoms", + "version": "1.1.1", + "description": "ES Object-related atoms: Object, ToObject, RequireObjectCoercible", + "main": "index.js", + "exports": { + ".": "./index.js", + "./RequireObjectCoercible": "./RequireObjectCoercible.js", + "./isObject": "./isObject.js", + "./ToObject": "./ToObject.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@\">= 10.2\" audit --production", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/es-object-atoms.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "object", + "toobject", + "coercible" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/es-object-atoms/issues" + }, + "homepage": "https://github.com/ljharb/es-object-atoms#readme", + "dependencies": { + "es-errors": "^1.3.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/tape": "^5.8.1", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "es-object-atoms@1.1.1", + "_resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/es-set-tostringtag/index.js b/.output/server/node_modules/es-set-tostringtag/index.js new file mode 100644 index 0000000..6b6b49c --- /dev/null +++ b/.output/server/node_modules/es-set-tostringtag/index.js @@ -0,0 +1,35 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); + +var hasToStringTag = require('has-tostringtag/shams')(); +var hasOwn = require('hasown'); +var $TypeError = require('es-errors/type'); + +var toStringTag = hasToStringTag ? Symbol.toStringTag : null; + +/** @type {import('.')} */ +module.exports = function setToStringTag(object, value) { + var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force; + var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable; + if ( + (typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean') + || (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean') + ) { + throw new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans'); + } + if (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) { + if ($defineProperty) { + $defineProperty(object, toStringTag, { + configurable: !nonConfigurable, + enumerable: false, + value: value, + writable: false + }); + } else { + object[toStringTag] = value; // eslint-disable-line no-param-reassign + } + } +}; diff --git a/.output/server/node_modules/es-set-tostringtag/package.json b/.output/server/node_modules/es-set-tostringtag/package.json new file mode 100644 index 0000000..e084f58 --- /dev/null +++ b/.output/server/node_modules/es-set-tostringtag/package.json @@ -0,0 +1,81 @@ +{ + "name": "es-set-tostringtag", + "version": "2.1.0", + "description": "A helper to optimistically set Symbol.toStringTag, when possible.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@\">= 10.2\" audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/es-shims/es-set-tostringtag.git" + }, + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/es-shims/es-set-tostringtag/issues" + }, + "homepage": "https://github.com/es-shims/es-set-tostringtag#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.2", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/get-intrinsic": "^1.2.3", + "@types/has-symbols": "^1.0.2", + "@types/tape": "^5.8.0", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "testling": { + "files": "./test/index.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "__npminstall_done": true, + "_from": "es-set-tostringtag@2.1.0", + "_resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js b/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js new file mode 100644 index 0000000..46fed0f --- /dev/null +++ b/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js @@ -0,0 +1,344 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.estreeWalker = {})); +}(this, (function (exports) { 'use strict'; + + // @ts-check + /** @typedef { import('estree').BaseNode} BaseNode */ + + /** @typedef {{ + skip: () => void; + remove: () => void; + replace: (node: BaseNode) => void; + }} WalkerContext */ + + class WalkerBase { + constructor() { + /** @type {boolean} */ + this.should_skip = false; + + /** @type {boolean} */ + this.should_remove = false; + + /** @type {BaseNode | null} */ + this.replacement = null; + + /** @type {WalkerContext} */ + this.context = { + skip: () => (this.should_skip = true), + remove: () => (this.should_remove = true), + replace: (node) => (this.replacement = node) + }; + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + * @param {BaseNode} node + */ + replace(parent, prop, index, node) { + if (parent) { + if (index !== null) { + parent[prop][index] = node; + } else { + parent[prop] = node; + } + } + } + + /** + * + * @param {any} parent + * @param {string} prop + * @param {number} index + */ + remove(parent, prop, index) { + if (parent) { + if (index !== null) { + parent[prop].splice(index, 1); + } else { + delete parent[prop]; + } + } + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker.js').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => void} SyncHandler */ + + class SyncWalker extends WalkerBase { + /** + * + * @param {SyncHandler} enter + * @param {SyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {SyncHandler} */ + this.enter = enter; + + /** @type {SyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {BaseNode} + */ + visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!this.visit(value[i], node, key, i)) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./walker').WalkerContext} WalkerContext */ + + /** @typedef {( + * this: WalkerContext, + * node: BaseNode, + * parent: BaseNode, + * key: string, + * index: number + * ) => Promise<void>} AsyncHandler */ + + class AsyncWalker extends WalkerBase { + /** + * + * @param {AsyncHandler} enter + * @param {AsyncHandler} leave + */ + constructor(enter, leave) { + super(); + + /** @type {AsyncHandler} */ + this.enter = enter; + + /** @type {AsyncHandler} */ + this.leave = leave; + } + + /** + * + * @param {BaseNode} node + * @param {BaseNode} parent + * @param {string} [prop] + * @param {number} [index] + * @returns {Promise<BaseNode>} + */ + async visit(node, parent, prop, index) { + if (node) { + if (this.enter) { + const _should_skip = this.should_skip; + const _should_remove = this.should_remove; + const _replacement = this.replacement; + this.should_skip = false; + this.should_remove = false; + this.replacement = null; + + await this.enter.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const skipped = this.should_skip; + const removed = this.should_remove; + + this.should_skip = _should_skip; + this.should_remove = _should_remove; + this.replacement = _replacement; + + if (skipped) return node; + if (removed) return null; + } + + for (const key in node) { + const value = node[key]; + + if (typeof value !== "object") { + continue; + } else if (Array.isArray(value)) { + for (let i = 0; i < value.length; i += 1) { + if (value[i] !== null && typeof value[i].type === 'string') { + if (!(await this.visit(value[i], node, key, i))) { + // removed + i--; + } + } + } + } else if (value !== null && typeof value.type === "string") { + await this.visit(value, node, key, null); + } + } + + if (this.leave) { + const _replacement = this.replacement; + const _should_remove = this.should_remove; + this.replacement = null; + this.should_remove = false; + + await this.leave.call(this.context, node, parent, prop, index); + + if (this.replacement) { + node = this.replacement; + this.replace(parent, prop, index, node); + } + + if (this.should_remove) { + this.remove(parent, prop, index); + } + + const removed = this.should_remove; + + this.replacement = _replacement; + this.should_remove = _should_remove; + + if (removed) return null; + } + } + + return node; + } + } + + // @ts-check + + /** @typedef { import('estree').BaseNode} BaseNode */ + /** @typedef { import('./sync.js').SyncHandler} SyncHandler */ + /** @typedef { import('./async.js').AsyncHandler} AsyncHandler */ + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: SyncHandler + * leave?: SyncHandler + * }} walker + * @returns {BaseNode} + */ + function walk(ast, { enter, leave }) { + const instance = new SyncWalker(enter, leave); + return instance.visit(ast, null); + } + + /** + * + * @param {BaseNode} ast + * @param {{ + * enter?: AsyncHandler + * leave?: AsyncHandler + * }} walker + * @returns {Promise<BaseNode>} + */ + async function asyncWalk(ast, { enter, leave }) { + const instance = new AsyncWalker(enter, leave); + return await instance.visit(ast, null); + } + + exports.asyncWalk = asyncWalk; + exports.walk = walk; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/.output/server/node_modules/estree-walker/package.json b/.output/server/node_modules/estree-walker/package.json new file mode 100644 index 0000000..1754504 --- /dev/null +++ b/.output/server/node_modules/estree-walker/package.json @@ -0,0 +1,40 @@ +{ + "name": "estree-walker", + "description": "Traverse an ESTree-compliant AST", + "version": "2.0.2", + "private": false, + "author": "Rich Harris", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/Rich-Harris/estree-walker" + }, + "type": "commonjs", + "main": "./dist/umd/estree-walker.js", + "module": "./dist/esm/estree-walker.js", + "exports": { + "require": "./dist/umd/estree-walker.js", + "import": "./dist/esm/estree-walker.js" + }, + "types": "types/index.d.ts", + "scripts": { + "prepublishOnly": "npm run build && npm test", + "build": "tsc && rollup -c", + "test": "uvu test" + }, + "devDependencies": { + "@types/estree": "0.0.42", + "rollup": "^2.10.9", + "typescript": "^3.7.5", + "uvu": "^0.5.1" + }, + "files": [ + "src", + "dist", + "types", + "README.md" + ], + "__npminstall_done": true, + "_from": "estree-walker@2.0.2", + "_resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/follow-redirects/debug.js b/.output/server/node_modules/follow-redirects/debug.js new file mode 100644 index 0000000..decb77d --- /dev/null +++ b/.output/server/node_modules/follow-redirects/debug.js @@ -0,0 +1,15 @@ +var debug; + +module.exports = function () { + if (!debug) { + try { + /* eslint global-require: off */ + debug = require("debug")("follow-redirects"); + } + catch (error) { /* */ } + if (typeof debug !== "function") { + debug = function () { /* */ }; + } + } + debug.apply(null, arguments); +}; diff --git a/.output/server/node_modules/follow-redirects/index.js b/.output/server/node_modules/follow-redirects/index.js new file mode 100644 index 0000000..a30b32c --- /dev/null +++ b/.output/server/node_modules/follow-redirects/index.js @@ -0,0 +1,686 @@ +var url = require("url"); +var URL = url.URL; +var http = require("http"); +var https = require("https"); +var Writable = require("stream").Writable; +var assert = require("assert"); +var debug = require("./debug"); + +// Preventive platform detection +// istanbul ignore next +(function detectUnsupportedEnvironment() { + var looksLikeNode = typeof process !== "undefined"; + var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined"; + var looksLikeV8 = isFunction(Error.captureStackTrace); + if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) { + console.warn("The follow-redirects package should be excluded from browser builds."); + } +}()); + +// Whether to use the native URL object or the legacy url module +var useNativeURL = false; +try { + assert(new URL("")); +} +catch (error) { + useNativeURL = error.code === "ERR_INVALID_URL"; +} + +// URL fields to preserve in copy operations +var preservedUrlFields = [ + "auth", + "host", + "hostname", + "href", + "path", + "pathname", + "port", + "protocol", + "query", + "search", + "hash", +]; + +// Create handlers that pass events from native requests +var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; +var eventHandlers = Object.create(null); +events.forEach(function (event) { + eventHandlers[event] = function (arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; +}); + +// Error types with codes +var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError +); +var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" +); +var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded", + RedirectionError +); +var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" +); +var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" +); + +// istanbul ignore next +var destroy = Writable.prototype.destroy || noop; + +// An HTTP(S) request that can be redirected +function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + try { + self._processResponse(response); + } + catch (cause) { + self.emit("error", cause instanceof RedirectionError ? + cause : new RedirectionError({ cause: cause })); + } + }; + + // Perform the first request + this._performRequest(); +} +RedirectableRequest.prototype = Object.create(Writable.prototype); + +RedirectableRequest.prototype.abort = function () { + destroyRequest(this._currentRequest); + this._currentRequest.abort(); + this.emit("abort"); +}; + +RedirectableRequest.prototype.destroy = function (error) { + destroyRequest(this._currentRequest, error); + destroy.call(this, error); + return this; +}; + +// Writes buffered data to the current native request +RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Writing is not allowed if end has been called + if (this._ending) { + throw new WriteAfterEndError(); + } + + // Validate input and shift parameters if necessary + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } +}; + +// Ends the current native request +RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (isFunction(data)) { + callback = data; + data = encoding = null; + } + else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Write data if needed and end + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } + else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function () { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } +}; + +// Sets a header value on the current native request +RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); +}; + +// Clears a header value on the current native request +RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); +}; + +// Global timeout for all underlying requests +RedirectableRequest.prototype.setTimeout = function (msecs, callback) { + var self = this; + + // Destroys the socket on timeout + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + + // Sets up a timer to trigger a timeout event + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function () { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + + // Stops a timeout from triggering + function clearTimer() { + // Clear the timeout + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + + // Clean up all attached listeners + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + self.removeListener("close", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + + // Attach callback if passed + if (callback) { + this.on("timeout", callback); + } + + // Start the timer if or when the socket is opened + if (this.socket) { + startTimer(this.socket); + } + else { + this._currentRequest.once("socket", startTimer); + } + + // Clean up on events + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + this.on("close", clearTimer); + + return this; +}; + +// Proxy all other public ClientRequest methods +[ + "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", +].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; +}); + +// Proxy all public ClientRequest properties +["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); +}); + +RedirectableRequest.prototype._sanitizeOptions = function (options) { + // Ensure headers are always present + if (!options.headers) { + options.headers = {}; + } + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } +}; + + +// Executes the next native request (initial or redirect) +RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + throw new TypeError("Unsupported protocol " + protocol); + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request and set up its event handlers + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + + // RFC7230§5.3.1: When making a request directly to an origin server, […] + // a client MUST send only the absolute path […] as the request-target. + this._currentUrl = /^\//.test(this._options.path) ? + url.format(this._options) : + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path; + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + // Only write if this request has not been redirected yet + // istanbul ignore else + if (request === self._currentRequest) { + // Report any write errors + // istanbul ignore if + if (error) { + self.emit("error", error); + } + // Write the next buffer if there are still left + else if (i < buffers.length) { + var buffer = buffers[i++]; + // istanbul ignore else + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } + // End the request if `end` has been called on us + else if (self._ended) { + request.end(); + } + } + }()); + } +}; + +// Processes a response from the current native request +RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + + // If the response is not a redirect; return it as-is + var location = response.headers.location; + if (!location || this._options.followRedirects === false || + statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + return; + } + + // The response is a redirect, so abort the current request + destroyRequest(this._currentRequest); + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + throw new TooManyRedirectsError(); + } + + // Store the request headers if applicable + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host"), + }, this._options.headers); + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe, […] + // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change + // the request method from POST to GET for the subsequent request. + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || + // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + + // Drop the Host header, as the redirect might lead to a different host + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + + // If the redirect is relative, carry over the host of the last request + var currentUrlParts = parseUrl(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : + url.format(Object.assign(currentUrlParts, { host: currentHost })); + + // Create the redirected request + var redirectUrl = resolveUrl(location, currentUrl); + debug("redirecting to", redirectUrl.href); + this._isRedirect = true; + spreadUrlObject(redirectUrl, this._options); + + // Drop confidential headers when redirecting to a less secure protocol + // or to a different domain that is not a superdomain + if (redirectUrl.protocol !== currentUrlParts.protocol && + redirectUrl.protocol !== "https:" || + redirectUrl.host !== currentHost && + !isSubdomain(redirectUrl.host, currentHost)) { + removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers); + } + + // Evaluate the beforeRedirect callback + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode: statusCode, + }; + var requestDetails = { + url: currentUrl, + method: method, + headers: requestHeaders, + }; + beforeRedirect(this._options, responseDetails, requestDetails); + this._sanitizeOptions(this._options); + } + + // Perform the redirected request + this._performRequest(); +}; + +// Wraps the key/value object of protocols with redirect functionality +function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + function request(input, options, callback) { + // Parse parameters, ensuring that input is an object + if (isURL(input)) { + input = spreadUrlObject(input); + } + else if (isString(input)) { + input = spreadUrlObject(parseUrl(input)); + } + else { + callback = options; + options = validateUrl(input); + input = { protocol: protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + + // Set defaults + options = Object.assign({ + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + + // Executes a GET request, following redirects + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + + // Expose the properties on the wrapped protocol + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true }, + }); + }); + return exports; +} + +function noop() { /* empty */ } + +function parseUrl(input) { + var parsed; + // istanbul ignore else + if (useNativeURL) { + parsed = new URL(input); + } + else { + // Ensure the URL is valid and absolute + parsed = validateUrl(url.parse(input)); + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + } + return parsed; +} + +function resolveUrl(relative, base) { + // istanbul ignore next + return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative)); +} + +function validateUrl(input) { + if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) { + throw new InvalidUrlError({ input: input.href || input }); + } + if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) { + throw new InvalidUrlError({ input: input.href || input }); + } + return input; +} + +function spreadUrlObject(urlObject, target) { + var spread = target || {}; + for (var key of preservedUrlFields) { + spread[key] = urlObject[key]; + } + + // Fix IPv6 hostname + if (spread.hostname.startsWith("[")) { + spread.hostname = spread.hostname.slice(1, -1); + } + // Ensure port is a number + if (spread.port !== "") { + spread.port = Number(spread.port); + } + // Concatenate path + spread.path = spread.search ? spread.pathname + spread.search : spread.pathname; + + return spread; +} + +function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return (lastValue === null || typeof lastValue === "undefined") ? + undefined : String(lastValue).trim(); +} + +function createErrorType(code, message, baseClass) { + // Create constructor + function CustomError(properties) { + // istanbul ignore else + if (isFunction(Error.captureStackTrace)) { + Error.captureStackTrace(this, this.constructor); + } + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + + // Attach constructor and set default properties + CustomError.prototype = new (baseClass || Error)(); + Object.defineProperties(CustomError.prototype, { + constructor: { + value: CustomError, + enumerable: false, + }, + name: { + value: "Error [" + code + "]", + enumerable: false, + }, + }); + return CustomError; +} + +function destroyRequest(request, error) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.destroy(error); +} + +function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); +} + +function isString(value) { + return typeof value === "string" || value instanceof String; +} + +function isFunction(value) { + return typeof value === "function"; +} + +function isBuffer(value) { + return typeof value === "object" && ("length" in value); +} + +function isURL(value) { + return URL && value instanceof URL; +} + +// Exports +module.exports = wrap({ http: http, https: https }); +module.exports.wrap = wrap; diff --git a/.output/server/node_modules/follow-redirects/package.json b/.output/server/node_modules/follow-redirects/package.json new file mode 100644 index 0000000..3e479a1 --- /dev/null +++ b/.output/server/node_modules/follow-redirects/package.json @@ -0,0 +1,61 @@ +{ + "name": "follow-redirects", + "version": "1.15.9", + "description": "HTTP and HTTPS modules that follow redirects.", + "license": "MIT", + "main": "index.js", + "files": [ + "*.js" + ], + "engines": { + "node": ">=4.0" + }, + "scripts": { + "lint": "eslint *.js test", + "test": "nyc mocha" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/follow-redirects/follow-redirects.git" + }, + "homepage": "https://github.com/follow-redirects/follow-redirects", + "bugs": { + "url": "https://github.com/follow-redirects/follow-redirects/issues" + }, + "keywords": [ + "http", + "https", + "url", + "redirect", + "client", + "location", + "utility" + ], + "author": "Ruben Verborgh <ruben@verborgh.org> (https://ruben.verborgh.org/)", + "contributors": [ + "Olivier Lalonde <olalonde@gmail.com> (http://www.syskall.com)", + "James Talmage <james@talmage.io>" + ], + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "peerDependenciesMeta": { + "debug": { + "optional": true + } + }, + "devDependencies": { + "concat-stream": "^2.0.0", + "eslint": "^5.16.0", + "express": "^4.16.4", + "lolex": "^3.1.0", + "mocha": "^6.0.2", + "nyc": "^14.1.1" + }, + "__npminstall_done": true, + "_from": "follow-redirects@1.15.9", + "_resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/form-data/lib/form_data.js b/.output/server/node_modules/form-data/lib/form_data.js new file mode 100644 index 0000000..3479d18 --- /dev/null +++ b/.output/server/node_modules/form-data/lib/form_data.js @@ -0,0 +1,503 @@ +var CombinedStream = require('combined-stream'); +var util = require('util'); +var path = require('path'); +var http = require('http'); +var https = require('https'); +var parseUrl = require('url').parse; +var fs = require('fs'); +var Stream = require('stream').Stream; +var mime = require('mime-types'); +var asynckit = require('asynckit'); +var setToStringTag = require('es-set-tostringtag'); +var populate = require('./populate.js'); + +// Public API +module.exports = FormData; + +// make it a Stream +util.inherits(FormData, CombinedStream); + +/** + * Create readable "multipart/form-data" streams. + * Can be used to submit forms + * and file uploads to other web applications. + * + * @constructor + * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream + */ +function FormData(options) { + if (!(this instanceof FormData)) { + return new FormData(options); + } + + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + + CombinedStream.call(this); + + options = options || {}; + for (var option in options) { + this[option] = options[option]; + } +} + +FormData.LINE_BREAK = '\r\n'; +FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; + +FormData.prototype.append = function(field, value, options) { + + options = options || {}; + + // allow filename as single option + if (typeof options == 'string') { + options = {filename: options}; + } + + var append = CombinedStream.prototype.append.bind(this); + + // all that streamy business can't handle numbers + if (typeof value == 'number') { + value = '' + value; + } + + // https://github.com/felixge/node-form-data/issues/38 + if (Array.isArray(value)) { + // Please convert your array into string + // the way web server expects it + this._error(new Error('Arrays are not supported.')); + return; + } + + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + + append(header); + append(value); + append(footer); + + // pass along options.knownLength + this._trackLength(header, value, options); +}; + +FormData.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + + // used w/ getLengthSync(), when length is known. + // e.g. for streaming directly from a remote server, + // w/ a known file a size, and not wanting to wait for + // incoming file to finish to get its size. + if (options.knownLength != null) { + valueLength += +options.knownLength; + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === 'string') { + valueLength = Buffer.byteLength(value); + } + + this._valueLength += valueLength; + + // @check why add CRLF? does this account for custom/multiple CRLFs? + this._overheadLength += + Buffer.byteLength(header) + + FormData.LINE_BREAK.length; + + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && Object.prototype.hasOwnProperty.call(value, 'httpVersion')) && !(value instanceof Stream))) { + return; + } + + // no need to bother with the length + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } +}; + +FormData.prototype._lengthRetriever = function(value, callback) { + if (Object.prototype.hasOwnProperty.call(value, 'fd')) { + + // take read range into a account + // `end` = Infinity –> read file till the end + // + // TODO: Looks like there is bug in Node fs.createReadStream + // it doesn't respect `end` options without `start` options + // Fix it when node fixes it. + // https://github.com/joyent/node/issues/7819 + if (value.end != undefined && value.end != Infinity && value.start != undefined) { + + // when end specified + // no need to calculate range + // inclusive, starts with 0 + callback(null, value.end + 1 - (value.start ? value.start : 0)); + + // not that fast snoopy + } else { + // still need to fetch file size from fs + fs.stat(value.path, function(err, stat) { + + var fileSize; + + if (err) { + callback(err); + return; + } + + // update final size based on the range options + fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + + // or http response + } else if (Object.prototype.hasOwnProperty.call(value, 'httpVersion')) { + callback(null, +value.headers['content-length']); + + // or request stream http://github.com/mikeal/request + } else if (Object.prototype.hasOwnProperty.call(value, 'httpModule')) { + // wait till response come back + value.on('response', function(response) { + value.pause(); + callback(null, +response.headers['content-length']); + }); + value.resume(); + + // something else + } else { + callback('Unknown stream'); + } +}; + +FormData.prototype._multiPartHeader = function(field, value, options) { + // custom header specified (as string)? + // it becomes responsible for boundary + // (e.g. to handle extra CRLFs on .NET servers) + if (typeof options.header == 'string') { + return options.header; + } + + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + + var contents = ''; + var headers = { + // add custom disposition as third element or keep it two elements if not + 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + 'Content-Type': [].concat(contentType || []) + }; + + // allow custom headers. + if (typeof options.header == 'object') { + populate(headers, options.header); + } + + var header; + for (var prop in headers) { + if (Object.prototype.hasOwnProperty.call(headers, prop)) { + header = headers[prop]; + + // skip nullish headers. + if (header == null) { + continue; + } + + // convert all headers to arrays. + if (!Array.isArray(header)) { + header = [header]; + } + + // add non-empty headers. + if (header.length) { + contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; + } + } + } + + return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; +}; + +FormData.prototype._getContentDisposition = function(value, options) { + + var filename + , contentDisposition + ; + + if (typeof options.filepath === 'string') { + // custom filepath for relative paths + filename = path.normalize(options.filepath).replace(/\\/g, '/'); + } else if (options.filename || value.name || value.path) { + // custom filename take precedence + // formidable and the browser add a name property + // fs- and request- streams have path property + filename = path.basename(options.filename || value.name || value.path); + } else if (value.readable && Object.prototype.hasOwnProperty.call(value, 'httpVersion')) { + // or try http response + filename = path.basename(value.client._httpMessage.path || ''); + } + + if (filename) { + contentDisposition = 'filename="' + filename + '"'; + } + + return contentDisposition; +}; + +FormData.prototype._getContentType = function(value, options) { + + // use custom content-type above all + var contentType = options.contentType; + + // or try `name` from formidable, browser + if (!contentType && value.name) { + contentType = mime.lookup(value.name); + } + + // or try `path` from fs-, request- streams + if (!contentType && value.path) { + contentType = mime.lookup(value.path); + } + + // or if it's http-reponse + if (!contentType && value.readable && Object.prototype.hasOwnProperty.call(value, 'httpVersion')) { + contentType = value.headers['content-type']; + } + + // or guess it from the filepath or filename + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + + // fallback to the default content type if `value` is not simple value + if (!contentType && typeof value == 'object') { + contentType = FormData.DEFAULT_CONTENT_TYPE; + } + + return contentType; +}; + +FormData.prototype._multiPartFooter = function() { + return function(next) { + var footer = FormData.LINE_BREAK; + + var lastPart = (this._streams.length === 0); + if (lastPart) { + footer += this._lastBoundary(); + } + + next(footer); + }.bind(this); +}; + +FormData.prototype._lastBoundary = function() { + return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; +}; + +FormData.prototype.getHeaders = function(userHeaders) { + var header; + var formHeaders = { + 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() + }; + + for (header in userHeaders) { + if (Object.prototype.hasOwnProperty.call(userHeaders, header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + + return formHeaders; +}; + +FormData.prototype.setBoundary = function(boundary) { + this._boundary = boundary; +}; + +FormData.prototype.getBoundary = function() { + if (!this._boundary) { + this._generateBoundary(); + } + + return this._boundary; +}; + +FormData.prototype.getBuffer = function() { + var dataBuffer = new Buffer.alloc(0); + var boundary = this.getBoundary(); + + // Create the form content. Add Line breaks to the end of data. + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== 'function') { + + // Add content to the buffer. + if(Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]); + }else { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]); + } + + // Add break after content. + if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] ); + } + } + } + + // Add the footer and return the Buffer object. + return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] ); +}; + +FormData.prototype._generateBoundary = function() { + // This generates a 50 character boundary similar to those used by Firefox. + // They are optimized for boyer-moore parsing. + var boundary = '--------------------------'; + for (var i = 0; i < 24; i++) { + boundary += Math.floor(Math.random() * 10).toString(16); + } + + this._boundary = boundary; +}; + +// Note: getLengthSync DOESN'T calculate streams length +// As workaround one can calculate file size manually +// and add it as knownLength option +FormData.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + + // Don't get confused, there are 3 "internal" streams for each keyval pair + // so it basically checks if there is any value added to the form + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + // https://github.com/form-data/form-data/issues/40 + if (!this.hasKnownLength()) { + // Some async length retrievers are present + // therefore synchronous length calculation is false. + // Please use getLength(callback) to get proper length + this._error(new Error('Cannot calculate proper length in synchronous way.')); + } + + return knownLength; +}; + +// Public API to check if length of added values is known +// https://github.com/form-data/form-data/issues/196 +// https://github.com/form-data/form-data/issues/262 +FormData.prototype.hasKnownLength = function() { + var hasKnownLength = true; + + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + + return hasKnownLength; +}; + +FormData.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) { + if (err) { + cb(err); + return; + } + + values.forEach(function(length) { + knownLength += length; + }); + + cb(null, knownLength); + }); +}; + +FormData.prototype.submit = function(params, cb) { + var request + , options + , defaults = {method: 'post'} + ; + + // parse provided url if it's string + // or treat it as options object + if (typeof params == 'string') { + + params = parseUrl(params); + options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + + // use custom params + } else { + + options = populate(params, defaults); + // if no port provided use default one + if (!options.port) { + options.port = options.protocol == 'https:' ? 443 : 80; + } + } + + // put that good code in getHeaders to some use + options.headers = this.getHeaders(params.headers); + + // https if specified, fallback to http in any other case + if (options.protocol == 'https:') { + request = https.request(options); + } else { + request = http.request(options); + } + + // get content length and fire away + this.getLength(function(err, length) { + if (err && err !== 'Unknown stream') { + this._error(err); + return; + } + + // add content length + if (length) { + request.setHeader('Content-Length', length); + } + + this.pipe(request); + if (cb) { + var onResponse; + + var callback = function (error, responce) { + request.removeListener('error', callback); + request.removeListener('response', onResponse); + + return cb.call(this, error, responce); + }; + + onResponse = callback.bind(this, null); + + request.on('error', callback); + request.on('response', onResponse); + } + }.bind(this)); + + return request; +}; + +FormData.prototype._error = function(err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit('error', err); + } +}; + +FormData.prototype.toString = function () { + return '[object FormData]'; +}; +setToStringTag(FormData, 'FormData'); diff --git a/.output/server/node_modules/form-data/lib/populate.js b/.output/server/node_modules/form-data/lib/populate.js new file mode 100644 index 0000000..4d35738 --- /dev/null +++ b/.output/server/node_modules/form-data/lib/populate.js @@ -0,0 +1,10 @@ +// populates missing values +module.exports = function(dst, src) { + + Object.keys(src).forEach(function(prop) + { + dst[prop] = dst[prop] || src[prop]; + }); + + return dst; +}; diff --git a/.output/server/node_modules/form-data/package.json b/.output/server/node_modules/form-data/package.json new file mode 100644 index 0000000..eeecedf --- /dev/null +++ b/.output/server/node_modules/form-data/package.json @@ -0,0 +1,77 @@ +{ + "author": "Felix Geisendörfer <felix@debuggable.com> (http://debuggable.com/)", + "name": "form-data", + "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", + "version": "4.0.2", + "repository": { + "type": "git", + "url": "git://github.com/form-data/form-data.git" + }, + "main": "./lib/form_data", + "browser": "./lib/browser", + "typings": "./index.d.ts", + "scripts": { + "pretest": "npm run lint", + "pretests-only": "rimraf coverage test/tmp", + "tests-only": "istanbul cover test/run.js", + "posttests-only": "istanbul report lcov text", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "lint": "eslint --ext=js,mjs .", + "report": "istanbul report lcov text", + "ci-lint": "is-node-modern 8 && npm run lint || is-node-not-modern 8", + "ci-test": "npm run tests-only && npm run browser && npm run report", + "predebug": "rimraf coverage test/tmp", + "debug": "verbose=1 ./test/run.js", + "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage", + "check": "istanbul check-coverage coverage/coverage*.json", + "files": "pkgfiles --sort=name", + "get-version": "node -e \"console.log(require('./package.json').version)\"", + "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md", + "restore-readme": "mv README.md.bak README.md", + "prepublish": "in-publish && npm run update-readme || not-in-publish", + "postpublish": "npm run restore-readme" + }, + "pre-commit": [ + "lint", + "ci-test", + "check" + ], + "engines": { + "node": ">= 6" + }, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "devDependencies": { + "@types/combined-stream": "^1.0.6", + "@types/mime-types": "^2.1.4", + "@types/node": "^12.20.55", + "browserify": "^13.3.0", + "browserify-istanbul": "^2.0.0", + "coveralls": "^3.1.1", + "cross-spawn": "^6.0.6", + "eslint": "^6.8.0", + "fake": "^0.2.2", + "far": "^0.0.7", + "formidable": "^1.2.6", + "in-publish": "^2.0.1", + "is-node-modern": "^1.0.0", + "istanbul": "^0.4.5", + "obake": "^0.1.2", + "pkgfiles": "^2.3.2", + "pre-commit": "^1.2.2", + "puppeteer": "^1.20.0", + "request": "~2.87.0", + "rimraf": "^2.7.1", + "tape": "^5.9.0", + "typescript": "^3.9.10" + }, + "license": "MIT", + "__npminstall_done": true, + "_from": "form-data@4.0.2", + "_resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/function-bind/implementation.js b/.output/server/node_modules/function-bind/implementation.js new file mode 100644 index 0000000..fd4384c --- /dev/null +++ b/.output/server/node_modules/function-bind/implementation.js @@ -0,0 +1,84 @@ +'use strict'; + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var toStr = Object.prototype.toString; +var max = Math.max; +var funcType = '[object Function]'; + +var concatty = function concatty(a, b) { + var arr = []; + + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + + return arr; +}; + +var slicy = function slicy(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; +}; + +var joiny = function (arr, joiner) { + var str = ''; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; +}; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + + }; + + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = '$' + i; + } + + bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; diff --git a/.output/server/node_modules/function-bind/index.js b/.output/server/node_modules/function-bind/index.js new file mode 100644 index 0000000..3bb6b96 --- /dev/null +++ b/.output/server/node_modules/function-bind/index.js @@ -0,0 +1,5 @@ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = Function.prototype.bind || implementation; diff --git a/.output/server/node_modules/function-bind/package.json b/.output/server/node_modules/function-bind/package.json new file mode 100644 index 0000000..ddf879e --- /dev/null +++ b/.output/server/node_modules/function-bind/package.json @@ -0,0 +1,90 @@ +{ + "name": "function-bind", + "version": "1.1.2", + "description": "Implementation of Function.prototype.bind", + "keywords": [ + "function", + "bind", + "shim", + "es5" + ], + "author": "Raynos <raynos2@gmail.com>", + "repository": { + "type": "git", + "url": "https://github.com/Raynos/function-bind.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "main": "index", + "homepage": "https://github.com/Raynos/function-bind", + "contributors": [ + { + "name": "Raynos" + }, + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "bugs": { + "url": "https://github.com/Raynos/function-bind/issues", + "email": "raynos2@gmail.com" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.1" + }, + "license": "MIT", + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepack": "npmignore --auto --commentLines=autogenerated", + "pretest": "npm run lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "nyc tape 'test/**/*.js'", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "ie/8..latest", + "firefox/16..latest", + "firefox/nightly", + "chrome/22..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "__npminstall_done": true, + "_from": "function-bind@1.1.2", + "_resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/get-intrinsic/index.js b/.output/server/node_modules/get-intrinsic/index.js new file mode 100644 index 0000000..7f618f5 --- /dev/null +++ b/.output/server/node_modules/get-intrinsic/index.js @@ -0,0 +1,377 @@ +'use strict'; + +var undefined; + +var $Object = require('es-object-atoms'); + +var $Error = require('es-errors'); +var $EvalError = require('es-errors/eval'); +var $RangeError = require('es-errors/range'); +var $ReferenceError = require('es-errors/ref'); +var $SyntaxError = require('es-errors/syntax'); +var $TypeError = require('es-errors/type'); +var $URIError = require('es-errors/uri'); + +var abs = require('math-intrinsics/abs'); +var floor = require('math-intrinsics/floor'); +var max = require('math-intrinsics/max'); +var min = require('math-intrinsics/min'); +var pow = require('math-intrinsics/pow'); +var round = require('math-intrinsics/round'); +var sign = require('math-intrinsics/sign'); + +var $Function = Function; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = require('gopd'); +var $defineProperty = require('es-define-property'); + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = require('has-symbols')(); + +var getProto = require('get-proto'); +var $ObjectGPO = require('get-proto/Object.getPrototypeOf'); +var $ReflectGPO = require('get-proto/Reflect.getPrototypeOf'); + +var $apply = require('call-bind-apply-helpers/functionApply'); +var $call = require('call-bind-apply-helpers/functionCall'); + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + __proto__: null, + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': $Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': $EvalError, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': $Object, + '%Object.getOwnPropertyDescriptor%': $gOPD, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': $RangeError, + '%ReferenceError%': $ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': $URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, + + '%Function.prototype.call%': $call, + '%Function.prototype.apply%': $apply, + '%Object.defineProperty%': $defineProperty, + '%Object.getPrototypeOf%': $ObjectGPO, + '%Math.abs%': abs, + '%Math.floor%': floor, + '%Math.max%': max, + '%Math.min%': min, + '%Math.pow%': pow, + '%Math.round%': round, + '%Math.sign%': sign, + '%Reflect.getPrototypeOf%': $ReflectGPO +}; + +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + __proto__: null, + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = require('function-bind'); +var hasOwn = require('hasown'); +var $concat = bind.call($call, Array.prototype.concat); +var $spliceApply = bind.call($apply, Array.prototype.splice); +var $replace = bind.call($call, String.prototype.replace); +var $strSlice = bind.call($call, String.prototype.slice); +var $exec = bind.call($call, RegExp.prototype.exec); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; diff --git a/.output/server/node_modules/get-intrinsic/package.json b/.output/server/node_modules/get-intrinsic/package.json new file mode 100644 index 0000000..bc13794 --- /dev/null +++ b/.output/server/node_modules/get-intrinsic/package.json @@ -0,0 +1,100 @@ +{ + "name": "get-intrinsic", + "version": "1.2.7", + "description": "Get and robustly cache all JS language-level intrinsics at first require time", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=.js,.mjs .", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-intrinsic.git" + }, + "keywords": [ + "javascript", + "ecmascript", + "es", + "js", + "intrinsic", + "getintrinsic", + "es-abstract" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/get-intrinsic/issues" + }, + "homepage": "https://github.com/ljharb/get-intrinsic#readme", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "function-bind": "^1.1.2", + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "auto-changelog": "^2.5.0", + "call-bound": "^1.0.3", + "encoding": "^0.1.13", + "es-abstract": "^1.23.8", + "es-value-fixtures": "^1.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "make-async-function": "^1.0.0", + "make-async-generator-function": "^1.0.0", + "make-generator-function": "^2.0.0", + "mock-property": "^1.1.0", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "testling": { + "files": "test/GetIntrinsic.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "get-intrinsic@1.2.7", + "_resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/get-proto/Object.getPrototypeOf.js b/.output/server/node_modules/get-proto/Object.getPrototypeOf.js new file mode 100644 index 0000000..c2cbbdf --- /dev/null +++ b/.output/server/node_modules/get-proto/Object.getPrototypeOf.js @@ -0,0 +1,6 @@ +'use strict'; + +var $Object = require('es-object-atoms'); + +/** @type {import('./Object.getPrototypeOf')} */ +module.exports = $Object.getPrototypeOf || null; diff --git a/.output/server/node_modules/get-proto/Reflect.getPrototypeOf.js b/.output/server/node_modules/get-proto/Reflect.getPrototypeOf.js new file mode 100644 index 0000000..e6c51be --- /dev/null +++ b/.output/server/node_modules/get-proto/Reflect.getPrototypeOf.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./Reflect.getPrototypeOf')} */ +module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null; diff --git a/.output/server/node_modules/get-proto/index.js b/.output/server/node_modules/get-proto/index.js new file mode 100644 index 0000000..7e5747b --- /dev/null +++ b/.output/server/node_modules/get-proto/index.js @@ -0,0 +1,27 @@ +'use strict'; + +var reflectGetProto = require('./Reflect.getPrototypeOf'); +var originalGetProto = require('./Object.getPrototypeOf'); + +var getDunderProto = require('dunder-proto/get'); + +/** @type {import('.')} */ +module.exports = reflectGetProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return reflectGetProto(O); + } + : originalGetProto + ? function getProto(O) { + if (!O || (typeof O !== 'object' && typeof O !== 'function')) { + throw new TypeError('getProto: not an object'); + } + // @ts-expect-error TS can't narrow inside a closure, for some reason + return originalGetProto(O); + } + : getDunderProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return getDunderProto(O); + } + : null; diff --git a/.output/server/node_modules/get-proto/package.json b/.output/server/node_modules/get-proto/package.json new file mode 100644 index 0000000..46efbc2 --- /dev/null +++ b/.output/server/node_modules/get-proto/package.json @@ -0,0 +1,84 @@ +{ + "name": "get-proto", + "version": "1.0.1", + "description": "Robustly get the [[Prototype]] of an object", + "main": "index.js", + "exports": { + ".": "./index.js", + "./Reflect.getPrototypeOf": "./Reflect.getPrototypeOf.js", + "./Object.getPrototypeOf": "./Object.getPrototypeOf.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "npx npm@\">=10.2\" audit --production", + "tests-only": "nyc tape 'test/**/*.js'", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/get-proto.git" + }, + "keywords": [ + "get", + "proto", + "prototype", + "getPrototypeOf", + "[[Prototype]]" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/get-proto/issues" + }, + "homepage": "https://github.com/ljharb/get-proto#readme", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.2", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.3", + "@types/tape": "^5.8.0", + "auto-changelog": "^2.5.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "testling": { + "files": "test/index.js" + }, + "__npminstall_done": true, + "_from": "get-proto@1.0.1", + "_resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/gopd/gOPD.js b/.output/server/node_modules/gopd/gOPD.js new file mode 100644 index 0000000..cf9616c --- /dev/null +++ b/.output/server/node_modules/gopd/gOPD.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./gOPD')} */ +module.exports = Object.getOwnPropertyDescriptor; diff --git a/.output/server/node_modules/gopd/index.js b/.output/server/node_modules/gopd/index.js new file mode 100644 index 0000000..a4081b0 --- /dev/null +++ b/.output/server/node_modules/gopd/index.js @@ -0,0 +1,15 @@ +'use strict'; + +/** @type {import('.')} */ +var $gOPD = require('./gOPD'); + +if ($gOPD) { + try { + $gOPD([], 'length'); + } catch (e) { + // IE 8 has a broken gOPD + $gOPD = null; + } +} + +module.exports = $gOPD; diff --git a/.output/server/node_modules/gopd/package.json b/.output/server/node_modules/gopd/package.json new file mode 100644 index 0000000..04d9da5 --- /dev/null +++ b/.output/server/node_modules/gopd/package.json @@ -0,0 +1,80 @@ +{ + "name": "gopd", + "version": "1.2.0", + "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./gOPD": "./gOPD.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "tsc -p . && attw -P", + "lint": "eslint --ext=js,mjs .", + "postlint": "evalmd README.md", + "pretest": "npm run lint", + "tests-only": "tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/gopd.git" + }, + "keywords": [ + "ecmascript", + "javascript", + "getownpropertydescriptor", + "property", + "descriptor" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/gopd/issues" + }, + "homepage": "https://github.com/ljharb/gopd#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.0", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "gopd@1.2.0", + "_resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/has-symbols/index.js b/.output/server/node_modules/has-symbols/index.js new file mode 100644 index 0000000..fa65265 --- /dev/null +++ b/.output/server/node_modules/has-symbols/index.js @@ -0,0 +1,14 @@ +'use strict'; + +var origSymbol = typeof Symbol !== 'undefined' && Symbol; +var hasSymbolSham = require('./shams'); + +/** @type {import('.')} */ +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; diff --git a/.output/server/node_modules/has-symbols/package.json b/.output/server/node_modules/has-symbols/package.json new file mode 100644 index 0000000..fcfe085 --- /dev/null +++ b/.output/server/node_modules/has-symbols/package.json @@ -0,0 +1,114 @@ +{ + "name": "has-symbols", + "version": "1.1.0", + "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", + "main": "index.js", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "tests-only": "npm run test:stock && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/has-symbols.git" + }, + "keywords": [ + "Symbol", + "symbols", + "typeof", + "sham", + "polyfill", + "native", + "core-js", + "ES6" + ], + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/has-symbols/issues" + }, + "homepage": "https://github.com/ljharb/has-symbols#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.0", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.0", + "@types/core-js": "^2.5.8", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "core-js": "^2.6.12", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "get-own-property-symbols": "^0.9.5", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "testling": { + "files": "test/index.js", + "browsers": [ + "iexplore/6.0..latest", + "firefox/3.0..6.0", + "firefox/15.0..latest", + "firefox/nightly", + "chrome/4.0..10.0", + "chrome/20.0..latest", + "chrome/canary", + "opera/10.0..latest", + "opera/next", + "safari/4.0..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "types" + ] + }, + "__npminstall_done": true, + "_from": "has-symbols@1.1.0", + "_resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/has-symbols/shams.js b/.output/server/node_modules/has-symbols/shams.js new file mode 100644 index 0000000..f97b474 --- /dev/null +++ b/.output/server/node_modules/has-symbols/shams.js @@ -0,0 +1,45 @@ +'use strict'; + +/** @type {import('./shams')} */ +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + /** @type {{ [k in symbol]?: unknown }} */ + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + // eslint-disable-next-line no-extra-parens + var descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym)); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; diff --git a/.output/server/node_modules/has-tostringtag/package.json b/.output/server/node_modules/has-tostringtag/package.json new file mode 100644 index 0000000..20dc062 --- /dev/null +++ b/.output/server/node_modules/has-tostringtag/package.json @@ -0,0 +1,111 @@ +{ + "name": "has-tostringtag", + "version": "1.0.2", + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "description": "Determine if the JS environment has `Symbol.toStringTag` support. Supports spec, or shams.", + "license": "MIT", + "main": "index.js", + "types": "./index.d.ts", + "exports": { + ".": [ + { + "types": "./index.d.ts", + "default": "./index.js" + }, + "./index.js" + ], + "./shams": [ + { + "types": "./shams.d.ts", + "default": "./shams.js" + }, + "./shams.js" + ], + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent lint", + "test": "npm run tests-only", + "posttest": "aud --production", + "tests-only": "npm run test:stock && npm run test:shams", + "test:stock": "nyc node test", + "test:staging": "nyc node --harmony --es-staging test", + "test:shams": "npm run --silent test:shams:getownpropertysymbols && npm run --silent test:shams:corejs", + "test:shams:corejs": "nyc node test/shams/core-js.js", + "test:shams:getownpropertysymbols": "nyc node test/shams/get-own-property-symbols.js", + "lint": "eslint --ext=js,mjs .", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/has-tostringtag.git" + }, + "bugs": { + "url": "https://github.com/inspect-js/has-tostringtag/issues" + }, + "homepage": "https://github.com/inspect-js/has-tostringtag#readme", + "keywords": [ + "javascript", + "ecmascript", + "symbol", + "symbols", + "tostringtag", + "Symbol.toStringTag" + ], + "devDependencies": { + "@ljharb/eslint-config": "^21.1.0", + "@types/has-symbols": "^1.0.2", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "core-js": "^2.6.12", + "eslint": "=8.8.0", + "get-own-property-symbols": "^0.9.5", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.4", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "__npminstall_done": true, + "_from": "has-tostringtag@1.0.2", + "_resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/has-tostringtag/shams.js b/.output/server/node_modules/has-tostringtag/shams.js new file mode 100644 index 0000000..809580d --- /dev/null +++ b/.output/server/node_modules/has-tostringtag/shams.js @@ -0,0 +1,8 @@ +'use strict'; + +var hasSymbols = require('has-symbols/shams'); + +/** @type {import('.')} */ +module.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; +}; diff --git a/.output/server/node_modules/hasown/index.js b/.output/server/node_modules/hasown/index.js new file mode 100644 index 0000000..34e6059 --- /dev/null +++ b/.output/server/node_modules/hasown/index.js @@ -0,0 +1,8 @@ +'use strict'; + +var call = Function.prototype.call; +var $hasOwn = Object.prototype.hasOwnProperty; +var bind = require('function-bind'); + +/** @type {import('.')} */ +module.exports = bind.call(call, $hasOwn); diff --git a/.output/server/node_modules/hasown/package.json b/.output/server/node_modules/hasown/package.json new file mode 100644 index 0000000..3c203fe --- /dev/null +++ b/.output/server/node_modules/hasown/package.json @@ -0,0 +1,95 @@ +{ + "name": "hasown", + "version": "2.0.2", + "description": "A robust, ES3 compatible, \"has own property\" predicate.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "index.d.ts", + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", + "postlint": "npm run tsc", + "pretest": "npm run lint", + "tsc": "tsc -p .", + "posttsc": "attw -P", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "aud --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/inspect-js/hasOwn.git" + }, + "keywords": [ + "has", + "hasOwnProperty", + "hasOwn", + "has-own", + "own", + "has", + "property", + "in", + "javascript", + "ecmascript" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/hasOwn/issues" + }, + "homepage": "https://github.com/inspect-js/hasOwn#readme", + "dependencies": { + "function-bind": "^1.1.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.15.1", + "@ljharb/eslint-config": "^21.1.0", + "@ljharb/tsconfig": "^0.2.0", + "@types/function-bind": "^1.1.10", + "@types/mock-property": "^1.0.2", + "@types/tape": "^5.6.4", + "aud": "^2.0.4", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "mock-property": "^1.0.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.7.5", + "typescript": "next" + }, + "engines": { + "node": ">= 0.4" + }, + "testling": { + "files": "test/index.js" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "test" + ] + }, + "__npminstall_done": true, + "_from": "hasown@2.0.2", + "_resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/hookable/dist/index.mjs b/.output/server/node_modules/hookable/dist/index.mjs new file mode 100644 index 0000000..6695406 --- /dev/null +++ b/.output/server/node_modules/hookable/dist/index.mjs @@ -0,0 +1,290 @@ +function flatHooks(configHooks, hooks = {}, parentName) { + for (const key in configHooks) { + const subHook = configHooks[key]; + const name = parentName ? `${parentName}:${key}` : key; + if (typeof subHook === "object" && subHook !== null) { + flatHooks(subHook, hooks, name); + } else if (typeof subHook === "function") { + hooks[name] = subHook; + } + } + return hooks; +} +function mergeHooks(...hooks) { + const finalHooks = {}; + for (const hook of hooks) { + const flatenHook = flatHooks(hook); + for (const key in flatenHook) { + if (finalHooks[key]) { + finalHooks[key].push(flatenHook[key]); + } else { + finalHooks[key] = [flatenHook[key]]; + } + } + } + for (const key in finalHooks) { + if (finalHooks[key].length > 1) { + const array = finalHooks[key]; + finalHooks[key] = (...arguments_) => serial(array, (function_) => function_(...arguments_)); + } else { + finalHooks[key] = finalHooks[key][0]; + } + } + return finalHooks; +} +function serial(tasks, function_) { + return tasks.reduce( + (promise, task) => promise.then(() => function_(task)), + Promise.resolve() + ); +} +const defaultTask = { run: (function_) => function_() }; +const _createTask = () => defaultTask; +const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask; +function serialTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return hooks.reduce( + (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), + Promise.resolve() + ); +} +function parallelTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return Promise.all(hooks.map((hook) => task.run(() => hook(...args)))); +} +function serialCaller(hooks, arguments_) { + return hooks.reduce( + (promise, hookFunction) => promise.then(() => hookFunction(...arguments_ || [])), + Promise.resolve() + ); +} +function parallelCaller(hooks, args) { + return Promise.all(hooks.map((hook) => hook(...args || []))); +} +function callEachWith(callbacks, arg0) { + for (const callback of [...callbacks]) { + callback(arg0); + } +} + +class Hookable { + constructor() { + this._hooks = {}; + this._before = void 0; + this._after = void 0; + this._deprecatedMessages = void 0; + this._deprecatedHooks = {}; + this.hook = this.hook.bind(this); + this.callHook = this.callHook.bind(this); + this.callHookWith = this.callHookWith.bind(this); + } + hook(name, function_, options = {}) { + if (!name || typeof function_ !== "function") { + return () => { + }; + } + const originalName = name; + let dep; + while (this._deprecatedHooks[name]) { + dep = this._deprecatedHooks[name]; + name = dep.to; + } + if (dep && !options.allowDeprecated) { + let message = dep.message; + if (!message) { + message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : ""); + } + if (!this._deprecatedMessages) { + this._deprecatedMessages = /* @__PURE__ */ new Set(); + } + if (!this._deprecatedMessages.has(message)) { + console.warn(message); + this._deprecatedMessages.add(message); + } + } + if (!function_.name) { + try { + Object.defineProperty(function_, "name", { + get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb", + configurable: true + }); + } catch { + } + } + this._hooks[name] = this._hooks[name] || []; + this._hooks[name].push(function_); + return () => { + if (function_) { + this.removeHook(name, function_); + function_ = void 0; + } + }; + } + hookOnce(name, function_) { + let _unreg; + let _function = (...arguments_) => { + if (typeof _unreg === "function") { + _unreg(); + } + _unreg = void 0; + _function = void 0; + return function_(...arguments_); + }; + _unreg = this.hook(name, _function); + return _unreg; + } + removeHook(name, function_) { + if (this._hooks[name]) { + const index = this._hooks[name].indexOf(function_); + if (index !== -1) { + this._hooks[name].splice(index, 1); + } + if (this._hooks[name].length === 0) { + delete this._hooks[name]; + } + } + } + deprecateHook(name, deprecated) { + this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated; + const _hooks = this._hooks[name] || []; + delete this._hooks[name]; + for (const hook of _hooks) { + this.hook(name, hook); + } + } + deprecateHooks(deprecatedHooks) { + Object.assign(this._deprecatedHooks, deprecatedHooks); + for (const name in deprecatedHooks) { + this.deprecateHook(name, deprecatedHooks[name]); + } + } + addHooks(configHooks) { + const hooks = flatHooks(configHooks); + const removeFns = Object.keys(hooks).map( + (key) => this.hook(key, hooks[key]) + ); + return () => { + for (const unreg of removeFns.splice(0, removeFns.length)) { + unreg(); + } + }; + } + removeHooks(configHooks) { + const hooks = flatHooks(configHooks); + for (const key in hooks) { + this.removeHook(key, hooks[key]); + } + } + removeAllHooks() { + for (const key in this._hooks) { + delete this._hooks[key]; + } + } + callHook(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(serialTaskCaller, name, ...arguments_); + } + callHookParallel(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(parallelTaskCaller, name, ...arguments_); + } + callHookWith(caller, name, ...arguments_) { + const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0; + if (this._before) { + callEachWith(this._before, event); + } + const result = caller( + name in this._hooks ? [...this._hooks[name]] : [], + arguments_ + ); + if (result instanceof Promise) { + return result.finally(() => { + if (this._after && event) { + callEachWith(this._after, event); + } + }); + } + if (this._after && event) { + callEachWith(this._after, event); + } + return result; + } + beforeEach(function_) { + this._before = this._before || []; + this._before.push(function_); + return () => { + if (this._before !== void 0) { + const index = this._before.indexOf(function_); + if (index !== -1) { + this._before.splice(index, 1); + } + } + }; + } + afterEach(function_) { + this._after = this._after || []; + this._after.push(function_); + return () => { + if (this._after !== void 0) { + const index = this._after.indexOf(function_); + if (index !== -1) { + this._after.splice(index, 1); + } + } + }; + } +} +function createHooks() { + return new Hookable(); +} + +const isBrowser = typeof window !== "undefined"; +function createDebugger(hooks, _options = {}) { + const options = { + inspect: isBrowser, + group: isBrowser, + filter: () => true, + ..._options + }; + const _filter = options.filter; + const filter = typeof _filter === "string" ? (name) => name.startsWith(_filter) : _filter; + const _tag = options.tag ? `[${options.tag}] ` : ""; + const logPrefix = (event) => _tag + event.name + "".padEnd(event._id, "\0"); + const _idCtr = {}; + const unsubscribeBefore = hooks.beforeEach((event) => { + if (filter !== void 0 && !filter(event.name)) { + return; + } + _idCtr[event.name] = _idCtr[event.name] || 0; + event._id = _idCtr[event.name]++; + console.time(logPrefix(event)); + }); + const unsubscribeAfter = hooks.afterEach((event) => { + if (filter !== void 0 && !filter(event.name)) { + return; + } + if (options.group) { + console.groupCollapsed(event.name); + } + if (options.inspect) { + console.timeLog(logPrefix(event), event.args); + } else { + console.timeEnd(logPrefix(event)); + } + if (options.group) { + console.groupEnd(); + } + _idCtr[event.name]--; + }); + return { + /** Stop debugging and remove listeners */ + close: () => { + unsubscribeBefore(); + unsubscribeAfter(); + } + }; +} + +export { Hookable, createDebugger, createHooks, flatHooks, mergeHooks, parallelCaller, serial, serialCaller }; diff --git a/.output/server/node_modules/hookable/package.json b/.output/server/node_modules/hookable/package.json new file mode 100644 index 0000000..bb7c509 --- /dev/null +++ b/.output/server/node_modules/hookable/package.json @@ -0,0 +1,52 @@ +{ + "name": "hookable", + "version": "5.5.3", + "description": "Awaitable hook system", + "keywords": [ + "hook", + "hookable", + "plugin", + "tapable", + "tappable" + ], + "repository": "unjs/hookable", + "license": "MIT", + "exports": { + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "require": "./dist/index.cjs" + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "devDependencies": { + "@types/node": "^18.15.11", + "@vitest/coverage-c8": "^0.29.8", + "changelogen": "^0.5.2", + "eslint": "^8.37.0", + "eslint-config-unjs": "^0.1.0", + "expect-type": "^0.15.0", + "prettier": "^2.8.7", + "typescript": "^5.0.2", + "unbuild": "^1.1.2", + "vite": "^4.2.1", + "vitest": "^0.29.8" + }, + "packageManager": "pnpm@8.0.0", + "scripts": { + "build": "unbuild", + "dev": "vitest", + "lint": "eslint --cache --ext .ts,.js,.mjs,.cjs . && prettier -c src test", + "lint:fix": "eslint --cache --ext .ts,.js,.mjs,.cjs . --fix && prettier -c src test -w", + "prepublish": "pnpm build", + "release": "pnpm test && pnpm build && changelogen --release --push && pnpm publish", + "test": "pnpm lint && vitest run --coverage", + "test:types": "tsc --noEmit" + }, + "__npminstall_done": true, + "_from": "hookable@5.5.3", + "_resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/math-intrinsics/abs.js b/.output/server/node_modules/math-intrinsics/abs.js new file mode 100644 index 0000000..a751424 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/abs.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./abs')} */ +module.exports = Math.abs; diff --git a/.output/server/node_modules/math-intrinsics/floor.js b/.output/server/node_modules/math-intrinsics/floor.js new file mode 100644 index 0000000..ab0e5d7 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/floor.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./floor')} */ +module.exports = Math.floor; diff --git a/.output/server/node_modules/math-intrinsics/isNaN.js b/.output/server/node_modules/math-intrinsics/isNaN.js new file mode 100644 index 0000000..e36475c --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/isNaN.js @@ -0,0 +1,6 @@ +'use strict'; + +/** @type {import('./isNaN')} */ +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; diff --git a/.output/server/node_modules/math-intrinsics/max.js b/.output/server/node_modules/math-intrinsics/max.js new file mode 100644 index 0000000..edb55df --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/max.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./max')} */ +module.exports = Math.max; diff --git a/.output/server/node_modules/math-intrinsics/min.js b/.output/server/node_modules/math-intrinsics/min.js new file mode 100644 index 0000000..5a4a7c7 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/min.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./min')} */ +module.exports = Math.min; diff --git a/.output/server/node_modules/math-intrinsics/package.json b/.output/server/node_modules/math-intrinsics/package.json new file mode 100644 index 0000000..5b75632 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/package.json @@ -0,0 +1,89 @@ +{ + "name": "math-intrinsics", + "version": "1.1.0", + "description": "ES Math-related intrinsics and helpers, robustly cached.", + "main": false, + "exports": { + "./abs": "./abs.js", + "./floor": "./floor.js", + "./isFinite": "./isFinite.js", + "./isInteger": "./isInteger.js", + "./isNaN": "./isNaN.js", + "./isNegativeZero": "./isNegativeZero.js", + "./max": "./max.js", + "./min": "./min.js", + "./mod": "./mod.js", + "./pow": "./pow.js", + "./sign": "./sign.js", + "./round": "./round.js", + "./constants/maxArrayLength": "./constants/maxArrayLength.js", + "./constants/maxSafeInteger": "./constants/maxSafeInteger.js", + "./constants/maxValue": "./constants/maxValue.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@'>= 10.2' audit --production", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc && attw -P", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/es-shims/math-intrinsics.git" + }, + "author": "Jordan Harband <ljharb@gmail.com>", + "license": "MIT", + "bugs": { + "url": "https://github.com/es-shims/math-intrinsics/issues" + }, + "homepage": "https://github.com/es-shims/math-intrinsics#readme", + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/for-each": "^0.3.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.8.0", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.5.0", + "eslint": "^8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "math-intrinsics@1.1.0", + "_resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/math-intrinsics/pow.js b/.output/server/node_modules/math-intrinsics/pow.js new file mode 100644 index 0000000..c0a4103 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/pow.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./pow')} */ +module.exports = Math.pow; diff --git a/.output/server/node_modules/math-intrinsics/round.js b/.output/server/node_modules/math-intrinsics/round.js new file mode 100644 index 0000000..b792156 --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/round.js @@ -0,0 +1,4 @@ +'use strict'; + +/** @type {import('./round')} */ +module.exports = Math.round; diff --git a/.output/server/node_modules/math-intrinsics/sign.js b/.output/server/node_modules/math-intrinsics/sign.js new file mode 100644 index 0000000..9e5173c --- /dev/null +++ b/.output/server/node_modules/math-intrinsics/sign.js @@ -0,0 +1,11 @@ +'use strict'; + +var $isNaN = require('./isNaN'); + +/** @type {import('./sign')} */ +module.exports = function sign(number) { + if ($isNaN(number) || number === 0) { + return number; + } + return number < 0 ? -1 : +1; +}; diff --git a/.output/server/node_modules/mime-db/db.json b/.output/server/node_modules/mime-db/db.json new file mode 100644 index 0000000..eb9c42c --- /dev/null +++ b/.output/server/node_modules/mime-db/db.json @@ -0,0 +1,8519 @@ +{ + "application/1d-interleaved-parityfec": { + "source": "iana" + }, + "application/3gpdash-qoe-report+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/3gpp-ims+xml": { + "source": "iana", + "compressible": true + }, + "application/3gpphal+json": { + "source": "iana", + "compressible": true + }, + "application/3gpphalforms+json": { + "source": "iana", + "compressible": true + }, + "application/a2l": { + "source": "iana" + }, + "application/ace+cbor": { + "source": "iana" + }, + "application/activemessage": { + "source": "iana" + }, + "application/activity+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-costmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-directory+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcost+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointcostparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointprop+json": { + "source": "iana", + "compressible": true + }, + "application/alto-endpointpropparams+json": { + "source": "iana", + "compressible": true + }, + "application/alto-error+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmap+json": { + "source": "iana", + "compressible": true + }, + "application/alto-networkmapfilter+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamcontrol+json": { + "source": "iana", + "compressible": true + }, + "application/alto-updatestreamparams+json": { + "source": "iana", + "compressible": true + }, + "application/aml": { + "source": "iana" + }, + "application/andrew-inset": { + "source": "iana", + "extensions": ["ez"] + }, + "application/applefile": { + "source": "iana" + }, + "application/applixware": { + "source": "apache", + "extensions": ["aw"] + }, + "application/at+jwt": { + "source": "iana" + }, + "application/atf": { + "source": "iana" + }, + "application/atfx": { + "source": "iana" + }, + "application/atom+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atom"] + }, + "application/atomcat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomcat"] + }, + "application/atomdeleted+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomdeleted"] + }, + "application/atomicmail": { + "source": "iana" + }, + "application/atomsvc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["atomsvc"] + }, + "application/atsc-dwd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dwd"] + }, + "application/atsc-dynamic-event-message": { + "source": "iana" + }, + "application/atsc-held+xml": { + "source": "iana", + "compressible": true, + "extensions": ["held"] + }, + "application/atsc-rdt+json": { + "source": "iana", + "compressible": true + }, + "application/atsc-rsat+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsat"] + }, + "application/atxml": { + "source": "iana" + }, + "application/auth-policy+xml": { + "source": "iana", + "compressible": true + }, + "application/bacnet-xdd+zip": { + "source": "iana", + "compressible": false + }, + "application/batch-smtp": { + "source": "iana" + }, + "application/bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/beep+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/calendar+json": { + "source": "iana", + "compressible": true + }, + "application/calendar+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xcs"] + }, + "application/call-completion": { + "source": "iana" + }, + "application/cals-1840": { + "source": "iana" + }, + "application/captive+json": { + "source": "iana", + "compressible": true + }, + "application/cbor": { + "source": "iana" + }, + "application/cbor-seq": { + "source": "iana" + }, + "application/cccex": { + "source": "iana" + }, + "application/ccmp+xml": { + "source": "iana", + "compressible": true + }, + "application/ccxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ccxml"] + }, + "application/cdfx+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdfx"] + }, + "application/cdmi-capability": { + "source": "iana", + "extensions": ["cdmia"] + }, + "application/cdmi-container": { + "source": "iana", + "extensions": ["cdmic"] + }, + "application/cdmi-domain": { + "source": "iana", + "extensions": ["cdmid"] + }, + "application/cdmi-object": { + "source": "iana", + "extensions": ["cdmio"] + }, + "application/cdmi-queue": { + "source": "iana", + "extensions": ["cdmiq"] + }, + "application/cdni": { + "source": "iana" + }, + "application/cea": { + "source": "iana" + }, + "application/cea-2018+xml": { + "source": "iana", + "compressible": true + }, + "application/cellml+xml": { + "source": "iana", + "compressible": true + }, + "application/cfw": { + "source": "iana" + }, + "application/city+json": { + "source": "iana", + "compressible": true + }, + "application/clr": { + "source": "iana" + }, + "application/clue+xml": { + "source": "iana", + "compressible": true + }, + "application/clue_info+xml": { + "source": "iana", + "compressible": true + }, + "application/cms": { + "source": "iana" + }, + "application/cnrp+xml": { + "source": "iana", + "compressible": true + }, + "application/coap-group+json": { + "source": "iana", + "compressible": true + }, + "application/coap-payload": { + "source": "iana" + }, + "application/commonground": { + "source": "iana" + }, + "application/conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/cose": { + "source": "iana" + }, + "application/cose-key": { + "source": "iana" + }, + "application/cose-key-set": { + "source": "iana" + }, + "application/cpl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cpl"] + }, + "application/csrattrs": { + "source": "iana" + }, + "application/csta+xml": { + "source": "iana", + "compressible": true + }, + "application/cstadata+xml": { + "source": "iana", + "compressible": true + }, + "application/csvm+json": { + "source": "iana", + "compressible": true + }, + "application/cu-seeme": { + "source": "apache", + "extensions": ["cu"] + }, + "application/cwt": { + "source": "iana" + }, + "application/cybercash": { + "source": "iana" + }, + "application/dart": { + "compressible": true + }, + "application/dash+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpd"] + }, + "application/dash-patch+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpp"] + }, + "application/dashdelta": { + "source": "iana" + }, + "application/davmount+xml": { + "source": "iana", + "compressible": true, + "extensions": ["davmount"] + }, + "application/dca-rft": { + "source": "iana" + }, + "application/dcd": { + "source": "iana" + }, + "application/dec-dx": { + "source": "iana" + }, + "application/dialog-info+xml": { + "source": "iana", + "compressible": true + }, + "application/dicom": { + "source": "iana" + }, + "application/dicom+json": { + "source": "iana", + "compressible": true + }, + "application/dicom+xml": { + "source": "iana", + "compressible": true + }, + "application/dii": { + "source": "iana" + }, + "application/dit": { + "source": "iana" + }, + "application/dns": { + "source": "iana" + }, + "application/dns+json": { + "source": "iana", + "compressible": true + }, + "application/dns-message": { + "source": "iana" + }, + "application/docbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dbk"] + }, + "application/dots+cbor": { + "source": "iana" + }, + "application/dskpp+xml": { + "source": "iana", + "compressible": true + }, + "application/dssc+der": { + "source": "iana", + "extensions": ["dssc"] + }, + "application/dssc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdssc"] + }, + "application/dvcs": { + "source": "iana" + }, + "application/ecmascript": { + "source": "iana", + "compressible": true, + "extensions": ["es","ecma"] + }, + "application/edi-consent": { + "source": "iana" + }, + "application/edi-x12": { + "source": "iana", + "compressible": false + }, + "application/edifact": { + "source": "iana", + "compressible": false + }, + "application/efi": { + "source": "iana" + }, + "application/elm+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/elm+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.cap+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/emergencycalldata.comment+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.control+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.deviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.ecall.msd": { + "source": "iana" + }, + "application/emergencycalldata.providerinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.serviceinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.subscriberinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/emergencycalldata.veds+xml": { + "source": "iana", + "compressible": true + }, + "application/emma+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emma"] + }, + "application/emotionml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["emotionml"] + }, + "application/encaprtp": { + "source": "iana" + }, + "application/epp+xml": { + "source": "iana", + "compressible": true + }, + "application/epub+zip": { + "source": "iana", + "compressible": false, + "extensions": ["epub"] + }, + "application/eshop": { + "source": "iana" + }, + "application/exi": { + "source": "iana", + "extensions": ["exi"] + }, + "application/expect-ct-report+json": { + "source": "iana", + "compressible": true + }, + "application/express": { + "source": "iana", + "extensions": ["exp"] + }, + "application/fastinfoset": { + "source": "iana" + }, + "application/fastsoap": { + "source": "iana" + }, + "application/fdt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fdt"] + }, + "application/fhir+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fhir+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/fido.trusted-apps+json": { + "compressible": true + }, + "application/fits": { + "source": "iana" + }, + "application/flexfec": { + "source": "iana" + }, + "application/font-sfnt": { + "source": "iana" + }, + "application/font-tdpfr": { + "source": "iana", + "extensions": ["pfr"] + }, + "application/font-woff": { + "source": "iana", + "compressible": false + }, + "application/framework-attributes+xml": { + "source": "iana", + "compressible": true + }, + "application/geo+json": { + "source": "iana", + "compressible": true, + "extensions": ["geojson"] + }, + "application/geo+json-seq": { + "source": "iana" + }, + "application/geopackage+sqlite3": { + "source": "iana" + }, + "application/geoxacml+xml": { + "source": "iana", + "compressible": true + }, + "application/gltf-buffer": { + "source": "iana" + }, + "application/gml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["gml"] + }, + "application/gpx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["gpx"] + }, + "application/gxf": { + "source": "apache", + "extensions": ["gxf"] + }, + "application/gzip": { + "source": "iana", + "compressible": false, + "extensions": ["gz"] + }, + "application/h224": { + "source": "iana" + }, + "application/held+xml": { + "source": "iana", + "compressible": true + }, + "application/hjson": { + "extensions": ["hjson"] + }, + "application/http": { + "source": "iana" + }, + "application/hyperstudio": { + "source": "iana", + "extensions": ["stk"] + }, + "application/ibe-key-request+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pkg-reply+xml": { + "source": "iana", + "compressible": true + }, + "application/ibe-pp-data": { + "source": "iana" + }, + "application/iges": { + "source": "iana" + }, + "application/im-iscomposing+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/index": { + "source": "iana" + }, + "application/index.cmd": { + "source": "iana" + }, + "application/index.obj": { + "source": "iana" + }, + "application/index.response": { + "source": "iana" + }, + "application/index.vnd": { + "source": "iana" + }, + "application/inkml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ink","inkml"] + }, + "application/iotp": { + "source": "iana" + }, + "application/ipfix": { + "source": "iana", + "extensions": ["ipfix"] + }, + "application/ipp": { + "source": "iana" + }, + "application/isup": { + "source": "iana" + }, + "application/its+xml": { + "source": "iana", + "compressible": true, + "extensions": ["its"] + }, + "application/java-archive": { + "source": "apache", + "compressible": false, + "extensions": ["jar","war","ear"] + }, + "application/java-serialized-object": { + "source": "apache", + "compressible": false, + "extensions": ["ser"] + }, + "application/java-vm": { + "source": "apache", + "compressible": false, + "extensions": ["class"] + }, + "application/javascript": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["js","mjs"] + }, + "application/jf2feed+json": { + "source": "iana", + "compressible": true + }, + "application/jose": { + "source": "iana" + }, + "application/jose+json": { + "source": "iana", + "compressible": true + }, + "application/jrd+json": { + "source": "iana", + "compressible": true + }, + "application/jscalendar+json": { + "source": "iana", + "compressible": true + }, + "application/json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["json","map"] + }, + "application/json-patch+json": { + "source": "iana", + "compressible": true + }, + "application/json-seq": { + "source": "iana" + }, + "application/json5": { + "extensions": ["json5"] + }, + "application/jsonml+json": { + "source": "apache", + "compressible": true, + "extensions": ["jsonml"] + }, + "application/jwk+json": { + "source": "iana", + "compressible": true + }, + "application/jwk-set+json": { + "source": "iana", + "compressible": true + }, + "application/jwt": { + "source": "iana" + }, + "application/kpml-request+xml": { + "source": "iana", + "compressible": true + }, + "application/kpml-response+xml": { + "source": "iana", + "compressible": true + }, + "application/ld+json": { + "source": "iana", + "compressible": true, + "extensions": ["jsonld"] + }, + "application/lgr+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lgr"] + }, + "application/link-format": { + "source": "iana" + }, + "application/load-control+xml": { + "source": "iana", + "compressible": true + }, + "application/lost+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lostxml"] + }, + "application/lostsync+xml": { + "source": "iana", + "compressible": true + }, + "application/lpf+zip": { + "source": "iana", + "compressible": false + }, + "application/lxf": { + "source": "iana" + }, + "application/mac-binhex40": { + "source": "iana", + "extensions": ["hqx"] + }, + "application/mac-compactpro": { + "source": "apache", + "extensions": ["cpt"] + }, + "application/macwriteii": { + "source": "iana" + }, + "application/mads+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mads"] + }, + "application/manifest+json": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["webmanifest"] + }, + "application/marc": { + "source": "iana", + "extensions": ["mrc"] + }, + "application/marcxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mrcx"] + }, + "application/mathematica": { + "source": "iana", + "extensions": ["ma","nb","mb"] + }, + "application/mathml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mathml"] + }, + "application/mathml-content+xml": { + "source": "iana", + "compressible": true + }, + "application/mathml-presentation+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-associated-procedure-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-deregister+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-envelope+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-msk-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-protection-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-reception-report+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-register-response+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-schedule+xml": { + "source": "iana", + "compressible": true + }, + "application/mbms-user-service-description+xml": { + "source": "iana", + "compressible": true + }, + "application/mbox": { + "source": "iana", + "extensions": ["mbox"] + }, + "application/media-policy-dataset+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpf"] + }, + "application/media_control+xml": { + "source": "iana", + "compressible": true + }, + "application/mediaservercontrol+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mscml"] + }, + "application/merge-patch+json": { + "source": "iana", + "compressible": true + }, + "application/metalink+xml": { + "source": "apache", + "compressible": true, + "extensions": ["metalink"] + }, + "application/metalink4+xml": { + "source": "iana", + "compressible": true, + "extensions": ["meta4"] + }, + "application/mets+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mets"] + }, + "application/mf4": { + "source": "iana" + }, + "application/mikey": { + "source": "iana" + }, + "application/mipc": { + "source": "iana" + }, + "application/missing-blocks+cbor-seq": { + "source": "iana" + }, + "application/mmt-aei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["maei"] + }, + "application/mmt-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musd"] + }, + "application/mods+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mods"] + }, + "application/moss-keys": { + "source": "iana" + }, + "application/moss-signature": { + "source": "iana" + }, + "application/mosskey-data": { + "source": "iana" + }, + "application/mosskey-request": { + "source": "iana" + }, + "application/mp21": { + "source": "iana", + "extensions": ["m21","mp21"] + }, + "application/mp4": { + "source": "iana", + "extensions": ["mp4s","m4p"] + }, + "application/mpeg4-generic": { + "source": "iana" + }, + "application/mpeg4-iod": { + "source": "iana" + }, + "application/mpeg4-iod-xmt": { + "source": "iana" + }, + "application/mrb-consumer+xml": { + "source": "iana", + "compressible": true + }, + "application/mrb-publish+xml": { + "source": "iana", + "compressible": true + }, + "application/msc-ivr+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msc-mixer+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/msword": { + "source": "iana", + "compressible": false, + "extensions": ["doc","dot"] + }, + "application/mud+json": { + "source": "iana", + "compressible": true + }, + "application/multipart-core": { + "source": "iana" + }, + "application/mxf": { + "source": "iana", + "extensions": ["mxf"] + }, + "application/n-quads": { + "source": "iana", + "extensions": ["nq"] + }, + "application/n-triples": { + "source": "iana", + "extensions": ["nt"] + }, + "application/nasdata": { + "source": "iana" + }, + "application/news-checkgroups": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-groupinfo": { + "source": "iana", + "charset": "US-ASCII" + }, + "application/news-transmission": { + "source": "iana" + }, + "application/nlsml+xml": { + "source": "iana", + "compressible": true + }, + "application/node": { + "source": "iana", + "extensions": ["cjs"] + }, + "application/nss": { + "source": "iana" + }, + "application/oauth-authz-req+jwt": { + "source": "iana" + }, + "application/oblivious-dns-message": { + "source": "iana" + }, + "application/ocsp-request": { + "source": "iana" + }, + "application/ocsp-response": { + "source": "iana" + }, + "application/octet-stream": { + "source": "iana", + "compressible": false, + "extensions": ["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"] + }, + "application/oda": { + "source": "iana", + "extensions": ["oda"] + }, + "application/odm+xml": { + "source": "iana", + "compressible": true + }, + "application/odx": { + "source": "iana" + }, + "application/oebps-package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["opf"] + }, + "application/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogx"] + }, + "application/omdoc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["omdoc"] + }, + "application/onenote": { + "source": "apache", + "extensions": ["onetoc","onetoc2","onetmp","onepkg"] + }, + "application/opc-nodeset+xml": { + "source": "iana", + "compressible": true + }, + "application/oscore": { + "source": "iana" + }, + "application/oxps": { + "source": "iana", + "extensions": ["oxps"] + }, + "application/p21": { + "source": "iana" + }, + "application/p21+zip": { + "source": "iana", + "compressible": false + }, + "application/p2p-overlay+xml": { + "source": "iana", + "compressible": true, + "extensions": ["relo"] + }, + "application/parityfec": { + "source": "iana" + }, + "application/passport": { + "source": "iana" + }, + "application/patch-ops-error+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xer"] + }, + "application/pdf": { + "source": "iana", + "compressible": false, + "extensions": ["pdf"] + }, + "application/pdx": { + "source": "iana" + }, + "application/pem-certificate-chain": { + "source": "iana" + }, + "application/pgp-encrypted": { + "source": "iana", + "compressible": false, + "extensions": ["pgp"] + }, + "application/pgp-keys": { + "source": "iana", + "extensions": ["asc"] + }, + "application/pgp-signature": { + "source": "iana", + "extensions": ["asc","sig"] + }, + "application/pics-rules": { + "source": "apache", + "extensions": ["prf"] + }, + "application/pidf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pidf-diff+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/pkcs10": { + "source": "iana", + "extensions": ["p10"] + }, + "application/pkcs12": { + "source": "iana" + }, + "application/pkcs7-mime": { + "source": "iana", + "extensions": ["p7m","p7c"] + }, + "application/pkcs7-signature": { + "source": "iana", + "extensions": ["p7s"] + }, + "application/pkcs8": { + "source": "iana", + "extensions": ["p8"] + }, + "application/pkcs8-encrypted": { + "source": "iana" + }, + "application/pkix-attr-cert": { + "source": "iana", + "extensions": ["ac"] + }, + "application/pkix-cert": { + "source": "iana", + "extensions": ["cer"] + }, + "application/pkix-crl": { + "source": "iana", + "extensions": ["crl"] + }, + "application/pkix-pkipath": { + "source": "iana", + "extensions": ["pkipath"] + }, + "application/pkixcmp": { + "source": "iana", + "extensions": ["pki"] + }, + "application/pls+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pls"] + }, + "application/poc-settings+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/postscript": { + "source": "iana", + "compressible": true, + "extensions": ["ai","eps","ps"] + }, + "application/ppsp-tracker+json": { + "source": "iana", + "compressible": true + }, + "application/problem+json": { + "source": "iana", + "compressible": true + }, + "application/problem+xml": { + "source": "iana", + "compressible": true + }, + "application/provenance+xml": { + "source": "iana", + "compressible": true, + "extensions": ["provx"] + }, + "application/prs.alvestrand.titrax-sheet": { + "source": "iana" + }, + "application/prs.cww": { + "source": "iana", + "extensions": ["cww"] + }, + "application/prs.cyn": { + "source": "iana", + "charset": "7-BIT" + }, + "application/prs.hpub+zip": { + "source": "iana", + "compressible": false + }, + "application/prs.nprend": { + "source": "iana" + }, + "application/prs.plucker": { + "source": "iana" + }, + "application/prs.rdf-xml-crypt": { + "source": "iana" + }, + "application/prs.xsf+xml": { + "source": "iana", + "compressible": true + }, + "application/pskc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["pskcxml"] + }, + "application/pvd+json": { + "source": "iana", + "compressible": true + }, + "application/qsig": { + "source": "iana" + }, + "application/raml+yaml": { + "compressible": true, + "extensions": ["raml"] + }, + "application/raptorfec": { + "source": "iana" + }, + "application/rdap+json": { + "source": "iana", + "compressible": true + }, + "application/rdf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rdf","owl"] + }, + "application/reginfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rif"] + }, + "application/relax-ng-compact-syntax": { + "source": "iana", + "extensions": ["rnc"] + }, + "application/remote-printing": { + "source": "iana" + }, + "application/reputon+json": { + "source": "iana", + "compressible": true + }, + "application/resource-lists+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rl"] + }, + "application/resource-lists-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rld"] + }, + "application/rfc+xml": { + "source": "iana", + "compressible": true + }, + "application/riscos": { + "source": "iana" + }, + "application/rlmi+xml": { + "source": "iana", + "compressible": true + }, + "application/rls-services+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rs"] + }, + "application/route-apd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rapd"] + }, + "application/route-s-tsid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sls"] + }, + "application/route-usd+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rusd"] + }, + "application/rpki-ghostbusters": { + "source": "iana", + "extensions": ["gbr"] + }, + "application/rpki-manifest": { + "source": "iana", + "extensions": ["mft"] + }, + "application/rpki-publication": { + "source": "iana" + }, + "application/rpki-roa": { + "source": "iana", + "extensions": ["roa"] + }, + "application/rpki-updown": { + "source": "iana" + }, + "application/rsd+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rsd"] + }, + "application/rss+xml": { + "source": "apache", + "compressible": true, + "extensions": ["rss"] + }, + "application/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "application/rtploopback": { + "source": "iana" + }, + "application/rtx": { + "source": "iana" + }, + "application/samlassertion+xml": { + "source": "iana", + "compressible": true + }, + "application/samlmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/sarif+json": { + "source": "iana", + "compressible": true + }, + "application/sarif-external-properties+json": { + "source": "iana", + "compressible": true + }, + "application/sbe": { + "source": "iana" + }, + "application/sbml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sbml"] + }, + "application/scaip+xml": { + "source": "iana", + "compressible": true + }, + "application/scim+json": { + "source": "iana", + "compressible": true + }, + "application/scvp-cv-request": { + "source": "iana", + "extensions": ["scq"] + }, + "application/scvp-cv-response": { + "source": "iana", + "extensions": ["scs"] + }, + "application/scvp-vp-request": { + "source": "iana", + "extensions": ["spq"] + }, + "application/scvp-vp-response": { + "source": "iana", + "extensions": ["spp"] + }, + "application/sdp": { + "source": "iana", + "extensions": ["sdp"] + }, + "application/secevent+jwt": { + "source": "iana" + }, + "application/senml+cbor": { + "source": "iana" + }, + "application/senml+json": { + "source": "iana", + "compressible": true + }, + "application/senml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["senmlx"] + }, + "application/senml-etch+cbor": { + "source": "iana" + }, + "application/senml-etch+json": { + "source": "iana", + "compressible": true + }, + "application/senml-exi": { + "source": "iana" + }, + "application/sensml+cbor": { + "source": "iana" + }, + "application/sensml+json": { + "source": "iana", + "compressible": true + }, + "application/sensml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sensmlx"] + }, + "application/sensml-exi": { + "source": "iana" + }, + "application/sep+xml": { + "source": "iana", + "compressible": true + }, + "application/sep-exi": { + "source": "iana" + }, + "application/session-info": { + "source": "iana" + }, + "application/set-payment": { + "source": "iana" + }, + "application/set-payment-initiation": { + "source": "iana", + "extensions": ["setpay"] + }, + "application/set-registration": { + "source": "iana" + }, + "application/set-registration-initiation": { + "source": "iana", + "extensions": ["setreg"] + }, + "application/sgml": { + "source": "iana" + }, + "application/sgml-open-catalog": { + "source": "iana" + }, + "application/shf+xml": { + "source": "iana", + "compressible": true, + "extensions": ["shf"] + }, + "application/sieve": { + "source": "iana", + "extensions": ["siv","sieve"] + }, + "application/simple-filter+xml": { + "source": "iana", + "compressible": true + }, + "application/simple-message-summary": { + "source": "iana" + }, + "application/simplesymbolcontainer": { + "source": "iana" + }, + "application/sipc": { + "source": "iana" + }, + "application/slate": { + "source": "iana" + }, + "application/smil": { + "source": "iana" + }, + "application/smil+xml": { + "source": "iana", + "compressible": true, + "extensions": ["smi","smil"] + }, + "application/smpte336m": { + "source": "iana" + }, + "application/soap+fastinfoset": { + "source": "iana" + }, + "application/soap+xml": { + "source": "iana", + "compressible": true + }, + "application/sparql-query": { + "source": "iana", + "extensions": ["rq"] + }, + "application/sparql-results+xml": { + "source": "iana", + "compressible": true, + "extensions": ["srx"] + }, + "application/spdx+json": { + "source": "iana", + "compressible": true + }, + "application/spirits-event+xml": { + "source": "iana", + "compressible": true + }, + "application/sql": { + "source": "iana" + }, + "application/srgs": { + "source": "iana", + "extensions": ["gram"] + }, + "application/srgs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["grxml"] + }, + "application/sru+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sru"] + }, + "application/ssdl+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ssdl"] + }, + "application/ssml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ssml"] + }, + "application/stix+json": { + "source": "iana", + "compressible": true + }, + "application/swid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["swidtag"] + }, + "application/tamp-apex-update": { + "source": "iana" + }, + "application/tamp-apex-update-confirm": { + "source": "iana" + }, + "application/tamp-community-update": { + "source": "iana" + }, + "application/tamp-community-update-confirm": { + "source": "iana" + }, + "application/tamp-error": { + "source": "iana" + }, + "application/tamp-sequence-adjust": { + "source": "iana" + }, + "application/tamp-sequence-adjust-confirm": { + "source": "iana" + }, + "application/tamp-status-query": { + "source": "iana" + }, + "application/tamp-status-response": { + "source": "iana" + }, + "application/tamp-update": { + "source": "iana" + }, + "application/tamp-update-confirm": { + "source": "iana" + }, + "application/tar": { + "compressible": true + }, + "application/taxii+json": { + "source": "iana", + "compressible": true + }, + "application/td+json": { + "source": "iana", + "compressible": true + }, + "application/tei+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tei","teicorpus"] + }, + "application/tetra_isi": { + "source": "iana" + }, + "application/thraud+xml": { + "source": "iana", + "compressible": true, + "extensions": ["tfi"] + }, + "application/timestamp-query": { + "source": "iana" + }, + "application/timestamp-reply": { + "source": "iana" + }, + "application/timestamped-data": { + "source": "iana", + "extensions": ["tsd"] + }, + "application/tlsrpt+gzip": { + "source": "iana" + }, + "application/tlsrpt+json": { + "source": "iana", + "compressible": true + }, + "application/tnauthlist": { + "source": "iana" + }, + "application/token-introspection+jwt": { + "source": "iana" + }, + "application/toml": { + "compressible": true, + "extensions": ["toml"] + }, + "application/trickle-ice-sdpfrag": { + "source": "iana" + }, + "application/trig": { + "source": "iana", + "extensions": ["trig"] + }, + "application/ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ttml"] + }, + "application/tve-trigger": { + "source": "iana" + }, + "application/tzif": { + "source": "iana" + }, + "application/tzif-leap": { + "source": "iana" + }, + "application/ubjson": { + "compressible": false, + "extensions": ["ubj"] + }, + "application/ulpfec": { + "source": "iana" + }, + "application/urc-grpsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/urc-ressheet+xml": { + "source": "iana", + "compressible": true, + "extensions": ["rsheet"] + }, + "application/urc-targetdesc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["td"] + }, + "application/urc-uisocketdesc+xml": { + "source": "iana", + "compressible": true + }, + "application/vcard+json": { + "source": "iana", + "compressible": true + }, + "application/vcard+xml": { + "source": "iana", + "compressible": true + }, + "application/vemmi": { + "source": "iana" + }, + "application/vividence.scriptfile": { + "source": "apache" + }, + "application/vnd.1000minds.decision-model+xml": { + "source": "iana", + "compressible": true, + "extensions": ["1km"] + }, + "application/vnd.3gpp-prose+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-prose-pc3ch+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp-v2x-local-service-information": { + "source": "iana" + }, + "application/vnd.3gpp.5gnas": { + "source": "iana" + }, + "application/vnd.3gpp.access-transfer-events+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.bsf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gmop+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.gtpc": { + "source": "iana" + }, + "application/vnd.3gpp.interworking-data": { + "source": "iana" + }, + "application/vnd.3gpp.lpp": { + "source": "iana" + }, + "application/vnd.3gpp.mc-signalling-ear": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-payload": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-signalling": { + "source": "iana" + }, + "application/vnd.3gpp.mcdata-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcdata-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-floor-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-signed+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-ue-init-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcptt-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-command+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-affiliation-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-location-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-service-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-transmission-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-ue-config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mcvideo-user-profile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.mid-call+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ngap": { + "source": "iana" + }, + "application/vnd.3gpp.pfcp": { + "source": "iana" + }, + "application/vnd.3gpp.pic-bw-large": { + "source": "iana", + "extensions": ["plb"] + }, + "application/vnd.3gpp.pic-bw-small": { + "source": "iana", + "extensions": ["psb"] + }, + "application/vnd.3gpp.pic-bw-var": { + "source": "iana", + "extensions": ["pvb"] + }, + "application/vnd.3gpp.s1ap": { + "source": "iana" + }, + "application/vnd.3gpp.sms": { + "source": "iana" + }, + "application/vnd.3gpp.sms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-ext+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.srvcc-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.state-and-event-info+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp.ussd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.bcmcsinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.3gpp2.sms": { + "source": "iana" + }, + "application/vnd.3gpp2.tcap": { + "source": "iana", + "extensions": ["tcap"] + }, + "application/vnd.3lightssoftware.imagescal": { + "source": "iana" + }, + "application/vnd.3m.post-it-notes": { + "source": "iana", + "extensions": ["pwn"] + }, + "application/vnd.accpac.simply.aso": { + "source": "iana", + "extensions": ["aso"] + }, + "application/vnd.accpac.simply.imp": { + "source": "iana", + "extensions": ["imp"] + }, + "application/vnd.acucobol": { + "source": "iana", + "extensions": ["acu"] + }, + "application/vnd.acucorp": { + "source": "iana", + "extensions": ["atc","acutc"] + }, + "application/vnd.adobe.air-application-installer-package+zip": { + "source": "apache", + "compressible": false, + "extensions": ["air"] + }, + "application/vnd.adobe.flash.movie": { + "source": "iana" + }, + "application/vnd.adobe.formscentral.fcdt": { + "source": "iana", + "extensions": ["fcdt"] + }, + "application/vnd.adobe.fxp": { + "source": "iana", + "extensions": ["fxp","fxpl"] + }, + "application/vnd.adobe.partial-upload": { + "source": "iana" + }, + "application/vnd.adobe.xdp+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdp"] + }, + "application/vnd.adobe.xfdf": { + "source": "iana", + "extensions": ["xfdf"] + }, + "application/vnd.aether.imp": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata": { + "source": "iana" + }, + "application/vnd.afpc.afplinedata-pagedef": { + "source": "iana" + }, + "application/vnd.afpc.cmoca-cmresource": { + "source": "iana" + }, + "application/vnd.afpc.foca-charset": { + "source": "iana" + }, + "application/vnd.afpc.foca-codedfont": { + "source": "iana" + }, + "application/vnd.afpc.foca-codepage": { + "source": "iana" + }, + "application/vnd.afpc.modca": { + "source": "iana" + }, + "application/vnd.afpc.modca-cmtable": { + "source": "iana" + }, + "application/vnd.afpc.modca-formdef": { + "source": "iana" + }, + "application/vnd.afpc.modca-mediummap": { + "source": "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + "source": "iana" + }, + "application/vnd.afpc.modca-overlay": { + "source": "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + "source": "iana" + }, + "application/vnd.age": { + "source": "iana", + "extensions": ["age"] + }, + "application/vnd.ah-barcode": { + "source": "iana" + }, + "application/vnd.ahead.space": { + "source": "iana", + "extensions": ["ahead"] + }, + "application/vnd.airzip.filesecure.azf": { + "source": "iana", + "extensions": ["azf"] + }, + "application/vnd.airzip.filesecure.azs": { + "source": "iana", + "extensions": ["azs"] + }, + "application/vnd.amadeus+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.amazon.ebook": { + "source": "apache", + "extensions": ["azw"] + }, + "application/vnd.amazon.mobi8-ebook": { + "source": "iana" + }, + "application/vnd.americandynamics.acc": { + "source": "iana", + "extensions": ["acc"] + }, + "application/vnd.amiga.ami": { + "source": "iana", + "extensions": ["ami"] + }, + "application/vnd.amundsen.maze+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.android.ota": { + "source": "iana" + }, + "application/vnd.android.package-archive": { + "source": "apache", + "compressible": false, + "extensions": ["apk"] + }, + "application/vnd.anki": { + "source": "iana" + }, + "application/vnd.anser-web-certificate-issue-initiation": { + "source": "iana", + "extensions": ["cii"] + }, + "application/vnd.anser-web-funds-transfer-initiation": { + "source": "apache", + "extensions": ["fti"] + }, + "application/vnd.antix.game-component": { + "source": "iana", + "extensions": ["atx"] + }, + "application/vnd.apache.arrow.file": { + "source": "iana" + }, + "application/vnd.apache.arrow.stream": { + "source": "iana" + }, + "application/vnd.apache.thrift.binary": { + "source": "iana" + }, + "application/vnd.apache.thrift.compact": { + "source": "iana" + }, + "application/vnd.apache.thrift.json": { + "source": "iana" + }, + "application/vnd.api+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.aplextor.warrp+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apothekende.reservation+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.apple.installer+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mpkg"] + }, + "application/vnd.apple.keynote": { + "source": "iana", + "extensions": ["key"] + }, + "application/vnd.apple.mpegurl": { + "source": "iana", + "extensions": ["m3u8"] + }, + "application/vnd.apple.numbers": { + "source": "iana", + "extensions": ["numbers"] + }, + "application/vnd.apple.pages": { + "source": "iana", + "extensions": ["pages"] + }, + "application/vnd.apple.pkpass": { + "compressible": false, + "extensions": ["pkpass"] + }, + "application/vnd.arastra.swi": { + "source": "iana" + }, + "application/vnd.aristanetworks.swi": { + "source": "iana", + "extensions": ["swi"] + }, + "application/vnd.artisan+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.artsquare": { + "source": "iana" + }, + "application/vnd.astraea-software.iota": { + "source": "iana", + "extensions": ["iota"] + }, + "application/vnd.audiograph": { + "source": "iana", + "extensions": ["aep"] + }, + "application/vnd.autopackage": { + "source": "iana" + }, + "application/vnd.avalon+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.avistar+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.balsamiq.bmml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["bmml"] + }, + "application/vnd.balsamiq.bmpr": { + "source": "iana" + }, + "application/vnd.banana-accounting": { + "source": "iana" + }, + "application/vnd.bbf.usp.error": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg": { + "source": "iana" + }, + "application/vnd.bbf.usp.msg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bekitzur-stech+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.bint.med-content": { + "source": "iana" + }, + "application/vnd.biopax.rdf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.blink-idb-value-wrapper": { + "source": "iana" + }, + "application/vnd.blueice.multipass": { + "source": "iana", + "extensions": ["mpm"] + }, + "application/vnd.bluetooth.ep.oob": { + "source": "iana" + }, + "application/vnd.bluetooth.le.oob": { + "source": "iana" + }, + "application/vnd.bmi": { + "source": "iana", + "extensions": ["bmi"] + }, + "application/vnd.bpf": { + "source": "iana" + }, + "application/vnd.bpf3": { + "source": "iana" + }, + "application/vnd.businessobjects": { + "source": "iana", + "extensions": ["rep"] + }, + "application/vnd.byu.uapi+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cab-jscript": { + "source": "iana" + }, + "application/vnd.canon-cpdl": { + "source": "iana" + }, + "application/vnd.canon-lips": { + "source": "iana" + }, + "application/vnd.capasystems-pg+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cendio.thinlinc.clientconf": { + "source": "iana" + }, + "application/vnd.century-systems.tcp_stream": { + "source": "iana" + }, + "application/vnd.chemdraw+xml": { + "source": "iana", + "compressible": true, + "extensions": ["cdxml"] + }, + "application/vnd.chess-pgn": { + "source": "iana" + }, + "application/vnd.chipnuts.karaoke-mmd": { + "source": "iana", + "extensions": ["mmd"] + }, + "application/vnd.ciedi": { + "source": "iana" + }, + "application/vnd.cinderella": { + "source": "iana", + "extensions": ["cdy"] + }, + "application/vnd.cirpack.isdn-ext": { + "source": "iana" + }, + "application/vnd.citationstyles.style+xml": { + "source": "iana", + "compressible": true, + "extensions": ["csl"] + }, + "application/vnd.claymore": { + "source": "iana", + "extensions": ["cla"] + }, + "application/vnd.cloanto.rp9": { + "source": "iana", + "extensions": ["rp9"] + }, + "application/vnd.clonk.c4group": { + "source": "iana", + "extensions": ["c4g","c4d","c4f","c4p","c4u"] + }, + "application/vnd.cluetrust.cartomobile-config": { + "source": "iana", + "extensions": ["c11amc"] + }, + "application/vnd.cluetrust.cartomobile-config-pkg": { + "source": "iana", + "extensions": ["c11amz"] + }, + "application/vnd.coffeescript": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.document-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.presentation-template": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet": { + "source": "iana" + }, + "application/vnd.collabio.xodocuments.spreadsheet-template": { + "source": "iana" + }, + "application/vnd.collection+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.doc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.collection.next+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.comicbook+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.comicbook-rar": { + "source": "iana" + }, + "application/vnd.commerce-battelle": { + "source": "iana" + }, + "application/vnd.commonspace": { + "source": "iana", + "extensions": ["csp"] + }, + "application/vnd.contact.cmsg": { + "source": "iana", + "extensions": ["cdbcmsg"] + }, + "application/vnd.coreos.ignition+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cosmocaller": { + "source": "iana", + "extensions": ["cmc"] + }, + "application/vnd.crick.clicker": { + "source": "iana", + "extensions": ["clkx"] + }, + "application/vnd.crick.clicker.keyboard": { + "source": "iana", + "extensions": ["clkk"] + }, + "application/vnd.crick.clicker.palette": { + "source": "iana", + "extensions": ["clkp"] + }, + "application/vnd.crick.clicker.template": { + "source": "iana", + "extensions": ["clkt"] + }, + "application/vnd.crick.clicker.wordbank": { + "source": "iana", + "extensions": ["clkw"] + }, + "application/vnd.criticaltools.wbs+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wbs"] + }, + "application/vnd.cryptii.pipe+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.crypto-shade-file": { + "source": "iana" + }, + "application/vnd.cryptomator.encrypted": { + "source": "iana" + }, + "application/vnd.cryptomator.vault": { + "source": "iana" + }, + "application/vnd.ctc-posml": { + "source": "iana", + "extensions": ["pml"] + }, + "application/vnd.ctct.ws+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cups-pdf": { + "source": "iana" + }, + "application/vnd.cups-postscript": { + "source": "iana" + }, + "application/vnd.cups-ppd": { + "source": "iana", + "extensions": ["ppd"] + }, + "application/vnd.cups-raster": { + "source": "iana" + }, + "application/vnd.cups-raw": { + "source": "iana" + }, + "application/vnd.curl": { + "source": "iana" + }, + "application/vnd.curl.car": { + "source": "apache", + "extensions": ["car"] + }, + "application/vnd.curl.pcurl": { + "source": "apache", + "extensions": ["pcurl"] + }, + "application/vnd.cyan.dean.root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.cybank": { + "source": "iana" + }, + "application/vnd.cyclonedx+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.cyclonedx+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.d2l.coursepackage1p0+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.d3m-dataset": { + "source": "iana" + }, + "application/vnd.d3m-problem": { + "source": "iana" + }, + "application/vnd.dart": { + "source": "iana", + "compressible": true, + "extensions": ["dart"] + }, + "application/vnd.data-vision.rdz": { + "source": "iana", + "extensions": ["rdz"] + }, + "application/vnd.datapackage+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dataresource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dbf": { + "source": "iana", + "extensions": ["dbf"] + }, + "application/vnd.debian.binary-package": { + "source": "iana" + }, + "application/vnd.dece.data": { + "source": "iana", + "extensions": ["uvf","uvvf","uvd","uvvd"] + }, + "application/vnd.dece.ttml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uvt","uvvt"] + }, + "application/vnd.dece.unspecified": { + "source": "iana", + "extensions": ["uvx","uvvx"] + }, + "application/vnd.dece.zip": { + "source": "iana", + "extensions": ["uvz","uvvz"] + }, + "application/vnd.denovo.fcselayout-link": { + "source": "iana", + "extensions": ["fe_launch"] + }, + "application/vnd.desmume.movie": { + "source": "iana" + }, + "application/vnd.dir-bi.plate-dl-nosuffix": { + "source": "iana" + }, + "application/vnd.dm.delegation+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dna": { + "source": "iana", + "extensions": ["dna"] + }, + "application/vnd.document+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.dolby.mlp": { + "source": "apache", + "extensions": ["mlp"] + }, + "application/vnd.dolby.mobile.1": { + "source": "iana" + }, + "application/vnd.dolby.mobile.2": { + "source": "iana" + }, + "application/vnd.doremir.scorecloud-binary-document": { + "source": "iana" + }, + "application/vnd.dpgraph": { + "source": "iana", + "extensions": ["dpg"] + }, + "application/vnd.dreamfactory": { + "source": "iana", + "extensions": ["dfac"] + }, + "application/vnd.drive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ds-keypoint": { + "source": "apache", + "extensions": ["kpxx"] + }, + "application/vnd.dtg.local": { + "source": "iana" + }, + "application/vnd.dtg.local.flash": { + "source": "iana" + }, + "application/vnd.dtg.local.html": { + "source": "iana" + }, + "application/vnd.dvb.ait": { + "source": "iana", + "extensions": ["ait"] + }, + "application/vnd.dvb.dvbisl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.dvbj": { + "source": "iana" + }, + "application/vnd.dvb.esgcontainer": { + "source": "iana" + }, + "application/vnd.dvb.ipdcdftnotifaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgaccess2": { + "source": "iana" + }, + "application/vnd.dvb.ipdcesgpdd": { + "source": "iana" + }, + "application/vnd.dvb.ipdcroaming": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-base": { + "source": "iana" + }, + "application/vnd.dvb.iptv.alfec-enhancement": { + "source": "iana" + }, + "application/vnd.dvb.notif-aggregate-root+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-container+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-generic+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-msglist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-ia-registration-response+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.notif-init+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.dvb.pfr": { + "source": "iana" + }, + "application/vnd.dvb.service": { + "source": "iana", + "extensions": ["svc"] + }, + "application/vnd.dxr": { + "source": "iana" + }, + "application/vnd.dynageo": { + "source": "iana", + "extensions": ["geo"] + }, + "application/vnd.dzr": { + "source": "iana" + }, + "application/vnd.easykaraoke.cdgdownload": { + "source": "iana" + }, + "application/vnd.ecdis-update": { + "source": "iana" + }, + "application/vnd.ecip.rlp": { + "source": "iana" + }, + "application/vnd.eclipse.ditto+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ecowin.chart": { + "source": "iana", + "extensions": ["mag"] + }, + "application/vnd.ecowin.filerequest": { + "source": "iana" + }, + "application/vnd.ecowin.fileupdate": { + "source": "iana" + }, + "application/vnd.ecowin.series": { + "source": "iana" + }, + "application/vnd.ecowin.seriesrequest": { + "source": "iana" + }, + "application/vnd.ecowin.seriesupdate": { + "source": "iana" + }, + "application/vnd.efi.img": { + "source": "iana" + }, + "application/vnd.efi.iso": { + "source": "iana" + }, + "application/vnd.emclient.accessrequest+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.enliven": { + "source": "iana", + "extensions": ["nml"] + }, + "application/vnd.enphase.envoy": { + "source": "iana" + }, + "application/vnd.eprints.data+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.epson.esf": { + "source": "iana", + "extensions": ["esf"] + }, + "application/vnd.epson.msf": { + "source": "iana", + "extensions": ["msf"] + }, + "application/vnd.epson.quickanime": { + "source": "iana", + "extensions": ["qam"] + }, + "application/vnd.epson.salt": { + "source": "iana", + "extensions": ["slt"] + }, + "application/vnd.epson.ssf": { + "source": "iana", + "extensions": ["ssf"] + }, + "application/vnd.ericsson.quickcall": { + "source": "iana" + }, + "application/vnd.espass-espass+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.eszigno3+xml": { + "source": "iana", + "compressible": true, + "extensions": ["es3","et3"] + }, + "application/vnd.etsi.aoc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.asic-e+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.asic-s+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.etsi.cug+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvcommand+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-bc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-cod+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsad-npvr+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvservice+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvsync+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.iptvueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mcid+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.mheg5": { + "source": "iana" + }, + "application/vnd.etsi.overload-control-policy-dataset+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.pstn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.sci+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.simservs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.timestamp-token": { + "source": "iana" + }, + "application/vnd.etsi.tsl+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.etsi.tsl.der": { + "source": "iana" + }, + "application/vnd.eu.kasparian.car+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.eudora.data": { + "source": "iana" + }, + "application/vnd.evolv.ecig.profile": { + "source": "iana" + }, + "application/vnd.evolv.ecig.settings": { + "source": "iana" + }, + "application/vnd.evolv.ecig.theme": { + "source": "iana" + }, + "application/vnd.exstream-empower+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.exstream-package": { + "source": "iana" + }, + "application/vnd.ezpix-album": { + "source": "iana", + "extensions": ["ez2"] + }, + "application/vnd.ezpix-package": { + "source": "iana", + "extensions": ["ez3"] + }, + "application/vnd.f-secure.mobile": { + "source": "iana" + }, + "application/vnd.familysearch.gedcom+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.fastcopy-disk-image": { + "source": "iana" + }, + "application/vnd.fdf": { + "source": "iana", + "extensions": ["fdf"] + }, + "application/vnd.fdsn.mseed": { + "source": "iana", + "extensions": ["mseed"] + }, + "application/vnd.fdsn.seed": { + "source": "iana", + "extensions": ["seed","dataless"] + }, + "application/vnd.ffsns": { + "source": "iana" + }, + "application/vnd.ficlab.flb+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.filmit.zfc": { + "source": "iana" + }, + "application/vnd.fints": { + "source": "iana" + }, + "application/vnd.firemonkeys.cloudcell": { + "source": "iana" + }, + "application/vnd.flographit": { + "source": "iana", + "extensions": ["gph"] + }, + "application/vnd.fluxtime.clip": { + "source": "iana", + "extensions": ["ftc"] + }, + "application/vnd.font-fontforge-sfd": { + "source": "iana" + }, + "application/vnd.framemaker": { + "source": "iana", + "extensions": ["fm","frame","maker","book"] + }, + "application/vnd.frogans.fnc": { + "source": "iana", + "extensions": ["fnc"] + }, + "application/vnd.frogans.ltf": { + "source": "iana", + "extensions": ["ltf"] + }, + "application/vnd.fsc.weblaunch": { + "source": "iana", + "extensions": ["fsc"] + }, + "application/vnd.fujifilm.fb.docuworks": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.binder": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujifilm.fb.jfi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.fujitsu.oasys": { + "source": "iana", + "extensions": ["oas"] + }, + "application/vnd.fujitsu.oasys2": { + "source": "iana", + "extensions": ["oa2"] + }, + "application/vnd.fujitsu.oasys3": { + "source": "iana", + "extensions": ["oa3"] + }, + "application/vnd.fujitsu.oasysgp": { + "source": "iana", + "extensions": ["fg5"] + }, + "application/vnd.fujitsu.oasysprs": { + "source": "iana", + "extensions": ["bh2"] + }, + "application/vnd.fujixerox.art-ex": { + "source": "iana" + }, + "application/vnd.fujixerox.art4": { + "source": "iana" + }, + "application/vnd.fujixerox.ddd": { + "source": "iana", + "extensions": ["ddd"] + }, + "application/vnd.fujixerox.docuworks": { + "source": "iana", + "extensions": ["xdw"] + }, + "application/vnd.fujixerox.docuworks.binder": { + "source": "iana", + "extensions": ["xbd"] + }, + "application/vnd.fujixerox.docuworks.container": { + "source": "iana" + }, + "application/vnd.fujixerox.hbpl": { + "source": "iana" + }, + "application/vnd.fut-misnet": { + "source": "iana" + }, + "application/vnd.futoin+cbor": { + "source": "iana" + }, + "application/vnd.futoin+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.fuzzysheet": { + "source": "iana", + "extensions": ["fzs"] + }, + "application/vnd.genomatix.tuxedo": { + "source": "iana", + "extensions": ["txd"] + }, + "application/vnd.gentics.grd+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geo+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.geocube+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.geogebra.file": { + "source": "iana", + "extensions": ["ggb"] + }, + "application/vnd.geogebra.slides": { + "source": "iana" + }, + "application/vnd.geogebra.tool": { + "source": "iana", + "extensions": ["ggt"] + }, + "application/vnd.geometry-explorer": { + "source": "iana", + "extensions": ["gex","gre"] + }, + "application/vnd.geonext": { + "source": "iana", + "extensions": ["gxt"] + }, + "application/vnd.geoplan": { + "source": "iana", + "extensions": ["g2w"] + }, + "application/vnd.geospace": { + "source": "iana", + "extensions": ["g3w"] + }, + "application/vnd.gerber": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt": { + "source": "iana" + }, + "application/vnd.globalplatform.card-content-mgt-response": { + "source": "iana" + }, + "application/vnd.gmx": { + "source": "iana", + "extensions": ["gmx"] + }, + "application/vnd.google-apps.document": { + "compressible": false, + "extensions": ["gdoc"] + }, + "application/vnd.google-apps.presentation": { + "compressible": false, + "extensions": ["gslides"] + }, + "application/vnd.google-apps.spreadsheet": { + "compressible": false, + "extensions": ["gsheet"] + }, + "application/vnd.google-earth.kml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["kml"] + }, + "application/vnd.google-earth.kmz": { + "source": "iana", + "compressible": false, + "extensions": ["kmz"] + }, + "application/vnd.gov.sk.e-form+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.gov.sk.e-form+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.gov.sk.xmldatacontainer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.grafeq": { + "source": "iana", + "extensions": ["gqf","gqs"] + }, + "application/vnd.gridmp": { + "source": "iana" + }, + "application/vnd.groove-account": { + "source": "iana", + "extensions": ["gac"] + }, + "application/vnd.groove-help": { + "source": "iana", + "extensions": ["ghf"] + }, + "application/vnd.groove-identity-message": { + "source": "iana", + "extensions": ["gim"] + }, + "application/vnd.groove-injector": { + "source": "iana", + "extensions": ["grv"] + }, + "application/vnd.groove-tool-message": { + "source": "iana", + "extensions": ["gtm"] + }, + "application/vnd.groove-tool-template": { + "source": "iana", + "extensions": ["tpl"] + }, + "application/vnd.groove-vcard": { + "source": "iana", + "extensions": ["vcg"] + }, + "application/vnd.hal+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hal+xml": { + "source": "iana", + "compressible": true, + "extensions": ["hal"] + }, + "application/vnd.handheld-entertainment+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zmm"] + }, + "application/vnd.hbci": { + "source": "iana", + "extensions": ["hbci"] + }, + "application/vnd.hc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hcl-bireports": { + "source": "iana" + }, + "application/vnd.hdt": { + "source": "iana" + }, + "application/vnd.heroku+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hhe.lesson-player": { + "source": "iana", + "extensions": ["les"] + }, + "application/vnd.hl7cda+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hl7v2+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.hp-hpgl": { + "source": "iana", + "extensions": ["hpgl"] + }, + "application/vnd.hp-hpid": { + "source": "iana", + "extensions": ["hpid"] + }, + "application/vnd.hp-hps": { + "source": "iana", + "extensions": ["hps"] + }, + "application/vnd.hp-jlyt": { + "source": "iana", + "extensions": ["jlt"] + }, + "application/vnd.hp-pcl": { + "source": "iana", + "extensions": ["pcl"] + }, + "application/vnd.hp-pclxl": { + "source": "iana", + "extensions": ["pclxl"] + }, + "application/vnd.httphone": { + "source": "iana" + }, + "application/vnd.hydrostatix.sof-data": { + "source": "iana", + "extensions": ["sfd-hdstx"] + }, + "application/vnd.hyper+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyper-item+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hyperdrive+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.hzn-3d-crossword": { + "source": "iana" + }, + "application/vnd.ibm.afplinedata": { + "source": "iana" + }, + "application/vnd.ibm.electronic-media": { + "source": "iana" + }, + "application/vnd.ibm.minipay": { + "source": "iana", + "extensions": ["mpy"] + }, + "application/vnd.ibm.modcap": { + "source": "iana", + "extensions": ["afp","listafp","list3820"] + }, + "application/vnd.ibm.rights-management": { + "source": "iana", + "extensions": ["irm"] + }, + "application/vnd.ibm.secure-container": { + "source": "iana", + "extensions": ["sc"] + }, + "application/vnd.iccprofile": { + "source": "iana", + "extensions": ["icc","icm"] + }, + "application/vnd.ieee.1905": { + "source": "iana" + }, + "application/vnd.igloader": { + "source": "iana", + "extensions": ["igl"] + }, + "application/vnd.imagemeter.folder+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.imagemeter.image+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.immervision-ivp": { + "source": "iana", + "extensions": ["ivp"] + }, + "application/vnd.immervision-ivu": { + "source": "iana", + "extensions": ["ivu"] + }, + "application/vnd.ims.imsccv1p1": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p2": { + "source": "iana" + }, + "application/vnd.ims.imsccv1p3": { + "source": "iana" + }, + "application/vnd.ims.lis.v2.result+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolconsumerprofile+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolproxy.id+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ims.lti.v2.toolsettings.simple+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.informedcontrol.rms+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.informix-visionary": { + "source": "iana" + }, + "application/vnd.infotech.project": { + "source": "iana" + }, + "application/vnd.infotech.project+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.innopath.wamp.notification": { + "source": "iana" + }, + "application/vnd.insors.igm": { + "source": "iana", + "extensions": ["igm"] + }, + "application/vnd.intercon.formnet": { + "source": "iana", + "extensions": ["xpw","xpx"] + }, + "application/vnd.intergeo": { + "source": "iana", + "extensions": ["i2g"] + }, + "application/vnd.intertrust.digibox": { + "source": "iana" + }, + "application/vnd.intertrust.nncp": { + "source": "iana" + }, + "application/vnd.intu.qbo": { + "source": "iana", + "extensions": ["qbo"] + }, + "application/vnd.intu.qfx": { + "source": "iana", + "extensions": ["qfx"] + }, + "application/vnd.iptc.g2.catalogitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.conceptitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.knowledgeitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.newsmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.packageitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.iptc.g2.planningitem+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ipunplugged.rcprofile": { + "source": "iana", + "extensions": ["rcprofile"] + }, + "application/vnd.irepository.package+xml": { + "source": "iana", + "compressible": true, + "extensions": ["irp"] + }, + "application/vnd.is-xpr": { + "source": "iana", + "extensions": ["xpr"] + }, + "application/vnd.isac.fcs": { + "source": "iana", + "extensions": ["fcs"] + }, + "application/vnd.iso11783-10+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.jam": { + "source": "iana", + "extensions": ["jam"] + }, + "application/vnd.japannet-directory-service": { + "source": "iana" + }, + "application/vnd.japannet-jpnstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-payment-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-registration": { + "source": "iana" + }, + "application/vnd.japannet-registration-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-setstore-wakeup": { + "source": "iana" + }, + "application/vnd.japannet-verification": { + "source": "iana" + }, + "application/vnd.japannet-verification-wakeup": { + "source": "iana" + }, + "application/vnd.jcp.javame.midlet-rms": { + "source": "iana", + "extensions": ["rms"] + }, + "application/vnd.jisp": { + "source": "iana", + "extensions": ["jisp"] + }, + "application/vnd.joost.joda-archive": { + "source": "iana", + "extensions": ["joda"] + }, + "application/vnd.jsk.isdn-ngn": { + "source": "iana" + }, + "application/vnd.kahootz": { + "source": "iana", + "extensions": ["ktz","ktr"] + }, + "application/vnd.kde.karbon": { + "source": "iana", + "extensions": ["karbon"] + }, + "application/vnd.kde.kchart": { + "source": "iana", + "extensions": ["chrt"] + }, + "application/vnd.kde.kformula": { + "source": "iana", + "extensions": ["kfo"] + }, + "application/vnd.kde.kivio": { + "source": "iana", + "extensions": ["flw"] + }, + "application/vnd.kde.kontour": { + "source": "iana", + "extensions": ["kon"] + }, + "application/vnd.kde.kpresenter": { + "source": "iana", + "extensions": ["kpr","kpt"] + }, + "application/vnd.kde.kspread": { + "source": "iana", + "extensions": ["ksp"] + }, + "application/vnd.kde.kword": { + "source": "iana", + "extensions": ["kwd","kwt"] + }, + "application/vnd.kenameaapp": { + "source": "iana", + "extensions": ["htke"] + }, + "application/vnd.kidspiration": { + "source": "iana", + "extensions": ["kia"] + }, + "application/vnd.kinar": { + "source": "iana", + "extensions": ["kne","knp"] + }, + "application/vnd.koan": { + "source": "iana", + "extensions": ["skp","skd","skt","skm"] + }, + "application/vnd.kodak-descriptor": { + "source": "iana", + "extensions": ["sse"] + }, + "application/vnd.las": { + "source": "iana" + }, + "application/vnd.las.las+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.las.las+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lasxml"] + }, + "application/vnd.laszip": { + "source": "iana" + }, + "application/vnd.leap+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.liberty-request+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.llamagraphics.life-balance.desktop": { + "source": "iana", + "extensions": ["lbd"] + }, + "application/vnd.llamagraphics.life-balance.exchange+xml": { + "source": "iana", + "compressible": true, + "extensions": ["lbe"] + }, + "application/vnd.logipipe.circuit+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.loom": { + "source": "iana" + }, + "application/vnd.lotus-1-2-3": { + "source": "iana", + "extensions": ["123"] + }, + "application/vnd.lotus-approach": { + "source": "iana", + "extensions": ["apr"] + }, + "application/vnd.lotus-freelance": { + "source": "iana", + "extensions": ["pre"] + }, + "application/vnd.lotus-notes": { + "source": "iana", + "extensions": ["nsf"] + }, + "application/vnd.lotus-organizer": { + "source": "iana", + "extensions": ["org"] + }, + "application/vnd.lotus-screencam": { + "source": "iana", + "extensions": ["scm"] + }, + "application/vnd.lotus-wordpro": { + "source": "iana", + "extensions": ["lwp"] + }, + "application/vnd.macports.portpkg": { + "source": "iana", + "extensions": ["portpkg"] + }, + "application/vnd.mapbox-vector-tile": { + "source": "iana", + "extensions": ["mvt"] + }, + "application/vnd.marlin.drm.actiontoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.conftoken+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.license+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.marlin.drm.mdcf": { + "source": "iana" + }, + "application/vnd.mason+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.maxar.archive.3tz+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.maxmind.maxmind-db": { + "source": "iana" + }, + "application/vnd.mcd": { + "source": "iana", + "extensions": ["mcd"] + }, + "application/vnd.medcalcdata": { + "source": "iana", + "extensions": ["mc1"] + }, + "application/vnd.mediastation.cdkey": { + "source": "iana", + "extensions": ["cdkey"] + }, + "application/vnd.meridian-slingshot": { + "source": "iana" + }, + "application/vnd.mfer": { + "source": "iana", + "extensions": ["mwf"] + }, + "application/vnd.mfmp": { + "source": "iana", + "extensions": ["mfm"] + }, + "application/vnd.micro+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.micrografx.flo": { + "source": "iana", + "extensions": ["flo"] + }, + "application/vnd.micrografx.igx": { + "source": "iana", + "extensions": ["igx"] + }, + "application/vnd.microsoft.portable-executable": { + "source": "iana" + }, + "application/vnd.microsoft.windows.thumbnail-cache": { + "source": "iana" + }, + "application/vnd.miele+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.mif": { + "source": "iana", + "extensions": ["mif"] + }, + "application/vnd.minisoft-hp3000-save": { + "source": "iana" + }, + "application/vnd.mitsubishi.misty-guard.trustweb": { + "source": "iana" + }, + "application/vnd.mobius.daf": { + "source": "iana", + "extensions": ["daf"] + }, + "application/vnd.mobius.dis": { + "source": "iana", + "extensions": ["dis"] + }, + "application/vnd.mobius.mbk": { + "source": "iana", + "extensions": ["mbk"] + }, + "application/vnd.mobius.mqy": { + "source": "iana", + "extensions": ["mqy"] + }, + "application/vnd.mobius.msl": { + "source": "iana", + "extensions": ["msl"] + }, + "application/vnd.mobius.plc": { + "source": "iana", + "extensions": ["plc"] + }, + "application/vnd.mobius.txf": { + "source": "iana", + "extensions": ["txf"] + }, + "application/vnd.mophun.application": { + "source": "iana", + "extensions": ["mpn"] + }, + "application/vnd.mophun.certificate": { + "source": "iana", + "extensions": ["mpc"] + }, + "application/vnd.motorola.flexsuite": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.adsi": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.fis": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.gotap": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.kmr": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.ttc": { + "source": "iana" + }, + "application/vnd.motorola.flexsuite.wem": { + "source": "iana" + }, + "application/vnd.motorola.iprm": { + "source": "iana" + }, + "application/vnd.mozilla.xul+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xul"] + }, + "application/vnd.ms-3mfdocument": { + "source": "iana" + }, + "application/vnd.ms-artgalry": { + "source": "iana", + "extensions": ["cil"] + }, + "application/vnd.ms-asf": { + "source": "iana" + }, + "application/vnd.ms-cab-compressed": { + "source": "iana", + "extensions": ["cab"] + }, + "application/vnd.ms-color.iccprofile": { + "source": "apache" + }, + "application/vnd.ms-excel": { + "source": "iana", + "compressible": false, + "extensions": ["xls","xlm","xla","xlc","xlt","xlw"] + }, + "application/vnd.ms-excel.addin.macroenabled.12": { + "source": "iana", + "extensions": ["xlam"] + }, + "application/vnd.ms-excel.sheet.binary.macroenabled.12": { + "source": "iana", + "extensions": ["xlsb"] + }, + "application/vnd.ms-excel.sheet.macroenabled.12": { + "source": "iana", + "extensions": ["xlsm"] + }, + "application/vnd.ms-excel.template.macroenabled.12": { + "source": "iana", + "extensions": ["xltm"] + }, + "application/vnd.ms-fontobject": { + "source": "iana", + "compressible": true, + "extensions": ["eot"] + }, + "application/vnd.ms-htmlhelp": { + "source": "iana", + "extensions": ["chm"] + }, + "application/vnd.ms-ims": { + "source": "iana", + "extensions": ["ims"] + }, + "application/vnd.ms-lrm": { + "source": "iana", + "extensions": ["lrm"] + }, + "application/vnd.ms-office.activex+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-officetheme": { + "source": "iana", + "extensions": ["thmx"] + }, + "application/vnd.ms-opentype": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-outlook": { + "compressible": false, + "extensions": ["msg"] + }, + "application/vnd.ms-package.obfuscated-opentype": { + "source": "apache" + }, + "application/vnd.ms-pki.seccat": { + "source": "apache", + "extensions": ["cat"] + }, + "application/vnd.ms-pki.stl": { + "source": "apache", + "extensions": ["stl"] + }, + "application/vnd.ms-playready.initiator+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-powerpoint": { + "source": "iana", + "compressible": false, + "extensions": ["ppt","pps","pot"] + }, + "application/vnd.ms-powerpoint.addin.macroenabled.12": { + "source": "iana", + "extensions": ["ppam"] + }, + "application/vnd.ms-powerpoint.presentation.macroenabled.12": { + "source": "iana", + "extensions": ["pptm"] + }, + "application/vnd.ms-powerpoint.slide.macroenabled.12": { + "source": "iana", + "extensions": ["sldm"] + }, + "application/vnd.ms-powerpoint.slideshow.macroenabled.12": { + "source": "iana", + "extensions": ["ppsm"] + }, + "application/vnd.ms-powerpoint.template.macroenabled.12": { + "source": "iana", + "extensions": ["potm"] + }, + "application/vnd.ms-printdevicecapabilities+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-printing.printticket+xml": { + "source": "apache", + "compressible": true + }, + "application/vnd.ms-printschematicket+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.ms-project": { + "source": "iana", + "extensions": ["mpp","mpt"] + }, + "application/vnd.ms-tnef": { + "source": "iana" + }, + "application/vnd.ms-windows.devicepairing": { + "source": "iana" + }, + "application/vnd.ms-windows.nwprinting.oob": { + "source": "iana" + }, + "application/vnd.ms-windows.printerpairing": { + "source": "iana" + }, + "application/vnd.ms-windows.wsd.oob": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.lic-resp": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-chlg-req": { + "source": "iana" + }, + "application/vnd.ms-wmdrm.meter-resp": { + "source": "iana" + }, + "application/vnd.ms-word.document.macroenabled.12": { + "source": "iana", + "extensions": ["docm"] + }, + "application/vnd.ms-word.template.macroenabled.12": { + "source": "iana", + "extensions": ["dotm"] + }, + "application/vnd.ms-works": { + "source": "iana", + "extensions": ["wps","wks","wcm","wdb"] + }, + "application/vnd.ms-wpl": { + "source": "iana", + "extensions": ["wpl"] + }, + "application/vnd.ms-xpsdocument": { + "source": "iana", + "compressible": false, + "extensions": ["xps"] + }, + "application/vnd.msa-disk-image": { + "source": "iana" + }, + "application/vnd.mseq": { + "source": "iana", + "extensions": ["mseq"] + }, + "application/vnd.msign": { + "source": "iana" + }, + "application/vnd.multiad.creator": { + "source": "iana" + }, + "application/vnd.multiad.creator.cif": { + "source": "iana" + }, + "application/vnd.music-niff": { + "source": "iana" + }, + "application/vnd.musician": { + "source": "iana", + "extensions": ["mus"] + }, + "application/vnd.muvee.style": { + "source": "iana", + "extensions": ["msty"] + }, + "application/vnd.mynfc": { + "source": "iana", + "extensions": ["taglet"] + }, + "application/vnd.nacamar.ybrid+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.ncd.control": { + "source": "iana" + }, + "application/vnd.ncd.reference": { + "source": "iana" + }, + "application/vnd.nearst.inv+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.nebumind.line": { + "source": "iana" + }, + "application/vnd.nervana": { + "source": "iana" + }, + "application/vnd.netfpx": { + "source": "iana" + }, + "application/vnd.neurolanguage.nlu": { + "source": "iana", + "extensions": ["nlu"] + }, + "application/vnd.nimn": { + "source": "iana" + }, + "application/vnd.nintendo.nitro.rom": { + "source": "iana" + }, + "application/vnd.nintendo.snes.rom": { + "source": "iana" + }, + "application/vnd.nitf": { + "source": "iana", + "extensions": ["ntf","nitf"] + }, + "application/vnd.noblenet-directory": { + "source": "iana", + "extensions": ["nnd"] + }, + "application/vnd.noblenet-sealer": { + "source": "iana", + "extensions": ["nns"] + }, + "application/vnd.noblenet-web": { + "source": "iana", + "extensions": ["nnw"] + }, + "application/vnd.nokia.catalogs": { + "source": "iana" + }, + "application/vnd.nokia.conml+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.conml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.iptv.config+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.isds-radio-presets": { + "source": "iana" + }, + "application/vnd.nokia.landmark+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.landmark+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.landmarkcollection+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.n-gage.ac+xml": { + "source": "iana", + "compressible": true, + "extensions": ["ac"] + }, + "application/vnd.nokia.n-gage.data": { + "source": "iana", + "extensions": ["ngdat"] + }, + "application/vnd.nokia.n-gage.symbian.install": { + "source": "iana", + "extensions": ["n-gage"] + }, + "application/vnd.nokia.ncd": { + "source": "iana" + }, + "application/vnd.nokia.pcd+wbxml": { + "source": "iana" + }, + "application/vnd.nokia.pcd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.nokia.radio-preset": { + "source": "iana", + "extensions": ["rpst"] + }, + "application/vnd.nokia.radio-presets": { + "source": "iana", + "extensions": ["rpss"] + }, + "application/vnd.novadigm.edm": { + "source": "iana", + "extensions": ["edm"] + }, + "application/vnd.novadigm.edx": { + "source": "iana", + "extensions": ["edx"] + }, + "application/vnd.novadigm.ext": { + "source": "iana", + "extensions": ["ext"] + }, + "application/vnd.ntt-local.content-share": { + "source": "iana" + }, + "application/vnd.ntt-local.file-transfer": { + "source": "iana" + }, + "application/vnd.ntt-local.ogw_remote-access": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_remote": { + "source": "iana" + }, + "application/vnd.ntt-local.sip-ta_tcp_stream": { + "source": "iana" + }, + "application/vnd.oasis.opendocument.chart": { + "source": "iana", + "extensions": ["odc"] + }, + "application/vnd.oasis.opendocument.chart-template": { + "source": "iana", + "extensions": ["otc"] + }, + "application/vnd.oasis.opendocument.database": { + "source": "iana", + "extensions": ["odb"] + }, + "application/vnd.oasis.opendocument.formula": { + "source": "iana", + "extensions": ["odf"] + }, + "application/vnd.oasis.opendocument.formula-template": { + "source": "iana", + "extensions": ["odft"] + }, + "application/vnd.oasis.opendocument.graphics": { + "source": "iana", + "compressible": false, + "extensions": ["odg"] + }, + "application/vnd.oasis.opendocument.graphics-template": { + "source": "iana", + "extensions": ["otg"] + }, + "application/vnd.oasis.opendocument.image": { + "source": "iana", + "extensions": ["odi"] + }, + "application/vnd.oasis.opendocument.image-template": { + "source": "iana", + "extensions": ["oti"] + }, + "application/vnd.oasis.opendocument.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["odp"] + }, + "application/vnd.oasis.opendocument.presentation-template": { + "source": "iana", + "extensions": ["otp"] + }, + "application/vnd.oasis.opendocument.spreadsheet": { + "source": "iana", + "compressible": false, + "extensions": ["ods"] + }, + "application/vnd.oasis.opendocument.spreadsheet-template": { + "source": "iana", + "extensions": ["ots"] + }, + "application/vnd.oasis.opendocument.text": { + "source": "iana", + "compressible": false, + "extensions": ["odt"] + }, + "application/vnd.oasis.opendocument.text-master": { + "source": "iana", + "extensions": ["odm"] + }, + "application/vnd.oasis.opendocument.text-template": { + "source": "iana", + "extensions": ["ott"] + }, + "application/vnd.oasis.opendocument.text-web": { + "source": "iana", + "extensions": ["oth"] + }, + "application/vnd.obn": { + "source": "iana" + }, + "application/vnd.ocf+cbor": { + "source": "iana" + }, + "application/vnd.oci.image.manifest.v1+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oftn.l10n+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessdownload+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.contentaccessstreaming+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.cspg-hexbinary": { + "source": "iana" + }, + "application/vnd.oipf.dae.svg+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.dae.xhtml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.mippvcontrolmessage+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.pae.gem": { + "source": "iana" + }, + "application/vnd.oipf.spdiscovery+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.spdlist+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.ueprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oipf.userprofile+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.olpc-sugar": { + "source": "iana", + "extensions": ["xo"] + }, + "application/vnd.oma-scws-config": { + "source": "iana" + }, + "application/vnd.oma-scws-http-request": { + "source": "iana" + }, + "application/vnd.oma-scws-http-response": { + "source": "iana" + }, + "application/vnd.oma.bcast.associated-procedure-parameter+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.drm-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.imd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.ltkm": { + "source": "iana" + }, + "application/vnd.oma.bcast.notification+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.provisioningtrigger": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgboot": { + "source": "iana" + }, + "application/vnd.oma.bcast.sgdd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sgdu": { + "source": "iana" + }, + "application/vnd.oma.bcast.simple-symbol-container": { + "source": "iana" + }, + "application/vnd.oma.bcast.smartcard-trigger+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.sprov+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.bcast.stkm": { + "source": "iana" + }, + "application/vnd.oma.cab-address-book+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-feature-handler+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-pcc+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-subs-invite+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.cab-user-prefs+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.dcd": { + "source": "iana" + }, + "application/vnd.oma.dcdc": { + "source": "iana" + }, + "application/vnd.oma.dd2+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dd2"] + }, + "application/vnd.oma.drm.risd+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.group-usage-list+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+cbor": { + "source": "iana" + }, + "application/vnd.oma.lwm2m+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.lwm2m+tlv": { + "source": "iana" + }, + "application/vnd.oma.pal+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.detailed-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.final-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.groups+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.invocation-descriptor+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.poc.optimized-progress-report+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.push": { + "source": "iana" + }, + "application/vnd.oma.scidm.messages+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oma.xcap-directory+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.omads-email+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-file+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omads-folder+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.omaloc-supl-init": { + "source": "iana" + }, + "application/vnd.onepager": { + "source": "iana" + }, + "application/vnd.onepagertamp": { + "source": "iana" + }, + "application/vnd.onepagertamx": { + "source": "iana" + }, + "application/vnd.onepagertat": { + "source": "iana" + }, + "application/vnd.onepagertatp": { + "source": "iana" + }, + "application/vnd.onepagertatx": { + "source": "iana" + }, + "application/vnd.openblox.game+xml": { + "source": "iana", + "compressible": true, + "extensions": ["obgx"] + }, + "application/vnd.openblox.game-binary": { + "source": "iana" + }, + "application/vnd.openeye.oeb": { + "source": "iana" + }, + "application/vnd.openofficeorg.extension": { + "source": "apache", + "extensions": ["oxt"] + }, + "application/vnd.openstreetmap.data+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osm"] + }, + "application/vnd.opentimestamps.ots": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.custom-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawing+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.extended-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation": { + "source": "iana", + "compressible": false, + "extensions": ["pptx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide": { + "source": "iana", + "extensions": ["sldx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow": { + "source": "iana", + "extensions": ["ppsx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.template": { + "source": "iana", + "extensions": ["potx"] + }, + "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": { + "source": "iana", + "compressible": false, + "extensions": ["xlsx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template": { + "source": "iana", + "extensions": ["xltx"] + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.theme+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.themeoverride+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.vmldrawing": { + "source": "iana" + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document": { + "source": "iana", + "compressible": false, + "extensions": ["docx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template": { + "source": "iana", + "extensions": ["dotx"] + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.core-properties+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.openxmlformats-package.relationships+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oracle.resource+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.orange.indata": { + "source": "iana" + }, + "application/vnd.osa.netdeploy": { + "source": "iana" + }, + "application/vnd.osgeo.mapguide.package": { + "source": "iana", + "extensions": ["mgp"] + }, + "application/vnd.osgi.bundle": { + "source": "iana" + }, + "application/vnd.osgi.dp": { + "source": "iana", + "extensions": ["dp"] + }, + "application/vnd.osgi.subsystem": { + "source": "iana", + "extensions": ["esa"] + }, + "application/vnd.otps.ct-kip+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.oxli.countgraph": { + "source": "iana" + }, + "application/vnd.pagerduty+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.palm": { + "source": "iana", + "extensions": ["pdb","pqa","oprc"] + }, + "application/vnd.panoply": { + "source": "iana" + }, + "application/vnd.paos.xml": { + "source": "iana" + }, + "application/vnd.patentdive": { + "source": "iana" + }, + "application/vnd.patientecommsdoc": { + "source": "iana" + }, + "application/vnd.pawaafile": { + "source": "iana", + "extensions": ["paw"] + }, + "application/vnd.pcos": { + "source": "iana" + }, + "application/vnd.pg.format": { + "source": "iana", + "extensions": ["str"] + }, + "application/vnd.pg.osasli": { + "source": "iana", + "extensions": ["ei6"] + }, + "application/vnd.piaccess.application-licence": { + "source": "iana" + }, + "application/vnd.picsel": { + "source": "iana", + "extensions": ["efif"] + }, + "application/vnd.pmi.widget": { + "source": "iana", + "extensions": ["wg"] + }, + "application/vnd.poc.group-advertisement+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.pocketlearn": { + "source": "iana", + "extensions": ["plf"] + }, + "application/vnd.powerbuilder6": { + "source": "iana", + "extensions": ["pbd"] + }, + "application/vnd.powerbuilder6-s": { + "source": "iana" + }, + "application/vnd.powerbuilder7": { + "source": "iana" + }, + "application/vnd.powerbuilder7-s": { + "source": "iana" + }, + "application/vnd.powerbuilder75": { + "source": "iana" + }, + "application/vnd.powerbuilder75-s": { + "source": "iana" + }, + "application/vnd.preminet": { + "source": "iana" + }, + "application/vnd.previewsystems.box": { + "source": "iana", + "extensions": ["box"] + }, + "application/vnd.proteus.magazine": { + "source": "iana", + "extensions": ["mgz"] + }, + "application/vnd.psfs": { + "source": "iana" + }, + "application/vnd.publishare-delta-tree": { + "source": "iana", + "extensions": ["qps"] + }, + "application/vnd.pvi.ptid1": { + "source": "iana", + "extensions": ["ptid"] + }, + "application/vnd.pwg-multiplexed": { + "source": "iana" + }, + "application/vnd.pwg-xhtml-print+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.qualcomm.brew-app-res": { + "source": "iana" + }, + "application/vnd.quarantainenet": { + "source": "iana" + }, + "application/vnd.quark.quarkxpress": { + "source": "iana", + "extensions": ["qxd","qxt","qwd","qwt","qxl","qxb"] + }, + "application/vnd.quobject-quoxdocument": { + "source": "iana" + }, + "application/vnd.radisys.moml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-conn+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-audit-stream+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-conf+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-base+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-detect+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-group+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-speech+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.radisys.msml-dialog-transform+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.rainstor.data": { + "source": "iana" + }, + "application/vnd.rapid": { + "source": "iana" + }, + "application/vnd.rar": { + "source": "iana", + "extensions": ["rar"] + }, + "application/vnd.realvnc.bed": { + "source": "iana", + "extensions": ["bed"] + }, + "application/vnd.recordare.musicxml": { + "source": "iana", + "extensions": ["mxl"] + }, + "application/vnd.recordare.musicxml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["musicxml"] + }, + "application/vnd.renlearn.rlprint": { + "source": "iana" + }, + "application/vnd.resilient.logic": { + "source": "iana" + }, + "application/vnd.restful+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.rig.cryptonote": { + "source": "iana", + "extensions": ["cryptonote"] + }, + "application/vnd.rim.cod": { + "source": "apache", + "extensions": ["cod"] + }, + "application/vnd.rn-realmedia": { + "source": "apache", + "extensions": ["rm"] + }, + "application/vnd.rn-realmedia-vbr": { + "source": "apache", + "extensions": ["rmvb"] + }, + "application/vnd.route66.link66+xml": { + "source": "iana", + "compressible": true, + "extensions": ["link66"] + }, + "application/vnd.rs-274x": { + "source": "iana" + }, + "application/vnd.ruckus.download": { + "source": "iana" + }, + "application/vnd.s3sms": { + "source": "iana" + }, + "application/vnd.sailingtracker.track": { + "source": "iana", + "extensions": ["st"] + }, + "application/vnd.sar": { + "source": "iana" + }, + "application/vnd.sbm.cid": { + "source": "iana" + }, + "application/vnd.sbm.mid2": { + "source": "iana" + }, + "application/vnd.scribus": { + "source": "iana" + }, + "application/vnd.sealed.3df": { + "source": "iana" + }, + "application/vnd.sealed.csf": { + "source": "iana" + }, + "application/vnd.sealed.doc": { + "source": "iana" + }, + "application/vnd.sealed.eml": { + "source": "iana" + }, + "application/vnd.sealed.mht": { + "source": "iana" + }, + "application/vnd.sealed.net": { + "source": "iana" + }, + "application/vnd.sealed.ppt": { + "source": "iana" + }, + "application/vnd.sealed.tiff": { + "source": "iana" + }, + "application/vnd.sealed.xls": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.html": { + "source": "iana" + }, + "application/vnd.sealedmedia.softseal.pdf": { + "source": "iana" + }, + "application/vnd.seemail": { + "source": "iana", + "extensions": ["see"] + }, + "application/vnd.seis+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.sema": { + "source": "iana", + "extensions": ["sema"] + }, + "application/vnd.semd": { + "source": "iana", + "extensions": ["semd"] + }, + "application/vnd.semf": { + "source": "iana", + "extensions": ["semf"] + }, + "application/vnd.shade-save-file": { + "source": "iana" + }, + "application/vnd.shana.informed.formdata": { + "source": "iana", + "extensions": ["ifm"] + }, + "application/vnd.shana.informed.formtemplate": { + "source": "iana", + "extensions": ["itp"] + }, + "application/vnd.shana.informed.interchange": { + "source": "iana", + "extensions": ["iif"] + }, + "application/vnd.shana.informed.package": { + "source": "iana", + "extensions": ["ipk"] + }, + "application/vnd.shootproof+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shopkick+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.shp": { + "source": "iana" + }, + "application/vnd.shx": { + "source": "iana" + }, + "application/vnd.sigrok.session": { + "source": "iana" + }, + "application/vnd.simtech-mindmapper": { + "source": "iana", + "extensions": ["twd","twds"] + }, + "application/vnd.siren+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.smaf": { + "source": "iana", + "extensions": ["mmf"] + }, + "application/vnd.smart.notebook": { + "source": "iana" + }, + "application/vnd.smart.teacher": { + "source": "iana", + "extensions": ["teacher"] + }, + "application/vnd.snesdev-page-table": { + "source": "iana" + }, + "application/vnd.software602.filler.form+xml": { + "source": "iana", + "compressible": true, + "extensions": ["fo"] + }, + "application/vnd.software602.filler.form-xml-zip": { + "source": "iana" + }, + "application/vnd.solent.sdkm+xml": { + "source": "iana", + "compressible": true, + "extensions": ["sdkm","sdkd"] + }, + "application/vnd.spotfire.dxp": { + "source": "iana", + "extensions": ["dxp"] + }, + "application/vnd.spotfire.sfs": { + "source": "iana", + "extensions": ["sfs"] + }, + "application/vnd.sqlite3": { + "source": "iana" + }, + "application/vnd.sss-cod": { + "source": "iana" + }, + "application/vnd.sss-dtf": { + "source": "iana" + }, + "application/vnd.sss-ntf": { + "source": "iana" + }, + "application/vnd.stardivision.calc": { + "source": "apache", + "extensions": ["sdc"] + }, + "application/vnd.stardivision.draw": { + "source": "apache", + "extensions": ["sda"] + }, + "application/vnd.stardivision.impress": { + "source": "apache", + "extensions": ["sdd"] + }, + "application/vnd.stardivision.math": { + "source": "apache", + "extensions": ["smf"] + }, + "application/vnd.stardivision.writer": { + "source": "apache", + "extensions": ["sdw","vor"] + }, + "application/vnd.stardivision.writer-global": { + "source": "apache", + "extensions": ["sgl"] + }, + "application/vnd.stepmania.package": { + "source": "iana", + "extensions": ["smzip"] + }, + "application/vnd.stepmania.stepchart": { + "source": "iana", + "extensions": ["sm"] + }, + "application/vnd.street-stream": { + "source": "iana" + }, + "application/vnd.sun.wadl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wadl"] + }, + "application/vnd.sun.xml.calc": { + "source": "apache", + "extensions": ["sxc"] + }, + "application/vnd.sun.xml.calc.template": { + "source": "apache", + "extensions": ["stc"] + }, + "application/vnd.sun.xml.draw": { + "source": "apache", + "extensions": ["sxd"] + }, + "application/vnd.sun.xml.draw.template": { + "source": "apache", + "extensions": ["std"] + }, + "application/vnd.sun.xml.impress": { + "source": "apache", + "extensions": ["sxi"] + }, + "application/vnd.sun.xml.impress.template": { + "source": "apache", + "extensions": ["sti"] + }, + "application/vnd.sun.xml.math": { + "source": "apache", + "extensions": ["sxm"] + }, + "application/vnd.sun.xml.writer": { + "source": "apache", + "extensions": ["sxw"] + }, + "application/vnd.sun.xml.writer.global": { + "source": "apache", + "extensions": ["sxg"] + }, + "application/vnd.sun.xml.writer.template": { + "source": "apache", + "extensions": ["stw"] + }, + "application/vnd.sus-calendar": { + "source": "iana", + "extensions": ["sus","susp"] + }, + "application/vnd.svd": { + "source": "iana", + "extensions": ["svd"] + }, + "application/vnd.swiftview-ics": { + "source": "iana" + }, + "application/vnd.sycle+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.syft+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.symbian.install": { + "source": "apache", + "extensions": ["sis","sisx"] + }, + "application/vnd.syncml+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xsm"] + }, + "application/vnd.syncml.dm+wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["bdm"] + }, + "application/vnd.syncml.dm+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["xdm"] + }, + "application/vnd.syncml.dm.notification": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmddf+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["ddf"] + }, + "application/vnd.syncml.dmtnds+wbxml": { + "source": "iana" + }, + "application/vnd.syncml.dmtnds+xml": { + "source": "iana", + "charset": "UTF-8", + "compressible": true + }, + "application/vnd.syncml.ds.notification": { + "source": "iana" + }, + "application/vnd.tableschema+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tao.intent-module-archive": { + "source": "iana", + "extensions": ["tao"] + }, + "application/vnd.tcpdump.pcap": { + "source": "iana", + "extensions": ["pcap","cap","dmp"] + }, + "application/vnd.think-cell.ppttc+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.tmd.mediaflex.api+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.tml": { + "source": "iana" + }, + "application/vnd.tmobile-livetv": { + "source": "iana", + "extensions": ["tmo"] + }, + "application/vnd.tri.onesource": { + "source": "iana" + }, + "application/vnd.trid.tpt": { + "source": "iana", + "extensions": ["tpt"] + }, + "application/vnd.triscape.mxs": { + "source": "iana", + "extensions": ["mxs"] + }, + "application/vnd.trueapp": { + "source": "iana", + "extensions": ["tra"] + }, + "application/vnd.truedoc": { + "source": "iana" + }, + "application/vnd.ubisoft.webplayer": { + "source": "iana" + }, + "application/vnd.ufdl": { + "source": "iana", + "extensions": ["ufd","ufdl"] + }, + "application/vnd.uiq.theme": { + "source": "iana", + "extensions": ["utz"] + }, + "application/vnd.umajin": { + "source": "iana", + "extensions": ["umj"] + }, + "application/vnd.unity": { + "source": "iana", + "extensions": ["unityweb"] + }, + "application/vnd.uoml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["uoml"] + }, + "application/vnd.uplanet.alert": { + "source": "iana" + }, + "application/vnd.uplanet.alert-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice": { + "source": "iana" + }, + "application/vnd.uplanet.bearer-choice-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop": { + "source": "iana" + }, + "application/vnd.uplanet.cacheop-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.channel": { + "source": "iana" + }, + "application/vnd.uplanet.channel-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.list": { + "source": "iana" + }, + "application/vnd.uplanet.list-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd": { + "source": "iana" + }, + "application/vnd.uplanet.listcmd-wbxml": { + "source": "iana" + }, + "application/vnd.uplanet.signal": { + "source": "iana" + }, + "application/vnd.uri-map": { + "source": "iana" + }, + "application/vnd.valve.source.material": { + "source": "iana" + }, + "application/vnd.vcx": { + "source": "iana", + "extensions": ["vcx"] + }, + "application/vnd.vd-study": { + "source": "iana" + }, + "application/vnd.vectorworks": { + "source": "iana" + }, + "application/vnd.vel+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.verimatrix.vcas": { + "source": "iana" + }, + "application/vnd.veritone.aion+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.veryant.thin": { + "source": "iana" + }, + "application/vnd.ves.encrypted": { + "source": "iana" + }, + "application/vnd.vidsoft.vidconference": { + "source": "iana" + }, + "application/vnd.visio": { + "source": "iana", + "extensions": ["vsd","vst","vss","vsw"] + }, + "application/vnd.visionary": { + "source": "iana", + "extensions": ["vis"] + }, + "application/vnd.vividence.scriptfile": { + "source": "iana" + }, + "application/vnd.vsf": { + "source": "iana", + "extensions": ["vsf"] + }, + "application/vnd.wap.sic": { + "source": "iana" + }, + "application/vnd.wap.slc": { + "source": "iana" + }, + "application/vnd.wap.wbxml": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["wbxml"] + }, + "application/vnd.wap.wmlc": { + "source": "iana", + "extensions": ["wmlc"] + }, + "application/vnd.wap.wmlscriptc": { + "source": "iana", + "extensions": ["wmlsc"] + }, + "application/vnd.webturbo": { + "source": "iana", + "extensions": ["wtb"] + }, + "application/vnd.wfa.dpp": { + "source": "iana" + }, + "application/vnd.wfa.p2p": { + "source": "iana" + }, + "application/vnd.wfa.wsc": { + "source": "iana" + }, + "application/vnd.windows.devicepairing": { + "source": "iana" + }, + "application/vnd.wmc": { + "source": "iana" + }, + "application/vnd.wmf.bootstrap": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica": { + "source": "iana" + }, + "application/vnd.wolfram.mathematica.package": { + "source": "iana" + }, + "application/vnd.wolfram.player": { + "source": "iana", + "extensions": ["nbp"] + }, + "application/vnd.wordperfect": { + "source": "iana", + "extensions": ["wpd"] + }, + "application/vnd.wqd": { + "source": "iana", + "extensions": ["wqd"] + }, + "application/vnd.wrq-hp3000-labelled": { + "source": "iana" + }, + "application/vnd.wt.stf": { + "source": "iana", + "extensions": ["stf"] + }, + "application/vnd.wv.csp+wbxml": { + "source": "iana" + }, + "application/vnd.wv.csp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.wv.ssp+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xacml+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.xara": { + "source": "iana", + "extensions": ["xar"] + }, + "application/vnd.xfdl": { + "source": "iana", + "extensions": ["xfdl"] + }, + "application/vnd.xfdl.webform": { + "source": "iana" + }, + "application/vnd.xmi+xml": { + "source": "iana", + "compressible": true + }, + "application/vnd.xmpie.cpkg": { + "source": "iana" + }, + "application/vnd.xmpie.dpkg": { + "source": "iana" + }, + "application/vnd.xmpie.plan": { + "source": "iana" + }, + "application/vnd.xmpie.ppkg": { + "source": "iana" + }, + "application/vnd.xmpie.xlim": { + "source": "iana" + }, + "application/vnd.yamaha.hv-dic": { + "source": "iana", + "extensions": ["hvd"] + }, + "application/vnd.yamaha.hv-script": { + "source": "iana", + "extensions": ["hvs"] + }, + "application/vnd.yamaha.hv-voice": { + "source": "iana", + "extensions": ["hvp"] + }, + "application/vnd.yamaha.openscoreformat": { + "source": "iana", + "extensions": ["osf"] + }, + "application/vnd.yamaha.openscoreformat.osfpvg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["osfpvg"] + }, + "application/vnd.yamaha.remote-setup": { + "source": "iana" + }, + "application/vnd.yamaha.smaf-audio": { + "source": "iana", + "extensions": ["saf"] + }, + "application/vnd.yamaha.smaf-phrase": { + "source": "iana", + "extensions": ["spf"] + }, + "application/vnd.yamaha.through-ngn": { + "source": "iana" + }, + "application/vnd.yamaha.tunnel-udpencap": { + "source": "iana" + }, + "application/vnd.yaoweme": { + "source": "iana" + }, + "application/vnd.yellowriver-custom-menu": { + "source": "iana", + "extensions": ["cmp"] + }, + "application/vnd.youtube.yt": { + "source": "iana" + }, + "application/vnd.zul": { + "source": "iana", + "extensions": ["zir","zirz"] + }, + "application/vnd.zzazz.deck+xml": { + "source": "iana", + "compressible": true, + "extensions": ["zaz"] + }, + "application/voicexml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["vxml"] + }, + "application/voucher-cms+json": { + "source": "iana", + "compressible": true + }, + "application/vq-rtcpxr": { + "source": "iana" + }, + "application/wasm": { + "source": "iana", + "compressible": true, + "extensions": ["wasm"] + }, + "application/watcherinfo+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wif"] + }, + "application/webpush-options+json": { + "source": "iana", + "compressible": true + }, + "application/whoispp-query": { + "source": "iana" + }, + "application/whoispp-response": { + "source": "iana" + }, + "application/widget": { + "source": "iana", + "extensions": ["wgt"] + }, + "application/winhlp": { + "source": "apache", + "extensions": ["hlp"] + }, + "application/wita": { + "source": "iana" + }, + "application/wordperfect5.1": { + "source": "iana" + }, + "application/wsdl+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wsdl"] + }, + "application/wspolicy+xml": { + "source": "iana", + "compressible": true, + "extensions": ["wspolicy"] + }, + "application/x-7z-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["7z"] + }, + "application/x-abiword": { + "source": "apache", + "extensions": ["abw"] + }, + "application/x-ace-compressed": { + "source": "apache", + "extensions": ["ace"] + }, + "application/x-amf": { + "source": "apache" + }, + "application/x-apple-diskimage": { + "source": "apache", + "extensions": ["dmg"] + }, + "application/x-arj": { + "compressible": false, + "extensions": ["arj"] + }, + "application/x-authorware-bin": { + "source": "apache", + "extensions": ["aab","x32","u32","vox"] + }, + "application/x-authorware-map": { + "source": "apache", + "extensions": ["aam"] + }, + "application/x-authorware-seg": { + "source": "apache", + "extensions": ["aas"] + }, + "application/x-bcpio": { + "source": "apache", + "extensions": ["bcpio"] + }, + "application/x-bdoc": { + "compressible": false, + "extensions": ["bdoc"] + }, + "application/x-bittorrent": { + "source": "apache", + "extensions": ["torrent"] + }, + "application/x-blorb": { + "source": "apache", + "extensions": ["blb","blorb"] + }, + "application/x-bzip": { + "source": "apache", + "compressible": false, + "extensions": ["bz"] + }, + "application/x-bzip2": { + "source": "apache", + "compressible": false, + "extensions": ["bz2","boz"] + }, + "application/x-cbr": { + "source": "apache", + "extensions": ["cbr","cba","cbt","cbz","cb7"] + }, + "application/x-cdlink": { + "source": "apache", + "extensions": ["vcd"] + }, + "application/x-cfs-compressed": { + "source": "apache", + "extensions": ["cfs"] + }, + "application/x-chat": { + "source": "apache", + "extensions": ["chat"] + }, + "application/x-chess-pgn": { + "source": "apache", + "extensions": ["pgn"] + }, + "application/x-chrome-extension": { + "extensions": ["crx"] + }, + "application/x-cocoa": { + "source": "nginx", + "extensions": ["cco"] + }, + "application/x-compress": { + "source": "apache" + }, + "application/x-conference": { + "source": "apache", + "extensions": ["nsc"] + }, + "application/x-cpio": { + "source": "apache", + "extensions": ["cpio"] + }, + "application/x-csh": { + "source": "apache", + "extensions": ["csh"] + }, + "application/x-deb": { + "compressible": false + }, + "application/x-debian-package": { + "source": "apache", + "extensions": ["deb","udeb"] + }, + "application/x-dgc-compressed": { + "source": "apache", + "extensions": ["dgc"] + }, + "application/x-director": { + "source": "apache", + "extensions": ["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"] + }, + "application/x-doom": { + "source": "apache", + "extensions": ["wad"] + }, + "application/x-dtbncx+xml": { + "source": "apache", + "compressible": true, + "extensions": ["ncx"] + }, + "application/x-dtbook+xml": { + "source": "apache", + "compressible": true, + "extensions": ["dtb"] + }, + "application/x-dtbresource+xml": { + "source": "apache", + "compressible": true, + "extensions": ["res"] + }, + "application/x-dvi": { + "source": "apache", + "compressible": false, + "extensions": ["dvi"] + }, + "application/x-envoy": { + "source": "apache", + "extensions": ["evy"] + }, + "application/x-eva": { + "source": "apache", + "extensions": ["eva"] + }, + "application/x-font-bdf": { + "source": "apache", + "extensions": ["bdf"] + }, + "application/x-font-dos": { + "source": "apache" + }, + "application/x-font-framemaker": { + "source": "apache" + }, + "application/x-font-ghostscript": { + "source": "apache", + "extensions": ["gsf"] + }, + "application/x-font-libgrx": { + "source": "apache" + }, + "application/x-font-linux-psf": { + "source": "apache", + "extensions": ["psf"] + }, + "application/x-font-pcf": { + "source": "apache", + "extensions": ["pcf"] + }, + "application/x-font-snf": { + "source": "apache", + "extensions": ["snf"] + }, + "application/x-font-speedo": { + "source": "apache" + }, + "application/x-font-sunos-news": { + "source": "apache" + }, + "application/x-font-type1": { + "source": "apache", + "extensions": ["pfa","pfb","pfm","afm"] + }, + "application/x-font-vfont": { + "source": "apache" + }, + "application/x-freearc": { + "source": "apache", + "extensions": ["arc"] + }, + "application/x-futuresplash": { + "source": "apache", + "extensions": ["spl"] + }, + "application/x-gca-compressed": { + "source": "apache", + "extensions": ["gca"] + }, + "application/x-glulx": { + "source": "apache", + "extensions": ["ulx"] + }, + "application/x-gnumeric": { + "source": "apache", + "extensions": ["gnumeric"] + }, + "application/x-gramps-xml": { + "source": "apache", + "extensions": ["gramps"] + }, + "application/x-gtar": { + "source": "apache", + "extensions": ["gtar"] + }, + "application/x-gzip": { + "source": "apache" + }, + "application/x-hdf": { + "source": "apache", + "extensions": ["hdf"] + }, + "application/x-httpd-php": { + "compressible": true, + "extensions": ["php"] + }, + "application/x-install-instructions": { + "source": "apache", + "extensions": ["install"] + }, + "application/x-iso9660-image": { + "source": "apache", + "extensions": ["iso"] + }, + "application/x-iwork-keynote-sffkey": { + "extensions": ["key"] + }, + "application/x-iwork-numbers-sffnumbers": { + "extensions": ["numbers"] + }, + "application/x-iwork-pages-sffpages": { + "extensions": ["pages"] + }, + "application/x-java-archive-diff": { + "source": "nginx", + "extensions": ["jardiff"] + }, + "application/x-java-jnlp-file": { + "source": "apache", + "compressible": false, + "extensions": ["jnlp"] + }, + "application/x-javascript": { + "compressible": true + }, + "application/x-keepass2": { + "extensions": ["kdbx"] + }, + "application/x-latex": { + "source": "apache", + "compressible": false, + "extensions": ["latex"] + }, + "application/x-lua-bytecode": { + "extensions": ["luac"] + }, + "application/x-lzh-compressed": { + "source": "apache", + "extensions": ["lzh","lha"] + }, + "application/x-makeself": { + "source": "nginx", + "extensions": ["run"] + }, + "application/x-mie": { + "source": "apache", + "extensions": ["mie"] + }, + "application/x-mobipocket-ebook": { + "source": "apache", + "extensions": ["prc","mobi"] + }, + "application/x-mpegurl": { + "compressible": false + }, + "application/x-ms-application": { + "source": "apache", + "extensions": ["application"] + }, + "application/x-ms-shortcut": { + "source": "apache", + "extensions": ["lnk"] + }, + "application/x-ms-wmd": { + "source": "apache", + "extensions": ["wmd"] + }, + "application/x-ms-wmz": { + "source": "apache", + "extensions": ["wmz"] + }, + "application/x-ms-xbap": { + "source": "apache", + "extensions": ["xbap"] + }, + "application/x-msaccess": { + "source": "apache", + "extensions": ["mdb"] + }, + "application/x-msbinder": { + "source": "apache", + "extensions": ["obd"] + }, + "application/x-mscardfile": { + "source": "apache", + "extensions": ["crd"] + }, + "application/x-msclip": { + "source": "apache", + "extensions": ["clp"] + }, + "application/x-msdos-program": { + "extensions": ["exe"] + }, + "application/x-msdownload": { + "source": "apache", + "extensions": ["exe","dll","com","bat","msi"] + }, + "application/x-msmediaview": { + "source": "apache", + "extensions": ["mvb","m13","m14"] + }, + "application/x-msmetafile": { + "source": "apache", + "extensions": ["wmf","wmz","emf","emz"] + }, + "application/x-msmoney": { + "source": "apache", + "extensions": ["mny"] + }, + "application/x-mspublisher": { + "source": "apache", + "extensions": ["pub"] + }, + "application/x-msschedule": { + "source": "apache", + "extensions": ["scd"] + }, + "application/x-msterminal": { + "source": "apache", + "extensions": ["trm"] + }, + "application/x-mswrite": { + "source": "apache", + "extensions": ["wri"] + }, + "application/x-netcdf": { + "source": "apache", + "extensions": ["nc","cdf"] + }, + "application/x-ns-proxy-autoconfig": { + "compressible": true, + "extensions": ["pac"] + }, + "application/x-nzb": { + "source": "apache", + "extensions": ["nzb"] + }, + "application/x-perl": { + "source": "nginx", + "extensions": ["pl","pm"] + }, + "application/x-pilot": { + "source": "nginx", + "extensions": ["prc","pdb"] + }, + "application/x-pkcs12": { + "source": "apache", + "compressible": false, + "extensions": ["p12","pfx"] + }, + "application/x-pkcs7-certificates": { + "source": "apache", + "extensions": ["p7b","spc"] + }, + "application/x-pkcs7-certreqresp": { + "source": "apache", + "extensions": ["p7r"] + }, + "application/x-pki-message": { + "source": "iana" + }, + "application/x-rar-compressed": { + "source": "apache", + "compressible": false, + "extensions": ["rar"] + }, + "application/x-redhat-package-manager": { + "source": "nginx", + "extensions": ["rpm"] + }, + "application/x-research-info-systems": { + "source": "apache", + "extensions": ["ris"] + }, + "application/x-sea": { + "source": "nginx", + "extensions": ["sea"] + }, + "application/x-sh": { + "source": "apache", + "compressible": true, + "extensions": ["sh"] + }, + "application/x-shar": { + "source": "apache", + "extensions": ["shar"] + }, + "application/x-shockwave-flash": { + "source": "apache", + "compressible": false, + "extensions": ["swf"] + }, + "application/x-silverlight-app": { + "source": "apache", + "extensions": ["xap"] + }, + "application/x-sql": { + "source": "apache", + "extensions": ["sql"] + }, + "application/x-stuffit": { + "source": "apache", + "compressible": false, + "extensions": ["sit"] + }, + "application/x-stuffitx": { + "source": "apache", + "extensions": ["sitx"] + }, + "application/x-subrip": { + "source": "apache", + "extensions": ["srt"] + }, + "application/x-sv4cpio": { + "source": "apache", + "extensions": ["sv4cpio"] + }, + "application/x-sv4crc": { + "source": "apache", + "extensions": ["sv4crc"] + }, + "application/x-t3vm-image": { + "source": "apache", + "extensions": ["t3"] + }, + "application/x-tads": { + "source": "apache", + "extensions": ["gam"] + }, + "application/x-tar": { + "source": "apache", + "compressible": true, + "extensions": ["tar"] + }, + "application/x-tcl": { + "source": "apache", + "extensions": ["tcl","tk"] + }, + "application/x-tex": { + "source": "apache", + "extensions": ["tex"] + }, + "application/x-tex-tfm": { + "source": "apache", + "extensions": ["tfm"] + }, + "application/x-texinfo": { + "source": "apache", + "extensions": ["texinfo","texi"] + }, + "application/x-tgif": { + "source": "apache", + "extensions": ["obj"] + }, + "application/x-ustar": { + "source": "apache", + "extensions": ["ustar"] + }, + "application/x-virtualbox-hdd": { + "compressible": true, + "extensions": ["hdd"] + }, + "application/x-virtualbox-ova": { + "compressible": true, + "extensions": ["ova"] + }, + "application/x-virtualbox-ovf": { + "compressible": true, + "extensions": ["ovf"] + }, + "application/x-virtualbox-vbox": { + "compressible": true, + "extensions": ["vbox"] + }, + "application/x-virtualbox-vbox-extpack": { + "compressible": false, + "extensions": ["vbox-extpack"] + }, + "application/x-virtualbox-vdi": { + "compressible": true, + "extensions": ["vdi"] + }, + "application/x-virtualbox-vhd": { + "compressible": true, + "extensions": ["vhd"] + }, + "application/x-virtualbox-vmdk": { + "compressible": true, + "extensions": ["vmdk"] + }, + "application/x-wais-source": { + "source": "apache", + "extensions": ["src"] + }, + "application/x-web-app-manifest+json": { + "compressible": true, + "extensions": ["webapp"] + }, + "application/x-www-form-urlencoded": { + "source": "iana", + "compressible": true + }, + "application/x-x509-ca-cert": { + "source": "iana", + "extensions": ["der","crt","pem"] + }, + "application/x-x509-ca-ra-cert": { + "source": "iana" + }, + "application/x-x509-next-ca-cert": { + "source": "iana" + }, + "application/x-xfig": { + "source": "apache", + "extensions": ["fig"] + }, + "application/x-xliff+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xlf"] + }, + "application/x-xpinstall": { + "source": "apache", + "compressible": false, + "extensions": ["xpi"] + }, + "application/x-xz": { + "source": "apache", + "extensions": ["xz"] + }, + "application/x-zmachine": { + "source": "apache", + "extensions": ["z1","z2","z3","z4","z5","z6","z7","z8"] + }, + "application/x400-bp": { + "source": "iana" + }, + "application/xacml+xml": { + "source": "iana", + "compressible": true + }, + "application/xaml+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xaml"] + }, + "application/xcap-att+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xav"] + }, + "application/xcap-caps+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xca"] + }, + "application/xcap-diff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xdf"] + }, + "application/xcap-el+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xel"] + }, + "application/xcap-error+xml": { + "source": "iana", + "compressible": true + }, + "application/xcap-ns+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xns"] + }, + "application/xcon-conference-info+xml": { + "source": "iana", + "compressible": true + }, + "application/xcon-conference-info-diff+xml": { + "source": "iana", + "compressible": true + }, + "application/xenc+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xenc"] + }, + "application/xhtml+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xhtml","xht"] + }, + "application/xhtml-voice+xml": { + "source": "apache", + "compressible": true + }, + "application/xliff+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xlf"] + }, + "application/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml","xsl","xsd","rng"] + }, + "application/xml-dtd": { + "source": "iana", + "compressible": true, + "extensions": ["dtd"] + }, + "application/xml-external-parsed-entity": { + "source": "iana" + }, + "application/xml-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/xmpp+xml": { + "source": "iana", + "compressible": true + }, + "application/xop+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xop"] + }, + "application/xproc+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xpl"] + }, + "application/xslt+xml": { + "source": "iana", + "compressible": true, + "extensions": ["xsl","xslt"] + }, + "application/xspf+xml": { + "source": "apache", + "compressible": true, + "extensions": ["xspf"] + }, + "application/xv+xml": { + "source": "iana", + "compressible": true, + "extensions": ["mxml","xhvml","xvml","xvm"] + }, + "application/yang": { + "source": "iana", + "extensions": ["yang"] + }, + "application/yang-data+json": { + "source": "iana", + "compressible": true + }, + "application/yang-data+xml": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+json": { + "source": "iana", + "compressible": true + }, + "application/yang-patch+xml": { + "source": "iana", + "compressible": true + }, + "application/yin+xml": { + "source": "iana", + "compressible": true, + "extensions": ["yin"] + }, + "application/zip": { + "source": "iana", + "compressible": false, + "extensions": ["zip"] + }, + "application/zlib": { + "source": "iana" + }, + "application/zstd": { + "source": "iana" + }, + "audio/1d-interleaved-parityfec": { + "source": "iana" + }, + "audio/32kadpcm": { + "source": "iana" + }, + "audio/3gpp": { + "source": "iana", + "compressible": false, + "extensions": ["3gpp"] + }, + "audio/3gpp2": { + "source": "iana" + }, + "audio/aac": { + "source": "iana" + }, + "audio/ac3": { + "source": "iana" + }, + "audio/adpcm": { + "source": "apache", + "extensions": ["adp"] + }, + "audio/amr": { + "source": "iana", + "extensions": ["amr"] + }, + "audio/amr-wb": { + "source": "iana" + }, + "audio/amr-wb+": { + "source": "iana" + }, + "audio/aptx": { + "source": "iana" + }, + "audio/asc": { + "source": "iana" + }, + "audio/atrac-advanced-lossless": { + "source": "iana" + }, + "audio/atrac-x": { + "source": "iana" + }, + "audio/atrac3": { + "source": "iana" + }, + "audio/basic": { + "source": "iana", + "compressible": false, + "extensions": ["au","snd"] + }, + "audio/bv16": { + "source": "iana" + }, + "audio/bv32": { + "source": "iana" + }, + "audio/clearmode": { + "source": "iana" + }, + "audio/cn": { + "source": "iana" + }, + "audio/dat12": { + "source": "iana" + }, + "audio/dls": { + "source": "iana" + }, + "audio/dsr-es201108": { + "source": "iana" + }, + "audio/dsr-es202050": { + "source": "iana" + }, + "audio/dsr-es202211": { + "source": "iana" + }, + "audio/dsr-es202212": { + "source": "iana" + }, + "audio/dv": { + "source": "iana" + }, + "audio/dvi4": { + "source": "iana" + }, + "audio/eac3": { + "source": "iana" + }, + "audio/encaprtp": { + "source": "iana" + }, + "audio/evrc": { + "source": "iana" + }, + "audio/evrc-qcp": { + "source": "iana" + }, + "audio/evrc0": { + "source": "iana" + }, + "audio/evrc1": { + "source": "iana" + }, + "audio/evrcb": { + "source": "iana" + }, + "audio/evrcb0": { + "source": "iana" + }, + "audio/evrcb1": { + "source": "iana" + }, + "audio/evrcnw": { + "source": "iana" + }, + "audio/evrcnw0": { + "source": "iana" + }, + "audio/evrcnw1": { + "source": "iana" + }, + "audio/evrcwb": { + "source": "iana" + }, + "audio/evrcwb0": { + "source": "iana" + }, + "audio/evrcwb1": { + "source": "iana" + }, + "audio/evs": { + "source": "iana" + }, + "audio/flexfec": { + "source": "iana" + }, + "audio/fwdred": { + "source": "iana" + }, + "audio/g711-0": { + "source": "iana" + }, + "audio/g719": { + "source": "iana" + }, + "audio/g722": { + "source": "iana" + }, + "audio/g7221": { + "source": "iana" + }, + "audio/g723": { + "source": "iana" + }, + "audio/g726-16": { + "source": "iana" + }, + "audio/g726-24": { + "source": "iana" + }, + "audio/g726-32": { + "source": "iana" + }, + "audio/g726-40": { + "source": "iana" + }, + "audio/g728": { + "source": "iana" + }, + "audio/g729": { + "source": "iana" + }, + "audio/g7291": { + "source": "iana" + }, + "audio/g729d": { + "source": "iana" + }, + "audio/g729e": { + "source": "iana" + }, + "audio/gsm": { + "source": "iana" + }, + "audio/gsm-efr": { + "source": "iana" + }, + "audio/gsm-hr-08": { + "source": "iana" + }, + "audio/ilbc": { + "source": "iana" + }, + "audio/ip-mr_v2.5": { + "source": "iana" + }, + "audio/isac": { + "source": "apache" + }, + "audio/l16": { + "source": "iana" + }, + "audio/l20": { + "source": "iana" + }, + "audio/l24": { + "source": "iana", + "compressible": false + }, + "audio/l8": { + "source": "iana" + }, + "audio/lpc": { + "source": "iana" + }, + "audio/melp": { + "source": "iana" + }, + "audio/melp1200": { + "source": "iana" + }, + "audio/melp2400": { + "source": "iana" + }, + "audio/melp600": { + "source": "iana" + }, + "audio/mhas": { + "source": "iana" + }, + "audio/midi": { + "source": "apache", + "extensions": ["mid","midi","kar","rmi"] + }, + "audio/mobile-xmf": { + "source": "iana", + "extensions": ["mxmf"] + }, + "audio/mp3": { + "compressible": false, + "extensions": ["mp3"] + }, + "audio/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["m4a","mp4a"] + }, + "audio/mp4a-latm": { + "source": "iana" + }, + "audio/mpa": { + "source": "iana" + }, + "audio/mpa-robust": { + "source": "iana" + }, + "audio/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpga","mp2","mp2a","mp3","m2a","m3a"] + }, + "audio/mpeg4-generic": { + "source": "iana" + }, + "audio/musepack": { + "source": "apache" + }, + "audio/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["oga","ogg","spx","opus"] + }, + "audio/opus": { + "source": "iana" + }, + "audio/parityfec": { + "source": "iana" + }, + "audio/pcma": { + "source": "iana" + }, + "audio/pcma-wb": { + "source": "iana" + }, + "audio/pcmu": { + "source": "iana" + }, + "audio/pcmu-wb": { + "source": "iana" + }, + "audio/prs.sid": { + "source": "iana" + }, + "audio/qcelp": { + "source": "iana" + }, + "audio/raptorfec": { + "source": "iana" + }, + "audio/red": { + "source": "iana" + }, + "audio/rtp-enc-aescm128": { + "source": "iana" + }, + "audio/rtp-midi": { + "source": "iana" + }, + "audio/rtploopback": { + "source": "iana" + }, + "audio/rtx": { + "source": "iana" + }, + "audio/s3m": { + "source": "apache", + "extensions": ["s3m"] + }, + "audio/scip": { + "source": "iana" + }, + "audio/silk": { + "source": "apache", + "extensions": ["sil"] + }, + "audio/smv": { + "source": "iana" + }, + "audio/smv-qcp": { + "source": "iana" + }, + "audio/smv0": { + "source": "iana" + }, + "audio/sofa": { + "source": "iana" + }, + "audio/sp-midi": { + "source": "iana" + }, + "audio/speex": { + "source": "iana" + }, + "audio/t140c": { + "source": "iana" + }, + "audio/t38": { + "source": "iana" + }, + "audio/telephone-event": { + "source": "iana" + }, + "audio/tetra_acelp": { + "source": "iana" + }, + "audio/tetra_acelp_bb": { + "source": "iana" + }, + "audio/tone": { + "source": "iana" + }, + "audio/tsvcis": { + "source": "iana" + }, + "audio/uemclip": { + "source": "iana" + }, + "audio/ulpfec": { + "source": "iana" + }, + "audio/usac": { + "source": "iana" + }, + "audio/vdvi": { + "source": "iana" + }, + "audio/vmr-wb": { + "source": "iana" + }, + "audio/vnd.3gpp.iufp": { + "source": "iana" + }, + "audio/vnd.4sb": { + "source": "iana" + }, + "audio/vnd.audiokoz": { + "source": "iana" + }, + "audio/vnd.celp": { + "source": "iana" + }, + "audio/vnd.cisco.nse": { + "source": "iana" + }, + "audio/vnd.cmles.radio-events": { + "source": "iana" + }, + "audio/vnd.cns.anp1": { + "source": "iana" + }, + "audio/vnd.cns.inf1": { + "source": "iana" + }, + "audio/vnd.dece.audio": { + "source": "iana", + "extensions": ["uva","uvva"] + }, + "audio/vnd.digital-winds": { + "source": "iana", + "extensions": ["eol"] + }, + "audio/vnd.dlna.adts": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.1": { + "source": "iana" + }, + "audio/vnd.dolby.heaac.2": { + "source": "iana" + }, + "audio/vnd.dolby.mlp": { + "source": "iana" + }, + "audio/vnd.dolby.mps": { + "source": "iana" + }, + "audio/vnd.dolby.pl2": { + "source": "iana" + }, + "audio/vnd.dolby.pl2x": { + "source": "iana" + }, + "audio/vnd.dolby.pl2z": { + "source": "iana" + }, + "audio/vnd.dolby.pulse.1": { + "source": "iana" + }, + "audio/vnd.dra": { + "source": "iana", + "extensions": ["dra"] + }, + "audio/vnd.dts": { + "source": "iana", + "extensions": ["dts"] + }, + "audio/vnd.dts.hd": { + "source": "iana", + "extensions": ["dtshd"] + }, + "audio/vnd.dts.uhd": { + "source": "iana" + }, + "audio/vnd.dvb.file": { + "source": "iana" + }, + "audio/vnd.everad.plj": { + "source": "iana" + }, + "audio/vnd.hns.audio": { + "source": "iana" + }, + "audio/vnd.lucent.voice": { + "source": "iana", + "extensions": ["lvp"] + }, + "audio/vnd.ms-playready.media.pya": { + "source": "iana", + "extensions": ["pya"] + }, + "audio/vnd.nokia.mobile-xmf": { + "source": "iana" + }, + "audio/vnd.nortel.vbk": { + "source": "iana" + }, + "audio/vnd.nuera.ecelp4800": { + "source": "iana", + "extensions": ["ecelp4800"] + }, + "audio/vnd.nuera.ecelp7470": { + "source": "iana", + "extensions": ["ecelp7470"] + }, + "audio/vnd.nuera.ecelp9600": { + "source": "iana", + "extensions": ["ecelp9600"] + }, + "audio/vnd.octel.sbc": { + "source": "iana" + }, + "audio/vnd.presonus.multitrack": { + "source": "iana" + }, + "audio/vnd.qcelp": { + "source": "iana" + }, + "audio/vnd.rhetorex.32kadpcm": { + "source": "iana" + }, + "audio/vnd.rip": { + "source": "iana", + "extensions": ["rip"] + }, + "audio/vnd.rn-realaudio": { + "compressible": false + }, + "audio/vnd.sealedmedia.softseal.mpeg": { + "source": "iana" + }, + "audio/vnd.vmx.cvsd": { + "source": "iana" + }, + "audio/vnd.wave": { + "compressible": false + }, + "audio/vorbis": { + "source": "iana", + "compressible": false + }, + "audio/vorbis-config": { + "source": "iana" + }, + "audio/wav": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/wave": { + "compressible": false, + "extensions": ["wav"] + }, + "audio/webm": { + "source": "apache", + "compressible": false, + "extensions": ["weba"] + }, + "audio/x-aac": { + "source": "apache", + "compressible": false, + "extensions": ["aac"] + }, + "audio/x-aiff": { + "source": "apache", + "extensions": ["aif","aiff","aifc"] + }, + "audio/x-caf": { + "source": "apache", + "compressible": false, + "extensions": ["caf"] + }, + "audio/x-flac": { + "source": "apache", + "extensions": ["flac"] + }, + "audio/x-m4a": { + "source": "nginx", + "extensions": ["m4a"] + }, + "audio/x-matroska": { + "source": "apache", + "extensions": ["mka"] + }, + "audio/x-mpegurl": { + "source": "apache", + "extensions": ["m3u"] + }, + "audio/x-ms-wax": { + "source": "apache", + "extensions": ["wax"] + }, + "audio/x-ms-wma": { + "source": "apache", + "extensions": ["wma"] + }, + "audio/x-pn-realaudio": { + "source": "apache", + "extensions": ["ram","ra"] + }, + "audio/x-pn-realaudio-plugin": { + "source": "apache", + "extensions": ["rmp"] + }, + "audio/x-realaudio": { + "source": "nginx", + "extensions": ["ra"] + }, + "audio/x-tta": { + "source": "apache" + }, + "audio/x-wav": { + "source": "apache", + "extensions": ["wav"] + }, + "audio/xm": { + "source": "apache", + "extensions": ["xm"] + }, + "chemical/x-cdx": { + "source": "apache", + "extensions": ["cdx"] + }, + "chemical/x-cif": { + "source": "apache", + "extensions": ["cif"] + }, + "chemical/x-cmdf": { + "source": "apache", + "extensions": ["cmdf"] + }, + "chemical/x-cml": { + "source": "apache", + "extensions": ["cml"] + }, + "chemical/x-csml": { + "source": "apache", + "extensions": ["csml"] + }, + "chemical/x-pdb": { + "source": "apache" + }, + "chemical/x-xyz": { + "source": "apache", + "extensions": ["xyz"] + }, + "font/collection": { + "source": "iana", + "extensions": ["ttc"] + }, + "font/otf": { + "source": "iana", + "compressible": true, + "extensions": ["otf"] + }, + "font/sfnt": { + "source": "iana" + }, + "font/ttf": { + "source": "iana", + "compressible": true, + "extensions": ["ttf"] + }, + "font/woff": { + "source": "iana", + "extensions": ["woff"] + }, + "font/woff2": { + "source": "iana", + "extensions": ["woff2"] + }, + "image/aces": { + "source": "iana", + "extensions": ["exr"] + }, + "image/apng": { + "compressible": false, + "extensions": ["apng"] + }, + "image/avci": { + "source": "iana", + "extensions": ["avci"] + }, + "image/avcs": { + "source": "iana", + "extensions": ["avcs"] + }, + "image/avif": { + "source": "iana", + "compressible": false, + "extensions": ["avif"] + }, + "image/bmp": { + "source": "iana", + "compressible": true, + "extensions": ["bmp"] + }, + "image/cgm": { + "source": "iana", + "extensions": ["cgm"] + }, + "image/dicom-rle": { + "source": "iana", + "extensions": ["drle"] + }, + "image/emf": { + "source": "iana", + "extensions": ["emf"] + }, + "image/fits": { + "source": "iana", + "extensions": ["fits"] + }, + "image/g3fax": { + "source": "iana", + "extensions": ["g3"] + }, + "image/gif": { + "source": "iana", + "compressible": false, + "extensions": ["gif"] + }, + "image/heic": { + "source": "iana", + "extensions": ["heic"] + }, + "image/heic-sequence": { + "source": "iana", + "extensions": ["heics"] + }, + "image/heif": { + "source": "iana", + "extensions": ["heif"] + }, + "image/heif-sequence": { + "source": "iana", + "extensions": ["heifs"] + }, + "image/hej2k": { + "source": "iana", + "extensions": ["hej2"] + }, + "image/hsj2": { + "source": "iana", + "extensions": ["hsj2"] + }, + "image/ief": { + "source": "iana", + "extensions": ["ief"] + }, + "image/jls": { + "source": "iana", + "extensions": ["jls"] + }, + "image/jp2": { + "source": "iana", + "compressible": false, + "extensions": ["jp2","jpg2"] + }, + "image/jpeg": { + "source": "iana", + "compressible": false, + "extensions": ["jpeg","jpg","jpe"] + }, + "image/jph": { + "source": "iana", + "extensions": ["jph"] + }, + "image/jphc": { + "source": "iana", + "extensions": ["jhc"] + }, + "image/jpm": { + "source": "iana", + "compressible": false, + "extensions": ["jpm"] + }, + "image/jpx": { + "source": "iana", + "compressible": false, + "extensions": ["jpx","jpf"] + }, + "image/jxr": { + "source": "iana", + "extensions": ["jxr"] + }, + "image/jxra": { + "source": "iana", + "extensions": ["jxra"] + }, + "image/jxrs": { + "source": "iana", + "extensions": ["jxrs"] + }, + "image/jxs": { + "source": "iana", + "extensions": ["jxs"] + }, + "image/jxsc": { + "source": "iana", + "extensions": ["jxsc"] + }, + "image/jxsi": { + "source": "iana", + "extensions": ["jxsi"] + }, + "image/jxss": { + "source": "iana", + "extensions": ["jxss"] + }, + "image/ktx": { + "source": "iana", + "extensions": ["ktx"] + }, + "image/ktx2": { + "source": "iana", + "extensions": ["ktx2"] + }, + "image/naplps": { + "source": "iana" + }, + "image/pjpeg": { + "compressible": false + }, + "image/png": { + "source": "iana", + "compressible": false, + "extensions": ["png"] + }, + "image/prs.btif": { + "source": "iana", + "extensions": ["btif"] + }, + "image/prs.pti": { + "source": "iana", + "extensions": ["pti"] + }, + "image/pwg-raster": { + "source": "iana" + }, + "image/sgi": { + "source": "apache", + "extensions": ["sgi"] + }, + "image/svg+xml": { + "source": "iana", + "compressible": true, + "extensions": ["svg","svgz"] + }, + "image/t38": { + "source": "iana", + "extensions": ["t38"] + }, + "image/tiff": { + "source": "iana", + "compressible": false, + "extensions": ["tif","tiff"] + }, + "image/tiff-fx": { + "source": "iana", + "extensions": ["tfx"] + }, + "image/vnd.adobe.photoshop": { + "source": "iana", + "compressible": true, + "extensions": ["psd"] + }, + "image/vnd.airzip.accelerator.azv": { + "source": "iana", + "extensions": ["azv"] + }, + "image/vnd.cns.inf2": { + "source": "iana" + }, + "image/vnd.dece.graphic": { + "source": "iana", + "extensions": ["uvi","uvvi","uvg","uvvg"] + }, + "image/vnd.djvu": { + "source": "iana", + "extensions": ["djvu","djv"] + }, + "image/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "image/vnd.dwg": { + "source": "iana", + "extensions": ["dwg"] + }, + "image/vnd.dxf": { + "source": "iana", + "extensions": ["dxf"] + }, + "image/vnd.fastbidsheet": { + "source": "iana", + "extensions": ["fbs"] + }, + "image/vnd.fpx": { + "source": "iana", + "extensions": ["fpx"] + }, + "image/vnd.fst": { + "source": "iana", + "extensions": ["fst"] + }, + "image/vnd.fujixerox.edmics-mmr": { + "source": "iana", + "extensions": ["mmr"] + }, + "image/vnd.fujixerox.edmics-rlc": { + "source": "iana", + "extensions": ["rlc"] + }, + "image/vnd.globalgraphics.pgb": { + "source": "iana" + }, + "image/vnd.microsoft.icon": { + "source": "iana", + "compressible": true, + "extensions": ["ico"] + }, + "image/vnd.mix": { + "source": "iana" + }, + "image/vnd.mozilla.apng": { + "source": "iana" + }, + "image/vnd.ms-dds": { + "compressible": true, + "extensions": ["dds"] + }, + "image/vnd.ms-modi": { + "source": "iana", + "extensions": ["mdi"] + }, + "image/vnd.ms-photo": { + "source": "apache", + "extensions": ["wdp"] + }, + "image/vnd.net-fpx": { + "source": "iana", + "extensions": ["npx"] + }, + "image/vnd.pco.b16": { + "source": "iana", + "extensions": ["b16"] + }, + "image/vnd.radiance": { + "source": "iana" + }, + "image/vnd.sealed.png": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.gif": { + "source": "iana" + }, + "image/vnd.sealedmedia.softseal.jpg": { + "source": "iana" + }, + "image/vnd.svf": { + "source": "iana" + }, + "image/vnd.tencent.tap": { + "source": "iana", + "extensions": ["tap"] + }, + "image/vnd.valve.source.texture": { + "source": "iana", + "extensions": ["vtf"] + }, + "image/vnd.wap.wbmp": { + "source": "iana", + "extensions": ["wbmp"] + }, + "image/vnd.xiff": { + "source": "iana", + "extensions": ["xif"] + }, + "image/vnd.zbrush.pcx": { + "source": "iana", + "extensions": ["pcx"] + }, + "image/webp": { + "source": "apache", + "extensions": ["webp"] + }, + "image/wmf": { + "source": "iana", + "extensions": ["wmf"] + }, + "image/x-3ds": { + "source": "apache", + "extensions": ["3ds"] + }, + "image/x-cmu-raster": { + "source": "apache", + "extensions": ["ras"] + }, + "image/x-cmx": { + "source": "apache", + "extensions": ["cmx"] + }, + "image/x-freehand": { + "source": "apache", + "extensions": ["fh","fhc","fh4","fh5","fh7"] + }, + "image/x-icon": { + "source": "apache", + "compressible": true, + "extensions": ["ico"] + }, + "image/x-jng": { + "source": "nginx", + "extensions": ["jng"] + }, + "image/x-mrsid-image": { + "source": "apache", + "extensions": ["sid"] + }, + "image/x-ms-bmp": { + "source": "nginx", + "compressible": true, + "extensions": ["bmp"] + }, + "image/x-pcx": { + "source": "apache", + "extensions": ["pcx"] + }, + "image/x-pict": { + "source": "apache", + "extensions": ["pic","pct"] + }, + "image/x-portable-anymap": { + "source": "apache", + "extensions": ["pnm"] + }, + "image/x-portable-bitmap": { + "source": "apache", + "extensions": ["pbm"] + }, + "image/x-portable-graymap": { + "source": "apache", + "extensions": ["pgm"] + }, + "image/x-portable-pixmap": { + "source": "apache", + "extensions": ["ppm"] + }, + "image/x-rgb": { + "source": "apache", + "extensions": ["rgb"] + }, + "image/x-tga": { + "source": "apache", + "extensions": ["tga"] + }, + "image/x-xbitmap": { + "source": "apache", + "extensions": ["xbm"] + }, + "image/x-xcf": { + "compressible": false + }, + "image/x-xpixmap": { + "source": "apache", + "extensions": ["xpm"] + }, + "image/x-xwindowdump": { + "source": "apache", + "extensions": ["xwd"] + }, + "message/cpim": { + "source": "iana" + }, + "message/delivery-status": { + "source": "iana" + }, + "message/disposition-notification": { + "source": "iana", + "extensions": [ + "disposition-notification" + ] + }, + "message/external-body": { + "source": "iana" + }, + "message/feedback-report": { + "source": "iana" + }, + "message/global": { + "source": "iana", + "extensions": ["u8msg"] + }, + "message/global-delivery-status": { + "source": "iana", + "extensions": ["u8dsn"] + }, + "message/global-disposition-notification": { + "source": "iana", + "extensions": ["u8mdn"] + }, + "message/global-headers": { + "source": "iana", + "extensions": ["u8hdr"] + }, + "message/http": { + "source": "iana", + "compressible": false + }, + "message/imdn+xml": { + "source": "iana", + "compressible": true + }, + "message/news": { + "source": "iana" + }, + "message/partial": { + "source": "iana", + "compressible": false + }, + "message/rfc822": { + "source": "iana", + "compressible": true, + "extensions": ["eml","mime"] + }, + "message/s-http": { + "source": "iana" + }, + "message/sip": { + "source": "iana" + }, + "message/sipfrag": { + "source": "iana" + }, + "message/tracking-status": { + "source": "iana" + }, + "message/vnd.si.simp": { + "source": "iana" + }, + "message/vnd.wfa.wsc": { + "source": "iana", + "extensions": ["wsc"] + }, + "model/3mf": { + "source": "iana", + "extensions": ["3mf"] + }, + "model/e57": { + "source": "iana" + }, + "model/gltf+json": { + "source": "iana", + "compressible": true, + "extensions": ["gltf"] + }, + "model/gltf-binary": { + "source": "iana", + "compressible": true, + "extensions": ["glb"] + }, + "model/iges": { + "source": "iana", + "compressible": false, + "extensions": ["igs","iges"] + }, + "model/mesh": { + "source": "iana", + "compressible": false, + "extensions": ["msh","mesh","silo"] + }, + "model/mtl": { + "source": "iana", + "extensions": ["mtl"] + }, + "model/obj": { + "source": "iana", + "extensions": ["obj"] + }, + "model/step": { + "source": "iana" + }, + "model/step+xml": { + "source": "iana", + "compressible": true, + "extensions": ["stpx"] + }, + "model/step+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpz"] + }, + "model/step-xml+zip": { + "source": "iana", + "compressible": false, + "extensions": ["stpxz"] + }, + "model/stl": { + "source": "iana", + "extensions": ["stl"] + }, + "model/vnd.collada+xml": { + "source": "iana", + "compressible": true, + "extensions": ["dae"] + }, + "model/vnd.dwf": { + "source": "iana", + "extensions": ["dwf"] + }, + "model/vnd.flatland.3dml": { + "source": "iana" + }, + "model/vnd.gdl": { + "source": "iana", + "extensions": ["gdl"] + }, + "model/vnd.gs-gdl": { + "source": "apache" + }, + "model/vnd.gs.gdl": { + "source": "iana" + }, + "model/vnd.gtw": { + "source": "iana", + "extensions": ["gtw"] + }, + "model/vnd.moml+xml": { + "source": "iana", + "compressible": true + }, + "model/vnd.mts": { + "source": "iana", + "extensions": ["mts"] + }, + "model/vnd.opengex": { + "source": "iana", + "extensions": ["ogex"] + }, + "model/vnd.parasolid.transmit.binary": { + "source": "iana", + "extensions": ["x_b"] + }, + "model/vnd.parasolid.transmit.text": { + "source": "iana", + "extensions": ["x_t"] + }, + "model/vnd.pytha.pyox": { + "source": "iana" + }, + "model/vnd.rosette.annotated-data-model": { + "source": "iana" + }, + "model/vnd.sap.vds": { + "source": "iana", + "extensions": ["vds"] + }, + "model/vnd.usdz+zip": { + "source": "iana", + "compressible": false, + "extensions": ["usdz"] + }, + "model/vnd.valve.source.compiled-map": { + "source": "iana", + "extensions": ["bsp"] + }, + "model/vnd.vtu": { + "source": "iana", + "extensions": ["vtu"] + }, + "model/vrml": { + "source": "iana", + "compressible": false, + "extensions": ["wrl","vrml"] + }, + "model/x3d+binary": { + "source": "apache", + "compressible": false, + "extensions": ["x3db","x3dbz"] + }, + "model/x3d+fastinfoset": { + "source": "iana", + "extensions": ["x3db"] + }, + "model/x3d+vrml": { + "source": "apache", + "compressible": false, + "extensions": ["x3dv","x3dvz"] + }, + "model/x3d+xml": { + "source": "iana", + "compressible": true, + "extensions": ["x3d","x3dz"] + }, + "model/x3d-vrml": { + "source": "iana", + "extensions": ["x3dv"] + }, + "multipart/alternative": { + "source": "iana", + "compressible": false + }, + "multipart/appledouble": { + "source": "iana" + }, + "multipart/byteranges": { + "source": "iana" + }, + "multipart/digest": { + "source": "iana" + }, + "multipart/encrypted": { + "source": "iana", + "compressible": false + }, + "multipart/form-data": { + "source": "iana", + "compressible": false + }, + "multipart/header-set": { + "source": "iana" + }, + "multipart/mixed": { + "source": "iana" + }, + "multipart/multilingual": { + "source": "iana" + }, + "multipart/parallel": { + "source": "iana" + }, + "multipart/related": { + "source": "iana", + "compressible": false + }, + "multipart/report": { + "source": "iana" + }, + "multipart/signed": { + "source": "iana", + "compressible": false + }, + "multipart/vnd.bint.med-plus": { + "source": "iana" + }, + "multipart/voice-message": { + "source": "iana" + }, + "multipart/x-mixed-replace": { + "source": "iana" + }, + "text/1d-interleaved-parityfec": { + "source": "iana" + }, + "text/cache-manifest": { + "source": "iana", + "compressible": true, + "extensions": ["appcache","manifest"] + }, + "text/calendar": { + "source": "iana", + "extensions": ["ics","ifb"] + }, + "text/calender": { + "compressible": true + }, + "text/cmd": { + "compressible": true + }, + "text/coffeescript": { + "extensions": ["coffee","litcoffee"] + }, + "text/cql": { + "source": "iana" + }, + "text/cql-expression": { + "source": "iana" + }, + "text/cql-identifier": { + "source": "iana" + }, + "text/css": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["css"] + }, + "text/csv": { + "source": "iana", + "compressible": true, + "extensions": ["csv"] + }, + "text/csv-schema": { + "source": "iana" + }, + "text/directory": { + "source": "iana" + }, + "text/dns": { + "source": "iana" + }, + "text/ecmascript": { + "source": "iana" + }, + "text/encaprtp": { + "source": "iana" + }, + "text/enriched": { + "source": "iana" + }, + "text/fhirpath": { + "source": "iana" + }, + "text/flexfec": { + "source": "iana" + }, + "text/fwdred": { + "source": "iana" + }, + "text/gff3": { + "source": "iana" + }, + "text/grammar-ref-list": { + "source": "iana" + }, + "text/html": { + "source": "iana", + "compressible": true, + "extensions": ["html","htm","shtml"] + }, + "text/jade": { + "extensions": ["jade"] + }, + "text/javascript": { + "source": "iana", + "compressible": true + }, + "text/jcr-cnd": { + "source": "iana" + }, + "text/jsx": { + "compressible": true, + "extensions": ["jsx"] + }, + "text/less": { + "compressible": true, + "extensions": ["less"] + }, + "text/markdown": { + "source": "iana", + "compressible": true, + "extensions": ["markdown","md"] + }, + "text/mathml": { + "source": "nginx", + "extensions": ["mml"] + }, + "text/mdx": { + "compressible": true, + "extensions": ["mdx"] + }, + "text/mizar": { + "source": "iana" + }, + "text/n3": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["n3"] + }, + "text/parameters": { + "source": "iana", + "charset": "UTF-8" + }, + "text/parityfec": { + "source": "iana" + }, + "text/plain": { + "source": "iana", + "compressible": true, + "extensions": ["txt","text","conf","def","list","log","in","ini"] + }, + "text/provenance-notation": { + "source": "iana", + "charset": "UTF-8" + }, + "text/prs.fallenstein.rst": { + "source": "iana" + }, + "text/prs.lines.tag": { + "source": "iana", + "extensions": ["dsc"] + }, + "text/prs.prop.logic": { + "source": "iana" + }, + "text/raptorfec": { + "source": "iana" + }, + "text/red": { + "source": "iana" + }, + "text/rfc822-headers": { + "source": "iana" + }, + "text/richtext": { + "source": "iana", + "compressible": true, + "extensions": ["rtx"] + }, + "text/rtf": { + "source": "iana", + "compressible": true, + "extensions": ["rtf"] + }, + "text/rtp-enc-aescm128": { + "source": "iana" + }, + "text/rtploopback": { + "source": "iana" + }, + "text/rtx": { + "source": "iana" + }, + "text/sgml": { + "source": "iana", + "extensions": ["sgml","sgm"] + }, + "text/shaclc": { + "source": "iana" + }, + "text/shex": { + "source": "iana", + "extensions": ["shex"] + }, + "text/slim": { + "extensions": ["slim","slm"] + }, + "text/spdx": { + "source": "iana", + "extensions": ["spdx"] + }, + "text/strings": { + "source": "iana" + }, + "text/stylus": { + "extensions": ["stylus","styl"] + }, + "text/t140": { + "source": "iana" + }, + "text/tab-separated-values": { + "source": "iana", + "compressible": true, + "extensions": ["tsv"] + }, + "text/troff": { + "source": "iana", + "extensions": ["t","tr","roff","man","me","ms"] + }, + "text/turtle": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["ttl"] + }, + "text/ulpfec": { + "source": "iana" + }, + "text/uri-list": { + "source": "iana", + "compressible": true, + "extensions": ["uri","uris","urls"] + }, + "text/vcard": { + "source": "iana", + "compressible": true, + "extensions": ["vcard"] + }, + "text/vnd.a": { + "source": "iana" + }, + "text/vnd.abc": { + "source": "iana" + }, + "text/vnd.ascii-art": { + "source": "iana" + }, + "text/vnd.curl": { + "source": "iana", + "extensions": ["curl"] + }, + "text/vnd.curl.dcurl": { + "source": "apache", + "extensions": ["dcurl"] + }, + "text/vnd.curl.mcurl": { + "source": "apache", + "extensions": ["mcurl"] + }, + "text/vnd.curl.scurl": { + "source": "apache", + "extensions": ["scurl"] + }, + "text/vnd.debian.copyright": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.dmclientscript": { + "source": "iana" + }, + "text/vnd.dvb.subtitle": { + "source": "iana", + "extensions": ["sub"] + }, + "text/vnd.esmertec.theme-descriptor": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.familysearch.gedcom": { + "source": "iana", + "extensions": ["ged"] + }, + "text/vnd.ficlab.flt": { + "source": "iana" + }, + "text/vnd.fly": { + "source": "iana", + "extensions": ["fly"] + }, + "text/vnd.fmi.flexstor": { + "source": "iana", + "extensions": ["flx"] + }, + "text/vnd.gml": { + "source": "iana" + }, + "text/vnd.graphviz": { + "source": "iana", + "extensions": ["gv"] + }, + "text/vnd.hans": { + "source": "iana" + }, + "text/vnd.hgl": { + "source": "iana" + }, + "text/vnd.in3d.3dml": { + "source": "iana", + "extensions": ["3dml"] + }, + "text/vnd.in3d.spot": { + "source": "iana", + "extensions": ["spot"] + }, + "text/vnd.iptc.newsml": { + "source": "iana" + }, + "text/vnd.iptc.nitf": { + "source": "iana" + }, + "text/vnd.latex-z": { + "source": "iana" + }, + "text/vnd.motorola.reflex": { + "source": "iana" + }, + "text/vnd.ms-mediapackage": { + "source": "iana" + }, + "text/vnd.net2phone.commcenter.command": { + "source": "iana" + }, + "text/vnd.radisys.msml-basic-layout": { + "source": "iana" + }, + "text/vnd.senx.warpscript": { + "source": "iana" + }, + "text/vnd.si.uricatalogue": { + "source": "iana" + }, + "text/vnd.sosi": { + "source": "iana" + }, + "text/vnd.sun.j2me.app-descriptor": { + "source": "iana", + "charset": "UTF-8", + "extensions": ["jad"] + }, + "text/vnd.trolltech.linguist": { + "source": "iana", + "charset": "UTF-8" + }, + "text/vnd.wap.si": { + "source": "iana" + }, + "text/vnd.wap.sl": { + "source": "iana" + }, + "text/vnd.wap.wml": { + "source": "iana", + "extensions": ["wml"] + }, + "text/vnd.wap.wmlscript": { + "source": "iana", + "extensions": ["wmls"] + }, + "text/vtt": { + "source": "iana", + "charset": "UTF-8", + "compressible": true, + "extensions": ["vtt"] + }, + "text/x-asm": { + "source": "apache", + "extensions": ["s","asm"] + }, + "text/x-c": { + "source": "apache", + "extensions": ["c","cc","cxx","cpp","h","hh","dic"] + }, + "text/x-component": { + "source": "nginx", + "extensions": ["htc"] + }, + "text/x-fortran": { + "source": "apache", + "extensions": ["f","for","f77","f90"] + }, + "text/x-gwt-rpc": { + "compressible": true + }, + "text/x-handlebars-template": { + "extensions": ["hbs"] + }, + "text/x-java-source": { + "source": "apache", + "extensions": ["java"] + }, + "text/x-jquery-tmpl": { + "compressible": true + }, + "text/x-lua": { + "extensions": ["lua"] + }, + "text/x-markdown": { + "compressible": true, + "extensions": ["mkd"] + }, + "text/x-nfo": { + "source": "apache", + "extensions": ["nfo"] + }, + "text/x-opml": { + "source": "apache", + "extensions": ["opml"] + }, + "text/x-org": { + "compressible": true, + "extensions": ["org"] + }, + "text/x-pascal": { + "source": "apache", + "extensions": ["p","pas"] + }, + "text/x-processing": { + "compressible": true, + "extensions": ["pde"] + }, + "text/x-sass": { + "extensions": ["sass"] + }, + "text/x-scss": { + "extensions": ["scss"] + }, + "text/x-setext": { + "source": "apache", + "extensions": ["etx"] + }, + "text/x-sfv": { + "source": "apache", + "extensions": ["sfv"] + }, + "text/x-suse-ymp": { + "compressible": true, + "extensions": ["ymp"] + }, + "text/x-uuencode": { + "source": "apache", + "extensions": ["uu"] + }, + "text/x-vcalendar": { + "source": "apache", + "extensions": ["vcs"] + }, + "text/x-vcard": { + "source": "apache", + "extensions": ["vcf"] + }, + "text/xml": { + "source": "iana", + "compressible": true, + "extensions": ["xml"] + }, + "text/xml-external-parsed-entity": { + "source": "iana" + }, + "text/yaml": { + "compressible": true, + "extensions": ["yaml","yml"] + }, + "video/1d-interleaved-parityfec": { + "source": "iana" + }, + "video/3gpp": { + "source": "iana", + "extensions": ["3gp","3gpp"] + }, + "video/3gpp-tt": { + "source": "iana" + }, + "video/3gpp2": { + "source": "iana", + "extensions": ["3g2"] + }, + "video/av1": { + "source": "iana" + }, + "video/bmpeg": { + "source": "iana" + }, + "video/bt656": { + "source": "iana" + }, + "video/celb": { + "source": "iana" + }, + "video/dv": { + "source": "iana" + }, + "video/encaprtp": { + "source": "iana" + }, + "video/ffv1": { + "source": "iana" + }, + "video/flexfec": { + "source": "iana" + }, + "video/h261": { + "source": "iana", + "extensions": ["h261"] + }, + "video/h263": { + "source": "iana", + "extensions": ["h263"] + }, + "video/h263-1998": { + "source": "iana" + }, + "video/h263-2000": { + "source": "iana" + }, + "video/h264": { + "source": "iana", + "extensions": ["h264"] + }, + "video/h264-rcdo": { + "source": "iana" + }, + "video/h264-svc": { + "source": "iana" + }, + "video/h265": { + "source": "iana" + }, + "video/iso.segment": { + "source": "iana", + "extensions": ["m4s"] + }, + "video/jpeg": { + "source": "iana", + "extensions": ["jpgv"] + }, + "video/jpeg2000": { + "source": "iana" + }, + "video/jpm": { + "source": "apache", + "extensions": ["jpm","jpgm"] + }, + "video/jxsv": { + "source": "iana" + }, + "video/mj2": { + "source": "iana", + "extensions": ["mj2","mjp2"] + }, + "video/mp1s": { + "source": "iana" + }, + "video/mp2p": { + "source": "iana" + }, + "video/mp2t": { + "source": "iana", + "extensions": ["ts"] + }, + "video/mp4": { + "source": "iana", + "compressible": false, + "extensions": ["mp4","mp4v","mpg4"] + }, + "video/mp4v-es": { + "source": "iana" + }, + "video/mpeg": { + "source": "iana", + "compressible": false, + "extensions": ["mpeg","mpg","mpe","m1v","m2v"] + }, + "video/mpeg4-generic": { + "source": "iana" + }, + "video/mpv": { + "source": "iana" + }, + "video/nv": { + "source": "iana" + }, + "video/ogg": { + "source": "iana", + "compressible": false, + "extensions": ["ogv"] + }, + "video/parityfec": { + "source": "iana" + }, + "video/pointer": { + "source": "iana" + }, + "video/quicktime": { + "source": "iana", + "compressible": false, + "extensions": ["qt","mov"] + }, + "video/raptorfec": { + "source": "iana" + }, + "video/raw": { + "source": "iana" + }, + "video/rtp-enc-aescm128": { + "source": "iana" + }, + "video/rtploopback": { + "source": "iana" + }, + "video/rtx": { + "source": "iana" + }, + "video/scip": { + "source": "iana" + }, + "video/smpte291": { + "source": "iana" + }, + "video/smpte292m": { + "source": "iana" + }, + "video/ulpfec": { + "source": "iana" + }, + "video/vc1": { + "source": "iana" + }, + "video/vc2": { + "source": "iana" + }, + "video/vnd.cctv": { + "source": "iana" + }, + "video/vnd.dece.hd": { + "source": "iana", + "extensions": ["uvh","uvvh"] + }, + "video/vnd.dece.mobile": { + "source": "iana", + "extensions": ["uvm","uvvm"] + }, + "video/vnd.dece.mp4": { + "source": "iana" + }, + "video/vnd.dece.pd": { + "source": "iana", + "extensions": ["uvp","uvvp"] + }, + "video/vnd.dece.sd": { + "source": "iana", + "extensions": ["uvs","uvvs"] + }, + "video/vnd.dece.video": { + "source": "iana", + "extensions": ["uvv","uvvv"] + }, + "video/vnd.directv.mpeg": { + "source": "iana" + }, + "video/vnd.directv.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dlna.mpeg-tts": { + "source": "iana" + }, + "video/vnd.dvb.file": { + "source": "iana", + "extensions": ["dvb"] + }, + "video/vnd.fvt": { + "source": "iana", + "extensions": ["fvt"] + }, + "video/vnd.hns.video": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.1dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-1010": { + "source": "iana" + }, + "video/vnd.iptvforum.2dparityfec-2005": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsavc": { + "source": "iana" + }, + "video/vnd.iptvforum.ttsmpeg2": { + "source": "iana" + }, + "video/vnd.motorola.video": { + "source": "iana" + }, + "video/vnd.motorola.videop": { + "source": "iana" + }, + "video/vnd.mpegurl": { + "source": "iana", + "extensions": ["mxu","m4u"] + }, + "video/vnd.ms-playready.media.pyv": { + "source": "iana", + "extensions": ["pyv"] + }, + "video/vnd.nokia.interleaved-multimedia": { + "source": "iana" + }, + "video/vnd.nokia.mp4vr": { + "source": "iana" + }, + "video/vnd.nokia.videovoip": { + "source": "iana" + }, + "video/vnd.objectvideo": { + "source": "iana" + }, + "video/vnd.radgamettools.bink": { + "source": "iana" + }, + "video/vnd.radgamettools.smacker": { + "source": "iana" + }, + "video/vnd.sealed.mpeg1": { + "source": "iana" + }, + "video/vnd.sealed.mpeg4": { + "source": "iana" + }, + "video/vnd.sealed.swf": { + "source": "iana" + }, + "video/vnd.sealedmedia.softseal.mov": { + "source": "iana" + }, + "video/vnd.uvvu.mp4": { + "source": "iana", + "extensions": ["uvu","uvvu"] + }, + "video/vnd.vivo": { + "source": "iana", + "extensions": ["viv"] + }, + "video/vnd.youtube.yt": { + "source": "iana" + }, + "video/vp8": { + "source": "iana" + }, + "video/vp9": { + "source": "iana" + }, + "video/webm": { + "source": "apache", + "compressible": false, + "extensions": ["webm"] + }, + "video/x-f4v": { + "source": "apache", + "extensions": ["f4v"] + }, + "video/x-fli": { + "source": "apache", + "extensions": ["fli"] + }, + "video/x-flv": { + "source": "apache", + "compressible": false, + "extensions": ["flv"] + }, + "video/x-m4v": { + "source": "apache", + "extensions": ["m4v"] + }, + "video/x-matroska": { + "source": "apache", + "compressible": false, + "extensions": ["mkv","mk3d","mks"] + }, + "video/x-mng": { + "source": "apache", + "extensions": ["mng"] + }, + "video/x-ms-asf": { + "source": "apache", + "extensions": ["asf","asx"] + }, + "video/x-ms-vob": { + "source": "apache", + "extensions": ["vob"] + }, + "video/x-ms-wm": { + "source": "apache", + "extensions": ["wm"] + }, + "video/x-ms-wmv": { + "source": "apache", + "compressible": false, + "extensions": ["wmv"] + }, + "video/x-ms-wmx": { + "source": "apache", + "extensions": ["wmx"] + }, + "video/x-ms-wvx": { + "source": "apache", + "extensions": ["wvx"] + }, + "video/x-msvideo": { + "source": "apache", + "extensions": ["avi"] + }, + "video/x-sgi-movie": { + "source": "apache", + "extensions": ["movie"] + }, + "video/x-smv": { + "source": "apache", + "extensions": ["smv"] + }, + "x-conference/x-cooltalk": { + "source": "apache", + "extensions": ["ice"] + }, + "x-shader/x-fragment": { + "compressible": true + }, + "x-shader/x-vertex": { + "compressible": true + } +} diff --git a/.output/server/node_modules/mime-db/index.js b/.output/server/node_modules/mime-db/index.js new file mode 100644 index 0000000..ec2be30 --- /dev/null +++ b/.output/server/node_modules/mime-db/index.js @@ -0,0 +1,12 @@ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + */ + +module.exports = require('./db.json') diff --git a/.output/server/node_modules/mime-db/package.json b/.output/server/node_modules/mime-db/package.json new file mode 100644 index 0000000..1664c9f --- /dev/null +++ b/.output/server/node_modules/mime-db/package.json @@ -0,0 +1,63 @@ +{ + "name": "mime-db", + "description": "Media Type Database", + "version": "1.52.0", + "contributors": [ + "Douglas Christopher Wilson <doug@somethingdoug.com>", + "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)", + "Robert Kieffer <robert@broofa.com> (http://github.com/broofa)" + ], + "license": "MIT", + "keywords": [ + "mime", + "db", + "type", + "types", + "database", + "charset", + "charsets" + ], + "repository": "jshttp/mime-db", + "devDependencies": { + "bluebird": "3.7.2", + "co": "4.6.0", + "cogent": "1.0.1", + "csv-parse": "4.16.3", + "eslint": "7.32.0", + "eslint-config-standard": "15.0.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.1.1", + "eslint-plugin-standard": "4.1.0", + "gnode": "0.1.2", + "media-typer": "1.1.0", + "mocha": "9.2.1", + "nyc": "15.1.0", + "raw-body": "2.5.0", + "stream-to-array": "2.3.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "README.md", + "db.json", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "build": "node scripts/build", + "fetch": "node scripts/fetch-apache && gnode scripts/fetch-iana && node scripts/fetch-nginx", + "lint": "eslint .", + "test": "mocha --reporter spec --bail --check-leaks test/", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "update": "npm run fetch && npm run build", + "version": "node scripts/version-history.js && git add HISTORY.md" + }, + "__npminstall_done": true, + "_from": "mime-db@1.52.0", + "_resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/mime-types/index.js b/.output/server/node_modules/mime-types/index.js new file mode 100644 index 0000000..b9f34d5 --- /dev/null +++ b/.output/server/node_modules/mime-types/index.js @@ -0,0 +1,188 @@ +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var db = require('mime-db') +var extname = require('path').extname + +/** + * Module variables. + * @private + */ + +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i + +/** + * Module exports. + * @public + */ + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) + +/** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false +} + +/** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} + +/** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} + +/** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} + +/** + * Populate the extensions and types maps. + * @private + */ + +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} diff --git a/.output/server/node_modules/mime-types/package.json b/.output/server/node_modules/mime-types/package.json new file mode 100644 index 0000000..5e27c7c --- /dev/null +++ b/.output/server/node_modules/mime-types/package.json @@ -0,0 +1,47 @@ +{ + "name": "mime-types", + "description": "The ultimate javascript content-type utility.", + "version": "2.1.35", + "contributors": [ + "Douglas Christopher Wilson <doug@somethingdoug.com>", + "Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)", + "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)" + ], + "license": "MIT", + "keywords": [ + "mime", + "types" + ], + "repository": "jshttp/mime-types", + "dependencies": { + "mime-db": "1.52.0" + }, + "devDependencies": { + "eslint": "7.32.0", + "eslint-config-standard": "14.1.1", + "eslint-plugin-import": "2.25.4", + "eslint-plugin-markdown": "2.2.1", + "eslint-plugin-node": "11.1.0", + "eslint-plugin-promise": "5.2.0", + "eslint-plugin-standard": "4.1.0", + "mocha": "9.2.2", + "nyc": "15.1.0" + }, + "files": [ + "HISTORY.md", + "LICENSE", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --reporter spec test/test.js", + "test-ci": "nyc --reporter=lcov --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + }, + "__npminstall_done": true, + "_from": "mime-types@2.1.35", + "_resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/ms/index.js b/.output/server/node_modules/ms/index.js new file mode 100644 index 0000000..ea734fb --- /dev/null +++ b/.output/server/node_modules/ms/index.js @@ -0,0 +1,162 @@ +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} diff --git a/.output/server/node_modules/ms/package.json b/.output/server/node_modules/ms/package.json new file mode 100644 index 0000000..99d2d9b --- /dev/null +++ b/.output/server/node_modules/ms/package.json @@ -0,0 +1,41 @@ +{ + "name": "ms", + "version": "2.1.3", + "description": "Tiny millisecond conversion utility", + "repository": "vercel/ms", + "main": "./index", + "files": [ + "index.js" + ], + "scripts": { + "precommit": "lint-staged", + "lint": "eslint lib/* bin/*", + "test": "mocha tests.js" + }, + "eslintConfig": { + "extends": "eslint:recommended", + "env": { + "node": true, + "es6": true + } + }, + "lint-staged": { + "*.js": [ + "npm run lint", + "prettier --single-quote --write", + "git add" + ] + }, + "license": "MIT", + "devDependencies": { + "eslint": "4.18.2", + "expect.js": "0.3.1", + "husky": "0.14.3", + "lint-staged": "5.0.0", + "mocha": "4.0.1", + "prettier": "2.0.5" + }, + "__npminstall_done": true, + "_from": "ms@2.1.3", + "_resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs b/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs new file mode 100644 index 0000000..a914c59 --- /dev/null +++ b/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs @@ -0,0 +1 @@ +export{Buffer}from"node:buffer"; diff --git a/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs b/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs new file mode 100644 index 0000000..f3e37ca --- /dev/null +++ b/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs @@ -0,0 +1 @@ +export{EventEmitter}from"node:events"; diff --git a/.output/server/node_modules/node-mock-http/dist/index.mjs b/.output/server/node_modules/node-mock-http/dist/index.mjs new file mode 100644 index 0000000..9b625de --- /dev/null +++ b/.output/server/node_modules/node-mock-http/dist/index.mjs @@ -0,0 +1 @@ +import{EventEmitter as f}from"node-mock-http/_polyfill/events";import{Buffer as h}from"node-mock-http/_polyfill/buffer";function o(n){throw new Error(`${n} is not implemented yet!`)}class i extends f{__unenv__={};readableEncoding=null;readableEnded=!0;readableFlowing=!1;readableHighWaterMark=0;readableLength=0;readableObjectMode=!1;readableAborted=!1;readableDidRead=!1;closed=!1;errored=null;readable=!1;destroyed=!1;static from(e,t){return new i(t)}constructor(e){super()}_read(e){}read(e){}setEncoding(e){return this}pause(){return this}resume(){return this}isPaused(){return!0}unpipe(e){return this}unshift(e,t){}wrap(e){return this}push(e,t){return!1}_destroy(e,t){this.removeAllListeners()}destroy(e){return this.destroyed=!0,this._destroy(e),this}pipe(e,t){return{}}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return this.destroy(),Promise.resolve()}async*[Symbol.asyncIterator](){throw o("Readable.asyncIterator")}iterator(e){throw o("Readable.iterator")}map(e,t){throw o("Readable.map")}filter(e,t){throw o("Readable.filter")}forEach(e,t){throw o("Readable.forEach")}reduce(e,t,r){throw o("Readable.reduce")}find(e,t){throw o("Readable.find")}findIndex(e,t){throw o("Readable.findIndex")}some(e,t){throw o("Readable.some")}toArray(e){throw o("Readable.toArray")}every(e,t){throw o("Readable.every")}flatMap(e,t){throw o("Readable.flatMap")}drop(e,t){throw o("Readable.drop")}take(e,t){throw o("Readable.take")}asIndexedPairs(e){throw o("Readable.asIndexedPairs")}}class l extends f{__unenv__={};writable=!0;writableEnded=!1;writableFinished=!1;writableHighWaterMark=0;writableLength=0;writableObjectMode=!1;writableCorked=0;closed=!1;errored=null;writableNeedDrain=!1;destroyed=!1;_data;_encoding="utf8";constructor(e){super()}pipe(e,t){return{}}_write(e,t,r){if(this.writableEnded){r&&r();return}if(this._data===void 0)this._data=e;else{const s=typeof this._data=="string"?h.from(this._data,this._encoding||t||"utf8"):this._data,a=typeof e=="string"?h.from(e,t||this._encoding||"utf8"):e;this._data=h.concat([s,a])}this._encoding=t,r&&r()}_writev(e,t){}_destroy(e,t){}_final(e){}write(e,t,r){const s=typeof t=="string"?this._encoding:"utf8",a=typeof t=="function"?t:typeof r=="function"?r:void 0;return this._write(e,s,a),!0}setDefaultEncoding(e){return this}end(e,t,r){const s=typeof e=="function"?e:typeof t=="function"?t:typeof r=="function"?r:void 0;if(this.writableEnded)return s&&s(),this;const a=e===s?void 0:e;if(a){const u=t===s?void 0:t;this.write(a,u,s)}return this.writableEnded=!0,this.writableFinished=!0,this.emit("close"),this.emit("finish"),this}cork(){}uncork(){}destroy(e){return this.destroyed=!0,delete this._data,this.removeAllListeners(),this}compose(e,t){throw new Error("Method not implemented.")}}const c=class{allowHalfOpen=!0;_destroy;constructor(e=new i,t=new l){Object.assign(this,e),Object.assign(this,t),this._destroy=g(e._destroy,t._destroy)}};function _(){return Object.assign(c.prototype,i.prototype),Object.assign(c.prototype,l.prototype),c}function g(...n){return function(...e){for(const t of n)t(...e)}}const m=_();class A extends m{__unenv__={};bufferSize=0;bytesRead=0;bytesWritten=0;connecting=!1;destroyed=!1;pending=!1;localAddress="";localPort=0;remoteAddress="";remoteFamily="";remotePort=0;autoSelectFamilyAttemptedAddresses=[];readyState="readOnly";constructor(e){super()}write(e,t,r){return!1}connect(e,t,r){return this}end(e,t,r){return this}setEncoding(e){return this}pause(){return this}resume(){return this}setTimeout(e,t){return this}setNoDelay(e){return this}setKeepAlive(e,t){return this}address(){return{}}unref(){return this}ref(){return this}destroySoon(){this.destroy()}resetAndDestroy(){const e=new Error("ERR_SOCKET_CLOSED");return e.code="ERR_SOCKET_CLOSED",this.destroy(e),this}}class y extends i{aborted=!1;httpVersion="1.1";httpVersionMajor=1;httpVersionMinor=1;complete=!0;connection;socket;headers={};trailers={};method="GET";url="/";statusCode=200;statusMessage="";closed=!1;errored=null;readable=!1;constructor(e){super(),this.socket=this.connection=e||new A}get rawHeaders(){const e=this.headers,t=[];for(const r in e)if(Array.isArray(e[r]))for(const s of e[r])t.push(r,s);else t.push(r,e[r]);return t}get rawTrailers(){return[]}setTimeout(e,t){return this}get headersDistinct(){return p(this.headers)}get trailersDistinct(){return p(this.trailers)}}function p(n){const e={};for(const[t,r]of Object.entries(n))t&&(e[t]=(Array.isArray(r)?r:[r]).filter(Boolean));return e}class w extends l{statusCode=200;statusMessage="";upgrading=!1;chunkedEncoding=!1;shouldKeepAlive=!1;useChunkedEncodingByDefault=!1;sendDate=!1;finished=!1;headersSent=!1;strictContentLength=!1;connection=null;socket=null;req;_headers={};constructor(e){super(),this.req=e}assignSocket(e){e._httpMessage=this,this.socket=e,this.connection=e,this.emit("socket",e),this._flush()}_flush(){this.flushHeaders()}detachSocket(e){}writeContinue(e){}writeHead(e,t,r){e&&(this.statusCode=e),typeof t=="string"&&(this.statusMessage=t,t=void 0);const s=r||t;if(s&&!Array.isArray(s))for(const a in s)this.setHeader(a,s[a]);return this.headersSent=!0,this}writeProcessing(){}setTimeout(e,t){return this}appendHeader(e,t){e=e.toLowerCase();const r=this._headers[e],s=[...Array.isArray(r)?r:[r],...Array.isArray(t)?t:[t]].filter(Boolean);return this._headers[e]=s.length>1?s:s[0],this}setHeader(e,t){return this._headers[e.toLowerCase()]=t,this}setHeaders(e){for(const[t,r]of Object.entries(e))this.setHeader(t,r);return this}getHeader(e){return this._headers[e.toLowerCase()]}getHeaders(){return this._headers}getHeaderNames(){return Object.keys(this._headers)}hasHeader(e){return e.toLowerCase()in this._headers}removeHeader(e){delete this._headers[e.toLowerCase()]}addTrailers(e){}flushHeaders(){}writeEarlyHints(e,t){typeof t=="function"&&t()}}const E=(()=>{const n=function(){};return n.prototype=Object.create(null),n})();function R(n={}){const e=new E,t=Array.isArray(n)||H(n)?n:Object.entries(n);for(const[r,s]of t)if(s){if(e[r]===void 0){e[r]=s;continue}e[r]=[...Array.isArray(e[r])?e[r]:[e[r]],...Array.isArray(s)?s:[s]]}return e}function H(n){return typeof n?.entries=="function"}function S(n={}){if(n instanceof Headers)return n;const e=new Headers;for(const[t,r]of Object.entries(n))if(r!==void 0){if(Array.isArray(r)){for(const s of r)e.append(t,String(s));continue}e.set(t,String(r))}return e}const C=new Set([101,204,205,304]);async function b(n,e){const t=new y,r=new w(t);t.url=e.url?.toString()||"/";let s;if(!t.url.startsWith("/")){const d=new URL(t.url);s=d.host,t.url=d.pathname+d.search+d.hash}t.method=e.method||"GET",t.headers=R(e.headers||{}),t.headers.host||(t.headers.host=e.host||s||"localhost"),t.connection.encrypted=t.connection.encrypted||e.protocol==="https",t.body=e.body||null,t.__unenv__=e.context,await n(t,r);let a=r._data;(C.has(r.statusCode)||t.method.toUpperCase()==="HEAD")&&(a=null,delete r._headers["content-length"]);const u={status:r.statusCode,statusText:r.statusMessage,headers:r._headers,body:a};return t.destroy(),r.destroy(),u}async function O(n,e,t={}){try{const r=await b(n,{url:e,...t});return new Response(r.body,{status:r.status,statusText:r.statusText,headers:S(r.headers)})}catch(r){return new Response(r.toString(),{status:Number.parseInt(r.statusCode||r.code)||500,statusText:r.statusText})}}export{y as IncomingMessage,w as ServerResponse,b as callNodeRequestHandler,O as fetchNodeRequestHandler}; diff --git a/.output/server/node_modules/node-mock-http/package.json b/.output/server/node_modules/node-mock-http/package.json new file mode 100644 index 0000000..4b62f2c --- /dev/null +++ b/.output/server/node_modules/node-mock-http/package.json @@ -0,0 +1,66 @@ +{ + "name": "node-mock-http", + "version": "1.0.0", + "description": "", + "repository": "unjs/node-mock-http", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./_polyfill/buffer": { + "import": { + "node": "./dist/_polyfill/buffer/node.mjs", + "default": "./dist/_polyfill/buffer/nodeless.mjs" + }, + "require": { + "node": "./dist/_polyfill/buffer/node.cjs", + "default": "./dist/_polyfill/buffer/nodeless.cjs" + } + }, + "./_polyfill/events": { + "import": { + "node": "./dist/_polyfill/events/node.mjs", + "default": "./dist/_polyfill/events/nodeless.mjs" + }, + "require": { + "node": "./dist/_polyfill/events/node.cjs", + "default": "./dist/_polyfill/events/nodeless.cjs" + } + } + }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild --minify", + "dev": "vitest dev --coverage", + "lint": "eslint . && prettier -c .", + "lint:fix": "automd && eslint . --fix && prettier -w .", + "prepack": "pnpm build", + "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags", + "test": "pnpm lint && pnpm test:types && vitest run --coverage", + "test:types": "tsc --noEmit --skipLibCheck" + }, + "devDependencies": { + "@types/node": "^22.12.0", + "@vitest/coverage-v8": "^3.0.4", + "automd": "^0.3.12", + "changelogen": "^0.5.7", + "eslint": "^9.19.0", + "eslint-config-unjs": "^0.4.2", + "jiti": "^2.4.2", + "prettier": "^3.4.2", + "typescript": "^5.7.3", + "unbuild": "^3.3.1", + "vitest": "^3.0.4" + }, + "packageManager": "pnpm@10.2.0", + "__npminstall_done": true, + "_from": "node-mock-http@1.0.0", + "_resolved": "https://registry.npmmirror.com/node-mock-http/-/node-mock-http-1.0.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/object-inspect/index.js b/.output/server/node_modules/object-inspect/index.js new file mode 100644 index 0000000..a4b2d4c --- /dev/null +++ b/.output/server/node_modules/object-inspect/index.js @@ -0,0 +1,544 @@ +var hasMap = typeof Map === 'function' && Map.prototype; +var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null; +var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null; +var mapForEach = hasMap && Map.prototype.forEach; +var hasSet = typeof Set === 'function' && Set.prototype; +var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null; +var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null; +var setForEach = hasSet && Set.prototype.forEach; +var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype; +var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; +var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype; +var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; +var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype; +var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; +var booleanValueOf = Boolean.prototype.valueOf; +var objectToString = Object.prototype.toString; +var functionToString = Function.prototype.toString; +var $match = String.prototype.match; +var $slice = String.prototype.slice; +var $replace = String.prototype.replace; +var $toUpperCase = String.prototype.toUpperCase; +var $toLowerCase = String.prototype.toLowerCase; +var $test = RegExp.prototype.test; +var $concat = Array.prototype.concat; +var $join = Array.prototype.join; +var $arrSlice = Array.prototype.slice; +var $floor = Math.floor; +var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; +var gOPS = Object.getOwnPropertySymbols; +var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; +var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +// ie, `has-tostringtag/shams +var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol') + ? Symbol.toStringTag + : null; +var isEnumerable = Object.prototype.propertyIsEnumerable; + +var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( + [].__proto__ === Array.prototype // eslint-disable-line no-proto + ? function (O) { + return O.__proto__; // eslint-disable-line no-proto + } + : null +); + +function addNumericSeparator(num, str) { + if ( + num === Infinity + || num === -Infinity + || num !== num + || (num && num > -1000 && num < 1000) + || $test.call(/e/, str) + ) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === 'number') { + var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num) + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, ''); + } + } + return $replace.call(str, sepRegex, '$&_'); +} + +var utilInspect = require('./util.inspect'); +var inspectCustom = utilInspect.custom; +var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + +var quotes = { + __proto__: null, + 'double': '"', + single: "'" +}; +var quoteREs = { + __proto__: null, + 'double': /(["\\])/g, + single: /(['\\])/g +}; + +module.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + + if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if ( + has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' + ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity + : opts.maxStringLength !== null + ) + ) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, 'customInspect') ? opts.customInspect : true; + if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') { + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`'); + } + + if ( + has(opts, 'indent') + && opts.indent !== null + && opts.indent !== '\t' + && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0) + ) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + + if (typeof obj === 'undefined') { + return 'undefined'; + } + if (obj === null) { + return 'null'; + } + if (typeof obj === 'boolean') { + return obj ? 'true' : 'false'; + } + + if (typeof obj === 'string') { + return inspectString(obj, opts); + } + if (typeof obj === 'number') { + if (obj === 0) { + return Infinity / obj > 0 ? '0' : '-0'; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === 'bigint') { + var bigIntStr = String(obj) + 'n'; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + + var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth; + if (typeof depth === 'undefined') { depth = 0; } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') { + return isArray(obj) ? '[Array]' : '[Object]'; + } + + var indent = getIndent(opts, depth); + + if (typeof seen === 'undefined') { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return '[Circular]'; + } + + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, 'quoteStyle')) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + + if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : ''); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = '<' + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts); + } + s += '>'; + if (obj.childNodes && obj.childNodes.length) { s += '...'; } + s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>'; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { return '[]'; } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return '[' + indentedJoin(xs, indent) + ']'; + } + return '[ ' + $join.call(xs, ', ') + ' ]'; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) { + return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }'; + } + if (parts.length === 0) { return '[' + String(obj) + ']'; } + return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }'; + } + if (typeof obj === 'object' && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function (value, key) { + mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); + }); + } + return collectionOf('Map', mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function (value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf('Set', setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf('WeakMap'); + } + if (isWeakSet(obj)) { + return weakCollectionOf('WeakSet'); + } + if (isWeakRef(obj)) { + return weakCollectionOf('WeakRef'); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other + /* eslint-env browser */ + if (typeof window !== 'undefined' && obj === window) { + return '{ [object Window] }'; + } + if ( + (typeof globalThis !== 'undefined' && obj === globalThis) + || (typeof global !== 'undefined' && obj === global) + ) { + return '{ [object globalThis] }'; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? '' : 'null prototype'; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : ''; + var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; + var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : ''); + if (ys.length === 0) { return tag + '{}'; } + if (indent) { + return tag + '{' + indentedJoin(ys, indent) + '}'; + } + return tag + '{ ' + $join.call(ys, ', ') + ' }'; + } + return String(obj); +}; + +function wrapQuotes(s, defaultStyle, opts) { + var style = opts.quoteStyle || defaultStyle; + var quoteChar = quotes[style]; + return quoteChar + s + quoteChar; +} + +function quote(s) { + return $replace.call(String(s), /"/g, '"'); +} + +function canTrustToString(obj) { + return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined')); +} +function isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); } +function isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); } +function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); } +function isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); } +function isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); } +function isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); } +function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); } + +// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives +function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === 'object' && obj instanceof Symbol; + } + if (typeof obj === 'symbol') { + return true; + } + if (!obj || typeof obj !== 'object' || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; +} + +function isBigInt(obj) { + if (!obj || typeof obj !== 'object' || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; +} + +var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; }; +function has(obj, key) { + return hasOwn.call(obj, key); +} + +function toStr(obj) { + return objectToString.call(obj); +} + +function nameOf(f) { + if (f.name) { return f.name; } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { return m[1]; } + return null; +} + +function indexOf(xs, x) { + if (xs.indexOf) { return xs.indexOf(x); } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { return i; } + } + return -1; +} + +function isMap(x) { + if (!mapSize || !x || typeof x !== 'object') { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== 'object') { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== 'object') { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; +} + +function isSet(x) { + if (!setSize || !x || typeof x !== 'object') { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== 'object') { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isElement(x) { + if (!x || typeof x !== 'object') { return false; } + if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function'; +} + +function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : ''); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var quoteRE = quoteREs[opts.quoteStyle || 'single']; + quoteRE.lastIndex = 0; + // eslint-disable-next-line no-control-regex + var s = $replace.call($replace.call(str, quoteRE, '\\$1'), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, 'single', opts); +} + +function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: 'b', + 9: 't', + 10: 'n', + 12: 'f', + 13: 'r' + }[n]; + if (x) { return '\\' + x; } + return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16)); +} + +function markBoxed(str) { + return 'Object(' + str + ')'; +} + +function weakCollectionOf(type) { + return type + ' { ? }'; +} + +function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', '); + return type + ' (' + size + ') {' + joinedEntries + '}'; +} + +function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], '\n') >= 0) { + return false; + } + } + return true; +} + +function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === '\t') { + baseIndent = '\t'; + } else if (typeof opts.indent === 'number' && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), ' '); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; +} + +function indentedJoin(xs, indent) { + if (xs.length === 0) { return ''; } + var lineJoiner = '\n' + indent.prev + indent.base; + return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev; +} + +function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ''; + } + } + var syms = typeof gOPS === 'function' ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap['$' + syms[k]] = syms[k]; + } + } + + for (var key in obj) { // eslint-disable-line no-restricted-syntax + if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { + // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section + continue; // eslint-disable-line no-restricted-syntax, no-continue + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); + } else { + xs.push(key + ': ' + inspect(obj[key], obj)); + } + } + if (typeof gOPS === 'function') { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj)); + } + } + } + return xs; +} diff --git a/.output/server/node_modules/object-inspect/package.json b/.output/server/node_modules/object-inspect/package.json new file mode 100644 index 0000000..ad8b641 --- /dev/null +++ b/.output/server/node_modules/object-inspect/package.json @@ -0,0 +1,108 @@ +{ + "name": "object-inspect", + "version": "1.13.4", + "description": "string representations of objects in node and the browser", + "main": "index.js", + "sideEffects": false, + "devDependencies": { + "@ljharb/eslint-config": "^21.1.1", + "@pkgjs/support": "^0.0.6", + "auto-changelog": "^2.5.0", + "core-js": "^2.6.12", + "error-cause": "^1.0.8", + "es-value-fixtures": "^1.7.1", + "eslint": "=8.8.0", + "for-each": "^0.3.4", + "functions-have-names": "^1.2.3", + "glob": "=10.3.7", + "globalthis": "^1.0.4", + "has-symbols": "^1.1.0", + "has-tostringtag": "^1.0.2", + "in-publish": "^2.0.1", + "jackspeak": "=2.1.1", + "make-arrow-function": "^1.2.0", + "mock-property": "^1.1.0", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "semver": "^6.3.1", + "string.prototype.repeat": "^1.0.0", + "tape": "^5.9.0" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "pretest": "npm run lint", + "lint": "eslint --ext=js,mjs .", + "postlint": "npx @pkgjs/support validate", + "test": "npm run tests-only && npm run test:corejs", + "tests-only": "nyc tape 'test/*.js'", + "test:corejs": "nyc tape test-core-js.js 'test/*.js'", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "testling": { + "files": [ + "test/*.js", + "test/browser/*.js" + ], + "browsers": [ + "ie/6..latest", + "chrome/latest", + "firefox/latest", + "safari/latest", + "opera/latest", + "iphone/latest", + "ipad/latest", + "android/latest" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/object-inspect.git" + }, + "homepage": "https://github.com/inspect-js/object-inspect", + "keywords": [ + "inspect", + "util.inspect", + "object", + "stringify", + "pretty" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "browser": { + "./util.inspect.js": false + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "./test-core-js.js" + ] + }, + "support": true, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "object-inspect@1.13.4", + "_resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/object-inspect/util.inspect.js b/.output/server/node_modules/object-inspect/util.inspect.js new file mode 100644 index 0000000..7784fab --- /dev/null +++ b/.output/server/node_modules/object-inspect/util.inspect.js @@ -0,0 +1 @@ +module.exports = require('util').inspect; diff --git a/.output/server/node_modules/packrup/dist/index.mjs b/.output/server/node_modules/packrup/dist/index.mjs new file mode 100644 index 0000000..48ab989 --- /dev/null +++ b/.output/server/node_modules/packrup/dist/index.mjs @@ -0,0 +1,108 @@ +function asArray(input) { + return Array.isArray(input) ? input : [input]; +} +const InternalKeySymbol = "_$key"; +function packObject(input, options) { + const keys = Object.keys(input); + let [k, v] = keys; + options = options || {}; + options.key = options.key || k; + options.value = options.value || v; + options.resolveKey = options.resolveKey || ((k2) => k2); + const resolveKey = (index) => { + const arr = asArray(options[index]); + return arr.find((k2) => { + if (typeof k2 === "string" && k2.includes(".")) { + return k2; + } + return k2 && keys.includes(k2); + }); + }; + const resolveValue = (k2, input2) => { + if (k2.includes(".")) { + const paths = k2.split("."); + let val = input2; + for (const path of paths) + val = val[path]; + return val; + } + return input2[k2]; + }; + k = resolveKey("key") || k; + v = resolveKey("value") || v; + const dedupeKeyPrefix = input.key ? `${InternalKeySymbol}${input.key}-` : ""; + let keyValue = resolveValue(k, input); + keyValue = options.resolveKey(keyValue); + return { + [`${dedupeKeyPrefix}${keyValue}`]: resolveValue(v, input) + }; +} + +function packArray(input, options) { + const packed = {}; + for (const i of input) { + const packedObj = packObject(i, options); + const pKey = Object.keys(packedObj)[0]; + const isDedupeKey = pKey.startsWith(InternalKeySymbol); + if (!isDedupeKey && packed[pKey]) { + packed[pKey] = Array.isArray(packed[pKey]) ? packed[pKey] : [packed[pKey]]; + packed[pKey].push(Object.values(packedObj)[0]); + } else { + packed[isDedupeKey ? pKey.split("-").slice(1).join("-") || pKey : pKey] = packedObj[pKey]; + } + } + return packed; +} + +function packString(input) { + const output = {}; + input.split(" ").forEach( + (item) => { + const val = item.replace(/"/g, "").split("="); + output[val[0]] = val[1]; + } + ); + return output; +} + +function unpackToArray(input, options) { + const unpacked = []; + const kFn = options.resolveKeyData || ((ctx) => ctx.key); + const vFn = options.resolveValueData || ((ctx) => ctx.value); + for (const [k, v] of Object.entries(input)) { + unpacked.push(...(Array.isArray(v) ? v : [v]).map((i) => { + const ctx = { key: k, value: i }; + const val = vFn(ctx); + if (typeof val === "object") + return unpackToArray(val, options); + if (Array.isArray(val)) + return val; + return { + [typeof options.key === "function" ? options.key(ctx) : options.key]: kFn(ctx), + [typeof options.value === "function" ? options.value(ctx) : options.value]: val + }; + }).flat()); + } + return unpacked; +} + +function unpackToString(value, options) { + return Object.entries(value).map(([key, value2]) => { + if (typeof value2 === "object") + value2 = unpackToString(value2, options); + if (options.resolve) { + const resolved = options.resolve({ key, value: value2 }); + if (typeof resolved !== "undefined") + return resolved; + } + if (typeof value2 === "number") + value2 = value2.toString(); + if (typeof value2 === "string" && options.wrapValue) { + value2 = value2.replace(new RegExp(options.wrapValue, "g"), `\\${options.wrapValue}`); + value2 = `${options.wrapValue}${value2}${options.wrapValue}`; + } + return `${key}${options.keyValueSeparator || ""}${value2}`; + }).join(options.entrySeparator || ""); +} + +export { InternalKeySymbol, packArray, packObject, packString, unpackToArray, unpackToString }; diff --git a/.output/server/node_modules/packrup/package.json b/.output/server/node_modules/packrup/package.json new file mode 100644 index 0000000..e8e8b72 --- /dev/null +++ b/.output/server/node_modules/packrup/package.json @@ -0,0 +1,61 @@ +{ + "name": "packrup", + "type": "module", + "version": "0.1.2", + "packageManager": "pnpm@8.15.4", + "description": "Node Schema.org for Simple and Automated Google Rich Results", + "author": "Harlan Wilton <harlan@harlanzw.com>", + "license": "MIT", + "funding": "https://github.com/sponsors/harlan-zw", + "homepage": "https://github.com/harlan-zw/packrup#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/harlan-zw/packrup.git" + }, + "bugs": { + "url": "https://github.com/harlan-zw/packrup/issues" + }, + "keywords": [ + "pack object", + "pack string", + "pack array" + ], + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "devDependencies": { + "@antfu/eslint-config": "^2.8.0", + "@types/fs-extra": "^11.0.4", + "@vitest/ui": "^1.3.1", + "bumpp": "^9.4.0", + "eslint": "^8.57.0", + "fs-extra": "^11.2.0", + "jsdom": "^24.0.0", + "typescript": "^5.4.2", + "unbuild": "^2.0.0", + "utility-types": "^3.11.0", + "vitest": "^1.3.1" + }, + "scripts": { + "build": "unbuild", + "stub": "unbuild --stub", + "test": "vitest", + "export:sizes": "npx export-size . -r", + "release": "pnpm build && bumpp && pnpm -r publish --no-git-checks", + "lint": "eslint . --fix" + }, + "__npminstall_done": true, + "_from": "packrup@0.1.2", + "_resolved": "https://registry.npmmirror.com/packrup/-/packrup-0.1.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/proxy-from-env/index.js b/.output/server/node_modules/proxy-from-env/index.js new file mode 100644 index 0000000..df75004 --- /dev/null +++ b/.output/server/node_modules/proxy-from-env/index.js @@ -0,0 +1,108 @@ +'use strict'; + +var parseUrl = require('url').parse; + +var DEFAULT_PORTS = { + ftp: 21, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443, +}; + +var stringEndsWith = String.prototype.endsWith || function(s) { + return s.length <= this.length && + this.indexOf(s, this.length - s.length) !== -1; +}; + +/** + * @param {string|object} url - The URL, or the result from url.parse. + * @return {string} The URL of the proxy that should handle the request to the + * given URL. If no proxy is set, this will be an empty string. + */ +function getProxyForUrl(url) { + var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {}; + var proto = parsedUrl.protocol; + var hostname = parsedUrl.host; + var port = parsedUrl.port; + if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { + return ''; // Don't proxy URLs without a valid scheme or host. + } + + proto = proto.split(':', 1)[0]; + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, ''); + port = parseInt(port) || DEFAULT_PORTS[proto] || 0; + if (!shouldProxy(hostname, port)) { + return ''; // Don't proxy URLs that match NO_PROXY. + } + + var proxy = + getEnv('npm_config_' + proto + '_proxy') || + getEnv(proto + '_proxy') || + getEnv('npm_config_proxy') || + getEnv('all_proxy'); + if (proxy && proxy.indexOf('://') === -1) { + // Missing scheme in proxy, default to the requested URL's scheme. + proxy = proto + '://' + proxy; + } + return proxy; +} + +/** + * Determines whether a given URL should be proxied. + * + * @param {string} hostname - The host name of the URL. + * @param {number} port - The effective port of the URL. + * @returns {boolean} Whether the given URL should be proxied. + * @private + */ +function shouldProxy(hostname, port) { + var NO_PROXY = + (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase(); + if (!NO_PROXY) { + return true; // Always proxy if NO_PROXY is not set. + } + if (NO_PROXY === '*') { + return false; // Never proxy if wildcard is set. + } + + return NO_PROXY.split(/[,\s]/).every(function(proxy) { + if (!proxy) { + return true; // Skip zero-length hosts. + } + var parsedProxy = proxy.match(/^(.+):(\d+)$/); + var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; + var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; + if (parsedProxyPort && parsedProxyPort !== port) { + return true; // Skip if ports don't match. + } + + if (!/^[.*]/.test(parsedProxyHostname)) { + // No wildcards, so stop proxying if there is an exact match. + return hostname !== parsedProxyHostname; + } + + if (parsedProxyHostname.charAt(0) === '*') { + // Remove leading wildcard. + parsedProxyHostname = parsedProxyHostname.slice(1); + } + // Stop proxying if the hostname ends with the no_proxy host. + return !stringEndsWith.call(hostname, parsedProxyHostname); + }); +} + +/** + * Get the value for an environment variable. + * + * @param {string} key - The name of the environment variable. + * @return {string} The value of the environment variable. + * @private + */ +function getEnv(key) { + return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; +} + +exports.getProxyForUrl = getProxyForUrl; diff --git a/.output/server/node_modules/proxy-from-env/package.json b/.output/server/node_modules/proxy-from-env/package.json new file mode 100644 index 0000000..9e420e9 --- /dev/null +++ b/.output/server/node_modules/proxy-from-env/package.json @@ -0,0 +1,37 @@ +{ + "name": "proxy-from-env", + "version": "1.1.0", + "description": "Offers getProxyForUrl to get the proxy URL for a URL, respecting the *_PROXY (e.g. HTTP_PROXY) and NO_PROXY environment variables.", + "main": "index.js", + "scripts": { + "lint": "eslint *.js", + "test": "mocha ./test.js --reporter spec", + "test-coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter spec" + }, + "repository": { + "type": "git", + "url": "https://github.com/Rob--W/proxy-from-env.git" + }, + "keywords": [ + "proxy", + "http_proxy", + "https_proxy", + "no_proxy", + "environment" + ], + "author": "Rob Wu <rob@robwu.nl> (https://robwu.nl/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/Rob--W/proxy-from-env/issues" + }, + "homepage": "https://github.com/Rob--W/proxy-from-env#readme", + "devDependencies": { + "coveralls": "^3.0.9", + "eslint": "^6.8.0", + "istanbul": "^0.4.5", + "mocha": "^7.1.0" + }, + "__npminstall_done": true, + "_from": "proxy-from-env@1.1.0", + "_resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/qs/lib/formats.js b/.output/server/node_modules/qs/lib/formats.js new file mode 100644 index 0000000..f36cf20 --- /dev/null +++ b/.output/server/node_modules/qs/lib/formats.js @@ -0,0 +1,23 @@ +'use strict'; + +var replace = String.prototype.replace; +var percentTwenties = /%20/g; + +var Format = { + RFC1738: 'RFC1738', + RFC3986: 'RFC3986' +}; + +module.exports = { + 'default': Format.RFC3986, + formatters: { + RFC1738: function (value) { + return replace.call(value, percentTwenties, '+'); + }, + RFC3986: function (value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 +}; diff --git a/.output/server/node_modules/qs/lib/index.js b/.output/server/node_modules/qs/lib/index.js new file mode 100644 index 0000000..0d6a97d --- /dev/null +++ b/.output/server/node_modules/qs/lib/index.js @@ -0,0 +1,11 @@ +'use strict'; + +var stringify = require('./stringify'); +var parse = require('./parse'); +var formats = require('./formats'); + +module.exports = { + formats: formats, + parse: parse, + stringify: stringify +}; diff --git a/.output/server/node_modules/qs/lib/parse.js b/.output/server/node_modules/qs/lib/parse.js new file mode 100644 index 0000000..d25be00 --- /dev/null +++ b/.output/server/node_modules/qs/lib/parse.js @@ -0,0 +1,328 @@ +'use strict'; + +var utils = require('./utils'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var defaults = { + allowDots: false, + allowEmptyArrays: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: false, + comma: false, + decodeDotInKeys: false, + decoder: utils.decode, + delimiter: '&', + depth: 5, + duplicates: 'combine', + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1000, + parseArrays: true, + plainObjects: false, + strictDepth: false, + strictNullHandling: false, + throwOnLimitExceeded: false +}; + +var interpretNumericEntities = function (str) { + return str.replace(/&#(\d+);/g, function ($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); +}; + +var parseArrayValue = function (val, options, currentArrayLength) { + if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) { + return val.split(','); + } + + if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) { + throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.'); + } + + return val; +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']'); + + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split( + options.delimiter, + options.throwOnLimitExceeded ? limit + 1 : limit + ); + + if (options.throwOnLimitExceeded && parts.length > limit) { + throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.'); + } + + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key; + var val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + + val = utils.maybeMap( + parseArrayValue( + part.slice(pos + 1), + options, + isArray(obj[key]) ? obj[key].length : 0 + ), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(String(val)); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + var existing = has.call(obj, key); + if (existing && options.duplicates === 'combine') { + obj[key] = utils.combine(obj[key], val); + } else if (!existing || options.duplicates === 'last') { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var currentArrayLength = 0; + if (chain.length > 0 && chain[chain.length - 1] === '[]') { + var parentKey = chain.slice(0, -1).join(''); + currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0; + } + + var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null)) + ? [] + : utils.combine([], leaf); + } else { + obj = options.plainObjects ? { __proto__: null } : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot; + var index = parseInt(decodedRoot, 10); + if (!options.parseArrays && decodedRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== decodedRoot + && String(index) === decodedRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (decodedRoot !== '__proto__') { + obj[decodedRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, check strictDepth option for throw, else just add whatever is left + + if (segment) { + if (options.strictDepth === true) { + throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true'); + } + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') { + throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided'); + } + + if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') { + throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided'); + } + + if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') { + throw new TypeError('`throwOnLimitExceeded` option must be a boolean'); + } + + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates; + + if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') { + throw new TypeError('The duplicates option must be either combine, first, or last'); + } + + var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + + return { + allowDots: allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + duplicates: duplicates, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling, + throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? { __proto__: null } : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? { __proto__: null } : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + if (options.allowSparse === true) { + return obj; + } + + return utils.compact(obj); +}; diff --git a/.output/server/node_modules/qs/lib/stringify.js b/.output/server/node_modules/qs/lib/stringify.js new file mode 100644 index 0000000..2666eaf --- /dev/null +++ b/.output/server/node_modules/qs/lib/stringify.js @@ -0,0 +1,356 @@ +'use strict'; + +var getSideChannel = require('side-channel'); +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + allowEmptyArrays: false, + arrayFormat: 'indices', + charset: 'utf-8', + charsetSentinel: false, + commaRoundTrip: false, + delimiter: '&', + encode: true, + encodeDotInKeys: false, + encoder: utils.encode, + encodeValuesOnly: false, + filter: void undefined, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var sentinel = {}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + sideChannel +) { + var obj = object; + + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) { + // Where object last appeared in the ref tree + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== 'undefined') { + if (pos === step) { + throw new RangeError('Cyclic object value'); + } else { + findFlag = true; // Break while + } + } + if (typeof tmpSc.get(sentinel) === 'undefined') { + step = 0; + } + } + + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, encoder); + } + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix); + + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix; + + if (allowEmptyArrays && isArray(obj) && obj.length === 0) { + return adjustedPrefix + '[]'; + } + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && key && typeof key.value !== 'undefined' + ? key.value + : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, '%2E') : String(key); + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix + : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']'); + + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + allowEmptyArrays, + strictNullHandling, + skipNulls, + encodeDotInKeys, + generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') { + throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided'); + } + + if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') { + throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided'); + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + var arrayFormat; + if (opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if ('indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = defaults.arrayFormat; + } + + if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') { + throw new TypeError('`commaRoundTrip` must be a boolean, or absent'); + } + + var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots; + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: allowDots, + allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays, + arrayFormat: arrayFormat, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + commaRoundTrip: !!opts.commaRoundTrip, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat]; + var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + var value = obj[key]; + + if (options.skipNulls && value === null) { + continue; + } + pushToArray(keys, stringify( + value, + key, + generateArrayPrefix, + commaRoundTrip, + options.allowEmptyArrays, + options.strictNullHandling, + options.skipNulls, + options.encodeDotInKeys, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; diff --git a/.output/server/node_modules/qs/lib/utils.js b/.output/server/node_modules/qs/lib/utils.js new file mode 100644 index 0000000..2905ff0 --- /dev/null +++ b/.output/server/node_modules/qs/lib/utils.js @@ -0,0 +1,268 @@ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? { __proto__: null } : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object' && typeof source !== 'function') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ( + (options && (options.plainObjects || options.allowPrototypes)) + || !has.call(Object.prototype, source) + ) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, defaultDecoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var limit = 1024; + +/* eslint operator-linebreak: [2, "before"] */ + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var j = 0; j < string.length; j += limit) { + var segment = string.length >= limit ? string.slice(j, j + limit) : string; + var arr = []; + + for (var i = 0; i < segment.length; ++i) { + var c = segment.charCodeAt(i); + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + arr[arr.length] = segment.charAt(i); + continue; + } + + if (c < 0x80) { + arr[arr.length] = hexTable[c]; + continue; + } + + if (c < 0x800) { + arr[arr.length] = hexTable[0xC0 | (c >> 6)] + + hexTable[0x80 | (c & 0x3F)]; + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + arr[arr.length] = hexTable[0xE0 | (c >> 12)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF)); + + arr[arr.length] = hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + out += arr.join(''); + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; diff --git a/.output/server/node_modules/qs/package.json b/.output/server/node_modules/qs/package.json new file mode 100644 index 0000000..04100fa --- /dev/null +++ b/.output/server/node_modules/qs/package.json @@ -0,0 +1,96 @@ +{ + "name": "qs", + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "homepage": "https://github.com/ljharb/qs", + "version": "6.14.0", + "repository": { + "type": "git", + "url": "https://github.com/ljharb/qs.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "main": "lib/index.js", + "sideEffects": false, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "keywords": [ + "querystring", + "qs", + "query", + "url", + "parse", + "stringify" + ], + "engines": { + "node": ">=0.6" + }, + "dependencies": { + "side-channel": "^1.1.0" + }, + "devDependencies": { + "@browserify/envify": "^6.0.0", + "@browserify/uglifyify": "^6.0.0", + "@ljharb/eslint-config": "^21.1.1", + "browserify": "^16.5.2", + "bundle-collapser": "^1.4.0", + "common-shakeify": "~1.0.0", + "eclint": "^2.8.1", + "es-value-fixtures": "^1.7.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "glob": "=10.3.7", + "has-bigints": "^1.1.0", + "has-override-mistake": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "iconv-lite": "^0.5.1", + "in-publish": "^2.0.1", + "jackspeak": "=2.1.1", + "mkdirp": "^0.5.5", + "mock-property": "^1.1.0", + "module-deps": "^6.2.3", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "object-inspect": "^1.13.3", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "tape": "^5.9.0", + "unassertify": "^3.0.1" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated && npm run dist", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent readme && npm run --silent lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "npx npm@'>=10.2' audit --production", + "readme": "evalmd README.md", + "postlint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "lint": "eslint --ext=js,mjs .", + "dist": "mkdirp dist && browserify --standalone Qs -g unassertify -g @browserify/envify -g [@browserify/uglifyify --mangle.keep_fnames --compress.keep_fnames --format.indent_level=1 --compress.arrows=false --compress.passes=4 --compress.typeofs=false] -p common-shakeify -p bundle-collapser/plugin lib/index.js > dist/qs.js" + }, + "license": "BSD-3-Clause", + "publishConfig": { + "ignore": [ + "!dist/*", + "bower.json", + "component.json", + ".github/workflows", + "logos", + "tea.yaml" + ] + }, + "__npminstall_done": true, + "_from": "qs@6.14.0", + "_resolved": "https://registry.npmmirror.com/qs/-/qs-6.14.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/side-channel-list/index.js b/.output/server/node_modules/side-channel-list/index.js new file mode 100644 index 0000000..8d6f98c --- /dev/null +++ b/.output/server/node_modules/side-channel-list/index.js @@ -0,0 +1,113 @@ +'use strict'; + +var inspect = require('object-inspect'); + +var $TypeError = require('es-errors/type'); + +/* +* This function traverses the list returning the node corresponding to the given key. +* +* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. +* By doing so, all the recently used nodes can be accessed relatively quickly. +*/ +/** @type {import('./list.d.ts').listGetNode} */ +// eslint-disable-next-line consistent-return +var listGetNode = function (list, key, isDelete) { + /** @type {typeof list | NonNullable<(typeof list)['next']>} */ + var prev = list; + /** @type {(typeof list)['next']} */ + var curr; + // eslint-disable-next-line eqeqeq + for (; (curr = prev.next) != null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + if (!isDelete) { + // eslint-disable-next-line no-extra-parens + curr.next = /** @type {NonNullable<typeof list.next>} */ (list.next); + list.next = curr; // eslint-disable-line no-param-reassign + } + return curr; + } + } +}; + +/** @type {import('./list.d.ts').listGet} */ +var listGet = function (objects, key) { + if (!objects) { + return void undefined; + } + var node = listGetNode(objects, key); + return node && node.value; +}; +/** @type {import('./list.d.ts').listSet} */ +var listSet = function (objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + // Prepend the new node to the beginning of the list + objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens + key: key, + next: objects.next, + value: value + }); + } +}; +/** @type {import('./list.d.ts').listHas} */ +var listHas = function (objects, key) { + if (!objects) { + return false; + } + return !!listGetNode(objects, key); +}; +/** @type {import('./list.d.ts').listDelete} */ +// eslint-disable-next-line consistent-return +var listDelete = function (objects, key) { + if (objects) { + return listGetNode(objects, key, true); + } +}; + +/** @type {import('.')} */ +module.exports = function getSideChannelList() { + /** @typedef {ReturnType<typeof getSideChannelList>} Channel */ + /** @typedef {Parameters<Channel['get']>[0]} K */ + /** @typedef {Parameters<Channel['set']>[1]} V */ + + /** @type {import('./list.d.ts').RootNode<V, K> | undefined} */ var $o; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + var root = $o && $o.next; + var deletedNode = listDelete($o, key); + if (deletedNode && root && root === deletedNode) { + $o = void undefined; + } + return !!deletedNode; + }, + get: function (key) { + return listGet($o, key); + }, + has: function (key) { + return listHas($o, key); + }, + set: function (key, value) { + if (!$o) { + // Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head + $o = { + next: void undefined + }; + } + // eslint-disable-next-line no-extra-parens + listSet(/** @type {NonNullable<typeof $o>} */ ($o), key, value); + } + }; + // @ts-expect-error TODO: figure out why this is erroring + return channel; +}; diff --git a/.output/server/node_modules/side-channel-list/package.json b/.output/server/node_modules/side-channel-list/package.json new file mode 100644 index 0000000..95dde5f --- /dev/null +++ b/.output/server/node_modules/side-channel-list/package.json @@ -0,0 +1,80 @@ +{ + "name": "side-channel-list", + "version": "1.0.0", + "description": "Store information about any JS value in a side channel, using a linked list", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-list.git" + }, + "keywords": [], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-list/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-list#readme", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "side-channel-list@1.0.0", + "_resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/side-channel-map/index.js b/.output/server/node_modules/side-channel-map/index.js new file mode 100644 index 0000000..e111100 --- /dev/null +++ b/.output/server/node_modules/side-channel-map/index.js @@ -0,0 +1,68 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var inspect = require('object-inspect'); + +var $TypeError = require('es-errors/type'); +var $Map = GetIntrinsic('%Map%', true); + +/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */ +var $mapGet = callBound('Map.prototype.get', true); +/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */ +var $mapSet = callBound('Map.prototype.set', true); +/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */ +var $mapHas = callBound('Map.prototype.has', true); +/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */ +var $mapDelete = callBound('Map.prototype.delete', true); +/** @type {<K, V>(thisArg: Map<K, V>) => number} */ +var $mapSize = callBound('Map.prototype.size', true); + +/** @type {import('.')} */ +module.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ function getSideChannelMap() { + /** @typedef {ReturnType<typeof getSideChannelMap>} Channel */ + /** @typedef {Parameters<Channel['get']>[0]} K */ + /** @typedef {Parameters<Channel['set']>[1]} V */ + + /** @type {Map<K, V> | undefined} */ var $m; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + if ($m) { + var result = $mapDelete($m, key); + if ($mapSize($m) === 0) { + $m = void undefined; + } + return result; + } + return false; + }, + get: function (key) { // eslint-disable-line consistent-return + if ($m) { + return $mapGet($m, key); + } + }, + has: function (key) { + if ($m) { + return $mapHas($m, key); + } + return false; + }, + set: function (key, value) { + if (!$m) { + // @ts-expect-error TS can't handle narrowing a variable inside a closure + $m = new $Map(); + } + $mapSet($m, key, value); + } + }; + + // @ts-expect-error TODO: figure out why TS is erroring here + return channel; +}; diff --git a/.output/server/node_modules/side-channel-map/package.json b/.output/server/node_modules/side-channel-map/package.json new file mode 100644 index 0000000..d68aa95 --- /dev/null +++ b/.output/server/node_modules/side-channel-map/package.json @@ -0,0 +1,83 @@ +{ + "name": "side-channel-map", + "version": "1.0.1", + "description": "Store information about any JS value in a side channel, using a Map", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md && eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>= 10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-map.git" + }, + "keywords": [], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-map/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-map#readme", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/get-intrinsic": "^1.2.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "side-channel-map@1.0.1", + "_resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/side-channel-weakmap/index.js b/.output/server/node_modules/side-channel-weakmap/index.js new file mode 100644 index 0000000..e5b8183 --- /dev/null +++ b/.output/server/node_modules/side-channel-weakmap/index.js @@ -0,0 +1,84 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bound'); +var inspect = require('object-inspect'); +var getSideChannelMap = require('side-channel-map'); + +var $TypeError = require('es-errors/type'); +var $WeakMap = GetIntrinsic('%WeakMap%', true); + +/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */ +var $weakMapGet = callBound('WeakMap.prototype.get', true); +/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */ +var $weakMapSet = callBound('WeakMap.prototype.set', true); +/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */ +var $weakMapHas = callBound('WeakMap.prototype.has', true); +/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */ +var $weakMapDelete = callBound('WeakMap.prototype.delete', true); + +/** @type {import('.')} */ +module.exports = $WeakMap + ? /** @type {Exclude<import('.'), false>} */ function getSideChannelWeakMap() { + /** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel */ + /** @typedef {Parameters<Channel['get']>[0]} K */ + /** @typedef {Parameters<Channel['set']>[1]} V */ + + /** @type {WeakMap<K & object, V> | undefined} */ var $wm; + /** @type {Channel | undefined} */ var $m; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapDelete($wm, key); + } + } else if (getSideChannelMap) { + if ($m) { + return $m['delete'](key); + } + } + return false; + }, + get: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapGet($wm, key); + } + } + return $m && $m.get(key); + }, + has: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapHas($wm, key); + } + } + return !!$m && $m.has(key); + }, + set: function (key, value) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if (getSideChannelMap) { + if (!$m) { + $m = getSideChannelMap(); + } + // eslint-disable-next-line no-extra-parens + /** @type {NonNullable<typeof $m>} */ ($m).set(key, value); + } + } + }; + + // @ts-expect-error TODO: figure out why this is erroring + return channel; + } + : getSideChannelMap; diff --git a/.output/server/node_modules/side-channel-weakmap/package.json b/.output/server/node_modules/side-channel-weakmap/package.json new file mode 100644 index 0000000..3458d32 --- /dev/null +++ b/.output/server/node_modules/side-channel-weakmap/package.json @@ -0,0 +1,90 @@ +{ + "name": "side-channel-weakmap", + "version": "1.0.2", + "description": "Store information about any JS value in a side channel. Uses WeakMap if available.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel-weakmap.git" + }, + "keywords": [ + "weakmap", + "map", + "side", + "channel", + "metadata" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel-weakmap/issues" + }, + "homepage": "https://github.com/ljharb/side-channel-weakmap#readme", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/call-bind": "^1.0.5", + "@types/get-intrinsic": "^1.2.3", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "side-channel-weakmap@1.0.2", + "_resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/side-channel/index.js b/.output/server/node_modules/side-channel/index.js new file mode 100644 index 0000000..a8a9b05 --- /dev/null +++ b/.output/server/node_modules/side-channel/index.js @@ -0,0 +1,43 @@ +'use strict'; + +var $TypeError = require('es-errors/type'); +var inspect = require('object-inspect'); +var getSideChannelList = require('side-channel-list'); +var getSideChannelMap = require('side-channel-map'); +var getSideChannelWeakMap = require('side-channel-weakmap'); + +var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList; + +/** @type {import('.')} */ +module.exports = function getSideChannel() { + /** @typedef {ReturnType<typeof getSideChannel>} Channel */ + + /** @type {Channel | undefined} */ var $channelData; + + /** @type {Channel} */ + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + 'delete': function (key) { + return !!$channelData && $channelData['delete'](key); + }, + get: function (key) { + return $channelData && $channelData.get(key); + }, + has: function (key) { + return !!$channelData && $channelData.has(key); + }, + set: function (key, value) { + if (!$channelData) { + $channelData = makeChannel(); + } + + $channelData.set(key, value); + } + }; + // @ts-expect-error TODO: figure out why this is erroring + return channel; +}; diff --git a/.output/server/node_modules/side-channel/package.json b/.output/server/node_modules/side-channel/package.json new file mode 100644 index 0000000..482f8ff --- /dev/null +++ b/.output/server/node_modules/side-channel/package.json @@ -0,0 +1,88 @@ +{ + "name": "side-channel", + "version": "1.1.0", + "description": "Store information about any JS value in a side channel. Uses WeakMap if available.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "types": "./index.d.ts", + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs .", + "postlint": "tsc -p . && attw -P", + "pretest": "npm run lint", + "tests-only": "nyc tape 'test/**/*.js'", + "test": "npm run tests-only", + "posttest": "npx npm@'>=10.2' audit --production", + "version": "auto-changelog && git add CHANGELOG.md", + "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ljharb/side-channel.git" + }, + "keywords": [ + "weakmap", + "map", + "side", + "channel", + "metadata" + ], + "author": "Jordan Harband <ljharb@gmail.com>", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel/issues" + }, + "homepage": "https://github.com/ljharb/side-channel#readme", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.17.1", + "@ljharb/eslint-config": "^21.1.1", + "@ljharb/tsconfig": "^0.2.2", + "@types/object-inspect": "^1.13.0", + "@types/tape": "^5.6.5", + "auto-changelog": "^2.5.0", + "eclint": "^2.8.1", + "encoding": "^0.1.13", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.1", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.9.0", + "typescript": "next" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + }, + "engines": { + "node": ">= 0.4" + }, + "__npminstall_done": true, + "_from": "side-channel@1.1.0", + "_resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/source-map-js/lib/array-set.js b/.output/server/node_modules/source-map-js/lib/array-set.js new file mode 100644 index 0000000..fbd5c81 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/.output/server/node_modules/source-map-js/lib/base64-vlq.js b/.output/server/node_modules/source-map-js/lib/base64-vlq.js new file mode 100644 index 0000000..612b404 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/.output/server/node_modules/source-map-js/lib/base64.js b/.output/server/node_modules/source-map-js/lib/base64.js new file mode 100644 index 0000000..8aa86b3 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/.output/server/node_modules/source-map-js/lib/binary-search.js b/.output/server/node_modules/source-map-js/lib/binary-search.js new file mode 100644 index 0000000..010ac94 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/.output/server/node_modules/source-map-js/lib/mapping-list.js b/.output/server/node_modules/source-map-js/lib/mapping-list.js new file mode 100644 index 0000000..06d1274 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/.output/server/node_modules/source-map-js/lib/quick-sort.js b/.output/server/node_modules/source-map-js/lib/quick-sort.js new file mode 100644 index 0000000..23f9eda --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/quick-sort.js @@ -0,0 +1,132 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +exports.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; diff --git a/.output/server/node_modules/source-map-js/lib/source-map-consumer.js b/.output/server/node_modules/source-map-js/lib/source-map-consumer.js new file mode 100644 index 0000000..ee66114 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/source-map-consumer.js @@ -0,0 +1,1188 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === '') { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/.output/server/node_modules/source-map-js/lib/source-map-generator.js b/.output/server/node_modules/source-map-js/lib/source-map-generator.js new file mode 100644 index 0000000..bab04ff --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/source-map-generator.js @@ -0,0 +1,444 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + })); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + var message = 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + var message = 'Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message) + } + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/.output/server/node_modules/source-map-js/lib/source-node.js b/.output/server/node_modules/source-map-js/lib/source-node.js new file mode 100644 index 0000000..8bcdbe3 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/.output/server/node_modules/source-map-js/lib/util.js b/.output/server/node_modules/source-map-js/lib/util.js new file mode 100644 index 0000000..430e2d0 --- /dev/null +++ b/.output/server/node_modules/source-map-js/lib/util.js @@ -0,0 +1,594 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +var MAX_CACHED_INPUTS = 32; + +/** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ +function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; +} + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/.output/server/node_modules/source-map-js/package.json b/.output/server/node_modules/source-map-js/package.json new file mode 100644 index 0000000..7820159 --- /dev/null +++ b/.output/server/node_modules/source-map-js/package.json @@ -0,0 +1,74 @@ +{ + "name": "source-map-js", + "description": "Generates and consumes source maps", + "version": "1.2.1", + "homepage": "https://github.com/7rulnik/source-map-js", + "author": "Valentin 7rulnik Semirulnik <v7rulnik@gmail.com>", + "contributors": [ + "Nick Fitzgerald <nfitzgerald@mozilla.com>", + "Tobias Koppers <tobias.koppers@googlemail.com>", + "Duncan Beevers <duncan@dweebd.com>", + "Stephen Crane <scrane@mozilla.com>", + "Ryan Seddon <seddon.ryan@gmail.com>", + "Miles Elam <miles.elam@deem.com>", + "Mihai Bazon <mihai.bazon@gmail.com>", + "Michael Ficarra <github.public.email@michael.ficarra.me>", + "Todd Wolfson <todd@twolfson.com>", + "Alexander Solovyov <alexander@solovyov.net>", + "Felix Gnass <fgnass@gmail.com>", + "Conrad Irwin <conrad.irwin@gmail.com>", + "usrbincc <usrbincc@yahoo.com>", + "David Glasser <glasser@davidglasser.net>", + "Chase Douglas <chase@newrelic.com>", + "Evan Wallace <evan.exe@gmail.com>", + "Heather Arthur <fayearthur@gmail.com>", + "Hugh Kennedy <hughskennedy@gmail.com>", + "David Glasser <glasser@davidglasser.net>", + "Simon Lydell <simon.lydell@gmail.com>", + "Jmeas Smith <jellyes2@gmail.com>", + "Michael Z Goddard <mzgoddard@gmail.com>", + "azu <azu@users.noreply.github.com>", + "John Gozde <john@gozde.ca>", + "Adam Kirkton <akirkton@truefitinnovation.com>", + "Chris Montgomery <christopher.montgomery@dowjones.com>", + "J. Ryan Stinnett <jryans@gmail.com>", + "Jack Herrington <jherrington@walmartlabs.com>", + "Chris Truter <jeffpalentine@gmail.com>", + "Daniel Espeset <daniel@danielespeset.com>", + "Jamie Wong <jamie.lf.wong@gmail.com>", + "Eddy Bruël <ejpbruel@mozilla.com>", + "Hawken Rives <hawkrives@gmail.com>", + "Gilad Peleg <giladp007@gmail.com>", + "djchie <djchie.dev@gmail.com>", + "Gary Ye <garysye@gmail.com>", + "Nicolas Lalevée <nicolas.lalevee@hibnet.org>" + ], + "repository": "7rulnik/source-map-js", + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "clean-publish": "^3.1.0", + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "clean-publish": { + "cleanDocs": true + }, + "typings": "source-map.d.ts", + "__npminstall_done": true, + "_from": "source-map-js@1.2.1", + "_resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/source-map-js/source-map.js b/.output/server/node_modules/source-map-js/source-map.js new file mode 100644 index 0000000..bc88fe8 --- /dev/null +++ b/.output/server/node_modules/source-map-js/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/.output/server/node_modules/supports-color/index.js b/.output/server/node_modules/supports-color/index.js new file mode 100644 index 0000000..4ce0a2d --- /dev/null +++ b/.output/server/node_modules/supports-color/index.js @@ -0,0 +1,182 @@ +import process from 'node:process'; +import os from 'node:os'; +import tty from 'node:tty'; + +// From: https://github.com/sindresorhus/has-flag/blob/main/index.js +/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) { +function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} + +const {env} = process; + +let flagForceColor; +if ( + hasFlag('no-color') + || hasFlag('no-colors') + || hasFlag('color=false') + || hasFlag('color=never') +) { + flagForceColor = 0; +} else if ( + hasFlag('color') + || hasFlag('colors') + || hasFlag('color=true') + || hasFlag('color=always') +) { + flagForceColor = 1; +} + +function envForceColor() { + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + return 1; + } + + if (env.FORCE_COLOR === 'false') { + return 0; + } + + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; +} + +function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== undefined) { + flagForceColor = noFlagForceColor; + } + + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + + if (forceColor === 0) { + return 0; + } + + if (sniffFlags) { + if (hasFlag('color=16m') + || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } + + if (hasFlag('color=256')) { + return 2; + } + } + + // Check for Azure DevOps pipelines. + // Has to be above the `!streamIsTTY` check. + if ('TF_BUILD' in env && 'AGENT_NAME' in env) { + return 1; + } + + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } + + const min = forceColor || 0; + + if (env.TERM === 'dumb') { + return min; + } + + if (process.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = os.release().split('.'); + if ( + Number(osRelease[0]) >= 10 + && Number(osRelease[2]) >= 10_586 + ) { + return Number(osRelease[2]) >= 14_931 ? 3 : 2; + } + + return 1; + } + + if ('CI' in env) { + if ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) { + return 3; + } + + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } + + return min; + } + + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + + if (env.COLORTERM === 'truecolor') { + return 3; + } + + if (env.TERM === 'xterm-kitty') { + return 3; + } + + if ('TERM_PROGRAM' in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); + + switch (env.TERM_PROGRAM) { + case 'iTerm.app': { + return version >= 3 ? 3 : 2; + } + + case 'Apple_Terminal': { + return 2; + } + // No default + } + } + + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + + if ('COLORTERM' in env) { + return 1; + } + + return min; +} + +export function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options, + }); + + return translateLevel(level); +} + +const supportsColor = { + stdout: createSupportsColor({isTTY: tty.isatty(1)}), + stderr: createSupportsColor({isTTY: tty.isatty(2)}), +}; + +export default supportsColor; diff --git a/.output/server/node_modules/supports-color/package.json b/.output/server/node_modules/supports-color/package.json new file mode 100644 index 0000000..4922445 --- /dev/null +++ b/.output/server/node_modules/supports-color/package.json @@ -0,0 +1,63 @@ +{ + "name": "supports-color", + "version": "9.4.0", + "description": "Detect whether a terminal supports color", + "license": "MIT", + "repository": "chalk/supports-color", + "funding": "https://github.com/chalk/supports-color?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": { + "node": "./index.js", + "default": "./browser.js" + }, + "engines": { + "node": ">=12" + }, + "scripts": { + "//test": "xo && ava && tsd", + "test": "tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "browser.js", + "browser.d.ts" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "ansi", + "styles", + "tty", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "support", + "supports", + "capability", + "detect", + "truecolor", + "16m" + ], + "devDependencies": { + "@types/node": "^20.3.2", + "ava": "^5.3.1", + "import-fresh": "^3.3.0", + "tsd": "^0.18.0", + "xo": "^0.54.2" + }, + "__npminstall_done": true, + "_from": "supports-color@9.4.0", + "_resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-9.4.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/ufo/dist/index.mjs b/.output/server/node_modules/ufo/dist/index.mjs new file mode 100644 index 0000000..b107d9d --- /dev/null +++ b/.output/server/node_modules/ufo/dist/index.mjs @@ -0,0 +1,630 @@ +const n = /[^\0-\x7E]/; +const t = /[\x2E\u3002\uFF0E\uFF61]/g; +const o = { + overflow: "Overflow Error", + "not-basic": "Illegal Input", + "invalid-input": "Invalid Input" +}; +const e = Math.floor; +const r = String.fromCharCode; +function s(n2) { + throw new RangeError(o[n2]); +} +const c = function(n2, t2) { + return n2 + 22 + 75 * (n2 < 26) - ((t2 != 0) << 5); +}; +const u = function(n2, t2, o2) { + let r2 = 0; + for (n2 = o2 ? e(n2 / 700) : n2 >> 1, n2 += e(n2 / t2); n2 > 455; r2 += 36) { + n2 = e(n2 / 35); + } + return e(r2 + 36 * n2 / (n2 + 38)); +}; +function toASCII(o2) { + return function(n2, o3) { + const e2 = n2.split("@"); + let r2 = ""; + e2.length > 1 && (r2 = e2[0] + "@", n2 = e2[1]); + const s2 = function(n3, t2) { + const o4 = []; + let e3 = n3.length; + for (; e3--; ) { + o4[e3] = t2(n3[e3]); + } + return o4; + }((n2 = n2.replace(t, ".")).split("."), o3).join("."); + return r2 + s2; + }(o2, function(t2) { + return n.test(t2) ? "xn--" + function(n2) { + const t3 = []; + const o3 = (n2 = function(n3) { + const t4 = []; + let o4 = 0; + const e2 = n3.length; + for (; o4 < e2; ) { + const r2 = n3.charCodeAt(o4++); + if (r2 >= 55296 && r2 <= 56319 && o4 < e2) { + const e3 = n3.charCodeAt(o4++); + (64512 & e3) == 56320 ? t4.push(((1023 & r2) << 10) + (1023 & e3) + 65536) : (t4.push(r2), o4--); + } else { + t4.push(r2); + } + } + return t4; + }(n2)).length; + let f = 128; + let i = 0; + let l = 72; + for (const o4 of n2) { + o4 < 128 && t3.push(r(o4)); + } + const h = t3.length; + let p = h; + for (h && t3.push("-"); p < o3; ) { + let o4 = 2147483647; + for (const t4 of n2) { + t4 >= f && t4 < o4 && (o4 = t4); + } + const a = p + 1; + o4 - f > e((2147483647 - i) / a) && s("overflow"), i += (o4 - f) * a, f = o4; + for (const o5 of n2) { + if (o5 < f && ++i > 2147483647 && s("overflow"), o5 == f) { + let n3 = i; + for (let o6 = 36; ; o6 += 36) { + const s2 = o6 <= l ? 1 : o6 >= l + 26 ? 26 : o6 - l; + if (n3 < s2) { + break; + } + const u2 = n3 - s2; + const f2 = 36 - s2; + t3.push(r(c(s2 + u2 % f2, 0))), n3 = e(u2 / f2); + } + t3.push(r(c(n3, 0))), l = u(i, a, p == h), i = 0, ++p; + } + } + ++i, ++f; + } + return t3.join(""); + }(t2) : t2; + }); +} + +const HASH_RE = /#/g; +const AMPERSAND_RE = /&/g; +const SLASH_RE = /\//g; +const EQUAL_RE = /=/g; +const IM_RE = /\?/g; +const PLUS_RE = /\+/g; +const ENC_CARET_RE = /%5e/gi; +const ENC_BACKTICK_RE = /%60/gi; +const ENC_CURLY_OPEN_RE = /%7b/gi; +const ENC_PIPE_RE = /%7c/gi; +const ENC_CURLY_CLOSE_RE = /%7d/gi; +const ENC_SPACE_RE = /%20/gi; +const ENC_SLASH_RE = /%2f/gi; +const ENC_ENC_SLASH_RE = /%252f/gi; +function encode(text) { + return encodeURI("" + text).replace(ENC_PIPE_RE, "|"); +} +function encodeHash(text) { + return encode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); +} +function encodeQueryValue(input) { + return encode(typeof input === "string" ? input : JSON.stringify(input)).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CARET_RE, "^").replace(SLASH_RE, "%2F"); +} +function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); +} +function encodePath(text) { + return encode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F").replace(ENC_ENC_SLASH_RE, "%2F").replace(AMPERSAND_RE, "%26").replace(PLUS_RE, "%2B"); +} +function encodeParam(text) { + return encodePath(text).replace(SLASH_RE, "%2F"); +} +function decode(text = "") { + try { + return decodeURIComponent("" + text); + } catch { + return "" + text; + } +} +function decodePath(text) { + return decode(text.replace(ENC_SLASH_RE, "%252F")); +} +function decodeQueryKey(text) { + return decode(text.replace(PLUS_RE, " ")); +} +function decodeQueryValue(text) { + return decode(text.replace(PLUS_RE, " ")); +} +function encodeHost(name = "") { + return toASCII(name); +} + +function parseQuery(parametersString = "") { + const object = {}; + if (parametersString[0] === "?") { + parametersString = parametersString.slice(1); + } + for (const parameter of parametersString.split("&")) { + const s = parameter.match(/([^=]+)=?(.*)/) || []; + if (s.length < 2) { + continue; + } + const key = decodeQueryKey(s[1]); + if (key === "__proto__" || key === "constructor") { + continue; + } + const value = decodeQueryValue(s[2] || ""); + if (object[key] === void 0) { + object[key] = value; + } else if (Array.isArray(object[key])) { + object[key].push(value); + } else { + object[key] = [object[key], value]; + } + } + return object; +} +function encodeQueryItem(key, value) { + if (typeof value === "number" || typeof value === "boolean") { + value = String(value); + } + if (!value) { + return encodeQueryKey(key); + } + if (Array.isArray(value)) { + return value.map((_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}`).join("&"); + } + return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`; +} +function stringifyQuery(query) { + return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).filter(Boolean).join("&"); +} + +const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/; +const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/; +const PROTOCOL_RELATIVE_REGEX = /^([/\\]\s*){2,}[^/\\]/; +const PROTOCOL_SCRIPT_RE = /^[\s\0]*(blob|data|javascript|vbscript):$/i; +const TRAILING_SLASH_RE = /\/$|\/\?|\/#/; +const JOIN_LEADING_SLASH_RE = /^\.?\//; +function isRelative(inputString) { + return ["./", "../"].some((string_) => inputString.startsWith(string_)); +} +function hasProtocol(inputString, opts = {}) { + if (typeof opts === "boolean") { + opts = { acceptRelative: opts }; + } + if (opts.strict) { + return PROTOCOL_STRICT_REGEX.test(inputString); + } + return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false); +} +function isScriptProtocol(protocol) { + return !!protocol && PROTOCOL_SCRIPT_RE.test(protocol); +} +function hasTrailingSlash(input = "", respectQueryAndFragment) { + if (!respectQueryAndFragment) { + return input.endsWith("/"); + } + return TRAILING_SLASH_RE.test(input); +} +function withoutTrailingSlash(input = "", respectQueryAndFragment) { + if (!respectQueryAndFragment) { + return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || "/"; + } + if (!hasTrailingSlash(input, true)) { + return input || "/"; + } + let path = input; + let fragment = ""; + const fragmentIndex = input.indexOf("#"); + if (fragmentIndex >= 0) { + path = input.slice(0, fragmentIndex); + fragment = input.slice(fragmentIndex); + } + const [s0, ...s] = path.split("?"); + const cleanPath = s0.endsWith("/") ? s0.slice(0, -1) : s0; + return (cleanPath || "/") + (s.length > 0 ? `?${s.join("?")}` : "") + fragment; +} +function withTrailingSlash(input = "", respectQueryAndFragment) { + if (!respectQueryAndFragment) { + return input.endsWith("/") ? input : input + "/"; + } + if (hasTrailingSlash(input, true)) { + return input || "/"; + } + let path = input; + let fragment = ""; + const fragmentIndex = input.indexOf("#"); + if (fragmentIndex >= 0) { + path = input.slice(0, fragmentIndex); + fragment = input.slice(fragmentIndex); + if (!path) { + return fragment; + } + } + const [s0, ...s] = path.split("?"); + return s0 + "/" + (s.length > 0 ? `?${s.join("?")}` : "") + fragment; +} +function hasLeadingSlash(input = "") { + return input.startsWith("/"); +} +function withoutLeadingSlash(input = "") { + return (hasLeadingSlash(input) ? input.slice(1) : input) || "/"; +} +function withLeadingSlash(input = "") { + return hasLeadingSlash(input) ? input : "/" + input; +} +function cleanDoubleSlashes(input = "") { + return input.split("://").map((string_) => string_.replace(/\/{2,}/g, "/")).join("://"); +} +function withBase(input, base) { + if (isEmptyURL(base) || hasProtocol(input)) { + return input; + } + const _base = withoutTrailingSlash(base); + if (input.startsWith(_base)) { + return input; + } + return joinURL(_base, input); +} +function withoutBase(input, base) { + if (isEmptyURL(base)) { + return input; + } + const _base = withoutTrailingSlash(base); + if (!input.startsWith(_base)) { + return input; + } + const trimmed = input.slice(_base.length); + return trimmed[0] === "/" ? trimmed : "/" + trimmed; +} +function withQuery(input, query) { + const parsed = parseURL(input); + const mergedQuery = { ...parseQuery(parsed.search), ...query }; + parsed.search = stringifyQuery(mergedQuery); + return stringifyParsedURL(parsed); +} +function getQuery(input) { + return parseQuery(parseURL(input).search); +} +function isEmptyURL(url) { + return !url || url === "/"; +} +function isNonEmptyURL(url) { + return url && url !== "/"; +} +function joinURL(base, ...input) { + let url = base || ""; + for (const segment of input.filter((url2) => isNonEmptyURL(url2))) { + if (url) { + const _segment = segment.replace(JOIN_LEADING_SLASH_RE, ""); + url = withTrailingSlash(url) + _segment; + } else { + url = segment; + } + } + return url; +} +function joinRelativeURL(..._input) { + const JOIN_SEGMENT_SPLIT_RE = /\/(?!\/)/; + const input = _input.filter(Boolean); + const segments = []; + let segmentsDepth = 0; + for (const i of input) { + if (!i || i === "/") { + continue; + } + for (const [sindex, s] of i.split(JOIN_SEGMENT_SPLIT_RE).entries()) { + if (!s || s === ".") { + continue; + } + if (s === "..") { + if (segments.length === 1 && hasProtocol(segments[0])) { + continue; + } + segments.pop(); + segmentsDepth--; + continue; + } + if (sindex === 1 && segments[segments.length - 1]?.endsWith(":/")) { + segments[segments.length - 1] += "/" + s; + continue; + } + segments.push(s); + segmentsDepth++; + } + } + let url = segments.join("/"); + if (segmentsDepth >= 0) { + if (input[0]?.startsWith("/") && !url.startsWith("/")) { + url = "/" + url; + } else if (input[0]?.startsWith("./") && !url.startsWith("./")) { + url = "./" + url; + } + } else { + url = "../".repeat(-1 * segmentsDepth) + url; + } + if (input[input.length - 1]?.endsWith("/") && !url.endsWith("/")) { + url += "/"; + } + return url; +} +function withHttp(input) { + return withProtocol(input, "http://"); +} +function withHttps(input) { + return withProtocol(input, "https://"); +} +function withoutProtocol(input) { + return withProtocol(input, ""); +} +function withProtocol(input, protocol) { + let match = input.match(PROTOCOL_REGEX); + if (!match) { + match = input.match(/^\/{2,}/); + } + if (!match) { + return protocol + input; + } + return protocol + input.slice(match[0].length); +} +function normalizeURL(input) { + const parsed = parseURL(input); + parsed.pathname = encodePath(decodePath(parsed.pathname)); + parsed.hash = encodeHash(decode(parsed.hash)); + parsed.host = encodeHost(decode(parsed.host)); + parsed.search = stringifyQuery(parseQuery(parsed.search)); + return stringifyParsedURL(parsed); +} +function resolveURL(base = "", ...inputs) { + if (typeof base !== "string") { + throw new TypeError( + `URL input should be string received ${typeof base} (${base})` + ); + } + const filteredInputs = inputs.filter((input) => isNonEmptyURL(input)); + if (filteredInputs.length === 0) { + return base; + } + const url = parseURL(base); + for (const inputSegment of filteredInputs) { + const urlSegment = parseURL(inputSegment); + if (urlSegment.pathname) { + url.pathname = withTrailingSlash(url.pathname) + withoutLeadingSlash(urlSegment.pathname); + } + if (urlSegment.hash && urlSegment.hash !== "#") { + url.hash = urlSegment.hash; + } + if (urlSegment.search && urlSegment.search !== "?") { + if (url.search && url.search !== "?") { + const queryString = stringifyQuery({ + ...parseQuery(url.search), + ...parseQuery(urlSegment.search) + }); + url.search = queryString.length > 0 ? "?" + queryString : ""; + } else { + url.search = urlSegment.search; + } + } + } + return stringifyParsedURL(url); +} +function isSamePath(p1, p2) { + return decode(withoutTrailingSlash(p1)) === decode(withoutTrailingSlash(p2)); +} +function isEqual(a, b, options = {}) { + if (!options.trailingSlash) { + a = withTrailingSlash(a); + b = withTrailingSlash(b); + } + if (!options.leadingSlash) { + a = withLeadingSlash(a); + b = withLeadingSlash(b); + } + if (!options.encoding) { + a = decode(a); + b = decode(b); + } + return a === b; +} +function withFragment(input, hash) { + if (!hash || hash === "#") { + return input; + } + const parsed = parseURL(input); + parsed.hash = hash === "" ? "" : "#" + encodeHash(hash); + return stringifyParsedURL(parsed); +} +function withoutFragment(input) { + return stringifyParsedURL({ ...parseURL(input), hash: "" }); +} +function withoutHost(input) { + const parsed = parseURL(input); + return (parsed.pathname || "/") + parsed.search + parsed.hash; +} + +const protocolRelative = Symbol.for("ufo:protocolRelative"); +function parseURL(input = "", defaultProto) { + const _specialProtoMatch = input.match( + /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i + ); + if (_specialProtoMatch) { + const [, _proto, _pathname = ""] = _specialProtoMatch; + return { + protocol: _proto.toLowerCase(), + pathname: _pathname, + href: _proto + _pathname, + auth: "", + host: "", + search: "", + hash: "" + }; + } + if (!hasProtocol(input, { acceptRelative: true })) { + return defaultProto ? parseURL(defaultProto + input) : parsePath(input); + } + const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || []; + let [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || []; + if (protocol === "file:") { + path = path.replace(/\/(?=[A-Za-z]:)/, ""); + } + const { pathname, search, hash } = parsePath(path); + return { + protocol: protocol.toLowerCase(), + auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "", + host, + pathname, + search, + hash, + [protocolRelative]: !protocol + }; +} +function parsePath(input = "") { + const [pathname = "", search = "", hash = ""] = (input.match(/([^#?]*)(\?[^#]*)?(#.*)?/) || []).splice(1); + return { + pathname, + search, + hash + }; +} +function parseAuth(input = "") { + const [username, password] = input.split(":"); + return { + username: decode(username), + password: decode(password) + }; +} +function parseHost(input = "") { + const [hostname, port] = (input.match(/([^/:]*):?(\d+)?/) || []).splice(1); + return { + hostname: decode(hostname), + port + }; +} +function stringifyParsedURL(parsed) { + const pathname = parsed.pathname || ""; + const search = parsed.search ? (parsed.search.startsWith("?") ? "" : "?") + parsed.search : ""; + const hash = parsed.hash || ""; + const auth = parsed.auth ? parsed.auth + "@" : ""; + const host = parsed.host || ""; + const proto = parsed.protocol || parsed[protocolRelative] ? (parsed.protocol || "") + "//" : ""; + return proto + auth + host + pathname + search + hash; +} +const FILENAME_STRICT_REGEX = /\/([^/]+\.[^/]+)$/; +const FILENAME_REGEX = /\/([^/]+)$/; +function parseFilename(input = "", { strict }) { + const { pathname } = parseURL(input); + const matches = strict ? pathname.match(FILENAME_STRICT_REGEX) : pathname.match(FILENAME_REGEX); + return matches ? matches[1] : void 0; +} + +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +class $URL { + constructor(input = "") { + __publicField(this, "protocol"); + __publicField(this, "host"); + __publicField(this, "auth"); + __publicField(this, "pathname"); + __publicField(this, "query", {}); + __publicField(this, "hash"); + if (typeof input !== "string") { + throw new TypeError( + `URL input should be string received ${typeof input} (${input})` + ); + } + const parsed = parseURL(input); + this.protocol = decode(parsed.protocol); + this.host = decode(parsed.host); + this.auth = decode(parsed.auth); + this.pathname = decodePath(parsed.pathname); + this.query = parseQuery(parsed.search); + this.hash = decode(parsed.hash); + } + get hostname() { + return parseHost(this.host).hostname; + } + get port() { + return parseHost(this.host).port || ""; + } + get username() { + return parseAuth(this.auth).username; + } + get password() { + return parseAuth(this.auth).password || ""; + } + get hasProtocol() { + return this.protocol.length; + } + get isAbsolute() { + return this.hasProtocol || this.pathname[0] === "/"; + } + get search() { + const q = stringifyQuery(this.query); + return q.length > 0 ? "?" + q : ""; + } + get searchParams() { + const p = new URLSearchParams(); + for (const name in this.query) { + const value = this.query[name]; + if (Array.isArray(value)) { + for (const v of value) { + p.append(name, v); + } + } else { + p.append( + name, + typeof value === "string" ? value : JSON.stringify(value) + ); + } + } + return p; + } + get origin() { + return (this.protocol ? this.protocol + "//" : "") + encodeHost(this.host); + } + get fullpath() { + return encodePath(this.pathname) + this.search + encodeHash(this.hash); + } + get encodedAuth() { + if (!this.auth) { + return ""; + } + const { username, password } = parseAuth(this.auth); + return encodeURIComponent(username) + (password ? ":" + encodeURIComponent(password) : ""); + } + get href() { + const auth = this.encodedAuth; + const originWithAuth = (this.protocol ? this.protocol + "//" : "") + (auth ? auth + "@" : "") + encodeHost(this.host); + return this.hasProtocol && this.isAbsolute ? originWithAuth + this.fullpath : this.fullpath; + } + append(url) { + if (url.hasProtocol) { + throw new Error("Cannot append a URL with protocol"); + } + Object.assign(this.query, url.query); + if (url.pathname) { + this.pathname = withTrailingSlash(this.pathname) + withoutLeadingSlash(url.pathname); + } + if (url.hash) { + this.hash = url.hash; + } + } + toJSON() { + return this.href; + } + toString() { + return this.href; + } +} +function createURL(input) { + return new $URL(input); +} + +export { $URL, cleanDoubleSlashes, createURL, decode, decodePath, decodeQueryKey, decodeQueryValue, encode, encodeHash, encodeHost, encodeParam, encodePath, encodeQueryItem, encodeQueryKey, encodeQueryValue, getQuery, hasLeadingSlash, hasProtocol, hasTrailingSlash, isEmptyURL, isEqual, isNonEmptyURL, isRelative, isSamePath, isScriptProtocol, joinRelativeURL, joinURL, normalizeURL, parseAuth, parseFilename, parseHost, parsePath, parseQuery, parseURL, resolveURL, stringifyParsedURL, stringifyQuery, withBase, withFragment, withHttp, withHttps, withLeadingSlash, withProtocol, withQuery, withTrailingSlash, withoutBase, withoutFragment, withoutHost, withoutLeadingSlash, withoutProtocol, withoutTrailingSlash }; diff --git a/.output/server/node_modules/ufo/package.json b/.output/server/node_modules/ufo/package.json new file mode 100644 index 0000000..719e957 --- /dev/null +++ b/.output/server/node_modules/ufo/package.json @@ -0,0 +1,50 @@ +{ + "name": "ufo", + "version": "1.5.4", + "description": "URL utils for humans", + "repository": "unjs/ufo", + "license": "MIT", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.cjs", + "import": "./dist/index.mjs" + }, + "./*": "./*" + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "automd && unbuild", + "automd": "automd", + "dev": "vitest", + "lint": "eslint . && prettier -c src test", + "lint:fix": "eslint --fix . && prettier -w src test", + "prepack": "pnpm build", + "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags", + "test": "pnpm lint && vitest run --typecheck" + }, + "devDependencies": { + "@types/node": "^20.14.10", + "@vitest/coverage-v8": "^2.0.3", + "automd": "^0.3.8", + "changelogen": "^0.5.5", + "eslint": "^9.7.0", + "eslint-config-unjs": "^0.3.2", + "jiti": "^1.21.6", + "prettier": "^3.3.3", + "typescript": "^5.5.3", + "unbuild": "^2.0.0", + "untyped": "^1.4.2", + "vitest": "^2.0.3" + }, + "packageManager": "pnpm@9.5.0", + "__npminstall_done": true, + "_from": "ufo@1.5.4", + "_resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/unhead/dist/index.mjs b/.output/server/node_modules/unhead/dist/index.mjs new file mode 100644 index 0000000..4a1660e --- /dev/null +++ b/.output/server/node_modules/unhead/dist/index.mjs @@ -0,0 +1,748 @@ +import { DomPlugin } from '@unhead/dom'; +import { defineHeadPlugin, tagDedupeKey, hashTag, tagWeight, HasElementTags, NetworkEvents, hashCode, SortModifiers, processTemplateParams, resolveTitleTemplate, IsBrowser, normaliseEntryTags, composableNames, whitelistSafeInput, ScriptNetworkEvents, unpackMeta } from '@unhead/shared'; +export { composableNames } from '@unhead/shared'; +import { createHooks } from 'hookable'; + +const UsesMergeStrategy = /* @__PURE__ */ new Set(["templateParams", "htmlAttrs", "bodyAttrs"]); +const DedupePlugin = defineHeadPlugin({ + hooks: { + "tag:normalise": ({ tag }) => { + if (tag.props.hid) { + tag.key = tag.props.hid; + delete tag.props.hid; + } + if (tag.props.vmid) { + tag.key = tag.props.vmid; + delete tag.props.vmid; + } + if (tag.props.key) { + tag.key = tag.props.key; + delete tag.props.key; + } + const generatedKey = tagDedupeKey(tag); + if (generatedKey && !generatedKey.startsWith("meta:og:") && !generatedKey.startsWith("meta:twitter:")) { + delete tag.key; + } + const dedupe = generatedKey || (tag.key ? `${tag.tag}:${tag.key}` : false); + if (dedupe) + tag._d = dedupe; + }, + "tags:resolve": (ctx) => { + const deduping = /* @__PURE__ */ Object.create(null); + for (const tag of ctx.tags) { + const dedupeKey = (tag.key ? `${tag.tag}:${tag.key}` : tag._d) || hashTag(tag); + const dupedTag = deduping[dedupeKey]; + if (dupedTag) { + let strategy = tag?.tagDuplicateStrategy; + if (!strategy && UsesMergeStrategy.has(tag.tag)) + strategy = "merge"; + if (strategy === "merge") { + const oldProps = dupedTag.props; + if (oldProps.style && tag.props.style) { + if (oldProps.style[oldProps.style.length - 1] !== ";") { + oldProps.style += ";"; + } + tag.props.style = `${oldProps.style} ${tag.props.style}`; + } + if (oldProps.class && tag.props.class) { + tag.props.class = `${oldProps.class} ${tag.props.class}`; + } else if (oldProps.class) { + tag.props.class = oldProps.class; + } + deduping[dedupeKey].props = { + ...oldProps, + ...tag.props + }; + continue; + } else if (tag._e === dupedTag._e) { + dupedTag._duped = dupedTag._duped || []; + tag._d = `${dupedTag._d}:${dupedTag._duped.length + 1}`; + dupedTag._duped.push(tag); + continue; + } else if (tagWeight(tag) > tagWeight(dupedTag)) { + continue; + } + } + const hasProps = tag.innerHTML || tag.textContent || Object.keys(tag.props).length !== 0; + if (!hasProps && HasElementTags.has(tag.tag)) { + delete deduping[dedupeKey]; + continue; + } + deduping[dedupeKey] = tag; + } + const newTags = []; + for (const key in deduping) { + const tag = deduping[key]; + const dupes = tag._duped; + newTags.push(tag); + if (dupes) { + delete tag._duped; + newTags.push(...dupes); + } + } + ctx.tags = newTags; + ctx.tags = ctx.tags.filter((t) => !(t.tag === "meta" && (t.props.name || t.props.property) && !t.props.content)); + } + } +}); + +const ValidEventTags = /* @__PURE__ */ new Set(["script", "link", "bodyAttrs"]); +const EventHandlersPlugin = defineHeadPlugin((head) => ({ + hooks: { + "tags:resolve": (ctx) => { + for (const tag of ctx.tags) { + if (!ValidEventTags.has(tag.tag)) { + continue; + } + const props = tag.props; + for (const key in props) { + if (key[0] !== "o" || key[1] !== "n") { + continue; + } + if (!Object.prototype.hasOwnProperty.call(props, key)) { + continue; + } + const value = props[key]; + if (typeof value !== "function") { + continue; + } + if (head.ssr && NetworkEvents.has(key)) { + props[key] = `this.dataset.${key}fired = true`; + } else { + delete props[key]; + } + tag._eventHandlers = tag._eventHandlers || {}; + tag._eventHandlers[key] = value; + } + if (head.ssr && tag._eventHandlers && (tag.props.src || tag.props.href)) { + tag.key = tag.key || hashCode(tag.props.src || tag.props.href); + } + } + }, + "dom:renderTag": ({ $el, tag }) => { + const dataset = $el?.dataset; + if (!dataset) { + return; + } + for (const k in dataset) { + if (!k.endsWith("fired")) { + continue; + } + const ek = k.slice(0, -5); + if (!NetworkEvents.has(ek)) { + continue; + } + tag._eventHandlers?.[ek]?.call($el, new Event(ek.substring(2))); + } + } + } +})); + +const DupeableTags = /* @__PURE__ */ new Set(["link", "style", "script", "noscript"]); +const HashKeyedPlugin = defineHeadPlugin({ + hooks: { + "tag:normalise": ({ tag }) => { + if (tag.key && DupeableTags.has(tag.tag)) { + tag.props["data-hid"] = tag._h = hashCode(tag.key); + } + } + } +}); + +const PayloadPlugin = defineHeadPlugin({ + mode: "server", + hooks: { + "tags:beforeResolve": (ctx) => { + const payload = {}; + let hasPayload = false; + for (const tag of ctx.tags) { + if (tag._m !== "server" || tag.tag !== "titleTemplate" && tag.tag !== "templateParams" && tag.tag !== "title") { + continue; + } + payload[tag.tag] = tag.tag === "title" || tag.tag === "titleTemplate" ? tag.textContent : tag.props; + hasPayload = true; + } + if (hasPayload) { + ctx.tags.push({ + tag: "script", + innerHTML: JSON.stringify(payload), + props: { id: "unhead:payload", type: "application/json" } + }); + } + } + } +}); + +const SortPlugin = defineHeadPlugin({ + hooks: { + "tags:resolve": (ctx) => { + for (const tag of ctx.tags) { + if (typeof tag.tagPriority !== "string") { + continue; + } + for (const { prefix, offset } of SortModifiers) { + if (!tag.tagPriority.startsWith(prefix)) { + continue; + } + const key = tag.tagPriority.substring(prefix.length); + const position = ctx.tags.find((tag2) => tag2._d === key)?._p; + if (position !== void 0) { + tag._p = position + offset; + break; + } + } + } + ctx.tags.sort((a, b) => { + const aWeight = tagWeight(a); + const bWeight = tagWeight(b); + if (aWeight < bWeight) { + return -1; + } else if (aWeight > bWeight) { + return 1; + } + return a._p - b._p; + }); + } + } +}); + +const SupportedAttrs = { + meta: "content", + link: "href", + htmlAttrs: "lang" +}; +const contentAttrs = ["innerHTML", "textContent"]; +const TemplateParamsPlugin = defineHeadPlugin((head) => ({ + hooks: { + "tags:resolve": (ctx) => { + const { tags } = ctx; + let templateParams; + for (let i = 0; i < tags.length; i += 1) { + const tag = tags[i]; + if (tag.tag !== "templateParams") { + continue; + } + templateParams = ctx.tags.splice(i, 1)[0].props; + i -= 1; + } + const params = templateParams || {}; + const sep = params.separator || "|"; + delete params.separator; + params.pageTitle = processTemplateParams( + // find templateParams + params.pageTitle || tags.find((tag) => tag.tag === "title")?.textContent || "", + params, + sep + ); + for (const tag of tags) { + if (tag.processTemplateParams === false) { + continue; + } + const v = SupportedAttrs[tag.tag]; + if (v && typeof tag.props[v] === "string") { + tag.props[v] = processTemplateParams(tag.props[v], params, sep); + } else if (tag.processTemplateParams || tag.tag === "titleTemplate" || tag.tag === "title") { + for (const p of contentAttrs) { + if (typeof tag[p] === "string") + tag[p] = processTemplateParams(tag[p], params, sep, tag.tag === "script" && tag.props.type.endsWith("json")); + } + } + } + head._templateParams = params; + head._separator = sep; + }, + "tags:afterResolve": ({ tags }) => { + let title; + for (let i = 0; i < tags.length; i += 1) { + const tag = tags[i]; + if (tag.tag === "title" && tag.processTemplateParams !== false) { + title = tag; + } + } + if (title?.textContent) { + title.textContent = processTemplateParams(title.textContent, head._templateParams, head._separator); + } + } + } +})); + +const TitleTemplatePlugin = defineHeadPlugin({ + hooks: { + "tags:resolve": (ctx) => { + const { tags } = ctx; + let titleTag; + let titleTemplateTag; + for (let i = 0; i < tags.length; i += 1) { + const tag = tags[i]; + if (tag.tag === "title") { + titleTag = tag; + } else if (tag.tag === "titleTemplate") { + titleTemplateTag = tag; + } + } + if (titleTemplateTag && titleTag) { + const newTitle = resolveTitleTemplate( + titleTemplateTag.textContent, + titleTag.textContent + ); + if (newTitle !== null) { + titleTag.textContent = newTitle || titleTag.textContent; + } else { + ctx.tags.splice(ctx.tags.indexOf(titleTag), 1); + } + } else if (titleTemplateTag) { + const newTitle = resolveTitleTemplate( + titleTemplateTag.textContent + ); + if (newTitle !== null) { + titleTemplateTag.textContent = newTitle; + titleTemplateTag.tag = "title"; + titleTemplateTag = void 0; + } + } + if (titleTemplateTag) { + ctx.tags.splice(ctx.tags.indexOf(titleTemplateTag), 1); + } + } + } +}); + +const XSSPlugin = defineHeadPlugin({ + hooks: { + "tags:afterResolve": (ctx) => { + for (const tag of ctx.tags) { + if (typeof tag.innerHTML === "string") { + if (tag.innerHTML && (tag.props.type === "application/ld+json" || tag.props.type === "application/json")) { + tag.innerHTML = tag.innerHTML.replace(/</g, "\\u003C"); + } else { + tag.innerHTML = tag.innerHTML.replace(new RegExp(`</${tag.tag}`, "g"), `<\\/${tag.tag}`); + } + } + } + } + } +}); + +let activeHead; +// @__NO_SIDE_EFFECTS__ +function createHead(options = {}) { + const head = createHeadCore(options); + head.use(DomPlugin()); + return activeHead = head; +} +// @__NO_SIDE_EFFECTS__ +function createServerHead(options = {}) { + return activeHead = createHeadCore(options); +} +function filterMode(mode, ssr) { + return !mode || mode === "server" && ssr || mode === "client" && !ssr; +} +function createHeadCore(options = {}) { + const hooks = createHooks(); + hooks.addHooks(options.hooks || {}); + options.document = options.document || (IsBrowser ? document : void 0); + const ssr = !options.document; + const updated = () => { + head.dirty = true; + hooks.callHook("entries:updated", head); + }; + let entryCount = 0; + let entries = []; + const plugins = []; + const head = { + plugins, + dirty: false, + resolvedOptions: options, + hooks, + headEntries() { + return entries; + }, + use(p) { + const plugin = typeof p === "function" ? p(head) : p; + if (!plugin.key || !plugins.some((p2) => p2.key === plugin.key)) { + plugins.push(plugin); + filterMode(plugin.mode, ssr) && hooks.addHooks(plugin.hooks || {}); + } + }, + push(input, entryOptions) { + delete entryOptions?.head; + const entry = { + _i: entryCount++, + input, + ...entryOptions + }; + if (filterMode(entry.mode, ssr)) { + entries.push(entry); + updated(); + } + return { + dispose() { + entries = entries.filter((e) => e._i !== entry._i); + updated(); + }, + // a patch is the same as creating a new entry, just a nice DX + patch(input2) { + for (const e of entries) { + if (e._i === entry._i) { + e.input = entry.input = input2; + } + } + updated(); + } + }; + }, + async resolveTags() { + const resolveCtx = { tags: [], entries: [...entries] }; + await hooks.callHook("entries:resolve", resolveCtx); + for (const entry of resolveCtx.entries) { + const resolved = entry.resolvedInput || entry.input; + entry.resolvedInput = await (entry.transform ? entry.transform(resolved) : resolved); + if (entry.resolvedInput) { + for (const tag of await normaliseEntryTags(entry)) { + const tagCtx = { tag, entry, resolvedOptions: head.resolvedOptions }; + await hooks.callHook("tag:normalise", tagCtx); + resolveCtx.tags.push(tagCtx.tag); + } + } + } + await hooks.callHook("tags:beforeResolve", resolveCtx); + await hooks.callHook("tags:resolve", resolveCtx); + await hooks.callHook("tags:afterResolve", resolveCtx); + return resolveCtx.tags; + }, + ssr + }; + [ + DedupePlugin, + PayloadPlugin, + EventHandlersPlugin, + HashKeyedPlugin, + SortPlugin, + TemplateParamsPlugin, + TitleTemplatePlugin, + XSSPlugin, + ...options?.plugins || [] + ].forEach((p) => head.use(p)); + head.hooks.callHook("init", head); + return head; +} + +const unheadComposablesImports = [ + { + from: "unhead", + imports: composableNames + } +]; + +function getActiveHead() { + return activeHead; +} + +function useHead(input, options = {}) { + const head = options.head || getActiveHead(); + return head?.push(input, options); +} + +function useHeadSafe(input, options) { + return useHead(input, { + ...options, + transform: whitelistSafeInput + }); +} + +const ScriptProxyTarget = Symbol("ScriptProxyTarget"); +function scriptProxy() { +} +scriptProxy[ScriptProxyTarget] = true; +function resolveScriptKey(input) { + return input.key || hashCode(input.src || (typeof input.innerHTML === "string" ? input.innerHTML : "")); +} +function useScript(_input, _options) { + const input = typeof _input === "string" ? { src: _input } : _input; + const options = _options || {}; + const head = options.head || getActiveHead(); + if (!head) + throw new Error("Missing Unhead context."); + const id = resolveScriptKey(input); + const prevScript = head._scripts?.[id]; + if (prevScript) { + prevScript.setupTriggerHandler(options.trigger); + return prevScript; + } + options.beforeInit?.(); + const syncStatus = (s) => { + script.status = s; + head.hooks.callHook(`script:updated`, hookCtx); + }; + ScriptNetworkEvents.forEach((fn) => { + const _fn = typeof input[fn] === "function" ? input[fn].bind(options.eventContext) : null; + input[fn] = (e) => { + syncStatus(fn === "onload" ? "loaded" : fn === "onerror" ? "error" : "loading"); + _fn?.(e); + }; + }); + const _cbs = { loaded: [], error: [] }; + const _registerCb = (key, cb) => { + if (_cbs[key]) { + const i = _cbs[key].push(cb); + return () => _cbs[key]?.splice(i - 1, 1); + } + cb(script.instance); + return () => { + }; + }; + const loadPromise = new Promise((resolve) => { + if (head.ssr) + return; + const emit = (api) => requestAnimationFrame(() => resolve(api)); + const _ = head.hooks.hook("script:updated", ({ script: script2 }) => { + const status = script2.status; + if (script2.id === id && (status === "loaded" || status === "error")) { + if (status === "loaded") { + if (typeof options.use === "function") { + const api = options.use(); + if (api) { + emit(api); + } + } else { + emit({}); + } + } else if (status === "error") { + resolve(false); + } + _(); + } + }); + }); + const script = Object.assign(loadPromise, { + instance: !head.ssr && options?.use?.() || null, + proxy: null, + id, + status: "awaitingLoad", + remove() { + script._triggerAbortController?.abort(); + script._triggerPromises = []; + if (script.entry) { + script.entry.dispose(); + script.entry = void 0; + syncStatus("removed"); + delete head._scripts?.[id]; + return true; + } + return false; + }, + load(cb) { + script._triggerAbortController?.abort(); + script._triggerPromises = []; + if (!script.entry) { + syncStatus("loading"); + const defaults = { + defer: true, + fetchpriority: "low" + }; + if (input.src && (input.src.startsWith("http") || input.src.startsWith("//"))) { + defaults.crossorigin = "anonymous"; + defaults.referrerpolicy = "no-referrer"; + } + script.entry = head.push({ + script: [{ ...defaults, ...input, key: `script.${id}` }] + }, options); + } + if (cb) + _registerCb("loaded", cb); + return loadPromise; + }, + onLoaded(cb) { + return _registerCb("loaded", cb); + }, + onError(cb) { + return _registerCb("error", cb); + }, + setupTriggerHandler(trigger) { + if (script.status !== "awaitingLoad") { + return; + } + if ((typeof trigger === "undefined" || trigger === "client") && !head.ssr || trigger === "server") { + script.load(); + } else if (trigger instanceof Promise) { + if (head.ssr) { + return; + } + if (!script._triggerAbortController) { + script._triggerAbortController = new AbortController(); + script._triggerAbortPromise = new Promise((resolve) => { + script._triggerAbortController.signal.addEventListener("abort", () => { + script._triggerAbortController = null; + resolve(); + }); + }); + } + script._triggerPromises = script._triggerPromises || []; + const idx = script._triggerPromises.push(Promise.race([ + trigger.then((v) => typeof v === "undefined" || v ? script.load : void 0), + script._triggerAbortPromise + ]).catch(() => { + }).then((res2) => { + res2?.(); + }).finally(() => { + script._triggerPromises?.splice(idx, 1); + })); + } else if (typeof trigger === "function") { + trigger(script.load); + } + }, + _cbs + }); + loadPromise.then((api) => { + if (api !== false) { + script.instance = api; + _cbs.loaded?.forEach((cb) => cb(api)); + _cbs.loaded = null; + } else { + _cbs.error?.forEach((cb) => cb()); + _cbs.error = null; + } + }); + const hookCtx = { script }; + script.setupTriggerHandler(options.trigger); + script.$script = script; + const proxyChain = (instance, accessor, accessors) => { + return new Proxy((!accessor ? instance : instance?.[accessor]) || scriptProxy, { + get(_, k, r) { + head.hooks.callHook("script:instance-fn", { script, fn: k, exists: k in _ }); + if (!accessor) { + const stub = options.stub?.({ script, fn: k }); + if (stub) + return stub; + } + if (_ && k in _ && typeof _[k] !== "undefined") { + return Reflect.get(_, k, r); + } + if (k === Symbol.iterator) { + return [][Symbol.iterator]; + } + return proxyChain(accessor ? instance?.[accessor] : instance, k, accessors || [k]); + }, + async apply(_, _this, args) { + if (head.ssr && _[ScriptProxyTarget]) + return; + let instance2; + const access = (fn2) => { + instance2 = fn2 || instance2; + for (let i = 0; i < (accessors || []).length; i++) { + const k = (accessors || [])[i]; + fn2 = fn2?.[k]; + } + return fn2; + }; + let fn = access(script.instance); + if (!fn) { + fn = await new Promise((resolve) => { + script.onLoaded((api) => { + resolve(access(api)); + }); + }); + } + return typeof fn === "function" ? Reflect.apply(fn, instance2, args) : fn; + } + }); + }; + script.proxy = proxyChain(script.instance); + const res = new Proxy(script, { + get(_, k) { + const target = k in script || String(k)[0] === "_" ? script : script.proxy; + if (k === "then" || k === "catch") { + return script[k].bind(script); + } + return Reflect.get(target, k, target); + } + }); + head._scripts = Object.assign(head._scripts || {}, { [id]: res }); + return res; +} + +function useSeoMeta(input, options) { + const { title, titleTemplate, ...meta } = input; + return useHead({ + title, + titleTemplate, + // we need to input the meta so the reactivity will be resolved + // @ts-expect-error runtime type + _flatMeta: meta + }, { + ...options, + transform(t) { + const meta2 = unpackMeta({ ...t._flatMeta }); + delete t._flatMeta; + return { + // @ts-expect-error runtime type + ...t, + meta: meta2 + }; + } + }); +} + +function useServerHead(input, options = {}) { + return useHead(input, { ...options, mode: "server" }); +} + +function useServerHeadSafe(input, options = {}) { + return useHeadSafe(input, { ...options, mode: "server" }); +} + +function useServerSeoMeta(input, options) { + return useSeoMeta(input, { + ...options, + mode: "server" + }); +} + +const importRe = /@import/; +// @__NO_SIDE_EFFECTS__ +function CapoPlugin(options) { + return defineHeadPlugin({ + hooks: { + "tags:beforeResolve": ({ tags }) => { + for (const tag of tags) { + if (tag.tagPosition && tag.tagPosition !== "head") + continue; + tag.tagPriority = tag.tagPriority || tagWeight(tag); + if (tag.tagPriority !== 100) + continue; + const isTruthy = (val) => val === "" || val === true; + const isScript = tag.tag === "script"; + const isLink = tag.tag === "link"; + if (isScript && isTruthy(tag.props.async)) { + tag.tagPriority = 30; + } else if (tag.tag === "style" && tag.innerHTML && importRe.test(tag.innerHTML)) { + tag.tagPriority = 40; + } else if (isScript && tag.props.src && !isTruthy(tag.props.defer) && !isTruthy(tag.props.async) && tag.props.type !== "module" && !tag.props.type?.endsWith("json")) { + tag.tagPriority = 50; + } else if (isLink && tag.props.rel === "stylesheet" || tag.tag === "style") { + tag.tagPriority = 60; + } else if (isLink && (tag.props.rel === "preload" || tag.props.rel === "modulepreload")) { + tag.tagPriority = 70; + } else if (isScript && isTruthy(tag.props.defer) && tag.props.src && !isTruthy(tag.props.async)) { + tag.tagPriority = 80; + } else if (isLink && (tag.props.rel === "prefetch" || tag.props.rel === "dns-prefetch" || tag.props.rel === "prerender")) { + tag.tagPriority = 90; + } + } + options?.track && tags.push({ + tag: "htmlAttrs", + props: { + "data-capo": "" + } + }); + } + } + }); +} + +// @__NO_SIDE_EFFECTS__ +function HashHydrationPlugin() { + return defineHeadPlugin({}); +} + +export { CapoPlugin, HashHydrationPlugin, createHead, createHeadCore, createServerHead, getActiveHead, resolveScriptKey, unheadComposablesImports, useHead, useHeadSafe, useScript, useSeoMeta, useServerHead, useServerHeadSafe, useServerSeoMeta }; diff --git a/.output/server/node_modules/unhead/package.json b/.output/server/node_modules/unhead/package.json new file mode 100644 index 0000000..adebd59 --- /dev/null +++ b/.output/server/node_modules/unhead/package.json @@ -0,0 +1,49 @@ +{ + "name": "unhead", + "type": "module", + "version": "1.11.19", + "author": { + "name": "Harlan Wilton", + "email": "harlan@harlanzw.com", + "url": "https://harlanzw.com/" + }, + "license": "MIT", + "funding": "https://github.com/sponsors/harlan-zw", + "homepage": "https://unhead.unjs.io", + "repository": { + "type": "git", + "url": "git+https://github.com/unjs/unhead.git", + "directory": "packages/unhead" + }, + "bugs": { + "url": "https://github.com/unjs/unhead/issues" + }, + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "dependencies": { + "hookable": "^5.5.3", + "@unhead/schema": "1.11.19", + "@unhead/shared": "1.11.19", + "@unhead/dom": "1.11.19" + }, + "scripts": { + "build": "unbuild .", + "stub": "unbuild . --stub", + "export:sizes": "npx export-size . -r" + }, + "__npminstall_done": true, + "_from": "unhead@1.11.19", + "_resolved": "https://registry.npmmirror.com/unhead/-/unhead-1.11.19.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs b/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs new file mode 100644 index 0000000..c172e82 --- /dev/null +++ b/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs @@ -0,0 +1,196 @@ +import { withLeadingSlash } from 'ufo'; + +function createRendererContext({ manifest, buildAssetsURL }) { + const ctx = { + // Manifest + buildAssetsURL: buildAssetsURL || withLeadingSlash, + manifest: void 0, + updateManifest, + // Internal cache + _dependencies: void 0, + _dependencySets: void 0, + _entrypoints: void 0 + }; + function updateManifest(manifest2) { + const manifestEntries = Object.entries(manifest2); + ctx.manifest = manifest2; + ctx._dependencies = {}; + ctx._dependencySets = {}; + ctx._entrypoints = manifestEntries.filter((e) => e[1].isEntry).map(([module]) => module); + } + updateManifest(manifest); + return ctx; +} +function getModuleDependencies(id, rendererContext) { + if (rendererContext._dependencies[id]) { + return rendererContext._dependencies[id]; + } + const dependencies = rendererContext._dependencies[id] = { + scripts: {}, + styles: {}, + preload: {}, + prefetch: {} + }; + const meta = rendererContext.manifest[id]; + if (!meta) { + return dependencies; + } + if (meta.file) { + dependencies.preload[id] = meta; + if (meta.isEntry || meta.sideEffects) { + dependencies.scripts[id] = meta; + } + } + for (const css of meta.css || []) { + dependencies.styles[css] = dependencies.preload[css] = dependencies.prefetch[css] = rendererContext.manifest[css]; + } + for (const asset of meta.assets || []) { + dependencies.preload[asset] = dependencies.prefetch[asset] = rendererContext.manifest[asset]; + } + for (const depId of meta.imports || []) { + const depDeps = getModuleDependencies(depId, rendererContext); + Object.assign(dependencies.styles, depDeps.styles); + Object.assign(dependencies.preload, depDeps.preload); + Object.assign(dependencies.prefetch, depDeps.prefetch); + } + const filteredPreload = {}; + for (const id2 in dependencies.preload) { + const dep = dependencies.preload[id2]; + if (dep.preload) { + filteredPreload[id2] = dep; + } + } + dependencies.preload = filteredPreload; + return dependencies; +} +function getAllDependencies(ids, rendererContext) { + const cacheKey = Array.from(ids).sort().join(","); + if (rendererContext._dependencySets[cacheKey]) { + return rendererContext._dependencySets[cacheKey]; + } + const allDeps = { + scripts: {}, + styles: {}, + preload: {}, + prefetch: {} + }; + for (const id of ids) { + const deps = getModuleDependencies(id, rendererContext); + Object.assign(allDeps.scripts, deps.scripts); + Object.assign(allDeps.styles, deps.styles); + Object.assign(allDeps.preload, deps.preload); + Object.assign(allDeps.prefetch, deps.prefetch); + for (const dynamicDepId of rendererContext.manifest[id]?.dynamicImports || []) { + const dynamicDeps = getModuleDependencies(dynamicDepId, rendererContext); + Object.assign(allDeps.prefetch, dynamicDeps.scripts); + Object.assign(allDeps.prefetch, dynamicDeps.styles); + Object.assign(allDeps.prefetch, dynamicDeps.preload); + } + } + const filteredPrefetch = {}; + for (const id in allDeps.prefetch) { + const dep = allDeps.prefetch[id]; + if (dep.prefetch) { + filteredPrefetch[id] = dep; + } + } + allDeps.prefetch = filteredPrefetch; + for (const id in allDeps.preload) { + delete allDeps.prefetch[id]; + } + for (const style in allDeps.styles) { + delete allDeps.preload[style]; + delete allDeps.prefetch[style]; + } + rendererContext._dependencySets[cacheKey] = allDeps; + return allDeps; +} +function getRequestDependencies(ssrContext, rendererContext) { + if (ssrContext._requestDependencies) { + return ssrContext._requestDependencies; + } + const ids = new Set(Array.from([ + ...rendererContext._entrypoints, + ...ssrContext.modules || ssrContext._registeredComponents || [] + ])); + const deps = getAllDependencies(ids, rendererContext); + ssrContext._requestDependencies = deps; + return deps; +} +function renderStyles(ssrContext, rendererContext) { + const { styles } = getRequestDependencies(ssrContext, rendererContext); + return Object.values(styles).map( + (resource) => renderLinkToString({ rel: "stylesheet", href: rendererContext.buildAssetsURL(resource.file), crossorigin: "" }) + ).join(""); +} +function getResources(ssrContext, rendererContext) { + return [...getPreloadLinks(ssrContext, rendererContext), ...getPrefetchLinks(ssrContext, rendererContext)]; +} +function renderResourceHints(ssrContext, rendererContext) { + return getResources(ssrContext, rendererContext).map(renderLinkToString).join(""); +} +function renderResourceHeaders(ssrContext, rendererContext) { + return { + link: getResources(ssrContext, rendererContext).map(renderLinkToHeader).join(", ") + }; +} +function getPreloadLinks(ssrContext, rendererContext) { + const { preload } = getRequestDependencies(ssrContext, rendererContext); + return Object.values(preload).map((resource) => ({ + rel: resource.module ? "modulepreload" : "preload", + as: resource.resourceType, + type: resource.mimeType ?? null, + crossorigin: resource.resourceType === "style" || resource.resourceType === "font" || resource.resourceType === "script" || resource.module ? "" : null, + href: rendererContext.buildAssetsURL(resource.file) + })); +} +function getPrefetchLinks(ssrContext, rendererContext) { + const { prefetch } = getRequestDependencies(ssrContext, rendererContext); + return Object.values(prefetch).map((resource) => ({ + rel: "prefetch", + as: resource.resourceType, + type: resource.mimeType ?? null, + crossorigin: resource.resourceType === "style" || resource.resourceType === "font" || resource.resourceType === "script" || resource.module ? "" : null, + href: rendererContext.buildAssetsURL(resource.file) + })); +} +function renderScripts(ssrContext, rendererContext) { + const { scripts } = getRequestDependencies(ssrContext, rendererContext); + return Object.values(scripts).map((resource) => renderScriptToString({ + type: resource.module ? "module" : null, + src: rendererContext.buildAssetsURL(resource.file), + defer: resource.module ? null : "", + crossorigin: "" + })).join(""); +} +function createRenderer(createApp, renderOptions) { + const rendererContext = createRendererContext(renderOptions); + return { + rendererContext, + async renderToString(ssrContext) { + ssrContext._registeredComponents = ssrContext._registeredComponents || /* @__PURE__ */ new Set(); + const _createApp = await Promise.resolve(createApp).then((r) => "default" in r ? r.default : r); + const app = await _createApp(ssrContext); + const html = await renderOptions.renderToString(app, ssrContext); + const wrap = (fn) => () => fn(ssrContext, rendererContext); + return { + html, + renderResourceHeaders: wrap(renderResourceHeaders), + renderResourceHints: wrap(renderResourceHints), + renderStyles: wrap(renderStyles), + renderScripts: wrap(renderScripts) + }; + } + }; +} +function renderScriptToString(attrs) { + return `<script${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}><\/script>`; +} +function renderLinkToString(attrs) { + return `<link${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}>`; +} +function renderLinkToHeader(attrs) { + return `<${attrs.href}>${Object.entries(attrs).map(([key, value]) => key === "href" || value === null ? "" : value ? `; ${key}="${value}"` : `; ${key}`).join("")}`; +} + +export { createRenderer, createRendererContext, getAllDependencies, getModuleDependencies, getPrefetchLinks, getPreloadLinks, getRequestDependencies, getResources, renderResourceHeaders, renderResourceHints, renderScripts, renderStyles }; diff --git a/.output/server/node_modules/vue-bundle-renderer/package.json b/.output/server/node_modules/vue-bundle-renderer/package.json new file mode 100644 index 0000000..37ca726 --- /dev/null +++ b/.output/server/node_modules/vue-bundle-renderer/package.json @@ -0,0 +1,53 @@ +{ + "name": "vue-bundle-renderer", + "version": "2.1.1", + "description": "Bundle Renderer for Vue 3.0", + "repository": "nuxt-contrib/vue-bundle-renderer", + "license": "MIT", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./runtime": { + "types": "./dist/runtime.d.ts", + "import": "./dist/runtime.mjs", + "require": "./dist/runtime.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist", + "runtime.d.ts" + ], + "scripts": { + "build": "unbuild", + "dev": "vitest", + "lint": "eslint src", + "prepack": "unbuild", + "release": "pnpm test && pnpm build && changelogen --release --push && npm publish", + "test": "pnpm lint && pnpm vitest run --coverage && tsc --noEmit" + }, + "dependencies": { + "ufo": "^1.5.4" + }, + "devDependencies": { + "@types/node": "^20.16.6", + "@vitest/coverage-v8": "^2.1.1", + "changelogen": "^0.5.7", + "eslint": "^9.11.1", + "typescript": "^5.6.2", + "unbuild": "^2.0.0", + "vite": "^5.4.7", + "vitest": "2.1.1", + "vue": "3.5.8", + "@nuxt/eslint-config": "^0.5.7" + }, + "packageManager": "pnpm@9.11.0", + "__npminstall_done": true, + "_from": "vue-bundle-renderer@2.1.1", + "_resolved": "https://registry.npmmirror.com/vue-bundle-renderer/-/vue-bundle-renderer-2.1.1.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/vue-router/dist/vue-router.mjs b/.output/server/node_modules/vue-router/dist/vue-router.mjs new file mode 100644 index 0000000..399f57c --- /dev/null +++ b/.output/server/node_modules/vue-router/dist/vue-router.mjs @@ -0,0 +1,3781 @@ +/*! + * vue-router v4.5.0 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */ +import { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue'; +import { setupDevtoolsPlugin } from '@vue/devtools-api'; + +const isBrowser = typeof document !== 'undefined'; + +/** + * Allows differentiating lazy components from functional components and vue-class-component + * @internal + * + * @param component + */ +function isRouteComponent(component) { + return (typeof component === 'object' || + 'displayName' in component || + 'props' in component || + '__vccOpts' in component); +} +function isESModule(obj) { + return (obj.__esModule || + obj[Symbol.toStringTag] === 'Module' || + // support CF with dynamic imports that do not + // add the Module string tag + (obj.default && isRouteComponent(obj.default))); +} +const assign = Object.assign; +function applyToParams(fn, params) { + const newParams = {}; + for (const key in params) { + const value = params[key]; + newParams[key] = isArray(value) + ? value.map(fn) + : fn(value); + } + return newParams; +} +const noop = () => { }; +/** + * Typesafe alternative to Array.isArray + * https://github.com/microsoft/TypeScript/pull/48228 + */ +const isArray = Array.isArray; + +function warn(msg) { + // avoid using ...args as it breaks in older Edge builds + const args = Array.from(arguments).slice(1); + console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args)); +} + +/** + * Encoding Rules (␣ = Space) + * - Path: ␣ " < > # ? { } + * - Query: ␣ " < > # & = + * - Hash: ␣ " < > ` + * + * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2) + * defines some extra characters to be encoded. Most browsers do not encode them + * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to + * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`) + * plus `-._~`. This extra safety should be applied to query by patching the + * string returned by encodeURIComponent encodeURI also encodes `[\]^`. `\` + * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\` + * into a `/` if directly typed in. The _backtick_ (`````) should also be + * encoded everywhere because some browsers like FF encode it when directly + * written while others don't. Safari and IE don't encode ``"<>{}``` in hash. + */ +// const EXTRA_RESERVED_RE = /[!'()*]/g +// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16) +const HASH_RE = /#/g; // %23 +const AMPERSAND_RE = /&/g; // %26 +const SLASH_RE = /\//g; // %2F +const EQUAL_RE = /=/g; // %3D +const IM_RE = /\?/g; // %3F +const PLUS_RE = /\+/g; // %2B +/** + * NOTE: It's not clear to me if we should encode the + symbol in queries, it + * seems to be less flexible than not doing so and I can't find out the legacy + * systems requiring this for regular requests like text/html. In the standard, + * the encoding of the plus character is only mentioned for + * application/x-www-form-urlencoded + * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo + * leave the plus character as is in queries. To be more flexible, we allow the + * plus character on the query, but it can also be manually encoded by the user. + * + * Resources: + * - https://url.spec.whatwg.org/#urlencoded-parsing + * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 + */ +const ENC_BRACKET_OPEN_RE = /%5B/g; // [ +const ENC_BRACKET_CLOSE_RE = /%5D/g; // ] +const ENC_CARET_RE = /%5E/g; // ^ +const ENC_BACKTICK_RE = /%60/g; // ` +const ENC_CURLY_OPEN_RE = /%7B/g; // { +const ENC_PIPE_RE = /%7C/g; // | +const ENC_CURLY_CLOSE_RE = /%7D/g; // } +const ENC_SPACE_RE = /%20/g; // } +/** + * Encode characters that need to be encoded on the path, search and hash + * sections of the URL. + * + * @internal + * @param text - string to encode + * @returns encoded string + */ +function commonEncode(text) { + return encodeURI('' + text) + .replace(ENC_PIPE_RE, '|') + .replace(ENC_BRACKET_OPEN_RE, '[') + .replace(ENC_BRACKET_CLOSE_RE, ']'); +} +/** + * Encode characters that need to be encoded on the hash section of the URL. + * + * @param text - string to encode + * @returns encoded string + */ +function encodeHash(text) { + return commonEncode(text) + .replace(ENC_CURLY_OPEN_RE, '{') + .replace(ENC_CURLY_CLOSE_RE, '}') + .replace(ENC_CARET_RE, '^'); +} +/** + * Encode characters that need to be encoded query values on the query + * section of the URL. + * + * @param text - string to encode + * @returns encoded string + */ +function encodeQueryValue(text) { + return (commonEncode(text) + // Encode the space as +, encode the + to differentiate it from the space + .replace(PLUS_RE, '%2B') + .replace(ENC_SPACE_RE, '+') + .replace(HASH_RE, '%23') + .replace(AMPERSAND_RE, '%26') + .replace(ENC_BACKTICK_RE, '`') + .replace(ENC_CURLY_OPEN_RE, '{') + .replace(ENC_CURLY_CLOSE_RE, '}') + .replace(ENC_CARET_RE, '^')); +} +/** + * Like `encodeQueryValue` but also encodes the `=` character. + * + * @param text - string to encode + */ +function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, '%3D'); +} +/** + * Encode characters that need to be encoded on the path section of the URL. + * + * @param text - string to encode + * @returns encoded string + */ +function encodePath(text) { + return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F'); +} +/** + * Encode characters that need to be encoded on the path section of the URL as a + * param. This function encodes everything {@link encodePath} does plus the + * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty + * string instead. + * + * @param text - string to encode + * @returns encoded string + */ +function encodeParam(text) { + return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F'); +} +/** + * Decode text using `decodeURIComponent`. Returns the original text if it + * fails. + * + * @param text - string to decode + * @returns decoded string + */ +function decode(text) { + try { + return decodeURIComponent('' + text); + } + catch (err) { + (process.env.NODE_ENV !== 'production') && warn(`Error decoding "${text}". Using original value`); + } + return '' + text; +} + +const TRAILING_SLASH_RE = /\/$/; +const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, ''); +/** + * Transforms a URI into a normalized history location + * + * @param parseQuery + * @param location - URI to normalize + * @param currentLocation - current absolute location. Allows resolving relative + * paths. Must start with `/`. Defaults to `/` + * @returns a normalized history location + */ +function parseURL(parseQuery, location, currentLocation = '/') { + let path, query = {}, searchString = '', hash = ''; + // Could use URL and URLSearchParams but IE 11 doesn't support it + // TODO: move to new URL() + const hashPos = location.indexOf('#'); + let searchPos = location.indexOf('?'); + // the hash appears before the search, so it's not part of the search string + if (hashPos < searchPos && hashPos >= 0) { + searchPos = -1; + } + if (searchPos > -1) { + path = location.slice(0, searchPos); + searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length); + query = parseQuery(searchString); + } + if (hashPos > -1) { + path = path || location.slice(0, hashPos); + // keep the # character + hash = location.slice(hashPos, location.length); + } + // no search and no query + path = resolveRelativePath(path != null ? path : location, currentLocation); + // empty path means a relative query or hash `?foo=f`, `#thing` + return { + fullPath: path + (searchString && '?') + searchString + hash, + path, + query, + hash: decode(hash), + }; +} +/** + * Stringifies a URL object + * + * @param stringifyQuery + * @param location + */ +function stringifyURL(stringifyQuery, location) { + const query = location.query ? stringifyQuery(location.query) : ''; + return location.path + (query && '?') + query + (location.hash || ''); +} +/** + * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way. + * + * @param pathname - location.pathname + * @param base - base to strip off + */ +function stripBase(pathname, base) { + // no base or base is not found at the beginning + if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) + return pathname; + return pathname.slice(base.length) || '/'; +} +/** + * Checks if two RouteLocation are equal. This means that both locations are + * pointing towards the same {@link RouteRecord} and that all `params`, `query` + * parameters and `hash` are the same + * + * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it. + * @param a - first {@link RouteLocation} + * @param b - second {@link RouteLocation} + */ +function isSameRouteLocation(stringifyQuery, a, b) { + const aLastIndex = a.matched.length - 1; + const bLastIndex = b.matched.length - 1; + return (aLastIndex > -1 && + aLastIndex === bLastIndex && + isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && + isSameRouteLocationParams(a.params, b.params) && + stringifyQuery(a.query) === stringifyQuery(b.query) && + a.hash === b.hash); +} +/** + * Check if two `RouteRecords` are equal. Takes into account aliases: they are + * considered equal to the `RouteRecord` they are aliasing. + * + * @param a - first {@link RouteRecord} + * @param b - second {@link RouteRecord} + */ +function isSameRouteRecord(a, b) { + // since the original record has an undefined value for aliasOf + // but all aliases point to the original record, this will always compare + // the original record + return (a.aliasOf || a) === (b.aliasOf || b); +} +function isSameRouteLocationParams(a, b) { + if (Object.keys(a).length !== Object.keys(b).length) + return false; + for (const key in a) { + if (!isSameRouteLocationParamsValue(a[key], b[key])) + return false; + } + return true; +} +function isSameRouteLocationParamsValue(a, b) { + return isArray(a) + ? isEquivalentArray(a, b) + : isArray(b) + ? isEquivalentArray(b, a) + : a === b; +} +/** + * Check if two arrays are the same or if an array with one single entry is the + * same as another primitive value. Used to check query and parameters + * + * @param a - array of values + * @param b - array of values or a single value + */ +function isEquivalentArray(a, b) { + return isArray(b) + ? a.length === b.length && a.every((value, i) => value === b[i]) + : a.length === 1 && a[0] === b; +} +/** + * Resolves a relative path that starts with `.`. + * + * @param to - path location we are resolving + * @param from - currentLocation.path, should start with `/` + */ +function resolveRelativePath(to, from) { + if (to.startsWith('/')) + return to; + if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) { + warn(`Cannot resolve a relative location without an absolute path. Trying to resolve "${to}" from "${from}". It should look like "/${from}".`); + return to; + } + if (!to) + return from; + const fromSegments = from.split('/'); + const toSegments = to.split('/'); + const lastToSegment = toSegments[toSegments.length - 1]; + // make . and ./ the same (../ === .., ../../ === ../..) + // this is the same behavior as new URL() + if (lastToSegment === '..' || lastToSegment === '.') { + toSegments.push(''); + } + let position = fromSegments.length - 1; + let toPosition; + let segment; + for (toPosition = 0; toPosition < toSegments.length; toPosition++) { + segment = toSegments[toPosition]; + // we stay on the same position + if (segment === '.') + continue; + // go up in the from array + if (segment === '..') { + // we can't go below zero, but we still need to increment toPosition + if (position > 1) + position--; + // continue + } + // we reached a non-relative path, we stop here + else + break; + } + return (fromSegments.slice(0, position).join('/') + + '/' + + toSegments.slice(toPosition).join('/')); +} +/** + * Initial route location where the router is. Can be used in navigation guards + * to differentiate the initial navigation. + * + * @example + * ```js + * import { START_LOCATION } from 'vue-router' + * + * router.beforeEach((to, from) => { + * if (from === START_LOCATION) { + * // initial navigation + * } + * }) + * ``` + */ +const START_LOCATION_NORMALIZED = { + path: '/', + // TODO: could we use a symbol in the future? + name: undefined, + params: {}, + query: {}, + hash: '', + fullPath: '/', + matched: [], + meta: {}, + redirectedFrom: undefined, +}; + +var NavigationType; +(function (NavigationType) { + NavigationType["pop"] = "pop"; + NavigationType["push"] = "push"; +})(NavigationType || (NavigationType = {})); +var NavigationDirection; +(function (NavigationDirection) { + NavigationDirection["back"] = "back"; + NavigationDirection["forward"] = "forward"; + NavigationDirection["unknown"] = ""; +})(NavigationDirection || (NavigationDirection = {})); +/** + * Starting location for Histories + */ +const START = ''; +// Generic utils +/** + * Normalizes a base by removing any trailing slash and reading the base tag if + * present. + * + * @param base - base to normalize + */ +function normalizeBase(base) { + if (!base) { + if (isBrowser) { + // respect <base> tag + const baseEl = document.querySelector('base'); + base = (baseEl && baseEl.getAttribute('href')) || '/'; + // strip full URL origin + base = base.replace(/^\w+:\/\/[^\/]+/, ''); + } + else { + base = '/'; + } + } + // ensure leading slash when it was removed by the regex above avoid leading + // slash with hash because the file could be read from the disk like file:// + // and the leading slash would cause problems + if (base[0] !== '/' && base[0] !== '#') + base = '/' + base; + // remove the trailing slash so all other method can just do `base + fullPath` + // to build an href + return removeTrailingSlash(base); +} +// remove any character before the hash +const BEFORE_HASH_RE = /^[^#]+#/; +function createHref(base, location) { + return base.replace(BEFORE_HASH_RE, '#') + location; +} + +function getElementPosition(el, offset) { + const docRect = document.documentElement.getBoundingClientRect(); + const elRect = el.getBoundingClientRect(); + return { + behavior: offset.behavior, + left: elRect.left - docRect.left - (offset.left || 0), + top: elRect.top - docRect.top - (offset.top || 0), + }; +} +const computeScrollPosition = () => ({ + left: window.scrollX, + top: window.scrollY, +}); +function scrollToPosition(position) { + let scrollToOptions; + if ('el' in position) { + const positionEl = position.el; + const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#'); + /** + * `id`s can accept pretty much any characters, including CSS combinators + * like `>` or `~`. It's still possible to retrieve elements using + * `document.getElementById('~')` but it needs to be escaped when using + * `document.querySelector('#\\~')` for it to be valid. The only + * requirements for `id`s are them to be unique on the page and to not be + * empty (`id=""`). Because of that, when passing an id selector, it should + * be properly escaped for it to work with `querySelector`. We could check + * for the id selector to be simple (no CSS combinators `+ >~`) but that + * would make things inconsistent since they are valid characters for an + * `id` but would need to be escaped when using `querySelector`, breaking + * their usage and ending up in no selector returned. Selectors need to be + * escaped: + * + * - `#1-thing` becomes `#\31 -thing` + * - `#with~symbols` becomes `#with\\~symbols` + * + * - More information about the topic can be found at + * https://mathiasbynens.be/notes/html5-id-class. + * - Practical example: https://mathiasbynens.be/demo/html5-id + */ + if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') { + if (!isIdSelector || !document.getElementById(position.el.slice(1))) { + try { + const foundEl = document.querySelector(position.el); + if (isIdSelector && foundEl) { + warn(`The selector "${position.el}" should be passed as "el: document.querySelector('${position.el}')" because it starts with "#".`); + // return to avoid other warnings + return; + } + } + catch (err) { + warn(`The selector "${position.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`); + // return to avoid other warnings + return; + } + } + } + const el = typeof positionEl === 'string' + ? isIdSelector + ? document.getElementById(positionEl.slice(1)) + : document.querySelector(positionEl) + : positionEl; + if (!el) { + (process.env.NODE_ENV !== 'production') && + warn(`Couldn't find element using selector "${position.el}" returned by scrollBehavior.`); + return; + } + scrollToOptions = getElementPosition(el, position); + } + else { + scrollToOptions = position; + } + if ('scrollBehavior' in document.documentElement.style) + window.scrollTo(scrollToOptions); + else { + window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY); + } +} +function getScrollKey(path, delta) { + const position = history.state ? history.state.position - delta : -1; + return position + path; +} +const scrollPositions = new Map(); +function saveScrollPosition(key, scrollPosition) { + scrollPositions.set(key, scrollPosition); +} +function getSavedScrollPosition(key) { + const scroll = scrollPositions.get(key); + // consume it so it's not used again + scrollPositions.delete(key); + return scroll; +} +// TODO: RFC about how to save scroll position +/** + * ScrollBehavior instance used by the router to compute and restore the scroll + * position when navigating. + */ +// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> { +// // returns a scroll position that can be saved in history +// compute(): ScrollPositionEntry +// // can take an extended ScrollPositionEntry +// scroll(position: ScrollPosition): void +// } +// export const scrollHandler: ScrollHandler<ScrollPosition> = { +// compute: computeScroll, +// scroll: scrollToPosition, +// } + +let createBaseLocation = () => location.protocol + '//' + location.host; +/** + * Creates a normalized history location from a window.location object + * @param base - The base path + * @param location - The window.location object + */ +function createCurrentLocation(base, location) { + const { pathname, search, hash } = location; + // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end + const hashPos = base.indexOf('#'); + if (hashPos > -1) { + let slicePos = hash.includes(base.slice(hashPos)) + ? base.slice(hashPos).length + : 1; + let pathFromHash = hash.slice(slicePos); + // prepend the starting slash to hash so the url starts with /# + if (pathFromHash[0] !== '/') + pathFromHash = '/' + pathFromHash; + return stripBase(pathFromHash, ''); + } + const path = stripBase(pathname, base); + return path + search + hash; +} +function useHistoryListeners(base, historyState, currentLocation, replace) { + let listeners = []; + let teardowns = []; + // TODO: should it be a stack? a Dict. Check if the popstate listener + // can trigger twice + let pauseState = null; + const popStateHandler = ({ state, }) => { + const to = createCurrentLocation(base, location); + const from = currentLocation.value; + const fromState = historyState.value; + let delta = 0; + if (state) { + currentLocation.value = to; + historyState.value = state; + // ignore the popstate and reset the pauseState + if (pauseState && pauseState === from) { + pauseState = null; + return; + } + delta = fromState ? state.position - fromState.position : 0; + } + else { + replace(to); + } + // Here we could also revert the navigation by calling history.go(-delta) + // this listener will have to be adapted to not trigger again and to wait for the url + // to be updated before triggering the listeners. Some kind of validation function would also + // need to be passed to the listeners so the navigation can be accepted + // call all listeners + listeners.forEach(listener => { + listener(currentLocation.value, from, { + delta, + type: NavigationType.pop, + direction: delta + ? delta > 0 + ? NavigationDirection.forward + : NavigationDirection.back + : NavigationDirection.unknown, + }); + }); + }; + function pauseListeners() { + pauseState = currentLocation.value; + } + function listen(callback) { + // set up the listener and prepare teardown callbacks + listeners.push(callback); + const teardown = () => { + const index = listeners.indexOf(callback); + if (index > -1) + listeners.splice(index, 1); + }; + teardowns.push(teardown); + return teardown; + } + function beforeUnloadListener() { + const { history } = window; + if (!history.state) + return; + history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), ''); + } + function destroy() { + for (const teardown of teardowns) + teardown(); + teardowns = []; + window.removeEventListener('popstate', popStateHandler); + window.removeEventListener('beforeunload', beforeUnloadListener); + } + // set up the listeners and prepare teardown callbacks + window.addEventListener('popstate', popStateHandler); + // TODO: could we use 'pagehide' or 'visibilitychange' instead? + // https://developer.chrome.com/blog/page-lifecycle-api/ + window.addEventListener('beforeunload', beforeUnloadListener, { + passive: true, + }); + return { + pauseListeners, + listen, + destroy, + }; +} +/** + * Creates a state object + */ +function buildState(back, current, forward, replaced = false, computeScroll = false) { + return { + back, + current, + forward, + replaced, + position: window.history.length, + scroll: computeScroll ? computeScrollPosition() : null, + }; +} +function useHistoryStateNavigation(base) { + const { history, location } = window; + // private variables + const currentLocation = { + value: createCurrentLocation(base, location), + }; + const historyState = { value: history.state }; + // build current history entry as this is a fresh navigation + if (!historyState.value) { + changeLocation(currentLocation.value, { + back: null, + current: currentLocation.value, + forward: null, + // the length is off by one, we need to decrease it + position: history.length - 1, + replaced: true, + // don't add a scroll as the user may have an anchor, and we want + // scrollBehavior to be triggered without a saved position + scroll: null, + }, true); + } + function changeLocation(to, state, replace) { + /** + * if a base tag is provided, and we are on a normal domain, we have to + * respect the provided `base` attribute because pushState() will use it and + * potentially erase anything before the `#` like at + * https://github.com/vuejs/router/issues/685 where a base of + * `/folder/#` but a base of `/` would erase the `/folder/` section. If + * there is no host, the `<base>` tag makes no sense and if there isn't a + * base tag we can just use everything after the `#`. + */ + const hashIndex = base.indexOf('#'); + const url = hashIndex > -1 + ? (location.host && document.querySelector('base') + ? base + : base.slice(hashIndex)) + to + : createBaseLocation() + base + to; + try { + // BROWSER QUIRK + // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds + history[replace ? 'replaceState' : 'pushState'](state, '', url); + historyState.value = state; + } + catch (err) { + if ((process.env.NODE_ENV !== 'production')) { + warn('Error with push/replace State', err); + } + else { + console.error(err); + } + // Force the navigation, this also resets the call count + location[replace ? 'replace' : 'assign'](url); + } + } + function replace(to, data) { + const state = assign({}, history.state, buildState(historyState.value.back, + // keep back and forward entries but override current position + to, historyState.value.forward, true), data, { position: historyState.value.position }); + changeLocation(to, state, true); + currentLocation.value = to; + } + function push(to, data) { + // Add to current entry the information of where we are going + // as well as saving the current position + const currentState = assign({}, + // use current history state to gracefully handle a wrong call to + // history.replaceState + // https://github.com/vuejs/router/issues/366 + historyState.value, history.state, { + forward: to, + scroll: computeScrollPosition(), + }); + if ((process.env.NODE_ENV !== 'production') && !history.state) { + warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\n\n` + + `history.replaceState(history.state, '', url)\n\n` + + `You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state`); + } + changeLocation(currentState.current, currentState, true); + const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data); + changeLocation(to, state, false); + currentLocation.value = to; + } + return { + location: currentLocation, + state: historyState, + push, + replace, + }; +} +/** + * Creates an HTML5 history. Most common history for single page applications. + * + * @param base - + */ +function createWebHistory(base) { + base = normalizeBase(base); + const historyNavigation = useHistoryStateNavigation(base); + const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace); + function go(delta, triggerListeners = true) { + if (!triggerListeners) + historyListeners.pauseListeners(); + history.go(delta); + } + const routerHistory = assign({ + // it's overridden right after + location: '', + base, + go, + createHref: createHref.bind(null, base), + }, historyNavigation, historyListeners); + Object.defineProperty(routerHistory, 'location', { + enumerable: true, + get: () => historyNavigation.location.value, + }); + Object.defineProperty(routerHistory, 'state', { + enumerable: true, + get: () => historyNavigation.state.value, + }); + return routerHistory; +} + +/** + * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere. + * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`. + * + * @param base - Base applied to all urls, defaults to '/' + * @returns a history object that can be passed to the router constructor + */ +function createMemoryHistory(base = '') { + let listeners = []; + let queue = [START]; + let position = 0; + base = normalizeBase(base); + function setLocation(location) { + position++; + if (position !== queue.length) { + // we are in the middle, we remove everything from here in the queue + queue.splice(position); + } + queue.push(location); + } + function triggerListeners(to, from, { direction, delta }) { + const info = { + direction, + delta, + type: NavigationType.pop, + }; + for (const callback of listeners) { + callback(to, from, info); + } + } + const routerHistory = { + // rewritten by Object.defineProperty + location: START, + // TODO: should be kept in queue + state: {}, + base, + createHref: createHref.bind(null, base), + replace(to) { + // remove current entry and decrement position + queue.splice(position--, 1); + setLocation(to); + }, + push(to, data) { + setLocation(to); + }, + listen(callback) { + listeners.push(callback); + return () => { + const index = listeners.indexOf(callback); + if (index > -1) + listeners.splice(index, 1); + }; + }, + destroy() { + listeners = []; + queue = [START]; + position = 0; + }, + go(delta, shouldTrigger = true) { + const from = this.location; + const direction = + // we are considering delta === 0 going forward, but in abstract mode + // using 0 for the delta doesn't make sense like it does in html5 where + // it reloads the page + delta < 0 ? NavigationDirection.back : NavigationDirection.forward; + position = Math.max(0, Math.min(position + delta, queue.length - 1)); + if (shouldTrigger) { + triggerListeners(this.location, from, { + direction, + delta, + }); + } + }, + }; + Object.defineProperty(routerHistory, 'location', { + enumerable: true, + get: () => queue[position], + }); + return routerHistory; +} + +/** + * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to + * handle any URL is not possible. + * + * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag + * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState() + * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything + * after the `#`). + * + * @example + * ```js + * // at https://example.com/folder + * createWebHashHistory() // gives a url of `https://example.com/folder#` + * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#` + * // if the `#` is provided in the base, it won't be added by `createWebHashHistory` + * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/` + * // you should avoid doing this because it changes the original url and breaks copying urls + * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#` + * + * // at file:///usr/etc/folder/index.html + * // for locations with no `host`, the base is ignored + * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#` + * ``` + */ +function createWebHashHistory(base) { + // Make sure this implementation is fine in terms of encoding, specially for IE11 + // for `file://`, directly use the pathname and ignore the base + // location.pathname contains an initial `/` even at the root: `https://example.com` + base = location.host ? base || location.pathname + location.search : ''; + // allow the user to provide a `#` in the middle: `/base/#/app` + if (!base.includes('#')) + base += '#'; + if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) { + warn(`A hash base must end with a "#":\n"${base}" should be "${base.replace(/#.*$/, '#')}".`); + } + return createWebHistory(base); +} + +function isRouteLocation(route) { + return typeof route === 'string' || (route && typeof route === 'object'); +} +function isRouteName(name) { + return typeof name === 'string' || typeof name === 'symbol'; +} + +const NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : ''); +/** + * Enumeration with all possible types for navigation failures. Can be passed to + * {@link isNavigationFailure} to check for specific failures. + */ +var NavigationFailureType; +(function (NavigationFailureType) { + /** + * An aborted navigation is a navigation that failed because a navigation + * guard returned `false` or called `next(false)` + */ + NavigationFailureType[NavigationFailureType["aborted"] = 4] = "aborted"; + /** + * A cancelled navigation is a navigation that failed because a more recent + * navigation finished started (not necessarily finished). + */ + NavigationFailureType[NavigationFailureType["cancelled"] = 8] = "cancelled"; + /** + * A duplicated navigation is a navigation that failed because it was + * initiated while already being at the exact same location. + */ + NavigationFailureType[NavigationFailureType["duplicated"] = 16] = "duplicated"; +})(NavigationFailureType || (NavigationFailureType = {})); +// DEV only debug messages +const ErrorTypeMessages = { + [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) { + return `No match for\n ${JSON.stringify(location)}${currentLocation + ? '\nwhile being at\n' + JSON.stringify(currentLocation) + : ''}`; + }, + [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) { + return `Redirected from "${from.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`; + }, + [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) { + return `Navigation aborted from "${from.fullPath}" to "${to.fullPath}" via a navigation guard.`; + }, + [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) { + return `Navigation cancelled from "${from.fullPath}" to "${to.fullPath}" with a new navigation.`; + }, + [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) { + return `Avoided redundant navigation to current location: "${from.fullPath}".`; + }, +}; +/** + * Creates a typed NavigationFailure object. + * @internal + * @param type - NavigationFailureType + * @param params - { from, to } + */ +function createRouterError(type, params) { + // keep full error messages in cjs versions + if ((process.env.NODE_ENV !== 'production') || !true) { + return assign(new Error(ErrorTypeMessages[type](params)), { + type, + [NavigationFailureSymbol]: true, + }, params); + } + else { + return assign(new Error(), { + type, + [NavigationFailureSymbol]: true, + }, params); + } +} +function isNavigationFailure(error, type) { + return (error instanceof Error && + NavigationFailureSymbol in error && + (type == null || !!(error.type & type))); +} +const propertiesToLog = ['params', 'query', 'hash']; +function stringifyRoute(to) { + if (typeof to === 'string') + return to; + if (to.path != null) + return to.path; + const location = {}; + for (const key of propertiesToLog) { + if (key in to) + location[key] = to[key]; + } + return JSON.stringify(location, null, 2); +} + +// default pattern for a param: non-greedy everything but / +const BASE_PARAM_PATTERN = '[^/]+?'; +const BASE_PATH_PARSER_OPTIONS = { + sensitive: false, + strict: false, + start: true, + end: true, +}; +// Special Regex characters that must be escaped in static tokens +const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g; +/** + * Creates a path parser from an array of Segments (a segment is an array of Tokens) + * + * @param segments - array of segments returned by tokenizePath + * @param extraOptions - optional options for the regexp + * @returns a PathParser + */ +function tokensToParser(segments, extraOptions) { + const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions); + // the amount of scores is the same as the length of segments except for the root segment "/" + const score = []; + // the regexp as a string + let pattern = options.start ? '^' : ''; + // extracted keys + const keys = []; + for (const segment of segments) { + // the root segment needs special treatment + const segmentScores = segment.length ? [] : [90 /* PathScore.Root */]; + // allow trailing slash + if (options.strict && !segment.length) + pattern += '/'; + for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) { + const token = segment[tokenIndex]; + // resets the score if we are inside a sub-segment /:a-other-:b + let subSegmentScore = 40 /* PathScore.Segment */ + + (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0); + if (token.type === 0 /* TokenType.Static */) { + // prepend the slash if we are starting a new segment + if (!tokenIndex) + pattern += '/'; + pattern += token.value.replace(REGEX_CHARS_RE, '\\$&'); + subSegmentScore += 40 /* PathScore.Static */; + } + else if (token.type === 1 /* TokenType.Param */) { + const { value, repeatable, optional, regexp } = token; + keys.push({ + name: value, + repeatable, + optional, + }); + const re = regexp ? regexp : BASE_PARAM_PATTERN; + // the user provided a custom regexp /:id(\\d+) + if (re !== BASE_PARAM_PATTERN) { + subSegmentScore += 10 /* PathScore.BonusCustomRegExp */; + // make sure the regexp is valid before using it + try { + new RegExp(`(${re})`); + } + catch (err) { + throw new Error(`Invalid custom RegExp for param "${value}" (${re}): ` + + err.message); + } + } + // when we repeat we must take care of the repeating leading slash + let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`; + // prepend the slash if we are starting a new segment + if (!tokenIndex) + subPattern = + // avoid an optional / if there are more segments e.g. /:p?-static + // or /:p?-:p2 + optional && segment.length < 2 + ? `(?:/${subPattern})` + : '/' + subPattern; + if (optional) + subPattern += '?'; + pattern += subPattern; + subSegmentScore += 20 /* PathScore.Dynamic */; + if (optional) + subSegmentScore += -8 /* PathScore.BonusOptional */; + if (repeatable) + subSegmentScore += -20 /* PathScore.BonusRepeatable */; + if (re === '.*') + subSegmentScore += -50 /* PathScore.BonusWildcard */; + } + segmentScores.push(subSegmentScore); + } + // an empty array like /home/ -> [[{home}], []] + // if (!segment.length) pattern += '/' + score.push(segmentScores); + } + // only apply the strict bonus to the last score + if (options.strict && options.end) { + const i = score.length - 1; + score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */; + } + // TODO: dev only warn double trailing slash + if (!options.strict) + pattern += '/?'; + if (options.end) + pattern += '$'; + // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else + else if (options.strict && !pattern.endsWith('/')) + pattern += '(?:/|$)'; + const re = new RegExp(pattern, options.sensitive ? '' : 'i'); + function parse(path) { + const match = path.match(re); + const params = {}; + if (!match) + return null; + for (let i = 1; i < match.length; i++) { + const value = match[i] || ''; + const key = keys[i - 1]; + params[key.name] = value && key.repeatable ? value.split('/') : value; + } + return params; + } + function stringify(params) { + let path = ''; + // for optional parameters to allow to be empty + let avoidDuplicatedSlash = false; + for (const segment of segments) { + if (!avoidDuplicatedSlash || !path.endsWith('/')) + path += '/'; + avoidDuplicatedSlash = false; + for (const token of segment) { + if (token.type === 0 /* TokenType.Static */) { + path += token.value; + } + else if (token.type === 1 /* TokenType.Param */) { + const { value, repeatable, optional } = token; + const param = value in params ? params[value] : ''; + if (isArray(param) && !repeatable) { + throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`); + } + const text = isArray(param) + ? param.join('/') + : param; + if (!text) { + if (optional) { + // if we have more than one optional param like /:a?-static we don't need to care about the optional param + if (segment.length < 2) { + // remove the last slash as we could be at the end + if (path.endsWith('/')) + path = path.slice(0, -1); + // do not append a slash on the next iteration + else + avoidDuplicatedSlash = true; + } + } + else + throw new Error(`Missing required param "${value}"`); + } + path += text; + } + } + } + // avoid empty path when we have multiple optional params + return path || '/'; + } + return { + re, + score, + keys, + parse, + stringify, + }; +} +/** + * Compares an array of numbers as used in PathParser.score and returns a + * number. This function can be used to `sort` an array + * + * @param a - first array of numbers + * @param b - second array of numbers + * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b + * should be sorted first + */ +function compareScoreArray(a, b) { + let i = 0; + while (i < a.length && i < b.length) { + const diff = b[i] - a[i]; + // only keep going if diff === 0 + if (diff) + return diff; + i++; + } + // if the last subsegment was Static, the shorter segments should be sorted first + // otherwise sort the longest segment first + if (a.length < b.length) { + return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */ + ? -1 + : 1; + } + else if (a.length > b.length) { + return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */ + ? 1 + : -1; + } + return 0; +} +/** + * Compare function that can be used with `sort` to sort an array of PathParser + * + * @param a - first PathParser + * @param b - second PathParser + * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b + */ +function comparePathParserScore(a, b) { + let i = 0; + const aScore = a.score; + const bScore = b.score; + while (i < aScore.length && i < bScore.length) { + const comp = compareScoreArray(aScore[i], bScore[i]); + // do not return if both are equal + if (comp) + return comp; + i++; + } + if (Math.abs(bScore.length - aScore.length) === 1) { + if (isLastScoreNegative(aScore)) + return 1; + if (isLastScoreNegative(bScore)) + return -1; + } + // if a and b share the same score entries but b has more, sort b first + return bScore.length - aScore.length; + // this is the ternary version + // return aScore.length < bScore.length + // ? 1 + // : aScore.length > bScore.length + // ? -1 + // : 0 +} +/** + * This allows detecting splats at the end of a path: /home/:id(.*)* + * + * @param score - score to check + * @returns true if the last entry is negative + */ +function isLastScoreNegative(score) { + const last = score[score.length - 1]; + return score.length > 0 && last[last.length - 1] < 0; +} + +const ROOT_TOKEN = { + type: 0 /* TokenType.Static */, + value: '', +}; +const VALID_PARAM_RE = /[a-zA-Z0-9_]/; +// After some profiling, the cache seems to be unnecessary because tokenizePath +// (the slowest part of adding a route) is very fast +// const tokenCache = new Map<string, Token[][]>() +function tokenizePath(path) { + if (!path) + return [[]]; + if (path === '/') + return [[ROOT_TOKEN]]; + if (!path.startsWith('/')) { + throw new Error((process.env.NODE_ENV !== 'production') + ? `Route paths should start with a "/": "${path}" should be "/${path}".` + : `Invalid path "${path}"`); + } + // if (tokenCache.has(path)) return tokenCache.get(path)! + function crash(message) { + throw new Error(`ERR (${state})/"${buffer}": ${message}`); + } + let state = 0 /* TokenizerState.Static */; + let previousState = state; + const tokens = []; + // the segment will always be valid because we get into the initial state + // with the leading / + let segment; + function finalizeSegment() { + if (segment) + tokens.push(segment); + segment = []; + } + // index on the path + let i = 0; + // char at index + let char; + // buffer of the value read + let buffer = ''; + // custom regexp for a param + let customRe = ''; + function consumeBuffer() { + if (!buffer) + return; + if (state === 0 /* TokenizerState.Static */) { + segment.push({ + type: 0 /* TokenType.Static */, + value: buffer, + }); + } + else if (state === 1 /* TokenizerState.Param */ || + state === 2 /* TokenizerState.ParamRegExp */ || + state === 3 /* TokenizerState.ParamRegExpEnd */) { + if (segment.length > 1 && (char === '*' || char === '+')) + crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`); + segment.push({ + type: 1 /* TokenType.Param */, + value: buffer, + regexp: customRe, + repeatable: char === '*' || char === '+', + optional: char === '*' || char === '?', + }); + } + else { + crash('Invalid state to consume buffer'); + } + buffer = ''; + } + function addCharToBuffer() { + buffer += char; + } + while (i < path.length) { + char = path[i++]; + if (char === '\\' && state !== 2 /* TokenizerState.ParamRegExp */) { + previousState = state; + state = 4 /* TokenizerState.EscapeNext */; + continue; + } + switch (state) { + case 0 /* TokenizerState.Static */: + if (char === '/') { + if (buffer) { + consumeBuffer(); + } + finalizeSegment(); + } + else if (char === ':') { + consumeBuffer(); + state = 1 /* TokenizerState.Param */; + } + else { + addCharToBuffer(); + } + break; + case 4 /* TokenizerState.EscapeNext */: + addCharToBuffer(); + state = previousState; + break; + case 1 /* TokenizerState.Param */: + if (char === '(') { + state = 2 /* TokenizerState.ParamRegExp */; + } + else if (VALID_PARAM_RE.test(char)) { + addCharToBuffer(); + } + else { + consumeBuffer(); + state = 0 /* TokenizerState.Static */; + // go back one character if we were not modifying + if (char !== '*' && char !== '?' && char !== '+') + i--; + } + break; + case 2 /* TokenizerState.ParamRegExp */: + // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix) + // it already works by escaping the closing ) + // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB# + // is this really something people need since you can also write + // /prefix_:p()_suffix + if (char === ')') { + // handle the escaped ) + if (customRe[customRe.length - 1] == '\\') + customRe = customRe.slice(0, -1) + char; + else + state = 3 /* TokenizerState.ParamRegExpEnd */; + } + else { + customRe += char; + } + break; + case 3 /* TokenizerState.ParamRegExpEnd */: + // same as finalizing a param + consumeBuffer(); + state = 0 /* TokenizerState.Static */; + // go back one character if we were not modifying + if (char !== '*' && char !== '?' && char !== '+') + i--; + customRe = ''; + break; + default: + crash('Unknown state'); + break; + } + } + if (state === 2 /* TokenizerState.ParamRegExp */) + crash(`Unfinished custom RegExp for param "${buffer}"`); + consumeBuffer(); + finalizeSegment(); + // tokenCache.set(path, tokens) + return tokens; +} + +function createRouteRecordMatcher(record, parent, options) { + const parser = tokensToParser(tokenizePath(record.path), options); + // warn against params with the same name + if ((process.env.NODE_ENV !== 'production')) { + const existingKeys = new Set(); + for (const key of parser.keys) { + if (existingKeys.has(key.name)) + warn(`Found duplicated params with name "${key.name}" for path "${record.path}". Only the last one will be available on "$route.params".`); + existingKeys.add(key.name); + } + } + const matcher = assign(parser, { + record, + parent, + // these needs to be populated by the parent + children: [], + alias: [], + }); + if (parent) { + // both are aliases or both are not aliases + // we don't want to mix them because the order is used when + // passing originalRecord in Matcher.addRoute + if (!matcher.record.aliasOf === !parent.record.aliasOf) + parent.children.push(matcher); + } + return matcher; +} + +/** + * Creates a Router Matcher. + * + * @internal + * @param routes - array of initial routes + * @param globalOptions - global route options + */ +function createRouterMatcher(routes, globalOptions) { + // normalized ordered array of matchers + const matchers = []; + const matcherMap = new Map(); + globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions); + function getRecordMatcher(name) { + return matcherMap.get(name); + } + function addRoute(record, parent, originalRecord) { + // used later on to remove by name + const isRootAdd = !originalRecord; + const mainNormalizedRecord = normalizeRouteRecord(record); + if ((process.env.NODE_ENV !== 'production')) { + checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent); + } + // we might be the child of an alias + mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record; + const options = mergeOptions(globalOptions, record); + // generate an array of records to correctly handle aliases + const normalizedRecords = [mainNormalizedRecord]; + if ('alias' in record) { + const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias; + for (const alias of aliases) { + normalizedRecords.push( + // we need to normalize again to ensure the `mods` property + // being non enumerable + normalizeRouteRecord(assign({}, mainNormalizedRecord, { + // this allows us to hold a copy of the `components` option + // so that async components cache is hold on the original record + components: originalRecord + ? originalRecord.record.components + : mainNormalizedRecord.components, + path: alias, + // we might be the child of an alias + aliasOf: originalRecord + ? originalRecord.record + : mainNormalizedRecord, + // the aliases are always of the same kind as the original since they + // are defined on the same record + }))); + } + } + let matcher; + let originalMatcher; + for (const normalizedRecord of normalizedRecords) { + const { path } = normalizedRecord; + // Build up the path for nested routes if the child isn't an absolute + // route. Only add the / delimiter if the child path isn't empty and if the + // parent path doesn't have a trailing slash + if (parent && path[0] !== '/') { + const parentPath = parent.record.path; + const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/'; + normalizedRecord.path = + parent.record.path + (path && connectingSlash + path); + } + if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') { + throw new Error('Catch all routes ("*") must now be defined using a param with a custom regexp.\n' + + 'See more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.'); + } + // create the object beforehand, so it can be passed to children + matcher = createRouteRecordMatcher(normalizedRecord, parent, options); + if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/') + checkMissingParamsInAbsolutePath(matcher, parent); + // if we are an alias we must tell the original record that we exist, + // so we can be removed + if (originalRecord) { + originalRecord.alias.push(matcher); + if ((process.env.NODE_ENV !== 'production')) { + checkSameParams(originalRecord, matcher); + } + } + else { + // otherwise, the first record is the original and others are aliases + originalMatcher = originalMatcher || matcher; + if (originalMatcher !== matcher) + originalMatcher.alias.push(matcher); + // remove the route if named and only for the top record (avoid in nested calls) + // this works because the original record is the first one + if (isRootAdd && record.name && !isAliasRecord(matcher)) { + if ((process.env.NODE_ENV !== 'production')) { + checkSameNameAsAncestor(record, parent); + } + removeRoute(record.name); + } + } + // Avoid adding a record that doesn't display anything. This allows passing through records without a component to + // not be reached and pass through the catch all route + if (isMatchable(matcher)) { + insertMatcher(matcher); + } + if (mainNormalizedRecord.children) { + const children = mainNormalizedRecord.children; + for (let i = 0; i < children.length; i++) { + addRoute(children[i], matcher, originalRecord && originalRecord.children[i]); + } + } + // if there was no original record, then the first one was not an alias and all + // other aliases (if any) need to reference this record when adding children + originalRecord = originalRecord || matcher; + // TODO: add normalized records for more flexibility + // if (parent && isAliasRecord(originalRecord)) { + // parent.children.push(originalRecord) + // } + } + return originalMatcher + ? () => { + // since other matchers are aliases, they should be removed by the original matcher + removeRoute(originalMatcher); + } + : noop; + } + function removeRoute(matcherRef) { + if (isRouteName(matcherRef)) { + const matcher = matcherMap.get(matcherRef); + if (matcher) { + matcherMap.delete(matcherRef); + matchers.splice(matchers.indexOf(matcher), 1); + matcher.children.forEach(removeRoute); + matcher.alias.forEach(removeRoute); + } + } + else { + const index = matchers.indexOf(matcherRef); + if (index > -1) { + matchers.splice(index, 1); + if (matcherRef.record.name) + matcherMap.delete(matcherRef.record.name); + matcherRef.children.forEach(removeRoute); + matcherRef.alias.forEach(removeRoute); + } + } + } + function getRoutes() { + return matchers; + } + function insertMatcher(matcher) { + const index = findInsertionIndex(matcher, matchers); + matchers.splice(index, 0, matcher); + // only add the original record to the name map + if (matcher.record.name && !isAliasRecord(matcher)) + matcherMap.set(matcher.record.name, matcher); + } + function resolve(location, currentLocation) { + let matcher; + let params = {}; + let path; + let name; + if ('name' in location && location.name) { + matcher = matcherMap.get(location.name); + if (!matcher) + throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, { + location, + }); + // warn if the user is passing invalid params so they can debug it better when they get removed + if ((process.env.NODE_ENV !== 'production')) { + const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName)); + if (invalidParams.length) { + warn(`Discarded invalid param(s) "${invalidParams.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`); + } + } + name = matcher.record.name; + params = assign( + // paramsFromLocation is a new object + paramsFromLocation(currentLocation.params, + // only keep params that exist in the resolved location + // only keep optional params coming from a parent record + matcher.keys + .filter(k => !k.optional) + .concat(matcher.parent ? matcher.parent.keys.filter(k => k.optional) : []) + .map(k => k.name)), + // discard any existing params in the current location that do not exist here + // #1497 this ensures better active/exact matching + location.params && + paramsFromLocation(location.params, matcher.keys.map(k => k.name))); + // throws if cannot be stringified + path = matcher.stringify(params); + } + else if (location.path != null) { + // no need to resolve the path with the matcher as it was provided + // this also allows the user to control the encoding + path = location.path; + if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) { + warn(`The Matcher cannot resolve relative paths but received "${path}". Unless you directly called \`matcher.resolve("${path}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`); + } + matcher = matchers.find(m => m.re.test(path)); + // matcher should have a value after the loop + if (matcher) { + // we know the matcher works because we tested the regexp + params = matcher.parse(path); + name = matcher.record.name; + } + // location is a relative path + } + else { + // match by name or path of current route + matcher = currentLocation.name + ? matcherMap.get(currentLocation.name) + : matchers.find(m => m.re.test(currentLocation.path)); + if (!matcher) + throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, { + location, + currentLocation, + }); + name = matcher.record.name; + // since we are navigating to the same location, we don't need to pick the + // params like when `name` is provided + params = assign({}, currentLocation.params, location.params); + path = matcher.stringify(params); + } + const matched = []; + let parentMatcher = matcher; + while (parentMatcher) { + // reversed order so parents are at the beginning + matched.unshift(parentMatcher.record); + parentMatcher = parentMatcher.parent; + } + return { + name, + path, + params, + matched, + meta: mergeMetaFields(matched), + }; + } + // add initial routes + routes.forEach(route => addRoute(route)); + function clearRoutes() { + matchers.length = 0; + matcherMap.clear(); + } + return { + addRoute, + resolve, + removeRoute, + clearRoutes, + getRoutes, + getRecordMatcher, + }; +} +function paramsFromLocation(params, keys) { + const newParams = {}; + for (const key of keys) { + if (key in params) + newParams[key] = params[key]; + } + return newParams; +} +/** + * Normalizes a RouteRecordRaw. Creates a copy + * + * @param record + * @returns the normalized version + */ +function normalizeRouteRecord(record) { + const normalized = { + path: record.path, + redirect: record.redirect, + name: record.name, + meta: record.meta || {}, + aliasOf: record.aliasOf, + beforeEnter: record.beforeEnter, + props: normalizeRecordProps(record), + children: record.children || [], + instances: {}, + leaveGuards: new Set(), + updateGuards: new Set(), + enterCallbacks: {}, + // must be declared afterwards + // mods: {}, + components: 'components' in record + ? record.components || null + : record.component && { default: record.component }, + }; + // mods contain modules and shouldn't be copied, + // logged or anything. It's just used for internal + // advanced use cases like data loaders + Object.defineProperty(normalized, 'mods', { + value: {}, + }); + return normalized; +} +/** + * Normalize the optional `props` in a record to always be an object similar to + * components. Also accept a boolean for components. + * @param record + */ +function normalizeRecordProps(record) { + const propsObject = {}; + // props does not exist on redirect records, but we can set false directly + const props = record.props || false; + if ('component' in record) { + propsObject.default = props; + } + else { + // NOTE: we could also allow a function to be applied to every component. + // Would need user feedback for use cases + for (const name in record.components) + propsObject[name] = typeof props === 'object' ? props[name] : props; + } + return propsObject; +} +/** + * Checks if a record or any of its parent is an alias + * @param record + */ +function isAliasRecord(record) { + while (record) { + if (record.record.aliasOf) + return true; + record = record.parent; + } + return false; +} +/** + * Merge meta fields of an array of records + * + * @param matched - array of matched records + */ +function mergeMetaFields(matched) { + return matched.reduce((meta, record) => assign(meta, record.meta), {}); +} +function mergeOptions(defaults, partialOptions) { + const options = {}; + for (const key in defaults) { + options[key] = key in partialOptions ? partialOptions[key] : defaults[key]; + } + return options; +} +function isSameParam(a, b) { + return (a.name === b.name && + a.optional === b.optional && + a.repeatable === b.repeatable); +} +/** + * Check if a path and its alias have the same required params + * + * @param a - original record + * @param b - alias record + */ +function checkSameParams(a, b) { + for (const key of a.keys) { + if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } + for (const key of b.keys) { + if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) + return warn(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + } +} +/** + * A route with a name and a child with an empty path without a name should warn when adding the route + * + * @param mainNormalizedRecord - RouteRecordNormalized + * @param parent - RouteRecordMatcher + */ +function checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) { + if (parent && + parent.record.name && + !mainNormalizedRecord.name && + !mainNormalizedRecord.path) { + warn(`The route named "${String(parent.record.name)}" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`); + } +} +function checkSameNameAsAncestor(record, parent) { + for (let ancestor = parent; ancestor; ancestor = ancestor.parent) { + if (ancestor.record.name === record.name) { + throw new Error(`A route named "${String(record.name)}" has been added as a ${parent === ancestor ? 'child' : 'descendant'} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`); + } + } +} +function checkMissingParamsInAbsolutePath(record, parent) { + for (const key of parent.keys) { + if (!record.keys.find(isSameParam.bind(null, key))) + return warn(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`); + } +} +/** + * Performs a binary search to find the correct insertion index for a new matcher. + * + * Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships, + * with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes. + * + * @param matcher - new matcher to be inserted + * @param matchers - existing matchers + */ +function findInsertionIndex(matcher, matchers) { + // First phase: binary search based on score + let lower = 0; + let upper = matchers.length; + while (lower !== upper) { + const mid = (lower + upper) >> 1; + const sortOrder = comparePathParserScore(matcher, matchers[mid]); + if (sortOrder < 0) { + upper = mid; + } + else { + lower = mid + 1; + } + } + // Second phase: check for an ancestor with the same score + const insertionAncestor = getInsertionAncestor(matcher); + if (insertionAncestor) { + upper = matchers.lastIndexOf(insertionAncestor, upper - 1); + if ((process.env.NODE_ENV !== 'production') && upper < 0) { + // This should never happen + warn(`Finding ancestor route "${insertionAncestor.record.path}" failed for "${matcher.record.path}"`); + } + } + return upper; +} +function getInsertionAncestor(matcher) { + let ancestor = matcher; + while ((ancestor = ancestor.parent)) { + if (isMatchable(ancestor) && + comparePathParserScore(matcher, ancestor) === 0) { + return ancestor; + } + } + return; +} +/** + * Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without + * a component, or name, or redirect, are just used to group other routes. + * @param matcher + * @param matcher.record record of the matcher + * @returns + */ +function isMatchable({ record }) { + return !!(record.name || + (record.components && Object.keys(record.components).length) || + record.redirect); +} + +/** + * Transforms a queryString into a {@link LocationQuery} object. Accept both, a + * version with the leading `?` and without Should work as URLSearchParams + + * @internal + * + * @param search - search string to parse + * @returns a query object + */ +function parseQuery(search) { + const query = {}; + // avoid creating an object with an empty key and empty value + // because of split('&') + if (search === '' || search === '?') + return query; + const hasLeadingIM = search[0] === '?'; + const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&'); + for (let i = 0; i < searchParams.length; ++i) { + // pre decode the + into space + const searchParam = searchParams[i].replace(PLUS_RE, ' '); + // allow the = character + const eqPos = searchParam.indexOf('='); + const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos)); + const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1)); + if (key in query) { + // an extra variable for ts types + let currentValue = query[key]; + if (!isArray(currentValue)) { + currentValue = query[key] = [currentValue]; + } + currentValue.push(value); + } + else { + query[key] = value; + } + } + return query; +} +/** + * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it + * doesn't prepend a `?` + * + * @internal + * + * @param query - query object to stringify + * @returns string version of the query without the leading `?` + */ +function stringifyQuery(query) { + let search = ''; + for (let key in query) { + const value = query[key]; + key = encodeQueryKey(key); + if (value == null) { + // only null adds the value + if (value !== undefined) { + search += (search.length ? '&' : '') + key; + } + continue; + } + // keep null values + const values = isArray(value) + ? value.map(v => v && encodeQueryValue(v)) + : [value && encodeQueryValue(value)]; + values.forEach(value => { + // skip undefined values in arrays as if they were not present + // smaller code than using filter + if (value !== undefined) { + // only append & with non-empty search + search += (search.length ? '&' : '') + key; + if (value != null) + search += '=' + value; + } + }); + } + return search; +} +/** + * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting + * numbers into strings, removing keys with an undefined value and replacing + * undefined with null in arrays + * + * @param query - query object to normalize + * @returns a normalized query object + */ +function normalizeQuery(query) { + const normalizedQuery = {}; + for (const key in query) { + const value = query[key]; + if (value !== undefined) { + normalizedQuery[key] = isArray(value) + ? value.map(v => (v == null ? null : '' + v)) + : value == null + ? value + : '' + value; + } + } + return normalizedQuery; +} + +/** + * RouteRecord being rendered by the closest ancestor Router View. Used for + * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View + * Location Matched + * + * @internal + */ +const matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : ''); +/** + * Allows overriding the router view depth to control which component in + * `matched` is rendered. rvd stands for Router View Depth + * + * @internal + */ +const viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : ''); +/** + * Allows overriding the router instance returned by `useRouter` in tests. r + * stands for router + * + * @internal + */ +const routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : ''); +/** + * Allows overriding the current route returned by `useRoute` in tests. rl + * stands for route location + * + * @internal + */ +const routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : ''); +/** + * Allows overriding the current route used by router-view. Internally this is + * used when the `route` prop is passed. + * + * @internal + */ +const routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : ''); + +/** + * Create a list of callbacks that can be reset. Used to create before and after navigation guards list + */ +function useCallbacks() { + let handlers = []; + function add(handler) { + handlers.push(handler); + return () => { + const i = handlers.indexOf(handler); + if (i > -1) + handlers.splice(i, 1); + }; + } + function reset() { + handlers = []; + } + return { + add, + list: () => handlers.slice(), + reset, + }; +} + +function registerGuard(record, name, guard) { + const removeFromList = () => { + record[name].delete(guard); + }; + onUnmounted(removeFromList); + onDeactivated(removeFromList); + onActivated(() => { + record[name].add(guard); + }); + record[name].add(guard); +} +/** + * Add a navigation guard that triggers whenever the component for the current + * location is about to be left. Similar to {@link beforeRouteLeave} but can be + * used in any component. The guard is removed when the component is unmounted. + * + * @param leaveGuard - {@link NavigationGuard} + */ +function onBeforeRouteLeave(leaveGuard) { + if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) { + warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function'); + return; + } + const activeRecord = inject(matchedRouteKey, + // to avoid warning + {}).value; + if (!activeRecord) { + (process.env.NODE_ENV !== 'production') && + warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?'); + return; + } + registerGuard(activeRecord, 'leaveGuards', leaveGuard); +} +/** + * Add a navigation guard that triggers whenever the current location is about + * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any + * component. The guard is removed when the component is unmounted. + * + * @param updateGuard - {@link NavigationGuard} + */ +function onBeforeRouteUpdate(updateGuard) { + if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) { + warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function'); + return; + } + const activeRecord = inject(matchedRouteKey, + // to avoid warning + {}).value; + if (!activeRecord) { + (process.env.NODE_ENV !== 'production') && + warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?'); + return; + } + registerGuard(activeRecord, 'updateGuards', updateGuard); +} +function guardToPromiseFn(guard, to, from, record, name, runWithContext = fn => fn()) { + // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place + const enterCallbackArray = record && + // name is defined if record is because of the function overload + (record.enterCallbacks[name] = record.enterCallbacks[name] || []); + return () => new Promise((resolve, reject) => { + const next = (valid) => { + if (valid === false) { + reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, { + from, + to, + })); + } + else if (valid instanceof Error) { + reject(valid); + } + else if (isRouteLocation(valid)) { + reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, { + from: to, + to: valid, + })); + } + else { + if (enterCallbackArray && + // since enterCallbackArray is truthy, both record and name also are + record.enterCallbacks[name] === enterCallbackArray && + typeof valid === 'function') { + enterCallbackArray.push(valid); + } + resolve(); + } + }; + // wrapping with Promise.resolve allows it to work with both async and sync guards + const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next)); + let guardCall = Promise.resolve(guardReturn); + if (guard.length < 3) + guardCall = guardCall.then(next); + if ((process.env.NODE_ENV !== 'production') && guard.length > 2) { + const message = `The "next" callback was never called inside of ${guard.name ? '"' + guard.name + '"' : ''}:\n${guard.toString()}\n. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; + if (typeof guardReturn === 'object' && 'then' in guardReturn) { + guardCall = guardCall.then(resolvedValue => { + // @ts-expect-error: _called is added at canOnlyBeCalledOnce + if (!next._called) { + warn(message); + return Promise.reject(new Error('Invalid navigation guard')); + } + return resolvedValue; + }); + } + else if (guardReturn !== undefined) { + // @ts-expect-error: _called is added at canOnlyBeCalledOnce + if (!next._called) { + warn(message); + reject(new Error('Invalid navigation guard')); + return; + } + } + } + guardCall.catch(err => reject(err)); + }); +} +function canOnlyBeCalledOnce(next, to, from) { + let called = 0; + return function () { + if (called++ === 1) + warn(`The "next" callback was called more than once in one navigation guard when going from "${from.fullPath}" to "${to.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`); + // @ts-expect-error: we put it in the original one because it's easier to check + next._called = true; + if (called === 1) + next.apply(null, arguments); + }; +} +function extractComponentsGuards(matched, guardType, to, from, runWithContext = fn => fn()) { + const guards = []; + for (const record of matched) { + if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) { + warn(`Record with path "${record.path}" is either missing a "component(s)"` + + ` or "children" property.`); + } + for (const name in record.components) { + let rawComponent = record.components[name]; + if ((process.env.NODE_ENV !== 'production')) { + if (!rawComponent || + (typeof rawComponent !== 'object' && + typeof rawComponent !== 'function')) { + warn(`Component "${name}" in record with path "${record.path}" is not` + + ` a valid component. Received "${String(rawComponent)}".`); + // throw to ensure we stop here but warn to ensure the message isn't + // missed by the user + throw new Error('Invalid route component'); + } + else if ('then' in rawComponent) { + // warn if user wrote import('/component.vue') instead of () => + // import('./component.vue') + warn(`Component "${name}" in record with path "${record.path}" is a ` + + `Promise instead of a function that returns a Promise. Did you ` + + `write "import('./MyPage.vue')" instead of ` + + `"() => import('./MyPage.vue')" ? This will break in ` + + `production if not fixed.`); + const promise = rawComponent; + rawComponent = () => promise; + } + else if (rawComponent.__asyncLoader && + // warn only once per component + !rawComponent.__warnedDefineAsync) { + rawComponent.__warnedDefineAsync = true; + warn(`Component "${name}" in record with path "${record.path}" is defined ` + + `using "defineAsyncComponent()". ` + + `Write "() => import('./MyPage.vue')" instead of ` + + `"defineAsyncComponent(() => import('./MyPage.vue'))".`); + } + } + // skip update and leave guards if the route component is not mounted + if (guardType !== 'beforeRouteEnter' && !record.instances[name]) + continue; + if (isRouteComponent(rawComponent)) { + // __vccOpts is added by vue-class-component and contain the regular options + const options = rawComponent.__vccOpts || rawComponent; + const guard = options[guardType]; + guard && + guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext)); + } + else { + // start requesting the chunk already + let componentPromise = rawComponent(); + if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) { + warn(`Component "${name}" in record with path "${record.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`); + componentPromise = Promise.resolve(componentPromise); + } + guards.push(() => componentPromise.then(resolved => { + if (!resolved) + throw new Error(`Couldn't resolve component "${name}" at "${record.path}"`); + const resolvedComponent = isESModule(resolved) + ? resolved.default + : resolved; + // keep the resolved module for plugins like data loaders + record.mods[name] = resolved; + // replace the function with the resolved component + // cannot be null or undefined because we went into the for loop + record.components[name] = resolvedComponent; + // __vccOpts is added by vue-class-component and contain the regular options + const options = resolvedComponent.__vccOpts || resolvedComponent; + const guard = options[guardType]; + return (guard && + guardToPromiseFn(guard, to, from, record, name, runWithContext)()); + })); + } + } + } + return guards; +} +/** + * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`. + * + * @param route - resolved route to load + */ +function loadRouteLocation(route) { + return route.matched.every(record => record.redirect) + ? Promise.reject(new Error('Cannot load a route that redirects.')) + : Promise.all(route.matched.map(record => record.components && + Promise.all(Object.keys(record.components).reduce((promises, name) => { + const rawComponent = record.components[name]; + if (typeof rawComponent === 'function' && + !('displayName' in rawComponent)) { + promises.push(rawComponent().then(resolved => { + if (!resolved) + return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}". Ensure you passed a function that returns a promise.`)); + const resolvedComponent = isESModule(resolved) + ? resolved.default + : resolved; + // keep the resolved module for plugins like data loaders + record.mods[name] = resolved; + // replace the function with the resolved component + // cannot be null or undefined because we went into the for loop + record.components[name] = resolvedComponent; + return; + })); + } + return promises; + }, [])))).then(() => route); +} + +// TODO: we could allow currentRoute as a prop to expose `isActive` and +// `isExactActive` behavior should go through an RFC +/** + * Returns the internal behavior of a {@link RouterLink} without the rendering part. + * + * @param props - a `to` location and an optional `replace` flag + */ +function useLink(props) { + const router = inject(routerKey); + const currentRoute = inject(routeLocationKey); + let hasPrevious = false; + let previousTo = null; + const route = computed(() => { + const to = unref(props.to); + if ((process.env.NODE_ENV !== 'production') && (!hasPrevious || to !== previousTo)) { + if (!isRouteLocation(to)) { + if (hasPrevious) { + warn(`Invalid value for prop "to" in useLink()\n- to:`, to, `\n- previous to:`, previousTo, `\n- props:`, props); + } + else { + warn(`Invalid value for prop "to" in useLink()\n- to:`, to, `\n- props:`, props); + } + } + previousTo = to; + hasPrevious = true; + } + return router.resolve(to); + }); + const activeRecordIndex = computed(() => { + const { matched } = route.value; + const { length } = matched; + const routeMatched = matched[length - 1]; + const currentMatched = currentRoute.matched; + if (!routeMatched || !currentMatched.length) + return -1; + const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched)); + if (index > -1) + return index; + // possible parent record + const parentRecordPath = getOriginalPath(matched[length - 2]); + return ( + // we are dealing with nested routes + length > 1 && + // if the parent and matched route have the same path, this link is + // referring to the empty child. Or we currently are on a different + // child of the same parent + getOriginalPath(routeMatched) === parentRecordPath && + // avoid comparing the child with its parent + currentMatched[currentMatched.length - 1].path !== parentRecordPath + ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) + : index); + }); + const isActive = computed(() => activeRecordIndex.value > -1 && + includesParams(currentRoute.params, route.value.params)); + const isExactActive = computed(() => activeRecordIndex.value > -1 && + activeRecordIndex.value === currentRoute.matched.length - 1 && + isSameRouteLocationParams(currentRoute.params, route.value.params)); + function navigate(e = {}) { + if (guardEvent(e)) { + const p = router[unref(props.replace) ? 'replace' : 'push'](unref(props.to) + // avoid uncaught errors are they are logged anyway + ).catch(noop); + if (props.viewTransition && + typeof document !== 'undefined' && + 'startViewTransition' in document) { + document.startViewTransition(() => p); + } + return p; + } + return Promise.resolve(); + } + // devtools only + if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) { + const instance = getCurrentInstance(); + if (instance) { + const linkContextDevtools = { + route: route.value, + isActive: isActive.value, + isExactActive: isExactActive.value, + error: null, + }; + // @ts-expect-error: this is internal + instance.__vrl_devtools = instance.__vrl_devtools || []; + // @ts-expect-error: this is internal + instance.__vrl_devtools.push(linkContextDevtools); + watchEffect(() => { + linkContextDevtools.route = route.value; + linkContextDevtools.isActive = isActive.value; + linkContextDevtools.isExactActive = isExactActive.value; + linkContextDevtools.error = isRouteLocation(unref(props.to)) + ? null + : 'Invalid "to" value'; + }, { flush: 'post' }); + } + } + /** + * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this + */ + return { + route, + href: computed(() => route.value.href), + isActive, + isExactActive, + navigate, + }; +} +function preferSingleVNode(vnodes) { + return vnodes.length === 1 ? vnodes[0] : vnodes; +} +const RouterLinkImpl = /*#__PURE__*/ defineComponent({ + name: 'RouterLink', + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object], + required: true, + }, + replace: Boolean, + activeClass: String, + // inactiveClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String, + default: 'page', + }, + }, + useLink, + setup(props, { slots }) { + const link = reactive(useLink(props)); + const { options } = inject(routerKey); + const elClass = computed(() => ({ + [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive, + // [getLinkClass( + // props.inactiveClass, + // options.linkInactiveClass, + // 'router-link-inactive' + // )]: !link.isExactActive, + [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive, + })); + return () => { + const children = slots.default && preferSingleVNode(slots.default(link)); + return props.custom + ? children + : h('a', { + 'aria-current': link.isExactActive + ? props.ariaCurrentValue + : null, + href: link.href, + // this would override user added attrs but Vue will still add + // the listener, so we end up triggering both + onClick: link.navigate, + class: elClass.value, + }, children); + }; + }, +}); +// export the public type for h/tsx inference +// also to avoid inline import() in generated d.ts files +/** + * Component to render a link that triggers a navigation on click. + */ +const RouterLink = RouterLinkImpl; +function guardEvent(e) { + // don't redirect with control keys + if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) + return; + // don't redirect when preventDefault called + if (e.defaultPrevented) + return; + // don't redirect on right click + if (e.button !== undefined && e.button !== 0) + return; + // don't redirect if `target="_blank"` + // @ts-expect-error getAttribute does exist + if (e.currentTarget && e.currentTarget.getAttribute) { + // @ts-expect-error getAttribute exists + const target = e.currentTarget.getAttribute('target'); + if (/\b_blank\b/i.test(target)) + return; + } + // this may be a Weex event which doesn't have this method + if (e.preventDefault) + e.preventDefault(); + return true; +} +function includesParams(outer, inner) { + for (const key in inner) { + const innerValue = inner[key]; + const outerValue = outer[key]; + if (typeof innerValue === 'string') { + if (innerValue !== outerValue) + return false; + } + else { + if (!isArray(outerValue) || + outerValue.length !== innerValue.length || + innerValue.some((value, i) => value !== outerValue[i])) + return false; + } + } + return true; +} +/** + * Get the original path value of a record by following its aliasOf + * @param record + */ +function getOriginalPath(record) { + return record ? (record.aliasOf ? record.aliasOf.path : record.path) : ''; +} +/** + * Utility class to get the active class based on defaults. + * @param propClass + * @param globalClass + * @param defaultClass + */ +const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null + ? propClass + : globalClass != null + ? globalClass + : defaultClass; + +const RouterViewImpl = /*#__PURE__*/ defineComponent({ + name: 'RouterView', + // #674 we manually inherit them + inheritAttrs: false, + props: { + name: { + type: String, + default: 'default', + }, + route: Object, + }, + // Better compat for @vue/compat users + // https://github.com/vuejs/router/issues/1315 + compatConfig: { MODE: 3 }, + setup(props, { attrs, slots }) { + (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage(); + const injectedRoute = inject(routerViewLocationKey); + const routeToDisplay = computed(() => props.route || injectedRoute.value); + const injectedDepth = inject(viewDepthKey, 0); + // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children + // that are used to reuse the `path` property + const depth = computed(() => { + let initialDepth = unref(injectedDepth); + const { matched } = routeToDisplay.value; + let matchedRoute; + while ((matchedRoute = matched[initialDepth]) && + !matchedRoute.components) { + initialDepth++; + } + return initialDepth; + }); + const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]); + provide(viewDepthKey, computed(() => depth.value + 1)); + provide(matchedRouteKey, matchedRouteRef); + provide(routerViewLocationKey, routeToDisplay); + const viewRef = ref(); + // watch at the same time the component instance, the route record we are + // rendering, and the name + watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => { + // copy reused instances + if (to) { + // this will update the instance for new instances as well as reused + // instances when navigating to a new route + to.instances[name] = instance; + // the component instance is reused for a different route or name, so + // we copy any saved update or leave guards. With async setup, the + // mounting component will mount before the matchedRoute changes, + // making instance === oldInstance, so we check if guards have been + // added before. This works because we remove guards when + // unmounting/deactivating components + if (from && from !== to && instance && instance === oldInstance) { + if (!to.leaveGuards.size) { + to.leaveGuards = from.leaveGuards; + } + if (!to.updateGuards.size) { + to.updateGuards = from.updateGuards; + } + } + } + // trigger beforeRouteEnter next callbacks + if (instance && + to && + // if there is no instance but to and from are the same this might be + // the first visit + (!from || !isSameRouteRecord(to, from) || !oldInstance)) { + (to.enterCallbacks[name] || []).forEach(callback => callback(instance)); + } + }, { flush: 'post' }); + return () => { + const route = routeToDisplay.value; + // we need the value at the time we render because when we unmount, we + // navigated to a different location so the value is different + const currentName = props.name; + const matchedRoute = matchedRouteRef.value; + const ViewComponent = matchedRoute && matchedRoute.components[currentName]; + if (!ViewComponent) { + return normalizeSlot(slots.default, { Component: ViewComponent, route }); + } + // props from route configuration + const routePropsOption = matchedRoute.props[currentName]; + const routeProps = routePropsOption + ? routePropsOption === true + ? route.params + : typeof routePropsOption === 'function' + ? routePropsOption(route) + : routePropsOption + : null; + const onVnodeUnmounted = vnode => { + // remove the instance reference to prevent leak + if (vnode.component.isUnmounted) { + matchedRoute.instances[currentName] = null; + } + }; + const component = h(ViewComponent, assign({}, routeProps, attrs, { + onVnodeUnmounted, + ref: viewRef, + })); + if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && + isBrowser && + component.ref) { + // TODO: can display if it's an alias, its props + const info = { + depth: depth.value, + name: matchedRoute.name, + path: matchedRoute.path, + meta: matchedRoute.meta, + }; + const internalInstances = isArray(component.ref) + ? component.ref.map(r => r.i) + : [component.ref.i]; + internalInstances.forEach(instance => { + // @ts-expect-error + instance.__vrv_devtools = info; + }); + } + return ( + // pass the vnode to the slot as a prop. + // h and <component :is="..."> both accept vnodes + normalizeSlot(slots.default, { Component: component, route }) || + component); + }; + }, +}); +function normalizeSlot(slot, data) { + if (!slot) + return null; + const slotContent = slot(data); + return slotContent.length === 1 ? slotContent[0] : slotContent; +} +// export the public type for h/tsx inference +// also to avoid inline import() in generated d.ts files +/** + * Component to display the current route the user is at. + */ +const RouterView = RouterViewImpl; +// warn against deprecated usage with <transition> & <keep-alive> +// due to functional component being no longer eager in Vue 3 +function warnDeprecatedUsage() { + const instance = getCurrentInstance(); + const parentName = instance.parent && instance.parent.type.name; + const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type; + if (parentName && + (parentName === 'KeepAlive' || parentName.includes('Transition')) && + typeof parentSubTreeType === 'object' && + parentSubTreeType.name === 'RouterView') { + const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition'; + warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\n` + + `Use slot props instead:\n\n` + + `<router-view v-slot="{ Component }">\n` + + ` <${comp}>\n` + + ` <component :is="Component" />\n` + + ` </${comp}>\n` + + `</router-view>`); + } +} + +/** + * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances). + * + * @param routeLocation - routeLocation to format + * @param tooltip - optional tooltip + * @returns a copy of the routeLocation + */ +function formatRouteLocation(routeLocation, tooltip) { + const copy = assign({}, routeLocation, { + // remove variables that can contain vue instances + matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])), + }); + return { + _custom: { + type: null, + readOnly: true, + display: routeLocation.fullPath, + tooltip, + value: copy, + }, + }; +} +function formatDisplay(display) { + return { + _custom: { + display, + }, + }; +} +// to support multiple router instances +let routerId = 0; +function addDevtools(app, router, matcher) { + // Take over router.beforeEach and afterEach + // make sure we are not registering the devtool twice + if (router.__hasDevtools) + return; + router.__hasDevtools = true; + // increment to support multiple router instances + const id = routerId++; + setupDevtoolsPlugin({ + id: 'org.vuejs.router' + (id ? '.' + id : ''), + label: 'Vue Router', + packageName: 'vue-router', + homepage: 'https://router.vuejs.org', + logo: 'https://router.vuejs.org/logo.png', + componentStateTypes: ['Routing'], + app, + }, api => { + if (typeof api.now !== 'function') { + console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.'); + } + // display state added by the router + api.on.inspectComponent((payload, ctx) => { + if (payload.instanceData) { + payload.instanceData.state.push({ + type: 'Routing', + key: '$route', + editable: false, + value: formatRouteLocation(router.currentRoute.value, 'Current Route'), + }); + } + }); + // mark router-link as active and display tags on router views + api.on.visitComponentTree(({ treeNode: node, componentInstance }) => { + if (componentInstance.__vrv_devtools) { + const info = componentInstance.__vrv_devtools; + node.tags.push({ + label: (info.name ? `${info.name.toString()}: ` : '') + info.path, + textColor: 0, + tooltip: 'This component is rendered by <router-view>', + backgroundColor: PINK_500, + }); + } + // if multiple useLink are used + if (isArray(componentInstance.__vrl_devtools)) { + componentInstance.__devtoolsApi = api; + componentInstance.__vrl_devtools.forEach(devtoolsData => { + let label = devtoolsData.route.path; + let backgroundColor = ORANGE_400; + let tooltip = ''; + let textColor = 0; + if (devtoolsData.error) { + label = devtoolsData.error; + backgroundColor = RED_100; + textColor = RED_700; + } + else if (devtoolsData.isExactActive) { + backgroundColor = LIME_500; + tooltip = 'This is exactly active'; + } + else if (devtoolsData.isActive) { + backgroundColor = BLUE_600; + tooltip = 'This link is active'; + } + node.tags.push({ + label, + textColor, + tooltip, + backgroundColor, + }); + }); + } + }); + watch(router.currentRoute, () => { + // refresh active state + refreshRoutesView(); + api.notifyComponentUpdate(); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); + const navigationsLayerId = 'router:navigations:' + id; + api.addTimelineLayer({ + id: navigationsLayerId, + label: `Router${id ? ' ' + id : ''} Navigations`, + color: 0x40a8c4, + }); + // const errorsLayerId = 'router:errors' + // api.addTimelineLayer({ + // id: errorsLayerId, + // label: 'Router Errors', + // color: 0xea5455, + // }) + router.onError((error, to) => { + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: 'Error during Navigation', + subtitle: to.fullPath, + logType: 'error', + time: api.now(), + data: { error }, + groupId: to.meta.__navigationId, + }, + }); + }); + // attached to `meta` and used to group events + let navigationId = 0; + router.beforeEach((to, from) => { + const data = { + guard: formatDisplay('beforeEach'), + from: formatRouteLocation(from, 'Current Location during this navigation'), + to: formatRouteLocation(to, 'Target location'), + }; + // Used to group navigations together, hide from devtools + Object.defineProperty(to.meta, '__navigationId', { + value: navigationId++, + }); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + time: api.now(), + title: 'Start of navigation', + subtitle: to.fullPath, + data, + groupId: to.meta.__navigationId, + }, + }); + }); + router.afterEach((to, from, failure) => { + const data = { + guard: formatDisplay('afterEach'), + }; + if (failure) { + data.failure = { + _custom: { + type: Error, + readOnly: true, + display: failure ? failure.message : '', + tooltip: 'Navigation Failure', + value: failure, + }, + }; + data.status = formatDisplay('❌'); + } + else { + data.status = formatDisplay('✅'); + } + // we set here to have the right order + data.from = formatRouteLocation(from, 'Current Location during this navigation'); + data.to = formatRouteLocation(to, 'Target location'); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: 'End of navigation', + subtitle: to.fullPath, + time: api.now(), + data, + logType: failure ? 'warning' : 'default', + groupId: to.meta.__navigationId, + }, + }); + }); + /** + * Inspector of Existing routes + */ + const routerInspectorId = 'router-inspector:' + id; + api.addInspector({ + id: routerInspectorId, + label: 'Routes' + (id ? ' ' + id : ''), + icon: 'book', + treeFilterPlaceholder: 'Search routes', + }); + function refreshRoutesView() { + // the routes view isn't active + if (!activeRoutesPayload) + return; + const payload = activeRoutesPayload; + // children routes will appear as nested + let routes = matcher.getRoutes().filter(route => !route.parent || + // these routes have a parent with no component which will not appear in the view + // therefore we still need to include them + !route.parent.record.components); + // reset match state to false + routes.forEach(resetMatchStateOnRouteRecord); + // apply a match state if there is a payload + if (payload.filter) { + routes = routes.filter(route => + // save matches state based on the payload + isRouteMatching(route, payload.filter.toLowerCase())); + } + // mark active routes + routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value)); + payload.rootNodes = routes.map(formatRouteRecordForInspector); + } + let activeRoutesPayload; + api.on.getInspectorTree(payload => { + activeRoutesPayload = payload; + if (payload.app === app && payload.inspectorId === routerInspectorId) { + refreshRoutesView(); + } + }); + /** + * Display information about the currently selected route record + */ + api.on.getInspectorState(payload => { + if (payload.app === app && payload.inspectorId === routerInspectorId) { + const routes = matcher.getRoutes(); + const route = routes.find(route => route.record.__vd_id === payload.nodeId); + if (route) { + payload.state = { + options: formatRouteRecordMatcherForStateInspector(route), + }; + } + } + }); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); +} +function modifierForKey(key) { + if (key.optional) { + return key.repeatable ? '*' : '?'; + } + else { + return key.repeatable ? '+' : ''; + } +} +function formatRouteRecordMatcherForStateInspector(route) { + const { record } = route; + const fields = [ + { editable: false, key: 'path', value: record.path }, + ]; + if (record.name != null) { + fields.push({ + editable: false, + key: 'name', + value: record.name, + }); + } + fields.push({ editable: false, key: 'regexp', value: route.re }); + if (route.keys.length) { + fields.push({ + editable: false, + key: 'keys', + value: { + _custom: { + type: null, + readOnly: true, + display: route.keys + .map(key => `${key.name}${modifierForKey(key)}`) + .join(' '), + tooltip: 'Param keys', + value: route.keys, + }, + }, + }); + } + if (record.redirect != null) { + fields.push({ + editable: false, + key: 'redirect', + value: record.redirect, + }); + } + if (route.alias.length) { + fields.push({ + editable: false, + key: 'aliases', + value: route.alias.map(alias => alias.record.path), + }); + } + if (Object.keys(route.record.meta).length) { + fields.push({ + editable: false, + key: 'meta', + value: route.record.meta, + }); + } + fields.push({ + key: 'score', + editable: false, + value: { + _custom: { + type: null, + readOnly: true, + display: route.score.map(score => score.join(', ')).join(' | '), + tooltip: 'Score used to sort routes', + value: route.score, + }, + }, + }); + return fields; +} +/** + * Extracted from tailwind palette + */ +const PINK_500 = 0xec4899; +const BLUE_600 = 0x2563eb; +const LIME_500 = 0x84cc16; +const CYAN_400 = 0x22d3ee; +const ORANGE_400 = 0xfb923c; +// const GRAY_100 = 0xf4f4f5 +const DARK = 0x666666; +const RED_100 = 0xfee2e2; +const RED_700 = 0xb91c1c; +function formatRouteRecordForInspector(route) { + const tags = []; + const { record } = route; + if (record.name != null) { + tags.push({ + label: String(record.name), + textColor: 0, + backgroundColor: CYAN_400, + }); + } + if (record.aliasOf) { + tags.push({ + label: 'alias', + textColor: 0, + backgroundColor: ORANGE_400, + }); + } + if (route.__vd_match) { + tags.push({ + label: 'matches', + textColor: 0, + backgroundColor: PINK_500, + }); + } + if (route.__vd_exactActive) { + tags.push({ + label: 'exact', + textColor: 0, + backgroundColor: LIME_500, + }); + } + if (route.__vd_active) { + tags.push({ + label: 'active', + textColor: 0, + backgroundColor: BLUE_600, + }); + } + if (record.redirect) { + tags.push({ + label: typeof record.redirect === 'string' + ? `redirect: ${record.redirect}` + : 'redirects', + textColor: 0xffffff, + backgroundColor: DARK, + }); + } + // add an id to be able to select it. Using the `path` is not possible because + // empty path children would collide with their parents + let id = record.__vd_id; + if (id == null) { + id = String(routeRecordId++); + record.__vd_id = id; + } + return { + id, + label: record.path, + tags, + children: route.children.map(formatRouteRecordForInspector), + }; +} +// incremental id for route records and inspector state +let routeRecordId = 0; +const EXTRACT_REGEXP_RE = /^\/(.*)\/([a-z]*)$/; +function markRouteRecordActive(route, currentRoute) { + // no route will be active if matched is empty + // reset the matching state + const isExactActive = currentRoute.matched.length && + isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record); + route.__vd_exactActive = route.__vd_active = isExactActive; + if (!isExactActive) { + route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record)); + } + route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute)); +} +function resetMatchStateOnRouteRecord(route) { + route.__vd_match = false; + route.children.forEach(resetMatchStateOnRouteRecord); +} +function isRouteMatching(route, filter) { + const found = String(route.re).match(EXTRACT_REGEXP_RE); + route.__vd_match = false; + if (!found || found.length < 3) { + return false; + } + // use a regexp without $ at the end to match nested routes better + const nonEndingRE = new RegExp(found[1].replace(/\$$/, ''), found[2]); + if (nonEndingRE.test(filter)) { + // mark children as matches + route.children.forEach(child => isRouteMatching(child, filter)); + // exception case: `/` + if (route.record.path !== '/' || filter === '/') { + route.__vd_match = route.re.test(filter); + return true; + } + // hide the / route + return false; + } + const path = route.record.path.toLowerCase(); + const decodedPath = decode(path); + // also allow partial matching on the path + if (!filter.startsWith('/') && + (decodedPath.includes(filter) || path.includes(filter))) + return true; + if (decodedPath.startsWith(filter) || path.startsWith(filter)) + return true; + if (route.record.name && String(route.record.name).includes(filter)) + return true; + return route.children.some(child => isRouteMatching(child, filter)); +} +function omit(obj, keys) { + const ret = {}; + for (const key in obj) { + if (!keys.includes(key)) { + // @ts-expect-error + ret[key] = obj[key]; + } + } + return ret; +} + +/** + * Creates a Router instance that can be used by a Vue app. + * + * @param options - {@link RouterOptions} + */ +function createRouter(options) { + const matcher = createRouterMatcher(options.routes, options); + const parseQuery$1 = options.parseQuery || parseQuery; + const stringifyQuery$1 = options.stringifyQuery || stringifyQuery; + const routerHistory = options.history; + if ((process.env.NODE_ENV !== 'production') && !routerHistory) + throw new Error('Provide the "history" option when calling "createRouter()":' + + ' https://router.vuejs.org/api/interfaces/RouterOptions.html#history'); + const beforeGuards = useCallbacks(); + const beforeResolveGuards = useCallbacks(); + const afterGuards = useCallbacks(); + const currentRoute = shallowRef(START_LOCATION_NORMALIZED); + let pendingLocation = START_LOCATION_NORMALIZED; + // leave the scrollRestoration if no scrollBehavior is provided + if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) { + history.scrollRestoration = 'manual'; + } + const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue); + const encodeParams = applyToParams.bind(null, encodeParam); + const decodeParams = + // @ts-expect-error: intentionally avoid the type check + applyToParams.bind(null, decode); + function addRoute(parentOrRoute, route) { + let parent; + let record; + if (isRouteName(parentOrRoute)) { + parent = matcher.getRecordMatcher(parentOrRoute); + if ((process.env.NODE_ENV !== 'production') && !parent) { + warn(`Parent route "${String(parentOrRoute)}" not found when adding child route`, route); + } + record = route; + } + else { + record = parentOrRoute; + } + return matcher.addRoute(record, parent); + } + function removeRoute(name) { + const recordMatcher = matcher.getRecordMatcher(name); + if (recordMatcher) { + matcher.removeRoute(recordMatcher); + } + else if ((process.env.NODE_ENV !== 'production')) { + warn(`Cannot remove non-existent route "${String(name)}"`); + } + } + function getRoutes() { + return matcher.getRoutes().map(routeMatcher => routeMatcher.record); + } + function hasRoute(name) { + return !!matcher.getRecordMatcher(name); + } + function resolve(rawLocation, currentLocation) { + // const resolve: Router['resolve'] = (rawLocation: RouteLocationRaw, currentLocation) => { + // const objectLocation = routerLocationAsObject(rawLocation) + // we create a copy to modify it later + currentLocation = assign({}, currentLocation || currentRoute.value); + if (typeof rawLocation === 'string') { + const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path); + const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation); + const href = routerHistory.createHref(locationNormalized.fullPath); + if ((process.env.NODE_ENV !== 'production')) { + if (href.startsWith('//')) + warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + else if (!matchedRoute.matched.length) { + warn(`No match found for location with path "${rawLocation}"`); + } + } + // locationNormalized is always a new object + return assign(locationNormalized, matchedRoute, { + params: decodeParams(matchedRoute.params), + hash: decode(locationNormalized.hash), + redirectedFrom: undefined, + href, + }); + } + if ((process.env.NODE_ENV !== 'production') && !isRouteLocation(rawLocation)) { + warn(`router.resolve() was passed an invalid location. This will fail in production.\n- Location:`, rawLocation); + return resolve({}); + } + let matcherLocation; + // path could be relative in object as well + if (rawLocation.path != null) { + if ((process.env.NODE_ENV !== 'production') && + 'params' in rawLocation && + !('name' in rawLocation) && + // @ts-expect-error: the type is never + Object.keys(rawLocation.params).length) { + warn(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`); + } + matcherLocation = assign({}, rawLocation, { + path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path, + }); + } + else { + // remove any nullish param + const targetParams = assign({}, rawLocation.params); + for (const key in targetParams) { + if (targetParams[key] == null) { + delete targetParams[key]; + } + } + // pass encoded values to the matcher, so it can produce encoded path and fullPath + matcherLocation = assign({}, rawLocation, { + params: encodeParams(targetParams), + }); + // current location params are decoded, we need to encode them in case the + // matcher merges the params + currentLocation.params = encodeParams(currentLocation.params); + } + const matchedRoute = matcher.resolve(matcherLocation, currentLocation); + const hash = rawLocation.hash || ''; + if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) { + warn(`A \`hash\` should always start with the character "#". Replace "${hash}" with "#${hash}".`); + } + // the matcher might have merged current location params, so + // we need to run the decoding again + matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params)); + const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, { + hash: encodeHash(hash), + path: matchedRoute.path, + })); + const href = routerHistory.createHref(fullPath); + if ((process.env.NODE_ENV !== 'production')) { + if (href.startsWith('//')) { + warn(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + } + else if (!matchedRoute.matched.length) { + warn(`No match found for location with path "${rawLocation.path != null ? rawLocation.path : rawLocation}"`); + } + } + return assign({ + fullPath, + // keep the hash encoded so fullPath is effectively path + encodedQuery + + // hash + hash, + query: + // if the user is using a custom query lib like qs, we might have + // nested objects, so we keep the query as is, meaning it can contain + // numbers at `$route.query`, but at the point, the user will have to + // use their own type anyway. + // https://github.com/vuejs/router/issues/328#issuecomment-649481567 + stringifyQuery$1 === stringifyQuery + ? normalizeQuery(rawLocation.query) + : (rawLocation.query || {}), + }, matchedRoute, { + redirectedFrom: undefined, + href, + }); + } + function locationAsObject(to) { + return typeof to === 'string' + ? parseURL(parseQuery$1, to, currentRoute.value.path) + : assign({}, to); + } + function checkCanceledNavigation(to, from) { + if (pendingLocation !== to) { + return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, { + from, + to, + }); + } + } + function push(to) { + return pushWithRedirect(to); + } + function replace(to) { + return push(assign(locationAsObject(to), { replace: true })); + } + function handleRedirectRecord(to) { + const lastMatched = to.matched[to.matched.length - 1]; + if (lastMatched && lastMatched.redirect) { + const { redirect } = lastMatched; + let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect; + if (typeof newTargetLocation === 'string') { + newTargetLocation = + newTargetLocation.includes('?') || newTargetLocation.includes('#') + ? (newTargetLocation = locationAsObject(newTargetLocation)) + : // force empty params + { path: newTargetLocation }; + // @ts-expect-error: force empty params when a string is passed to let + // the router parse them again + newTargetLocation.params = {}; + } + if ((process.env.NODE_ENV !== 'production') && + newTargetLocation.path == null && + !('name' in newTargetLocation)) { + warn(`Invalid redirect found:\n${JSON.stringify(newTargetLocation, null, 2)}\n when navigating to "${to.fullPath}". A redirect must contain a name or path. This will break in production.`); + throw new Error('Invalid redirect'); + } + return assign({ + query: to.query, + hash: to.hash, + // avoid transferring params if the redirect has a path + params: newTargetLocation.path != null ? {} : to.params, + }, newTargetLocation); + } + } + function pushWithRedirect(to, redirectedFrom) { + const targetLocation = (pendingLocation = resolve(to)); + const from = currentRoute.value; + const data = to.state; + const force = to.force; + // to could be a string where `replace` is a function + const replace = to.replace === true; + const shouldRedirect = handleRedirectRecord(targetLocation); + if (shouldRedirect) + return pushWithRedirect(assign(locationAsObject(shouldRedirect), { + state: typeof shouldRedirect === 'object' + ? assign({}, data, shouldRedirect.state) + : data, + force, + replace, + }), + // keep original redirectedFrom if it exists + redirectedFrom || targetLocation); + // if it was a redirect we already called `pushWithRedirect` above + const toLocation = targetLocation; + toLocation.redirectedFrom = redirectedFrom; + let failure; + if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) { + failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from }); + // trigger scroll to allow scrolling to the same anchor + handleScroll(from, from, + // this is a push, the only way for it to be triggered from a + // history.listen is with a redirect, which makes it become a push + true, + // This cannot be the first navigation because the initial location + // cannot be manually navigated to + false); + } + return (failure ? Promise.resolve(failure) : navigate(toLocation, from)) + .catch((error) => isNavigationFailure(error) + ? // navigation redirects still mark the router as ready + isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */) + ? error + : markAsReady(error) // also returns the error + : // reject any unknown error + triggerError(error, toLocation, from)) + .then((failure) => { + if (failure) { + if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) { + if ((process.env.NODE_ENV !== 'production') && + // we are redirecting to the same location we were already at + isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && + // and we have done it a couple of times + redirectedFrom && + // @ts-expect-error: added only in dev + (redirectedFrom._count = redirectedFrom._count + ? // @ts-expect-error + redirectedFrom._count + 1 + : 1) > 30) { + warn(`Detected a possibly infinite redirection in a navigation guard when going from "${from.fullPath}" to "${toLocation.fullPath}". Aborting to avoid a Stack Overflow.\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`); + return Promise.reject(new Error('Infinite redirect in navigation guard')); + } + return pushWithRedirect( + // keep options + assign({ + // preserve an existing replacement but allow the redirect to override it + replace, + }, locationAsObject(failure.to), { + state: typeof failure.to === 'object' + ? assign({}, data, failure.to.state) + : data, + force, + }), + // preserve the original redirectedFrom if any + redirectedFrom || toLocation); + } + } + else { + // if we fail we don't finalize the navigation + failure = finalizeNavigation(toLocation, from, true, replace, data); + } + triggerAfterEach(toLocation, from, failure); + return failure; + }); + } + /** + * Helper to reject and skip all navigation guards if a new navigation happened + * @param to + * @param from + */ + function checkCanceledNavigationAndReject(to, from) { + const error = checkCanceledNavigation(to, from); + return error ? Promise.reject(error) : Promise.resolve(); + } + function runWithContext(fn) { + const app = installedApps.values().next().value; + // support Vue < 3.3 + return app && typeof app.runWithContext === 'function' + ? app.runWithContext(fn) + : fn(); + } + // TODO: refactor the whole before guards by internally using router.beforeEach + function navigate(to, from) { + let guards; + const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from); + // all components here have been resolved once because we are leaving + guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from); + // leavingRecords is already reversed + for (const record of leavingRecords) { + record.leaveGuards.forEach(guard => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from); + guards.push(canceledNavigationCheck); + // run the queue of per route beforeRouteLeave guards + return (runGuardQueue(guards) + .then(() => { + // check global guards beforeEach + guards = []; + for (const guard of beforeGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }) + .then(() => { + // check in components beforeRouteUpdate + guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from); + for (const record of updatingRecords) { + record.updateGuards.forEach(guard => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + } + guards.push(canceledNavigationCheck); + // run the queue of per route beforeEnter guards + return runGuardQueue(guards); + }) + .then(() => { + // check the route beforeEnter + guards = []; + for (const record of enteringRecords) { + // do not trigger beforeEnter on reused views + if (record.beforeEnter) { + if (isArray(record.beforeEnter)) { + for (const beforeEnter of record.beforeEnter) + guards.push(guardToPromiseFn(beforeEnter, to, from)); + } + else { + guards.push(guardToPromiseFn(record.beforeEnter, to, from)); + } + } + } + guards.push(canceledNavigationCheck); + // run the queue of per route beforeEnter guards + return runGuardQueue(guards); + }) + .then(() => { + // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component> + // clear existing enterCallbacks, these are added by extractComponentsGuards + to.matched.forEach(record => (record.enterCallbacks = {})); + // check in-component beforeRouteEnter + guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from, runWithContext); + guards.push(canceledNavigationCheck); + // run the queue of per route beforeEnter guards + return runGuardQueue(guards); + }) + .then(() => { + // check global guards beforeResolve + guards = []; + for (const guard of beforeResolveGuards.list()) { + guards.push(guardToPromiseFn(guard, to, from)); + } + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }) + // catch any navigation canceled + .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */) + ? err + : Promise.reject(err))); + } + function triggerAfterEach(to, from, failure) { + // navigation is confirmed, call afterGuards + // TODO: wrap with error handlers + afterGuards + .list() + .forEach(guard => runWithContext(() => guard(to, from, failure))); + } + /** + * - Cleans up any navigation guards + * - Changes the url if necessary + * - Calls the scrollBehavior + */ + function finalizeNavigation(toLocation, from, isPush, replace, data) { + // a more recent navigation took place + const error = checkCanceledNavigation(toLocation, from); + if (error) + return error; + // only consider as push if it's not the first navigation + const isFirstNavigation = from === START_LOCATION_NORMALIZED; + const state = !isBrowser ? {} : history.state; + // change URL only if the user did a push/replace and if it's not the initial navigation because + // it's just reflecting the url + if (isPush) { + // on the initial navigation, we want to reuse the scroll position from + // history state if it exists + if (replace || isFirstNavigation) + routerHistory.replace(toLocation.fullPath, assign({ + scroll: isFirstNavigation && state && state.scroll, + }, data)); + else + routerHistory.push(toLocation.fullPath, data); + } + // accept current navigation + currentRoute.value = toLocation; + handleScroll(toLocation, from, isPush, isFirstNavigation); + markAsReady(); + } + let removeHistoryListener; + // attach listener to history to trigger navigations + function setupListeners() { + // avoid setting up listeners twice due to an invalid first navigation + if (removeHistoryListener) + return; + removeHistoryListener = routerHistory.listen((to, _from, info) => { + if (!router.listening) + return; + // cannot be a redirect route because it was in history + const toLocation = resolve(to); + // due to dynamic routing, and to hash history with manual navigation + // (manually changing the url or calling history.hash = '#/somewhere'), + // there could be a redirect record in history + const shouldRedirect = handleRedirectRecord(toLocation); + if (shouldRedirect) { + pushWithRedirect(assign(shouldRedirect, { replace: true, force: true }), toLocation).catch(noop); + return; + } + pendingLocation = toLocation; + const from = currentRoute.value; + // TODO: should be moved to web history? + if (isBrowser) { + saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition()); + } + navigate(toLocation, from) + .catch((error) => { + if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) { + return error; + } + if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) { + // Here we could call if (info.delta) routerHistory.go(-info.delta, + // false) but this is bug prone as we have no way to wait the + // navigation to be finished before calling pushWithRedirect. Using + // a setTimeout of 16ms seems to work but there is no guarantee for + // it to work on every browser. So instead we do not restore the + // history entry and trigger a new navigation as requested by the + // navigation guard. + // the error is already handled by router.push we just want to avoid + // logging the error + pushWithRedirect(assign(locationAsObject(error.to), { + force: true, + }), toLocation + // avoid an uncaught rejection, let push call triggerError + ) + .then(failure => { + // manual change in hash history #916 ending up in the URL not + // changing, but it was changed by the manual url change, so we + // need to manually change it ourselves + if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | + 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) && + !info.delta && + info.type === NavigationType.pop) { + routerHistory.go(-1, false); + } + }) + .catch(noop); + // avoid the then branch + return Promise.reject(); + } + // do not restore history on unknown direction + if (info.delta) { + routerHistory.go(-info.delta, false); + } + // unrecognized error, transfer to the global handler + return triggerError(error, toLocation, from); + }) + .then((failure) => { + failure = + failure || + finalizeNavigation( + // after navigation, all matched components are resolved + toLocation, from, false); + // revert the navigation + if (failure) { + if (info.delta && + // a new navigation has been triggered, so we do not want to revert, that will change the current history + // entry while a different route is displayed + !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) { + routerHistory.go(-info.delta, false); + } + else if (info.type === NavigationType.pop && + isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) { + // manual change in hash history #916 + // it's like a push but lacks the information of the direction + routerHistory.go(-1, false); + } + } + triggerAfterEach(toLocation, from, failure); + }) + // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors + .catch(noop); + }); + } + // Initialization and Errors + let readyHandlers = useCallbacks(); + let errorListeners = useCallbacks(); + let ready; + /** + * Trigger errorListeners added via onError and throws the error as well + * + * @param error - error to throw + * @param to - location we were navigating to when the error happened + * @param from - location we were navigating from when the error happened + * @returns the error as a rejected promise + */ + function triggerError(error, to, from) { + markAsReady(error); + const list = errorListeners.list(); + if (list.length) { + list.forEach(handler => handler(error, to, from)); + } + else { + if ((process.env.NODE_ENV !== 'production')) { + warn('uncaught error during route navigation:'); + } + console.error(error); + } + // reject the error no matter there were error listeners or not + return Promise.reject(error); + } + function isReady() { + if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) + return Promise.resolve(); + return new Promise((resolve, reject) => { + readyHandlers.add([resolve, reject]); + }); + } + function markAsReady(err) { + if (!ready) { + // still not ready if an error happened + ready = !err; + setupListeners(); + readyHandlers + .list() + .forEach(([resolve, reject]) => (err ? reject(err) : resolve())); + readyHandlers.reset(); + } + return err; + } + // Scroll behavior + function handleScroll(to, from, isPush, isFirstNavigation) { + const { scrollBehavior } = options; + if (!isBrowser || !scrollBehavior) + return Promise.resolve(); + const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) || + ((isFirstNavigation || !isPush) && + history.state && + history.state.scroll) || + null; + return nextTick() + .then(() => scrollBehavior(to, from, scrollPosition)) + .then(position => position && scrollToPosition(position)) + .catch(err => triggerError(err, to, from)); + } + const go = (delta) => routerHistory.go(delta); + let started; + const installedApps = new Set(); + const router = { + currentRoute, + listening: true, + addRoute, + removeRoute, + clearRoutes: matcher.clearRoutes, + hasRoute, + getRoutes, + resolve, + options, + push, + replace, + go, + back: () => go(-1), + forward: () => go(1), + beforeEach: beforeGuards.add, + beforeResolve: beforeResolveGuards.add, + afterEach: afterGuards.add, + onError: errorListeners.add, + isReady, + install(app) { + const router = this; + app.component('RouterLink', RouterLink); + app.component('RouterView', RouterView); + app.config.globalProperties.$router = router; + Object.defineProperty(app.config.globalProperties, '$route', { + enumerable: true, + get: () => unref(currentRoute), + }); + // this initial navigation is only necessary on client, on server it doesn't + // make sense because it will create an extra unnecessary navigation and could + // lead to problems + if (isBrowser && + // used for the initial navigation client side to avoid pushing + // multiple times when the router is used in multiple apps + !started && + currentRoute.value === START_LOCATION_NORMALIZED) { + // see above + started = true; + push(routerHistory.location).catch(err => { + if ((process.env.NODE_ENV !== 'production')) + warn('Unexpected error when starting the router:', err); + }); + } + const reactiveRoute = {}; + for (const key in START_LOCATION_NORMALIZED) { + Object.defineProperty(reactiveRoute, key, { + get: () => currentRoute.value[key], + enumerable: true, + }); + } + app.provide(routerKey, router); + app.provide(routeLocationKey, shallowReactive(reactiveRoute)); + app.provide(routerViewLocationKey, currentRoute); + const unmountApp = app.unmount; + installedApps.add(app); + app.unmount = function () { + installedApps.delete(app); + // the router is not attached to an app anymore + if (installedApps.size < 1) { + // invalidate the current navigation + pendingLocation = START_LOCATION_NORMALIZED; + removeHistoryListener && removeHistoryListener(); + removeHistoryListener = null; + currentRoute.value = START_LOCATION_NORMALIZED; + started = false; + ready = false; + } + unmountApp(); + }; + // TODO: this probably needs to be updated so it can be used by vue-termui + if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) { + addDevtools(app, router, matcher); + } + }, + }; + // TODO: type this as NavigationGuardReturn or similar instead of any + function runGuardQueue(guards) { + return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve()); + } + return router; +} +function extractChangingRecords(to, from) { + const leavingRecords = []; + const updatingRecords = []; + const enteringRecords = []; + const len = Math.max(from.matched.length, to.matched.length); + for (let i = 0; i < len; i++) { + const recordFrom = from.matched[i]; + if (recordFrom) { + if (to.matched.find(record => isSameRouteRecord(record, recordFrom))) + updatingRecords.push(recordFrom); + else + leavingRecords.push(recordFrom); + } + const recordTo = to.matched[i]; + if (recordTo) { + // the type doesn't matter because we are comparing per reference + if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) { + enteringRecords.push(recordTo); + } + } + } + return [leavingRecords, updatingRecords, enteringRecords]; +} + +/** + * Returns the router instance. Equivalent to using `$router` inside + * templates. + */ +function useRouter() { + return inject(routerKey); +} +/** + * Returns the current route location. Equivalent to using `$route` inside + * templates. + */ +function useRoute(_name) { + return inject(routeLocationKey); +} + +export { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey }; diff --git a/.output/server/node_modules/vue-router/dist/vue-router.node.mjs b/.output/server/node_modules/vue-router/dist/vue-router.node.mjs new file mode 100644 index 0000000..919e9fd --- /dev/null +++ b/.output/server/node_modules/vue-router/dist/vue-router.node.mjs @@ -0,0 +1,2 @@ +global.__VUE_PROD_DEVTOOLS__ = false; +export * from '../dist/vue-router.mjs' \ No newline at end of file diff --git a/.output/server/node_modules/vue-router/package.json b/.output/server/node_modules/vue-router/package.json new file mode 100644 index 0000000..53f0fee --- /dev/null +++ b/.output/server/node_modules/vue-router/package.json @@ -0,0 +1,152 @@ +{ + "name": "vue-router", + "version": "4.5.0", + "main": "index.js", + "unpkg": "dist/vue-router.global.js", + "jsdelivr": "dist/vue-router.global.js", + "module": "dist/vue-router.mjs", + "types": "dist/vue-router.d.ts", + "exports": { + ".": { + "types": "./dist/vue-router.d.ts", + "node": { + "import": { + "production": "./dist/vue-router.node.mjs", + "development": "./dist/vue-router.node.mjs", + "default": "./dist/vue-router.node.mjs" + }, + "require": { + "production": "./dist/vue-router.prod.cjs", + "development": "./dist/vue-router.cjs", + "default": "./dist/vue-router.prod.cjs" + } + }, + "import": "./dist/vue-router.mjs", + "require": "./index.js" + }, + "./dist/*": "./dist/*", + "./vetur/*": "./vetur/*", + "./package.json": "./package.json", + "./auto-routes": { + "types": "./vue-router-auto-routes.d.ts", + "node": { + "import": { + "production": "./dist/vue-router.node.mjs", + "development": "./dist/vue-router.node.mjs", + "default": "./dist/vue-router.node.mjs" + }, + "require": { + "production": "./dist/vue-router.prod.cjs", + "development": "./dist/vue-router.cjs", + "default": "./dist/vue-router.prod.cjs" + } + }, + "import": "./dist/vue-router.mjs", + "require": "./index.js" + }, + "./auto": { + "types": "./vue-router-auto.d.ts", + "node": { + "import": { + "production": "./dist/vue-router.node.mjs", + "development": "./dist/vue-router.node.mjs", + "default": "./dist/vue-router.node.mjs" + }, + "require": { + "production": "./dist/vue-router.prod.cjs", + "development": "./dist/vue-router.cjs", + "default": "./dist/vue-router.prod.cjs" + } + }, + "import": "./dist/vue-router.mjs", + "require": "./index.js" + } + }, + "sideEffects": false, + "author": { + "name": "Eduardo San Martin Morote", + "email": "posva13@gmail.com" + }, + "funding": "https://github.com/sponsors/posva", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/router.git" + }, + "bugs": { + "url": "https://github.com/vuejs/router/issues" + }, + "homepage": "https://github.com/vuejs/router#readme", + "files": [ + "index.js", + "dist/*.{js,cjs,mjs}", + "dist/vue-router.d.ts", + "vue-router-auto.d.ts", + "vue-router-auto-routes.d.ts", + "vetur/tags.json", + "vetur/attributes.json", + "README.md" + ], + "peerDependencies": { + "vue": "^3.2.0" + }, + "vetur": { + "tags": "vetur/tags.json", + "attributes": "vetur/attributes.json" + }, + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "devDependencies": { + "@microsoft/api-extractor": "^7.48.0", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-commonjs": "^25.0.8", + "@rollup/plugin-node-resolve": "^15.3.0", + "@rollup/plugin-replace": "^5.0.7", + "@rollup/plugin-terser": "^0.4.4", + "@types/jsdom": "^21.1.7", + "@types/nightwatch": "^2.3.32", + "@vitejs/plugin-vue": "^5.2.0", + "@vue/compiler-sfc": "~3.5.13", + "@vue/server-renderer": "~3.5.13", + "@vue/test-utils": "^2.4.6", + "browserstack-local": "^1.5.5", + "chromedriver": "^131.0.1", + "connect-history-api-fallback": "^1.6.0", + "conventional-changelog-cli": "^2.2.2", + "dotenv": "^16.4.5", + "faked-promise": "^2.2.2", + "geckodriver": "^4.5.1", + "happy-dom": "^15.11.6", + "nightwatch": "^2.6.25", + "nightwatch-helpers": "^1.2.0", + "rimraf": "^6.0.1", + "rollup": "^3.29.5", + "rollup-plugin-analyzer": "^4.0.0", + "rollup-plugin-typescript2": "^0.36.0", + "vite": "^5.4.11", + "vue": "~3.5.13" + }, + "scripts": { + "dev": "vitest --ui", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 1", + "build": "rimraf dist && rollup -c rollup.config.mjs", + "build:dts": "api-extractor run --local --verbose && tail -n +10 src/globalExtensions.ts >> dist/vue-router.d.ts", + "build:playground": "vue-tsc --noEmit && vite build --config playground/vite.config.ts", + "build:e2e": "vue-tsc --noEmit && vite build --config e2e/vite.config.mjs", + "build:size": "pnpm run build && rollup -c size-checks/rollup.config.mjs", + "dev:e2e": "vite --config e2e/vite.config.mjs", + "test:types": "tsc --build tsconfig.json", + "test:unit": "vitest --coverage run", + "test": "pnpm run build && pnpm run build:dts && pnpm run test:types && pnpm run test:unit && pnpm run test:e2e", + "test:e2e": "pnpm run test:e2e:headless", + "test:e2e:headless": "node e2e/runner.mjs --env chrome-headless", + "test:e2e:native": "node e2e/runner.mjs --env chrome", + "test:e2e:ci": "node e2e/runner.mjs --env chrome-headless --retries 2", + "test:e2e:bs": "node e2e/runner.mjs --local -e android5 --tag browserstack", + "test:e2e:bs-test": "node e2e/runner.mjs --local --env browserstack.local_chrome --tag browserstack" + }, + "__npminstall_done": true, + "_from": "vue-router@4.5.0", + "_resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/vue/dist/vue.cjs.js b/.output/server/node_modules/vue/dist/vue.cjs.js new file mode 100644 index 0000000..ef543fa --- /dev/null +++ b/.output/server/node_modules/vue/dist/vue.cjs.js @@ -0,0 +1,80 @@ +/** +* vue v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var runtimeDom = require('@vue/runtime-dom'); +var shared = require('@vue/shared'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); + +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!shared.isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + runtimeDom.warn(`invalid template option: `, template); + return shared.NOOP; + } + } + const key = shared.genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + if (!el) { + runtimeDom.warn(`Template element not found or is empty: ${template}`); + } + template = el ? el.innerHTML : ``; + } + const opts = shared.extend( + { + hoistStatic: true, + onError: onError , + onWarn: (e) => onError(e, true) + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compilerDom.compile(template, opts); + function onError(err, asWarning = false) { + const message = asWarning ? err.message : `Template compilation error: ${err.message}`; + const codeFrame = err.loc && shared.generateCodeFrame( + template, + err.loc.start.offset, + err.loc.end.offset + ); + runtimeDom.warn(codeFrame ? `${message} +${codeFrame}` : message); + } + const render = new Function("Vue", code)(runtimeDom__namespace); + render._rc = true; + return compileCache[key] = render; +} +runtimeDom.registerRuntimeCompiler(compileToFunction); + +exports.compile = compileToFunction; +Object.keys(runtimeDom).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; +}); diff --git a/.output/server/node_modules/vue/dist/vue.cjs.prod.js b/.output/server/node_modules/vue/dist/vue.cjs.prod.js new file mode 100644 index 0000000..82c078c --- /dev/null +++ b/.output/server/node_modules/vue/dist/vue.cjs.prod.js @@ -0,0 +1,66 @@ +/** +* vue v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var compilerDom = require('@vue/compiler-dom'); +var runtimeDom = require('@vue/runtime-dom'); +var shared = require('@vue/shared'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + for (var k in e) { + n[k] = e[k]; + } + } + n.default = e; + return Object.freeze(n); +} + +var runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom); + +const compileCache = /* @__PURE__ */ Object.create(null); +function compileToFunction(template, options) { + if (!shared.isString(template)) { + if (template.nodeType) { + template = template.innerHTML; + } else { + return shared.NOOP; + } + } + const key = shared.genCacheKey(template, options); + const cached = compileCache[key]; + if (cached) { + return cached; + } + if (template[0] === "#") { + const el = document.querySelector(template); + template = el ? el.innerHTML : ``; + } + const opts = shared.extend( + { + hoistStatic: true, + onError: void 0, + onWarn: shared.NOOP + }, + options + ); + if (!opts.isCustomElement && typeof customElements !== "undefined") { + opts.isCustomElement = (tag) => !!customElements.get(tag); + } + const { code } = compilerDom.compile(template, opts); + const render = new Function("Vue", code)(runtimeDom__namespace); + render._rc = true; + return compileCache[key] = render; +} +runtimeDom.registerRuntimeCompiler(compileToFunction); + +exports.compile = compileToFunction; +Object.keys(runtimeDom).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k]; +}); diff --git a/.output/server/node_modules/vue/index.js b/.output/server/node_modules/vue/index.js new file mode 100644 index 0000000..7a3dc2d --- /dev/null +++ b/.output/server/node_modules/vue/index.js @@ -0,0 +1,7 @@ +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./dist/vue.cjs.prod.js') +} else { + module.exports = require('./dist/vue.cjs.js') +} diff --git a/.output/server/node_modules/vue/index.mjs b/.output/server/node_modules/vue/index.mjs new file mode 100644 index 0000000..fcb9204 --- /dev/null +++ b/.output/server/node_modules/vue/index.mjs @@ -0,0 +1 @@ +export * from './index.js' diff --git a/.output/server/node_modules/vue/package.json b/.output/server/node_modules/vue/package.json new file mode 100644 index 0000000..cae9aaa --- /dev/null +++ b/.output/server/node_modules/vue/package.json @@ -0,0 +1,115 @@ +{ + "name": "vue", + "version": "3.5.13", + "description": "The progressive JavaScript framework for building modern web UI.", + "main": "index.js", + "module": "dist/vue.runtime.esm-bundler.js", + "types": "dist/vue.d.ts", + "unpkg": "dist/vue.global.js", + "jsdelivr": "dist/vue.global.js", + "files": [ + "index.js", + "index.mjs", + "dist", + "compiler-sfc", + "server-renderer", + "jsx-runtime", + "jsx.d.ts" + ], + "exports": { + ".": { + "import": { + "types": "./dist/vue.d.mts", + "node": "./index.mjs", + "default": "./dist/vue.runtime.esm-bundler.js" + }, + "require": { + "types": "./dist/vue.d.ts", + "node": { + "production": "./dist/vue.cjs.prod.js", + "development": "./dist/vue.cjs.js", + "default": "./dist/vue.cjs.prod.js" + }, + "default": "./index.js" + } + }, + "./server-renderer": { + "import": { + "types": "./server-renderer/index.d.mts", + "default": "./server-renderer/index.mjs" + }, + "require": { + "types": "./server-renderer/index.d.ts", + "default": "./server-renderer/index.js" + } + }, + "./compiler-sfc": { + "import": { + "types": "./compiler-sfc/index.d.mts", + "browser": "./compiler-sfc/index.browser.mjs", + "default": "./compiler-sfc/index.mjs" + }, + "require": { + "types": "./compiler-sfc/index.d.ts", + "browser": "./compiler-sfc/index.browser.js", + "default": "./compiler-sfc/index.js" + } + }, + "./jsx-runtime": { + "types": "./jsx-runtime/index.d.ts", + "import": "./jsx-runtime/index.mjs", + "require": "./jsx-runtime/index.js" + }, + "./jsx-dev-runtime": { + "types": "./jsx-runtime/index.d.ts", + "import": "./jsx-runtime/index.mjs", + "require": "./jsx-runtime/index.js" + }, + "./jsx": "./jsx.d.ts", + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "buildOptions": { + "name": "Vue", + "formats": [ + "esm-bundler", + "esm-bundler-runtime", + "cjs", + "global", + "global-runtime", + "esm-browser", + "esm-browser-runtime" + ] + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/core.git" + }, + "keywords": [ + "vue" + ], + "author": "Evan You", + "license": "MIT", + "bugs": { + "url": "https://github.com/vuejs/core/issues" + }, + "homepage": "https://github.com/vuejs/core/tree/main/packages/vue#readme", + "dependencies": { + "@vue/shared": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/compiler-sfc": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + }, + "__npminstall_done": true, + "_from": "vue@3.5.13", + "_resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.13.tgz" +} \ No newline at end of file diff --git a/.output/server/node_modules/vue/server-renderer/index.mjs b/.output/server/node_modules/vue/server-renderer/index.mjs new file mode 100644 index 0000000..ac61472 --- /dev/null +++ b/.output/server/node_modules/vue/server-renderer/index.mjs @@ -0,0 +1 @@ +export * from '@vue/server-renderer' diff --git a/.output/server/package.json b/.output/server/package.json index 65867a0..71f066c 100644 --- a/.output/server/package.json +++ b/.output/server/package.json @@ -1,5 +1 @@ -<<<<<<< HEAD -{"name":"nuxt-app-prod","version":"1.1.2","type":"module","private":true,"dependencies":{"@babel/parser":"7.26.9","@sxzz/popperjs-es":"2.11.7","@unhead/dom":"1.11.19","@unhead/shared":"1.11.19","@unhead/ssr":"1.11.19","@vue/compiler-core":"3.5.13","@vue/compiler-dom":"3.5.13","@vue/compiler-ssr":"3.5.13","@vue/devtools-api":"6.6.4","@vue/reactivity":"3.5.13","@vue/runtime-core":"3.5.13","@vue/runtime-dom":"3.5.13","@vue/server-renderer":"3.5.13","@vue/shared":"3.5.13","asynckit":"0.4.0","axios":"1.7.9","call-bind-apply-helpers":"1.0.2","call-bound":"1.0.3","combined-stream":"1.0.8","dayjs":"1.11.13","debug":"4.4.0","delayed-stream":"1.0.0","devalue":"5.1.1","dunder-proto":"1.0.1","entities":"4.5.0","es-define-property":"1.0.1","es-errors":"1.3.0","es-object-atoms":"1.1.1","es-set-tostringtag":"2.1.0","estree-walker":"2.0.2","follow-redirects":"1.15.9","form-data":"4.0.2","function-bind":"1.1.2","get-intrinsic":"1.2.7","get-proto":"1.0.1","gopd":"1.2.0","has-symbols":"1.1.0","has-tostringtag":"1.0.2","hasown":"2.0.2","hookable":"5.5.3","math-intrinsics":"1.1.0","mime-db":"1.52.0","mime-types":"2.1.35","ms":"2.1.3","node-mock-http":"1.0.0","object-inspect":"1.13.4","packrup":"0.1.2","proxy-from-env":"1.1.0","qs":"6.14.0","side-channel":"1.1.0","side-channel-list":"1.0.0","side-channel-map":"1.0.1","side-channel-weakmap":"1.0.2","source-map-js":"1.2.1","supports-color":"9.4.0","ufo":"1.5.4","unhead":"1.11.19","vue":"3.5.13","vue-bundle-renderer":"2.1.1","vue-router":"4.5.0"}} -======= -{"name":"nuxt-app-prod","version":"1.1.2","type":"module","private":true,"dependencies":{"@babel/parser":"7.26.9","@popperjs/core":"2.11.8","@unhead/dom":"1.11.19","@unhead/shared":"1.11.19","@unhead/ssr":"1.11.19","@vue/compiler-core":"3.5.13","@vue/compiler-dom":"3.5.13","@vue/compiler-ssr":"3.5.13","@vue/devtools-api":"6.6.4","@vue/reactivity":"3.5.13","@vue/runtime-core":"3.5.13","@vue/runtime-dom":"3.5.13","@vue/server-renderer":"3.5.13","@vue/shared":"3.5.13","asynckit":"0.4.0","axios":"1.7.9","call-bind-apply-helpers":"1.0.2","call-bound":"1.0.3","combined-stream":"1.0.8","dayjs":"1.11.13","debug":"4.4.0","delayed-stream":"1.0.0","devalue":"5.1.1","dunder-proto":"1.0.1","entities":"4.5.0","es-define-property":"1.0.1","es-errors":"1.3.0","es-object-atoms":"1.1.1","es-set-tostringtag":"2.1.0","estree-walker":"2.0.2","follow-redirects":"1.15.9","form-data":"4.0.2","function-bind":"1.1.2","get-intrinsic":"1.2.7","get-proto":"1.0.1","gopd":"1.2.0","has-symbols":"1.1.0","has-tostringtag":"1.0.2","hasown":"2.0.2","hookable":"5.5.3","math-intrinsics":"1.1.0","mime-db":"1.52.0","mime-types":"2.1.35","ms":"2.1.3","node-mock-http":"1.0.0","object-inspect":"1.13.4","packrup":"0.1.2","proxy-from-env":"1.1.0","qs":"6.14.0","side-channel":"1.1.0","side-channel-list":"1.0.0","side-channel-map":"1.0.1","side-channel-weakmap":"1.0.2","source-map-js":"1.2.1","supports-color":"9.4.0","ufo":"1.5.4","unhead":"1.11.19","vue":"3.5.13","vue-bundle-renderer":"2.1.1","vue-router":"4.5.0"}} ->>>>>>> parent of 1d74a9f (no message) +{"name":"nuxt-app-prod","version":"1.1.2","type":"module","private":true,"dependencies":{"@babel/parser":"7.26.9","@sxzz/popperjs-es":"2.11.7","@unhead/dom":"1.11.19","@unhead/shared":"1.11.19","@unhead/ssr":"1.11.19","@vue/compiler-core":"3.5.13","@vue/compiler-dom":"3.5.13","@vue/compiler-ssr":"3.5.13","@vue/devtools-api":"6.6.4","@vue/reactivity":"3.5.13","@vue/runtime-core":"3.5.13","@vue/runtime-dom":"3.5.13","@vue/server-renderer":"3.5.13","@vue/shared":"3.5.13","asynckit":"0.4.0","axios":"1.7.9","call-bind-apply-helpers":"1.0.2","call-bound":"1.0.3","combined-stream":"1.0.8","dayjs":"1.11.13","debug":"4.4.0","delayed-stream":"1.0.0","devalue":"5.1.1","dunder-proto":"1.0.1","entities":"4.5.0","es-define-property":"1.0.1","es-errors":"1.3.0","es-object-atoms":"1.1.1","es-set-tostringtag":"2.1.0","estree-walker":"2.0.2","follow-redirects":"1.15.9","form-data":"4.0.2","function-bind":"1.1.2","get-intrinsic":"1.2.7","get-proto":"1.0.1","gopd":"1.2.0","has-symbols":"1.1.0","has-tostringtag":"1.0.2","hasown":"2.0.2","hookable":"5.5.3","math-intrinsics":"1.1.0","mime-db":"1.52.0","mime-types":"2.1.35","ms":"2.1.3","node-mock-http":"1.0.0","object-inspect":"1.13.4","packrup":"0.1.2","proxy-from-env":"1.1.0","qs":"6.14.0","side-channel":"1.1.0","side-channel-list":"1.0.0","side-channel-map":"1.0.1","side-channel-weakmap":"1.0.2","source-map-js":"1.2.1","supports-color":"9.4.0","ufo":"1.5.4","unhead":"1.11.19","vue":"3.5.13","vue-bundle-renderer":"2.1.1","vue-router":"4.5.0"}} \ No newline at end of file diff --git a/package.json b/package.json index e4cc2a8..ffa3bd4 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,7 @@ }, "dependencies": { "@element-plus/nuxt": "^1.1.1", -<<<<<<< HEAD "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", -======= - "@popperjs/core": "^2.11.8", ->>>>>>> parent of 1d74a9f (no message) "axios": "^1.6.2", "dayjs": "latest", "masonry-layout": "^4.2.2",