@kvass/widgets 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npm run build && git add dist/*
package/.prettierrc ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "singleQuote": true,
3
+ "tabWidth": 2,
4
+ "trailingComma": "all",
5
+ "semi": false
6
+ }
package/.releaserc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "ci": false
3
+ }
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # widgets
@@ -0,0 +1,24 @@
1
+ var Zr=Object.defineProperty,Qr=Object.defineProperties;var Gr=Object.getOwnPropertyDescriptors;var us=Object.getOwnPropertySymbols;var eo=Object.prototype.hasOwnProperty,to=Object.prototype.propertyIsEnumerable;var ds=(e,t,n)=>t in e?Zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t)=>{for(var n in t||(t={}))eo.call(t,n)&&ds(e,n,t[n]);if(us)for(var n of us(t))to.call(t,n)&&ds(e,n,t[n]);return e},ln=(e,t)=>Qr(e,Gr(t));function Sn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r<s.length;r++)n[s[r]]=!0;return t?r=>!!n[r.toLowerCase()]:r=>!!n[r]}const no="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",so=Sn(no);function Hs(e){return!!e||e===""}function $n(e){if(M(e)){const t={};for(let n=0;n<e.length;n++){const s=e[n],r=Y(s)?lo(s):$n(s);if(r)for(const o in r)t[o]=r[o]}return t}else{if(Y(e))return e;if(X(e))return e}}const ro=/;(?![^(]*\))/g,oo=/:(.+)/;function lo(e){const t={};return e.split(ro).forEach(n=>{if(n){const s=n.split(oo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ot(e){let t="";if(Y(e))t=e;else if(M(e))for(let n=0;n<e.length;n++){const s=Ot(e[n]);s&&(t+=s+" ")}else if(X(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}const _t=e=>Y(e)?e:e==null?"":M(e)||X(e)&&(e.toString===qs||!I(e.toString))?JSON.stringify(e,Ks,2):String(e),Ks=(e,t)=>t&&t.__v_isRef?Ks(e,t.value):rt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:Ds(t)?{[`Set(${t.size})`]:[...t.values()]}:X(t)&&!M(t)&&!Ws(t)?String(t):t,B={},st=[],ve=()=>{},io=()=>!1,co=/^on[^a-z]/,Vt=e=>co.test(e),jn=e=>e.startsWith("onUpdate:"),G=Object.assign,Rn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ao=Object.prototype.hasOwnProperty,N=(e,t)=>ao.call(e,t),M=Array.isArray,rt=e=>qt(e)==="[object Map]",Ds=e=>qt(e)==="[object Set]",I=e=>typeof e=="function",Y=e=>typeof e=="string",Ln=e=>typeof e=="symbol",X=e=>e!==null&&typeof e=="object",Vs=e=>X(e)&&I(e.then)&&I(e.catch),qs=Object.prototype.toString,qt=e=>qs.call(e),fo=e=>qt(e).slice(8,-1),Ws=e=>qt(e)==="[object Object]",Un=e=>Y(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,St=Sn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Wt=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},uo=/-(\w)/g,ge=Wt(e=>e.replace(uo,(t,n)=>n?n.toUpperCase():"")),ho=/\B([A-Z])/g,Ae=Wt(e=>e.replace(ho,"-$1").toLowerCase()),zt=Wt(e=>e.charAt(0).toUpperCase()+e.slice(1)),cn=Wt(e=>e?`on${zt(e)}`:""),Ct=(e,t)=>!Object.is(e,t),an=(e,t)=>{for(let n=0;n<e.length;n++)e[n](t)},Rt=(e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},mn=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let hs;const po=()=>hs||(hs=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Oe;class go{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Oe&&(this.parent=Oe,this.index=(Oe.scopes||(Oe.scopes=[])).push(this)-1)}run(t){if(this.active)try{return Oe=this,t()}finally{Oe=this.parent}}on(){Oe=this}off(){Oe=this.parent}stop(t){if(this.active){let n,s;for(n=0,s=this.effects.length;n<s;n++)this.effects[n].stop();for(n=0,s=this.cleanups.length;n<s;n++)this.cleanups[n]();if(this.scopes)for(n=0,s=this.scopes.length;n<s;n++)this.scopes[n].stop(!0);if(this.parent&&!t){const r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.active=!1}}}function mo(e,t=Oe){t&&t.active&&t.effects.push(e)}const Bn=e=>{const t=new Set(e);return t.w=0,t.n=0,t},zs=e=>(e.w&Be)>0,Js=e=>(e.n&Be)>0,_o=({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Be},bo=e=>{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s<t.length;s++){const r=t[s];zs(r)&&!Js(r)?r.delete(e):t[n++]=r,r.w&=~Be,r.n&=~Be}t.length=n}},_n=new WeakMap;let ht=0,Be=1;const bn=30;let we;const ze=Symbol(""),vn=Symbol("");class Hn{constructor(t,n=null,s){this.fn=t,this.scheduler=n,this.active=!0,this.deps=[],this.parent=void 0,mo(this,s)}run(){if(!this.active)return this.fn();let t=we,n=Re;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=we,we=this,Re=!0,Be=1<<++ht,ht<=bn?_o(this):ps(this),this.fn()}finally{ht<=bn&&bo(this),Be=1<<--ht,we=this.parent,Re=n,this.parent=void 0}}stop(){this.active&&(ps(this),this.onStop&&this.onStop(),this.active=!1)}}function ps(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let Re=!0;const Ys=[];function at(){Ys.push(Re),Re=!1}function ft(){const e=Ys.pop();Re=e===void 0?!0:e}function fe(e,t,n){if(Re&&we){let s=_n.get(e);s||_n.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=Bn()),Xs(r)}}function Xs(e,t){let n=!1;ht<=bn?Js(e)||(e.n|=Be,n=!zs(e)):n=!e.has(we),n&&(e.add(we),we.deps.push(e))}function Me(e,t,n,s,r,o){const l=_n.get(e);if(!l)return;let c=[];if(t==="clear")c=[...l.values()];else if(n==="length"&&M(e))l.forEach((f,u)=>{(u==="length"||u>=s)&&c.push(f)});else switch(n!==void 0&&c.push(l.get(n)),t){case"add":M(e)?Un(n)&&c.push(l.get("length")):(c.push(l.get(ze)),rt(e)&&c.push(l.get(vn)));break;case"delete":M(e)||(c.push(l.get(ze)),rt(e)&&c.push(l.get(vn)));break;case"set":rt(e)&&c.push(l.get(ze));break}if(c.length===1)c[0]&&yn(c[0]);else{const f=[];for(const u of c)u&&f.push(...u);yn(Bn(f))}}function yn(e,t){for(const n of M(e)?e:[...e])(n!==we||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const vo=Sn("__proto__,__v_isRef,__isVue"),Zs=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(Ln)),yo=Kn(),xo=Kn(!1,!0),Co=Kn(!0),gs=ko();function ko(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=j(this);for(let o=0,l=this.length;o<l;o++)fe(s,"get",o+"");const r=s[t](...n);return r===-1||r===!1?s[t](...n.map(j)):r}}),["push","pop","shift","unshift","splice"].forEach(t=>{e[t]=function(...n){at();const s=j(this)[t].apply(this,n);return ft(),s}}),e}function Kn(e=!1,t=!1){return function(s,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?Uo:nr:t?tr:er).get(s))return s;const l=M(s);if(!e&&l&&N(gs,r))return Reflect.get(gs,r,o);const c=Reflect.get(s,r,o);return(Ln(r)?Zs.has(r):vo(r))||(e||fe(s,"get",r),t)?c:Q(c)?!l||!Un(r)?c.value:c:X(c)?e?sr(c):Yt(c):c}}const wo=Qs(),Eo=Qs(!0);function Qs(e=!1){return function(n,s,r,o){let l=n[s];if(kt(l)&&Q(l)&&!Q(r))return!1;if(!e&&!kt(r)&&(rr(r)||(r=j(r),l=j(l)),!M(n)&&Q(l)&&!Q(r)))return l.value=r,!0;const c=M(n)&&Un(s)?Number(s)<n.length:N(n,s),f=Reflect.set(n,s,r,o);return n===j(o)&&(c?Ct(r,l)&&Me(n,"set",s,r):Me(n,"add",s,r)),f}}function To(e,t){const n=N(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&n&&Me(e,"delete",t,void 0),s}function Oo(e,t){const n=Reflect.has(e,t);return(!Ln(t)||!Zs.has(t))&&fe(e,"has",t),n}function Po(e){return fe(e,"iterate",M(e)?"length":ze),Reflect.ownKeys(e)}const Gs={get:yo,set:wo,deleteProperty:To,has:Oo,ownKeys:Po},Ao={get:Co,set(e,t){return!0},deleteProperty(e,t){return!0}},Mo=G({},Gs,{get:xo,set:Eo}),Dn=e=>e,Jt=e=>Reflect.getPrototypeOf(e);function At(e,t,n=!1,s=!1){e=e.__v_raw;const r=j(e),o=j(t);t!==o&&!n&&fe(r,"get",t),!n&&fe(r,"get",o);const{has:l}=Jt(r),c=s?Dn:n?Wn:wt;if(l.call(r,t))return c(e.get(t));if(l.call(r,o))return c(e.get(o));e!==r&&e.get(t)}function Mt(e,t=!1){const n=this.__v_raw,s=j(n),r=j(e);return e!==r&&!t&&fe(s,"has",e),!t&&fe(s,"has",r),e===r?n.has(e):n.has(e)||n.has(r)}function It(e,t=!1){return e=e.__v_raw,!t&&fe(j(e),"iterate",ze),Reflect.get(e,"size",e)}function ms(e){e=j(e);const t=j(this);return Jt(t).has.call(t,e)||(t.add(e),Me(t,"add",e,e)),this}function _s(e,t){t=j(t);const n=j(this),{has:s,get:r}=Jt(n);let o=s.call(n,e);o||(e=j(e),o=s.call(n,e));const l=r.call(n,e);return n.set(e,t),o?Ct(t,l)&&Me(n,"set",e,t):Me(n,"add",e,t),this}function bs(e){const t=j(this),{has:n,get:s}=Jt(t);let r=n.call(t,e);r||(e=j(e),r=n.call(t,e)),s&&s.call(t,e);const o=t.delete(e);return r&&Me(t,"delete",e,void 0),o}function vs(){const e=j(this),t=e.size!==0,n=e.clear();return t&&Me(e,"clear",void 0,void 0),n}function Ft(e,t){return function(s,r){const o=this,l=o.__v_raw,c=j(l),f=t?Dn:e?Wn:wt;return!e&&fe(c,"iterate",ze),l.forEach((u,g)=>s.call(r,f(u),f(g),o))}}function Nt(e,t,n){return function(...s){const r=this.__v_raw,o=j(r),l=rt(o),c=e==="entries"||e===Symbol.iterator&&l,f=e==="keys"&&l,u=r[e](...s),g=n?Dn:t?Wn:wt;return!t&&fe(o,"iterate",f?vn:ze),{next(){const{value:x,done:v}=u.next();return v?{value:x,done:v}:{value:c?[g(x[0]),g(x[1])]:g(x),done:v}},[Symbol.iterator](){return this}}}}function Ne(e){return function(...t){return e==="delete"?!1:this}}function Io(){const e={get(o){return At(this,o)},get size(){return It(this)},has:Mt,add:ms,set:_s,delete:bs,clear:vs,forEach:Ft(!1,!1)},t={get(o){return At(this,o,!1,!0)},get size(){return It(this)},has:Mt,add:ms,set:_s,delete:bs,clear:vs,forEach:Ft(!1,!0)},n={get(o){return At(this,o,!0)},get size(){return It(this,!0)},has(o){return Mt.call(this,o,!0)},add:Ne("add"),set:Ne("set"),delete:Ne("delete"),clear:Ne("clear"),forEach:Ft(!0,!1)},s={get(o){return At(this,o,!0,!0)},get size(){return It(this,!0)},has(o){return Mt.call(this,o,!0)},add:Ne("add"),set:Ne("set"),delete:Ne("delete"),clear:Ne("clear"),forEach:Ft(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Nt(o,!1,!1),n[o]=Nt(o,!0,!1),t[o]=Nt(o,!1,!0),s[o]=Nt(o,!0,!0)}),[e,n,t,s]}const[Fo,No,So,$o]=Io();function Vn(e,t){const n=t?e?$o:So:e?No:Fo;return(s,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(N(n,r)&&r in s?n:s,r,o)}const jo={get:Vn(!1,!1)},Ro={get:Vn(!1,!0)},Lo={get:Vn(!0,!1)},er=new WeakMap,tr=new WeakMap,nr=new WeakMap,Uo=new WeakMap;function Bo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ho(e){return e.__v_skip||!Object.isExtensible(e)?0:Bo(fo(e))}function Yt(e){return kt(e)?e:qn(e,!1,Gs,jo,er)}function Ko(e){return qn(e,!1,Mo,Ro,tr)}function sr(e){return qn(e,!0,Ao,Lo,nr)}function qn(e,t,n,s,r){if(!X(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const l=Ho(e);if(l===0)return e;const c=new Proxy(e,l===2?s:n);return r.set(e,c),c}function ot(e){return kt(e)?ot(e.__v_raw):!!(e&&e.__v_isReactive)}function kt(e){return!!(e&&e.__v_isReadonly)}function rr(e){return!!(e&&e.__v_isShallow)}function or(e){return ot(e)||kt(e)}function j(e){const t=e&&e.__v_raw;return t?j(t):e}function lr(e){return Rt(e,"__v_skip",!0),e}const wt=e=>X(e)?Yt(e):e,Wn=e=>X(e)?sr(e):e;function ir(e){Re&&we&&(e=j(e),Xs(e.dep||(e.dep=Bn())))}function cr(e,t){e=j(e),e.dep&&yn(e.dep)}function Q(e){return!!(e&&e.__v_isRef===!0)}function pt(e){return Do(e,!1)}function Do(e,t){return Q(e)?e:new Vo(e,t)}class Vo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:j(t),this._value=n?t:wt(t)}get value(){return ir(this),this._value}set value(t){t=this.__v_isShallow?t:j(t),Ct(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:wt(t),cr(this))}}function de(e){return Q(e)?e.value:e}const qo={get:(e,t,n)=>de(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return Q(r)&&!Q(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ar(e){return ot(e)?e:new Proxy(e,qo)}class Wo{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new Hn(t,()=>{this._dirty||(this._dirty=!0,cr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=j(this);return ir(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function zo(e,t,n=!1){let s,r;const o=I(e);return o?(s=e,r=ve):(s=e.get,r=e.set),new Wo(s,r,o||!r,n)}Promise.resolve();function Le(e,t,n,s){let r;try{r=s?e(...s):e()}catch(o){Xt(o,t,n)}return r}function pe(e,t,n,s){if(I(e)){const o=Le(e,t,n,s);return o&&Vs(o)&&o.catch(l=>{Xt(l,t,n)}),o}const r=[];for(let o=0;o<e.length;o++)r.push(pe(e[o],t,n,s));return r}function Xt(e,t,n,s=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const l=t.proxy,c=n;for(;o;){const u=o.ec;if(u){for(let g=0;g<u.length;g++)if(u[g](e,l,c)===!1)return}o=o.parent}const f=t.appContext.config.errorHandler;if(f){Le(f,null,10,[e,l,c]);return}}Jo(e,n,r,s)}function Jo(e,t,n,s=!0){console.error(e)}let Lt=!1,xn=!1;const ae=[];let Pe=0;const bt=[];let gt=null,et=0;const vt=[];let Se=null,tt=0;const fr=Promise.resolve();let zn=null,Cn=null;function ur(e){const t=zn||fr;return e?t.then(this?e.bind(this):e):t}function Yo(e){let t=Pe+1,n=ae.length;for(;t<n;){const s=t+n>>>1;Et(ae[s])<e?t=s+1:n=s}return t}function dr(e){(!ae.length||!ae.includes(e,Lt&&e.allowRecurse?Pe+1:Pe))&&e!==Cn&&(e.id==null?ae.push(e):ae.splice(Yo(e.id),0,e),hr())}function hr(){!Lt&&!xn&&(xn=!0,zn=fr.then(mr))}function Xo(e){const t=ae.indexOf(e);t>Pe&&ae.splice(t,1)}function pr(e,t,n,s){M(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?s+1:s))&&n.push(e),hr()}function Zo(e){pr(e,gt,bt,et)}function Qo(e){pr(e,Se,vt,tt)}function Jn(e,t=null){if(bt.length){for(Cn=t,gt=[...new Set(bt)],bt.length=0,et=0;et<gt.length;et++)gt[et]();gt=null,et=0,Cn=null,Jn(e,t)}}function gr(e){if(vt.length){const t=[...new Set(vt)];if(vt.length=0,Se){Se.push(...t);return}for(Se=t,Se.sort((n,s)=>Et(n)-Et(s)),tt=0;tt<Se.length;tt++)Se[tt]();Se=null,tt=0}}const Et=e=>e.id==null?1/0:e.id;function mr(e){xn=!1,Lt=!0,Jn(e),ae.sort((n,s)=>Et(n)-Et(s));const t=ve;try{for(Pe=0;Pe<ae.length;Pe++){const n=ae[Pe];n&&n.active!==!1&&Le(n,null,14)}}finally{Pe=0,ae.length=0,gr(),Lt=!1,zn=null,(ae.length||bt.length||vt.length)&&mr(e)}}function Go(e,t,...n){const s=e.vnode.props||B;let r=n;const o=t.startsWith("update:"),l=o&&t.slice(7);if(l&&l in s){const g=`${l==="modelValue"?"model":l}Modifiers`,{number:x,trim:v}=s[g]||B;v?r=n.map(P=>P.trim()):x&&(r=n.map(mn))}let c,f=s[c=cn(t)]||s[c=cn(ge(t))];!f&&o&&(f=s[c=cn(Ae(t))]),f&&pe(f,e,6,r);const u=s[c+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,pe(u,e,6,r)}}function _r(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const o=e.emits;let l={},c=!1;if(!I(e)){const f=u=>{const g=_r(u,t,!0);g&&(c=!0,G(l,g))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!o&&!c?(s.set(e,null),null):(M(o)?o.forEach(f=>l[f]=null):G(l,o),s.set(e,l),l)}function Yn(e,t){return!e||!Vt(t)?!1:(t=t.slice(2).replace(/Once$/,""),N(e,t[0].toLowerCase()+t.slice(1))||N(e,Ae(t))||N(e,t))}let he=null,br=null;function Ut(e){const t=he;return he=e,br=e&&e.type.__scopeId||null,t}function Xn(e,t=he,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Ms(-1);const o=Ut(t),l=e(...r);return Ut(o),s._d&&Ms(1),l};return s._n=!0,s._c=!0,s._d=!0,s}function fn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:o,propsOptions:[l],slots:c,attrs:f,emit:u,render:g,renderCache:x,data:v,setupState:P,ctx:S,inheritAttrs:$}=e;let T,O;const R=Ut(e);try{if(n.shapeFlag&4){const W=r||s;T=ke(g.call(W,W,x,o,P,v,S)),O=f}else{const W=t;T=ke(W.length>1?W(o,{attrs:f,slots:c,emit:u}):W(o,null)),O=t.props?f:el(f)}}catch(W){yt.length=0,Xt(W,e,1),T=ee(ye)}let q=T;if(O&&$!==!1){const W=Object.keys(O),{shapeFlag:oe}=q;W.length&&oe&7&&(l&&W.some(jn)&&(O=tl(O,l)),q=it(q,O))}return n.dirs&&(q.dirs=q.dirs?q.dirs.concat(n.dirs):n.dirs),n.transition&&(q.transition=n.transition),T=q,Ut(R),T}const el=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vt(n))&&((t||(t={}))[n]=e[n]);return t},tl=(e,t)=>{const n={};for(const s in e)(!jn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function nl(e,t,n){const{props:s,children:r,component:o}=e,{props:l,children:c,patchFlag:f}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return s?ys(s,l,u):!!l;if(f&8){const g=t.dynamicProps;for(let x=0;x<g.length;x++){const v=g[x];if(l[v]!==s[v]&&!Yn(u,v))return!0}}}else return(r||c)&&(!c||!c.$stable)?!0:s===l?!1:s?l?ys(s,l,u):!0:!!l;return!1}function ys(e,t,n){const s=Object.keys(t);if(s.length!==Object.keys(e).length)return!0;for(let r=0;r<s.length;r++){const o=s[r];if(t[o]!==e[o]&&!Yn(n,o))return!0}return!1}function sl({vnode:e,parent:t},n){for(;t&&t.subTree===e;)(e=t.vnode).el=n,t=t.parent}const rl=e=>e.__isSuspense;function ol(e,t){t&&t.pendingBranch?M(e)?t.effects.push(...e):t.effects.push(e):Qo(e)}function ll(e,t){if(J){let n=J.provides;const s=J.parent&&J.parent.provides;s===n&&(n=J.provides=Object.create(s)),n[e]=t}}function un(e,t,n=!1){const s=J||he;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&I(t)?t.call(s.proxy):t}}const xs={};function dn(e,t,n){return vr(e,t,n)}function vr(e,t,{immediate:n,deep:s,flush:r,onTrack:o,onTrigger:l}=B){const c=J;let f,u=!1,g=!1;if(Q(e)?(f=()=>e.value,u=rr(e)):ot(e)?(f=()=>e,s=!0):M(e)?(g=!0,u=e.some(ot),f=()=>e.map(O=>{if(Q(O))return O.value;if(ot(O))return nt(O);if(I(O))return Le(O,c,2)})):I(e)?t?f=()=>Le(e,c,2):f=()=>{if(!(c&&c.isUnmounted))return x&&x(),pe(e,c,3,[v])}:f=ve,t&&s){const O=f;f=()=>nt(O())}let x,v=O=>{x=T.onStop=()=>{Le(O,c,4)}};if(Tt)return v=ve,t?n&&pe(t,c,3,[f(),g?[]:void 0,v]):f(),ve;let P=g?[]:xs;const S=()=>{if(!!T.active)if(t){const O=T.run();(s||u||(g?O.some((R,q)=>Ct(R,P[q])):Ct(O,P)))&&(x&&x(),pe(t,c,3,[O,P===xs?void 0:P,v]),P=O)}else T.run()};S.allowRecurse=!!t;let $;r==="sync"?$=S:r==="post"?$=()=>se(S,c&&c.suspense):$=()=>{!c||c.isMounted?Zo(S):S()};const T=new Hn(f,$);return t?n?S():P=T.run():r==="post"?se(T.run.bind(T),c&&c.suspense):T.run(),()=>{T.stop(),c&&c.scope&&Rn(c.scope.effects,T)}}function il(e,t,n){const s=this.proxy,r=Y(e)?e.includes(".")?yr(s,e):()=>s[e]:e.bind(s,s);let o;I(t)?o=t:(o=t.handler,n=t);const l=J;ct(this);const c=vr(r,o.bind(s),n);return l?ct(l):Ye(),c}function yr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r<n.length&&s;r++)s=s[n[r]];return s}}function nt(e,t){if(!X(e)||e.__v_skip||(t=t||new Set,t.has(e)))return e;if(t.add(e),Q(e))nt(e.value,t);else if(M(e))for(let n=0;n<e.length;n++)nt(e[n],t);else if(Ds(e)||rt(e))e.forEach(n=>{nt(n,t)});else if(Ws(e))for(const n in e)nt(e[n],t);return e}function cl(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Zn(()=>{e.isMounted=!0}),wr(()=>{e.isUnmounting=!0}),e}const ue=[Function,Array],al={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ue,onEnter:ue,onAfterEnter:ue,onEnterCancelled:ue,onBeforeLeave:ue,onLeave:ue,onAfterLeave:ue,onLeaveCancelled:ue,onBeforeAppear:ue,onAppear:ue,onAfterAppear:ue,onAppearCancelled:ue},setup(e,{slots:t}){const n=Kr(),s=cl();let r;return()=>{const o=t.default&&Cr(t.default(),!0);if(!o||!o.length)return;const l=j(e),{mode:c}=l,f=o[0];if(s.isLeaving)return hn(f);const u=Cs(f);if(!u)return hn(f);const g=kn(u,l,s,n);wn(u,g);const x=n.subTree,v=x&&Cs(x);let P=!1;const{getTransitionKey:S}=u.type;if(S){const $=S();r===void 0?r=$:$!==r&&(r=$,P=!0)}if(v&&v.type!==ye&&(!qe(u,v)||P)){const $=kn(v,l,s,n);if(wn(v,$),c==="out-in")return s.isLeaving=!0,$.afterLeave=()=>{s.isLeaving=!1,n.update()},hn(f);c==="in-out"&&u.type!==ye&&($.delayLeave=(T,O,R)=>{const q=xr(s,v);q[String(v.key)]=v,T._leaveCb=()=>{O(),T._leaveCb=void 0,delete g.delayedLeave},g.delayedLeave=R})}return f}}},fl=al;function xr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function kn(e,t,n,s){const{appear:r,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:u,onEnterCancelled:g,onBeforeLeave:x,onLeave:v,onAfterLeave:P,onLeaveCancelled:S,onBeforeAppear:$,onAppear:T,onAfterAppear:O,onAppearCancelled:R}=t,q=String(e.key),W=xr(n,e),oe=(L,Z)=>{L&&pe(L,s,9,Z)},He={mode:o,persisted:l,beforeEnter(L){let Z=c;if(!n.isMounted)if(r)Z=$||c;else return;L._leaveCb&&L._leaveCb(!0);const z=W[q];z&&qe(e,z)&&z.el._leaveCb&&z.el._leaveCb(),oe(Z,[L])},enter(L){let Z=f,z=u,me=g;if(!n.isMounted)if(r)Z=T||f,z=O||u,me=R||g;else return;let le=!1;const _e=L._enterCb=Xe=>{le||(le=!0,Xe?oe(me,[L]):oe(z,[L]),He.delayedLeave&&He.delayedLeave(),L._enterCb=void 0)};Z?(Z(L,_e),Z.length<=1&&_e()):_e()},leave(L,Z){const z=String(e.key);if(L._enterCb&&L._enterCb(!0),n.isUnmounting)return Z();oe(x,[L]);let me=!1;const le=L._leaveCb=_e=>{me||(me=!0,Z(),_e?oe(S,[L]):oe(P,[L]),L._leaveCb=void 0,W[z]===e&&delete W[z])};W[z]=e,v?(v(L,le),v.length<=1&&le()):le()},clone(L){return kn(L,t,n,s)}};return He}function hn(e){if(Zt(e))return e=it(e),e.children=null,e}function Cs(e){return Zt(e)?e.children?e.children[0]:void 0:e}function wn(e,t){e.shapeFlag&6&&e.component?wn(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 Cr(e,t=!1){let n=[],s=0;for(let r=0;r<e.length;r++){const o=e[r];o.type===ce?(o.patchFlag&128&&s++,n=n.concat(Cr(o.children,t))):(t||o.type!==ye)&&n.push(o)}if(s>1)for(let r=0;r<n.length;r++)n[r].patchFlag=-2;return n}function ul(e){return I(e)?{setup:e,name:e.name}:e}const En=e=>!!e.type.__asyncLoader,Zt=e=>e.type.__isKeepAlive;function dl(e,t){kr(e,"a",t)}function hl(e,t){kr(e,"da",t)}function kr(e,t,n=J){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Qt(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Zt(r.parent.vnode)&&pl(s,t,n,r),r=r.parent}}function pl(e,t,n,s){const r=Qt(t,e,s,!0);Er(()=>{Rn(s[t],r)},n)}function Qt(e,t,n=J,s=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;at(),ct(n);const c=pe(t,n,e,l);return Ye(),ft(),c});return s?r.unshift(o):r.push(o),o}}const Ie=e=>(t,n=J)=>(!Tt||e==="sp")&&Qt(e,t,n),gl=Ie("bm"),Zn=Ie("m"),ml=Ie("bu"),_l=Ie("u"),wr=Ie("bum"),Er=Ie("um"),bl=Ie("sp"),vl=Ie("rtg"),yl=Ie("rtc");function xl(e,t=J){Qt("ec",e,t)}let Tn=!0;function Cl(e){const t=Or(e),n=e.proxy,s=e.ctx;Tn=!1,t.beforeCreate&&ks(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:c,provide:f,inject:u,created:g,beforeMount:x,mounted:v,beforeUpdate:P,updated:S,activated:$,deactivated:T,beforeDestroy:O,beforeUnmount:R,destroyed:q,unmounted:W,render:oe,renderTracked:He,renderTriggered:L,errorCaptured:Z,serverPrefetch:z,expose:me,inheritAttrs:le,components:_e,directives:Xe,filters:os}=t;if(u&&kl(u,s,null,e.appContext.config.unwrapInjectedRef),l)for(const V in l){const H=l[V];I(H)&&(s[V]=H.bind(n))}if(r){const V=r.call(n,n);X(V)&&(e.data=Yt(V))}if(Tn=!0,o)for(const V in o){const H=o[V],Ee=I(H)?H.bind(n,n):I(H.get)?H.get.bind(n,n):ve,nn=!I(H)&&I(H.set)?H.set.bind(n):ve,ut=ss({get:Ee,set:nn});Object.defineProperty(s,V,{enumerable:!0,configurable:!0,get:()=>ut.value,set:Ze=>ut.value=Ze})}if(c)for(const V in c)Tr(c[V],s,n,V);if(f){const V=I(f)?f.call(n):f;Reflect.ownKeys(V).forEach(H=>{ll(H,V[H])})}g&&ks(g,e,"c");function ne(V,H){M(H)?H.forEach(Ee=>V(Ee.bind(n))):H&&V(H.bind(n))}if(ne(gl,x),ne(Zn,v),ne(ml,P),ne(_l,S),ne(dl,$),ne(hl,T),ne(xl,Z),ne(yl,He),ne(vl,L),ne(wr,R),ne(Er,W),ne(bl,z),M(me))if(me.length){const V=e.exposed||(e.exposed={});me.forEach(H=>{Object.defineProperty(V,H,{get:()=>n[H],set:Ee=>n[H]=Ee})})}else e.exposed||(e.exposed={});oe&&e.render===ve&&(e.render=oe),le!=null&&(e.inheritAttrs=le),_e&&(e.components=_e),Xe&&(e.directives=Xe)}function kl(e,t,n=ve,s=!1){M(e)&&(e=On(e));for(const r in e){const o=e[r];let l;X(o)?"default"in o?l=un(o.from||r,o.default,!0):l=un(o.from||r):l=un(o),Q(l)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:c=>l.value=c}):t[r]=l}}function ks(e,t,n){pe(M(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Tr(e,t,n,s){const r=s.includes(".")?yr(n,s):()=>n[s];if(Y(e)){const o=t[e];I(o)&&dn(r,o)}else if(I(e))dn(r,e.bind(n));else if(X(e))if(M(e))e.forEach(o=>Tr(o,t,n,s));else{const o=I(e.handler)?e.handler.bind(n):t[e.handler];I(o)&&dn(r,o,e)}}function Or(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,c=o.get(t);let f;return c?f=c:!r.length&&!n&&!s?f=t:(f={},r.length&&r.forEach(u=>Bt(f,u,l,!0)),Bt(f,t,l)),o.set(t,f),f}function Bt(e,t,n,s=!1){const{mixins:r,extends:o}=t;o&&Bt(e,o,n,!0),r&&r.forEach(l=>Bt(e,l,n,!0));for(const l in t)if(!(s&&l==="expose")){const c=wl[l]||n&&n[l];e[l]=c?c(e[l],t[l]):t[l]}return e}const wl={data:ws,props:Ve,emits:Ve,methods:Ve,computed:Ve,beforeCreate:te,created:te,beforeMount:te,mounted:te,beforeUpdate:te,updated:te,beforeDestroy:te,beforeUnmount:te,destroyed:te,unmounted:te,activated:te,deactivated:te,errorCaptured:te,serverPrefetch:te,components:Ve,directives:Ve,watch:Tl,provide:ws,inject:El};function ws(e,t){return t?e?function(){return G(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function El(e,t){return Ve(On(e),On(t))}function On(e){if(M(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function te(e,t){return e?[...new Set([].concat(e,t))]:t}function Ve(e,t){return e?G(G(Object.create(null),e),t):t}function Tl(e,t){if(!e)return t;if(!t)return e;const n=G(Object.create(null),e);for(const s in t)n[s]=te(e[s],t[s]);return n}function Ol(e,t,n,s=!1){const r={},o={};Rt(o,Gt,1),e.propsDefaults=Object.create(null),Pr(e,t,r,o);for(const l in e.propsOptions[0])l in r||(r[l]=void 0);n?e.props=s?r:Ko(r):e.type.props?e.props=r:e.props=o,e.attrs=o}function Pl(e,t,n,s){const{props:r,attrs:o,vnode:{patchFlag:l}}=e,c=j(r),[f]=e.propsOptions;let u=!1;if((s||l>0)&&!(l&16)){if(l&8){const g=e.vnode.dynamicProps;for(let x=0;x<g.length;x++){let v=g[x];const P=t[v];if(f)if(N(o,v))P!==o[v]&&(o[v]=P,u=!0);else{const S=ge(v);r[S]=Pn(f,c,S,P,e,!1)}else P!==o[v]&&(o[v]=P,u=!0)}}}else{Pr(e,t,r,o)&&(u=!0);let g;for(const x in c)(!t||!N(t,x)&&((g=Ae(x))===x||!N(t,g)))&&(f?n&&(n[x]!==void 0||n[g]!==void 0)&&(r[x]=Pn(f,c,x,void 0,e,!0)):delete r[x]);if(o!==c)for(const x in o)(!t||!N(t,x)&&!0)&&(delete o[x],u=!0)}u&&Me(e,"set","$attrs")}function Pr(e,t,n,s){const[r,o]=e.propsOptions;let l=!1,c;if(t)for(let f in t){if(St(f))continue;const u=t[f];let g;r&&N(r,g=ge(f))?!o||!o.includes(g)?n[g]=u:(c||(c={}))[g]=u:Yn(e.emitsOptions,f)||(!(f in s)||u!==s[f])&&(s[f]=u,l=!0)}if(o){const f=j(n),u=c||B;for(let g=0;g<o.length;g++){const x=o[g];n[x]=Pn(r,f,x,u[x],e,!N(u,x))}}return l}function Pn(e,t,n,s,r,o){const l=e[n];if(l!=null){const c=N(l,"default");if(c&&s===void 0){const f=l.default;if(l.type!==Function&&I(f)){const{propsDefaults:u}=r;n in u?s=u[n]:(ct(r),s=u[n]=f.call(null,t),Ye())}else s=f}l[0]&&(o&&!c?s=!1:l[1]&&(s===""||s===Ae(n))&&(s=!0))}return s}function Ar(e,t,n=!1){const s=t.propsCache,r=s.get(e);if(r)return r;const o=e.props,l={},c=[];let f=!1;if(!I(e)){const g=x=>{f=!0;const[v,P]=Ar(x,t,!0);G(l,v),P&&c.push(...P)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!o&&!f)return s.set(e,st),st;if(M(o))for(let g=0;g<o.length;g++){const x=ge(o[g]);Es(x)&&(l[x]=B)}else if(o)for(const g in o){const x=ge(g);if(Es(x)){const v=o[g],P=l[x]=M(v)||I(v)?{type:v}:v;if(P){const S=Ps(Boolean,P.type),$=Ps(String,P.type);P[0]=S>-1,P[1]=$<0||S<$,(S>-1||N(P,"default"))&&c.push(x)}}}const u=[l,c];return s.set(e,u),u}function Es(e){return e[0]!=="$"}function Ts(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Os(e,t){return Ts(e)===Ts(t)}function Ps(e,t){return M(t)?t.findIndex(n=>Os(n,e)):I(t)&&Os(t,e)?0:-1}const Mr=e=>e[0]==="_"||e==="$stable",Qn=e=>M(e)?e.map(ke):[ke(e)],Al=(e,t,n)=>{const s=Xn((...r)=>Qn(t(...r)),n);return s._c=!1,s},Ir=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Mr(r))continue;const o=e[r];if(I(o))t[r]=Al(r,o,s);else if(o!=null){const l=Qn(o);t[r]=()=>l}}},Fr=(e,t)=>{const n=Qn(t);e.slots.default=()=>n},Ml=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=j(t),Rt(t,"_",n)):Ir(t,e.slots={})}else e.slots={},t&&Fr(e,t);Rt(e.slots,Gt,1)},Il=(e,t,n)=>{const{vnode:s,slots:r}=e;let o=!0,l=B;if(s.shapeFlag&32){const c=t._;c?n&&c===1?o=!1:(G(r,t),!n&&c===1&&delete r._):(o=!t.$stable,Ir(t,r)),l=t}else t&&(Fr(e,t),l={default:1});if(o)for(const c in r)!Mr(c)&&!(c in l)&&delete r[c]};function Ke(e,t,n,s){const r=e.dirs,o=t&&t.dirs;for(let l=0;l<r.length;l++){const c=r[l];o&&(c.oldValue=o[l].value);let f=c.dir[s];f&&(at(),pe(f,n,8,[e.el,c,e,t]),ft())}}function Nr(){return{app:null,config:{isNativeTag:io,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 Fl=0;function Nl(e,t){return function(s,r=null){r!=null&&!X(r)&&(r=null);const o=Nr(),l=new Set;let c=!1;const f=o.app={_uid:Fl++,_component:s,_props:r,_container:null,_context:o,_instance:null,version:ni,get config(){return o.config},set config(u){},use(u,...g){return l.has(u)||(u&&I(u.install)?(l.add(u),u.install(f,...g)):I(u)&&(l.add(u),u(f,...g))),f},mixin(u){return o.mixins.includes(u)||o.mixins.push(u),f},component(u,g){return g?(o.components[u]=g,f):o.components[u]},directive(u,g){return g?(o.directives[u]=g,f):o.directives[u]},mount(u,g,x){if(!c){const v=ee(s,r);return v.appContext=o,g&&t?t(v,u):e(v,u,x),c=!0,f._container=u,u.__vue_app__=f,ns(v.component)||v.component.proxy}},unmount(){c&&(e(null,f._container),delete f._container.__vue_app__)},provide(u,g){return o.provides[u]=g,f}};return f}}function An(e,t,n,s,r=!1){if(M(e)){e.forEach((v,P)=>An(v,t&&(M(t)?t[P]:t),n,s,r));return}if(En(s)&&!r)return;const o=s.shapeFlag&4?ns(s.component)||s.component.proxy:s.el,l=r?null:o,{i:c,r:f}=e,u=t&&t.r,g=c.refs===B?c.refs={}:c.refs,x=c.setupState;if(u!=null&&u!==f&&(Y(u)?(g[u]=null,N(x,u)&&(x[u]=null)):Q(u)&&(u.value=null)),I(f))Le(f,c,12,[l,g]);else{const v=Y(f),P=Q(f);if(v||P){const S=()=>{if(e.f){const $=v?g[f]:f.value;r?M($)&&Rn($,o):M($)?$.includes(o)||$.push(o):v?g[f]=[o]:(f.value=[o],e.k&&(g[e.k]=f.value))}else v?(g[f]=l,N(x,f)&&(x[f]=l)):Q(f)&&(f.value=l,e.k&&(g[e.k]=l))};l?(S.id=-1,se(S,n)):S()}}}const se=ol;function Sl(e){return $l(e)}function $l(e,t){const n=po();n.__VUE__=!0;const{insert:s,remove:r,patchProp:o,createElement:l,createText:c,createComment:f,setText:u,setElementText:g,parentNode:x,nextSibling:v,setScopeId:P=ve,cloneNode:S,insertStaticContent:$}=e,T=(i,a,d,p=null,h=null,b=null,C=!1,_=null,y=!!a.dynamicChildren)=>{if(i===a)return;i&&!qe(i,a)&&(p=Pt(i),Fe(i,h,b,!0),i=null),a.patchFlag===-2&&(y=!1,a.dynamicChildren=null);const{type:m,ref:w,shapeFlag:k}=a;switch(m){case Gn:O(i,a,d,p);break;case ye:R(i,a,d,p);break;case pn:i==null&&q(a,d,p,C);break;case ce:Xe(i,a,d,p,h,b,C,_,y);break;default:k&1?He(i,a,d,p,h,b,C,_,y):k&6?os(i,a,d,p,h,b,C,_,y):(k&64||k&128)&&m.process(i,a,d,p,h,b,C,_,y,Qe)}w!=null&&h&&An(w,i&&i.ref,b,a||i,!a)},O=(i,a,d,p)=>{if(i==null)s(a.el=c(a.children),d,p);else{const h=a.el=i.el;a.children!==i.children&&u(h,a.children)}},R=(i,a,d,p)=>{i==null?s(a.el=f(a.children||""),d,p):a.el=i.el},q=(i,a,d,p)=>{[i.el,i.anchor]=$(i.children,a,d,p,i.el,i.anchor)},W=({el:i,anchor:a},d,p)=>{let h;for(;i&&i!==a;)h=v(i),s(i,d,p),i=h;s(a,d,p)},oe=({el:i,anchor:a})=>{let d;for(;i&&i!==a;)d=v(i),r(i),i=d;r(a)},He=(i,a,d,p,h,b,C,_,y)=>{C=C||a.type==="svg",i==null?L(a,d,p,h,b,C,_,y):me(i,a,h,b,C,_,y)},L=(i,a,d,p,h,b,C,_)=>{let y,m;const{type:w,props:k,shapeFlag:E,transition:A,patchFlag:F,dirs:D}=i;if(i.el&&S!==void 0&&F===-1)y=i.el=S(i.el);else{if(y=i.el=l(i.type,b,k&&k.is,k),E&8?g(y,i.children):E&16&&z(i.children,y,null,p,h,b&&w!=="foreignObject",C,_),D&&Ke(i,null,p,"created"),k){for(const K in k)K!=="value"&&!St(K)&&o(y,K,null,k[K],b,i.children,p,h,Te);"value"in k&&o(y,"value",null,k.value),(m=k.onVnodeBeforeMount)&&Ce(m,p,i)}Z(y,i,i.scopeId,C,p)}D&&Ke(i,null,p,"beforeMount");const U=(!h||h&&!h.pendingBranch)&&A&&!A.persisted;U&&A.beforeEnter(y),s(y,a,d),((m=k&&k.onVnodeMounted)||U||D)&&se(()=>{m&&Ce(m,p,i),U&&A.enter(y),D&&Ke(i,null,p,"mounted")},h)},Z=(i,a,d,p,h)=>{if(d&&P(i,d),p)for(let b=0;b<p.length;b++)P(i,p[b]);if(h){let b=h.subTree;if(a===b){const C=h.vnode;Z(i,C,C.scopeId,C.slotScopeIds,h.parent)}}},z=(i,a,d,p,h,b,C,_,y=0)=>{for(let m=y;m<i.length;m++){const w=i[m]=_?$e(i[m]):ke(i[m]);T(null,w,a,d,p,h,b,C,_)}},me=(i,a,d,p,h,b,C)=>{const _=a.el=i.el;let{patchFlag:y,dynamicChildren:m,dirs:w}=a;y|=i.patchFlag&16;const k=i.props||B,E=a.props||B;let A;d&&De(d,!1),(A=E.onVnodeBeforeUpdate)&&Ce(A,d,a,i),w&&Ke(a,i,d,"beforeUpdate"),d&&De(d,!0);const F=h&&a.type!=="foreignObject";if(m?le(i.dynamicChildren,m,_,d,p,F,b):C||Ee(i,a,_,null,d,p,F,b,!1),y>0){if(y&16)_e(_,a,k,E,d,p,h);else if(y&2&&k.class!==E.class&&o(_,"class",null,E.class,h),y&4&&o(_,"style",k.style,E.style,h),y&8){const D=a.dynamicProps;for(let U=0;U<D.length;U++){const K=D[U],be=k[K],Ge=E[K];(Ge!==be||K==="value")&&o(_,K,be,Ge,h,i.children,d,p,Te)}}y&1&&i.children!==a.children&&g(_,a.children)}else!C&&m==null&&_e(_,a,k,E,d,p,h);((A=E.onVnodeUpdated)||w)&&se(()=>{A&&Ce(A,d,a,i),w&&Ke(a,i,d,"updated")},p)},le=(i,a,d,p,h,b,C)=>{for(let _=0;_<a.length;_++){const y=i[_],m=a[_],w=y.el&&(y.type===ce||!qe(y,m)||y.shapeFlag&70)?x(y.el):d;T(y,m,w,null,p,h,b,C,!0)}},_e=(i,a,d,p,h,b,C)=>{if(d!==p){for(const _ in p){if(St(_))continue;const y=p[_],m=d[_];y!==m&&_!=="value"&&o(i,_,m,y,C,a.children,h,b,Te)}if(d!==B)for(const _ in d)!St(_)&&!(_ in p)&&o(i,_,d[_],null,C,a.children,h,b,Te);"value"in p&&o(i,"value",d.value,p.value)}},Xe=(i,a,d,p,h,b,C,_,y)=>{const m=a.el=i?i.el:c(""),w=a.anchor=i?i.anchor:c("");let{patchFlag:k,dynamicChildren:E,slotScopeIds:A}=a;A&&(_=_?_.concat(A):A),i==null?(s(m,d,p),s(w,d,p),z(a.children,d,w,h,b,C,_,y)):k>0&&k&64&&E&&i.dynamicChildren?(le(i.dynamicChildren,E,d,h,b,C,_),(a.key!=null||h&&a===h.subTree)&&Sr(i,a,!0)):Ee(i,a,d,w,h,b,C,_,y)},os=(i,a,d,p,h,b,C,_,y)=>{a.slotScopeIds=_,i==null?a.shapeFlag&512?h.ctx.activate(a,d,p,C,y):tn(a,d,p,h,b,C,y):ne(i,a,y)},tn=(i,a,d,p,h,b,C)=>{const _=i.component=Jl(i,p,h);if(Zt(i)&&(_.ctx.renderer=Qe),Yl(_),_.asyncDep){if(h&&h.registerDep(_,V),!i.el){const y=_.subTree=ee(ye);R(null,y,a,d)}return}V(_,i,a,d,h,b,C)},ne=(i,a,d)=>{const p=a.component=i.component;if(nl(i,a,d))if(p.asyncDep&&!p.asyncResolved){H(p,a,d);return}else p.next=a,Xo(p.update),p.update();else a.component=i.component,a.el=i.el,p.vnode=a},V=(i,a,d,p,h,b,C)=>{const _=()=>{if(i.isMounted){let{next:w,bu:k,u:E,parent:A,vnode:F}=i,D=w,U;De(i,!1),w?(w.el=F.el,H(i,w,C)):w=F,k&&an(k),(U=w.props&&w.props.onVnodeBeforeUpdate)&&Ce(U,A,w,F),De(i,!0);const K=fn(i),be=i.subTree;i.subTree=K,T(be,K,x(be.el),Pt(be),i,h,b),w.el=K.el,D===null&&sl(i,K.el),E&&se(E,h),(U=w.props&&w.props.onVnodeUpdated)&&se(()=>Ce(U,A,w,F),h)}else{let w;const{el:k,props:E}=a,{bm:A,m:F,parent:D}=i,U=En(a);if(De(i,!1),A&&an(A),!U&&(w=E&&E.onVnodeBeforeMount)&&Ce(w,D,a),De(i,!0),k&&rn){const K=()=>{i.subTree=fn(i),rn(k,i.subTree,i,h,null)};U?a.type.__asyncLoader().then(()=>!i.isUnmounted&&K()):K()}else{const K=i.subTree=fn(i);T(null,K,d,p,i,h,b),a.el=K.el}if(F&&se(F,h),!U&&(w=E&&E.onVnodeMounted)){const K=a;se(()=>Ce(w,D,K),h)}a.shapeFlag&256&&i.a&&se(i.a,h),i.isMounted=!0,a=d=p=null}},y=i.effect=new Hn(_,()=>dr(i.update),i.scope),m=i.update=y.run.bind(y);m.id=i.uid,De(i,!0),m()},H=(i,a,d)=>{a.component=i;const p=i.vnode.props;i.vnode=a,i.next=null,Pl(i,a.props,p,d),Il(i,a.children,d),at(),Jn(void 0,i.update),ft()},Ee=(i,a,d,p,h,b,C,_,y=!1)=>{const m=i&&i.children,w=i?i.shapeFlag:0,k=a.children,{patchFlag:E,shapeFlag:A}=a;if(E>0){if(E&128){ut(m,k,d,p,h,b,C,_,y);return}else if(E&256){nn(m,k,d,p,h,b,C,_,y);return}}A&8?(w&16&&Te(m,h,b),k!==m&&g(d,k)):w&16?A&16?ut(m,k,d,p,h,b,C,_,y):Te(m,h,b,!0):(w&8&&g(d,""),A&16&&z(k,d,p,h,b,C,_,y))},nn=(i,a,d,p,h,b,C,_,y)=>{i=i||st,a=a||st;const m=i.length,w=a.length,k=Math.min(m,w);let E;for(E=0;E<k;E++){const A=a[E]=y?$e(a[E]):ke(a[E]);T(i[E],A,d,null,h,b,C,_,y)}m>w?Te(i,h,b,!0,!1,k):z(a,d,p,h,b,C,_,y,k)},ut=(i,a,d,p,h,b,C,_,y)=>{let m=0;const w=a.length;let k=i.length-1,E=w-1;for(;m<=k&&m<=E;){const A=i[m],F=a[m]=y?$e(a[m]):ke(a[m]);if(qe(A,F))T(A,F,d,null,h,b,C,_,y);else break;m++}for(;m<=k&&m<=E;){const A=i[k],F=a[E]=y?$e(a[E]):ke(a[E]);if(qe(A,F))T(A,F,d,null,h,b,C,_,y);else break;k--,E--}if(m>k){if(m<=E){const A=E+1,F=A<w?a[A].el:p;for(;m<=E;)T(null,a[m]=y?$e(a[m]):ke(a[m]),d,F,h,b,C,_,y),m++}}else if(m>E)for(;m<=k;)Fe(i[m],h,b,!0),m++;else{const A=m,F=m,D=new Map;for(m=F;m<=E;m++){const ie=a[m]=y?$e(a[m]):ke(a[m]);ie.key!=null&&D.set(ie.key,m)}let U,K=0;const be=E-F+1;let Ge=!1,cs=0;const dt=new Array(be);for(m=0;m<be;m++)dt[m]=0;for(m=A;m<=k;m++){const ie=i[m];if(K>=be){Fe(ie,h,b,!0);continue}let xe;if(ie.key!=null)xe=D.get(ie.key);else for(U=F;U<=E;U++)if(dt[U-F]===0&&qe(ie,a[U])){xe=U;break}xe===void 0?Fe(ie,h,b,!0):(dt[xe-F]=m+1,xe>=cs?cs=xe:Ge=!0,T(ie,a[xe],d,null,h,b,C,_,y),K++)}const as=Ge?jl(dt):st;for(U=as.length-1,m=be-1;m>=0;m--){const ie=F+m,xe=a[ie],fs=ie+1<w?a[ie+1].el:p;dt[m]===0?T(null,xe,d,fs,h,b,C,_,y):Ge&&(U<0||m!==as[U]?Ze(xe,d,fs,2):U--)}}},Ze=(i,a,d,p,h=null)=>{const{el:b,type:C,transition:_,children:y,shapeFlag:m}=i;if(m&6){Ze(i.component.subTree,a,d,p);return}if(m&128){i.suspense.move(a,d,p);return}if(m&64){C.move(i,a,d,Qe);return}if(C===ce){s(b,a,d);for(let k=0;k<y.length;k++)Ze(y[k],a,d,p);s(i.anchor,a,d);return}if(C===pn){W(i,a,d);return}if(p!==2&&m&1&&_)if(p===0)_.beforeEnter(b),s(b,a,d),se(()=>_.enter(b),h);else{const{leave:k,delayLeave:E,afterLeave:A}=_,F=()=>s(b,a,d),D=()=>{k(b,()=>{F(),A&&A()})};E?E(b,F,D):D()}else s(b,a,d)},Fe=(i,a,d,p=!1,h=!1)=>{const{type:b,props:C,ref:_,children:y,dynamicChildren:m,shapeFlag:w,patchFlag:k,dirs:E}=i;if(_!=null&&An(_,null,d,i,!0),w&256){a.ctx.deactivate(i);return}const A=w&1&&E,F=!En(i);let D;if(F&&(D=C&&C.onVnodeBeforeUnmount)&&Ce(D,a,i),w&6)Xr(i.component,d,p);else{if(w&128){i.suspense.unmount(d,p);return}A&&Ke(i,null,a,"beforeUnmount"),w&64?i.type.remove(i,a,d,h,Qe,p):m&&(b!==ce||k>0&&k&64)?Te(m,a,d,!1,!0):(b===ce&&k&384||!h&&w&16)&&Te(y,a,d),p&&ls(i)}(F&&(D=C&&C.onVnodeUnmounted)||A)&&se(()=>{D&&Ce(D,a,i),A&&Ke(i,null,a,"unmounted")},d)},ls=i=>{const{type:a,el:d,anchor:p,transition:h}=i;if(a===ce){Yr(d,p);return}if(a===pn){oe(i);return}const b=()=>{r(d),h&&!h.persisted&&h.afterLeave&&h.afterLeave()};if(i.shapeFlag&1&&h&&!h.persisted){const{leave:C,delayLeave:_}=h,y=()=>C(d,b);_?_(i.el,b,y):y()}else b()},Yr=(i,a)=>{let d;for(;i!==a;)d=v(i),r(i),i=d;r(a)},Xr=(i,a,d)=>{const{bum:p,scope:h,update:b,subTree:C,um:_}=i;p&&an(p),h.stop(),b&&(b.active=!1,Fe(C,i,a,d)),_&&se(_,a),se(()=>{i.isUnmounted=!0},a),a&&a.pendingBranch&&!a.isUnmounted&&i.asyncDep&&!i.asyncResolved&&i.suspenseId===a.pendingId&&(a.deps--,a.deps===0&&a.resolve())},Te=(i,a,d,p=!1,h=!1,b=0)=>{for(let C=b;C<i.length;C++)Fe(i[C],a,d,p,h)},Pt=i=>i.shapeFlag&6?Pt(i.component.subTree):i.shapeFlag&128?i.suspense.next():v(i.anchor||i.el),is=(i,a,d)=>{i==null?a._vnode&&Fe(a._vnode,null,null,!0):T(a._vnode||null,i,a,null,null,null,d),gr(),a._vnode=i},Qe={p:T,um:Fe,m:Ze,r:ls,mt:tn,mc:z,pc:Ee,pbc:le,n:Pt,o:e};let sn,rn;return t&&([sn,rn]=t(Qe)),{render:is,hydrate:sn,createApp:Nl(is,sn)}}function De({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Sr(e,t,n=!1){const s=e.children,r=t.children;if(M(s)&&M(r))for(let o=0;o<s.length;o++){const l=s[o];let c=r[o];c.shapeFlag&1&&!c.dynamicChildren&&((c.patchFlag<=0||c.patchFlag===32)&&(c=r[o]=$e(r[o]),c.el=l.el),n||Sr(l,c))}}function jl(e){const t=e.slice(),n=[0];let s,r,o,l,c;const f=e.length;for(s=0;s<f;s++){const u=e[s];if(u!==0){if(r=n[n.length-1],e[r]<u){t[s]=r,n.push(s);continue}for(o=0,l=n.length-1;o<l;)c=o+l>>1,e[n[c]]<u?o=c+1:l=c;u<e[n[o]]&&(o>0&&(t[s]=n[o-1]),n[o]=s)}}for(o=n.length,l=n[o-1];o-- >0;)n[o]=l,l=t[l];return n}const Rl=e=>e.__isTeleport,$r="components",jr=Symbol();function Ll(e){return Y(e)?Ul($r,e,!1)||e:e||jr}function Ul(e,t,n=!0,s=!1){const r=he||J;if(r){const o=r.type;if(e===$r){const c=Ql(o);if(c&&(c===t||c===ge(t)||c===zt(ge(t))))return o}const l=As(r[e]||o[e],t)||As(r.appContext[e],t);return!l&&s?o:l}}function As(e,t){return e&&(e[t]||e[ge(t)]||e[zt(ge(t))])}const ce=Symbol(void 0),Gn=Symbol(void 0),ye=Symbol(void 0),pn=Symbol(void 0),yt=[];let Je=null;function re(e=!1){yt.push(Je=e?null:[])}function Bl(){yt.pop(),Je=yt[yt.length-1]||null}let Ht=1;function Ms(e){Ht+=e}function Rr(e){return e.dynamicChildren=Ht>0?Je||st:null,Bl(),Ht>0&&Je&&Je.push(e),e}function Ue(e,t,n,s,r,o){return Rr(je(e,t,n,s,r,o,!0))}function lt(e,t,n,s,r){return Rr(ee(e,t,n,s,r,!0))}function Lr(e){return e?e.__v_isVNode===!0:!1}function qe(e,t){return e.type===t.type&&e.key===t.key}const Gt="__vInternal",Ur=({key:e})=>e!=null?e:null,$t=({ref:e,ref_key:t,ref_for:n})=>e!=null?Y(e)||Q(e)||I(e)?{i:he,r:e,k:t,f:!!n}:e:null;function je(e,t=null,n=null,s=0,r=null,o=e===ce?0:1,l=!1,c=!1){const f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ur(t),ref:t&&$t(t),scopeId:br,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null};return c?(es(f,n),o&128&&e.normalize(f)):n&&(f.shapeFlag|=Y(n)?8:16),Ht>0&&!l&&Je&&(f.patchFlag>0||o&6)&&f.patchFlag!==32&&Je.push(f),f}const ee=Hl;function Hl(e,t=null,n=null,s=0,r=null,o=!1){if((!e||e===jr)&&(e=ye),Lr(e)){const c=it(e,t,!0);return n&&es(c,n),c}if(Gl(e)&&(e=e.__vccOpts),t){t=Kl(t);let{class:c,style:f}=t;c&&!Y(c)&&(t.class=Ot(c)),X(f)&&(or(f)&&!M(f)&&(f=G({},f)),t.style=$n(f))}const l=Y(e)?1:rl(e)?128:Rl(e)?64:X(e)?4:I(e)?2:0;return je(e,t,n,s,r,l,o,!0)}function Kl(e){return e?or(e)||Gt in e?G({},e):e:null}function it(e,t,n=!1){const{props:s,ref:r,patchFlag:o,children:l}=e,c=t?ts(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ur(c),ref:t&&t.ref?n&&r?M(r)?r.concat($t(t)):[r,$t(t)]:$t(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ce?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&it(e.ssContent),ssFallback:e.ssFallback&&it(e.ssFallback),el:e.el,anchor:e.anchor}}function Dl(e=" ",t=0){return ee(Gn,null,e,t)}function xt(e="",t=!1){return t?(re(),lt(ye,null,e)):ee(ye,null,e)}function ke(e){return e==null||typeof e=="boolean"?ee(ye):M(e)?ee(ce,null,e.slice()):typeof e=="object"?$e(e):ee(Gn,null,String(e))}function $e(e){return e.el===null||e.memo?e:it(e)}function es(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(M(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),es(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Gt in t)?t._ctx=he:r===3&&he&&(he.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else I(t)?(t={default:t,_ctx:he},n=32):(t=String(t),s&64?(n=16,t=[Dl(t)]):n=8);e.children=t,e.shapeFlag|=n}function ts(...e){const t={};for(let n=0;n<e.length;n++){const s=e[n];for(const r in s)if(r==="class")t.class!==s.class&&(t.class=Ot([t.class,s.class]));else if(r==="style")t.style=$n([t.style,s.style]);else if(Vt(r)){const o=t[r],l=s[r];l&&o!==l&&!(M(o)&&o.includes(l))&&(t[r]=o?[].concat(o,l):l)}else r!==""&&(t[r]=s[r])}return t}function Ce(e,t,n,s=null){pe(e,t,7,[n,s])}function Vl(e,t,n,s){let r;const o=n&&n[s];if(M(e)||Y(e)){r=new Array(e.length);for(let l=0,c=e.length;l<c;l++)r[l]=t(e[l],l,void 0,o&&o[l])}else if(typeof e=="number"){r=new Array(e);for(let l=0;l<e;l++)r[l]=t(l+1,l,void 0,o&&o[l])}else if(X(e))if(e[Symbol.iterator])r=Array.from(e,(l,c)=>t(l,c,void 0,o&&o[c]));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,f=l.length;c<f;c++){const u=l[c];r[c]=t(e[u],u,c,o&&o[c])}}else r=[];return n&&(n[s]=r),r}function Br(e,t,n={},s,r){if(he.isCE)return ee("slot",t==="default"?null:{name:t},s&&s());let o=e[t];o&&o._c&&(o._d=!1),re();const l=o&&Hr(o(n)),c=lt(ce,{key:n.key||`_${t}`},l||(s?s():[]),l&&e._===1?64:-2);return!r&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),o&&o._c&&(o._d=!0),c}function Hr(e){return e.some(t=>Lr(t)?!(t.type===ye||t.type===ce&&!Hr(t.children)):!0)?e:null}const Mn=e=>e?Dr(e)?ns(e)||e.proxy:Mn(e.parent):null,Kt=G(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=>Mn(e.parent),$root:e=>Mn(e.root),$emit:e=>e.emit,$options:e=>Or(e),$forceUpdate:e=>()=>dr(e.update),$nextTick:e=>ur.bind(e.proxy),$watch:e=>il.bind(e)}),ql={get({_:e},t){const{ctx:n,setupState:s,data:r,props:o,accessCache:l,type:c,appContext:f}=e;let u;if(t[0]!=="$"){const P=l[t];if(P!==void 0)switch(P){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(s!==B&&N(s,t))return l[t]=1,s[t];if(r!==B&&N(r,t))return l[t]=2,r[t];if((u=e.propsOptions[0])&&N(u,t))return l[t]=3,o[t];if(n!==B&&N(n,t))return l[t]=4,n[t];Tn&&(l[t]=0)}}const g=Kt[t];let x,v;if(g)return t==="$attrs"&&fe(e,"get",t),g(e);if((x=c.__cssModules)&&(x=x[t]))return x;if(n!==B&&N(n,t))return l[t]=4,n[t];if(v=f.config.globalProperties,N(v,t))return v[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:o}=e;if(r!==B&&N(r,t))r[t]=n;else if(s!==B&&N(s,t))s[t]=n;else if(N(e.props,t))return!1;return t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:o}},l){let c;return!!n[l]||e!==B&&N(e,l)||t!==B&&N(t,l)||(c=o[0])&&N(c,l)||N(s,l)||N(Kt,l)||N(r.config.globalProperties,l)}},Wl=Nr();let zl=0;function Jl(e,t,n){const s=e.type,r=(t?t.appContext:e.appContext)||Wl,o={uid:zl++,vnode:e,type:s,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,scope:new go(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Ar(s,r),emitsOptions:_r(s,r),emit:null,emitted:null,propsDefaults:B,inheritAttrs:s.inheritAttrs,ctx:B,data:B,props:B,attrs:B,slots:B,refs:B,setupState:B,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=Go.bind(null,o),e.ce&&e.ce(o),o}let J=null;const Kr=()=>J||he,ct=e=>{J=e,e.scope.on()},Ye=()=>{J&&J.scope.off(),J=null};function Dr(e){return e.vnode.shapeFlag&4}let Tt=!1;function Yl(e,t=!1){Tt=t;const{props:n,children:s}=e.vnode,r=Dr(e);Ol(e,n,r,t),Ml(e,s);const o=r?Xl(e,t):void 0;return Tt=!1,o}function Xl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=lr(new Proxy(e.ctx,ql));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?qr(e):null;ct(e),at();const o=Le(s,e,0,[e.props,r]);if(ft(),Ye(),Vs(o)){if(o.then(Ye,Ye),t)return o.then(l=>{Is(e,l,t)}).catch(l=>{Xt(l,e,0)});e.asyncDep=o}else Is(e,o,t)}else Vr(e,t)}function Is(e,t,n){I(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:X(t)&&(e.setupState=ar(t)),Vr(e,n)}let Fs;function Vr(e,t,n){const s=e.type;if(!e.render){if(!t&&Fs&&!s.render){const r=s.template;if(r){const{isCustomElement:o,compilerOptions:l}=e.appContext.config,{delimiters:c,compilerOptions:f}=s,u=G(G({isCustomElement:o,delimiters:c},l),f);s.render=Fs(r,u)}}e.render=s.render||ve}ct(e),at(),Cl(e),ft(),Ye()}function Zl(e){return new Proxy(e.attrs,{get(t,n){return fe(e,"get","$attrs"),t[n]}})}function qr(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=Zl(e))},slots:e.slots,emit:e.emit,expose:t}}function ns(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ar(lr(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Kt)return Kt[n](e)}}))}function Ql(e){return I(e)&&e.displayName||e.name}function Gl(e){return I(e)&&"__vccOpts"in e}const ss=(e,t)=>zo(e,t,Tt);function ei(){return ti().attrs}function ti(){const e=Kr();return e.setupContext||(e.setupContext=qr(e))}const ni="3.2.30",si="http://www.w3.org/2000/svg",We=typeof document!="undefined"?document:null,Ns=We&&We.createElement("template"),ri={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?We.createElementNS(si,e):We.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>We.createTextNode(e),createComment:e=>We.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>We.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,s,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Ns.innerHTML=s?`<svg>${e}</svg>`:e;const c=Ns.content;if(s){const f=c.firstChild;for(;f.firstChild;)c.appendChild(f.firstChild);c.removeChild(f)}t.insertBefore(c,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function oi(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function li(e,t,n){const s=e.style,r=Y(n);if(n&&!r){for(const o in n)In(s,o,n[o]);if(t&&!Y(t))for(const o in t)n[o]==null&&In(s,o,"")}else{const o=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=o)}}const Ss=/\s*!important$/;function In(e,t,n){if(M(n))n.forEach(s=>In(e,t,s));else if(t.startsWith("--"))e.setProperty(t,n);else{const s=ii(e,t);Ss.test(n)?e.setProperty(Ae(s),n.replace(Ss,""),"important"):e[s]=n}}const $s=["Webkit","Moz","ms"],gn={};function ii(e,t){const n=gn[t];if(n)return n;let s=ge(t);if(s!=="filter"&&s in e)return gn[t]=s;s=zt(s);for(let r=0;r<$s.length;r++){const o=$s[r]+s;if(o in e)return gn[t]=o}return t}const js="http://www.w3.org/1999/xlink";function ci(e,t,n,s,r){if(s&&t.startsWith("xlink:"))n==null?e.removeAttributeNS(js,t.slice(6,t.length)):e.setAttributeNS(js,t,n);else{const o=so(t);n==null||o&&!Hs(n)?e.removeAttribute(t):e.setAttribute(t,o?"":n)}}function ai(e,t,n,s,r,o,l){if(t==="innerHTML"||t==="textContent"){s&&l(s,r,o),e[t]=n==null?"":n;return}if(t==="value"&&e.tagName!=="PROGRESS"&&!e.tagName.includes("-")){e._value=n;const c=n==null?"":n;(e.value!==c||e.tagName==="OPTION")&&(e.value=c),n==null&&e.removeAttribute(t);return}if(n===""||n==null){const c=typeof e[t];if(c==="boolean"){e[t]=Hs(n);return}else if(n==null&&c==="string"){e[t]="",e.removeAttribute(t);return}else if(c==="number"){try{e[t]=0}catch{}e.removeAttribute(t);return}}try{e[t]=n}catch{}}let Dt=Date.now,Wr=!1;if(typeof window!="undefined"){Dt()>document.createEvent("Event").timeStamp&&(Dt=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);Wr=!!(e&&Number(e[1])<=53)}let Fn=0;const fi=Promise.resolve(),ui=()=>{Fn=0},di=()=>Fn||(fi.then(ui),Fn=Dt());function hi(e,t,n,s){e.addEventListener(t,n,s)}function pi(e,t,n,s){e.removeEventListener(t,n,s)}function gi(e,t,n,s,r=null){const o=e._vei||(e._vei={}),l=o[t];if(s&&l)l.value=s;else{const[c,f]=mi(t);if(s){const u=o[t]=_i(s,r);hi(e,c,u,f)}else l&&(pi(e,c,l,f),o[t]=void 0)}}const Rs=/(?:Once|Passive|Capture)$/;function mi(e){let t;if(Rs.test(e)){t={};let n;for(;n=e.match(Rs);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Ae(e.slice(2)),t]}function _i(e,t){const n=s=>{const r=s.timeStamp||Dt();(Wr||r>=n.attached-1)&&pe(bi(s,n.value),t,5,[s])};return n.value=e,n.attached=di(),n}function bi(e,t){if(M(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Ls=/^on[a-z]/,vi=(e,t,n,s,r=!1,o,l,c,f)=>{t==="class"?oi(e,s,r):t==="style"?li(e,n,s):Vt(t)?jn(t)||gi(e,t,n,s,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):yi(e,t,s,r))?ai(e,t,s,o,l,c,f):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),ci(e,t,s,r))};function yi(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Ls.test(t)&&I(n)):t==="spellcheck"||t==="draggable"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ls.test(t)&&Y(n)?!1:t in e}function xi(e,t){const n=ul(e);class s extends rs{constructor(o){super(n,o,t)}}return s.def=n,s}const Ci=typeof HTMLElement!="undefined"?HTMLElement:class{};class rs extends Ci{constructor(t,n={},s){super();this._def=t,this._props=n,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&s?s(this._createVNode(),this.shadowRoot):this.attachShadow({mode:"open"})}connectedCallback(){this._connected=!0,this._instance||this._resolveDef()}disconnectedCallback(){this._connected=!1,ur(()=>{this._connected||(Bs(null,this.shadowRoot),this._instance=null)})}_resolveDef(){if(this._resolved)return;this._resolved=!0;for(let s=0;s<this.attributes.length;s++)this._setAttr(this.attributes[s].name);new MutationObserver(s=>{for(const r of s)this._setAttr(r.attributeName)}).observe(this,{attributes:!0});const t=s=>{const{props:r,styles:o}=s,l=!M(r),c=r?l?Object.keys(r):r:[];let f;if(l)for(const u in this._props){const g=r[u];(g===Number||g&&g.type===Number)&&(this._props[u]=mn(this._props[u]),(f||(f=Object.create(null)))[u]=!0)}this._numberProps=f;for(const u of Object.keys(this))u[0]!=="_"&&this._setProp(u,this[u],!0,!1);for(const u of c.map(ge))Object.defineProperty(this,u,{get(){return this._getProp(u)},set(g){this._setProp(u,g)}});this._applyStyles(o),this._update()},n=this._def.__asyncLoader;n?n().then(t):t(this._def)}_setAttr(t){let n=this.getAttribute(t);this._numberProps&&this._numberProps[t]&&(n=mn(n)),this._setProp(ge(t),n,!1)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,r=!0){n!==this._props[t]&&(this._props[t]=n,r&&this._instance&&this._update(),s&&(n===!0?this.setAttribute(Ae(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Ae(t),n+""):n||this.removeAttribute(Ae(t))))}_update(){Bs(this._createVNode(),this.shadowRoot)}_createVNode(){const t=ee(this._def,G({},this._props));return this._instance||(t.ce=n=>{this._instance=n,n.isCE=!0,n.emit=(r,...o)=>{this.dispatchEvent(new CustomEvent(r,{detail:o}))};let s=this;for(;s=s&&(s.parentNode||s.host);)if(s instanceof rs){n.parent=s._instance;break}}),t}_applyStyles(t){t&&t.forEach(n=>{const s=document.createElement("style");s.textContent=n,this.shadowRoot.appendChild(s)})}}const ki={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};fl.props;const wi=["ctrl","shift","alt","meta"],Ei={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)=>wi.some(n=>e[`${n}Key`]&&!t.includes(n))},Ti=(e,t)=>(n,...s)=>{for(let r=0;r<t.length;r++){const o=Ei[t[r]];if(o&&o(n,t))return}return e(n,...s)},Oi=G({patchProp:vi},ri);let Us;function Pi(){return Us||(Us=Sl(Oi))}const Bs=(...e)=>{Pi().render(...e)};var Ai=`.kvass-contact-checkbox{display:flex;align-items:baseline;gap:.5rem}.kvass-contact-checkbox__element{margin:0}.kvass-contact-checkbox--required span:after{content:"*";color:var(--kvass-contact-error, var(--kvass-contact-default-error));margin-left:.3rem}
2
+ `,en=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n};const Mi=["value"],Ii=["innerHTML"],Fi={inheritAttrs:!1},Ni=Object.assign(Fi,{props:{modelValue:[Boolean,Array],state:String,label:String},emits:["update:modelValue"],setup(e,{emit:t}){const n=e;function s(r){return typeof n.modelValue=="boolean"?t("update:modelValue",r.target.checked):t("update:modelValue",r.target.checked?[...n.modelValue,n.state]:n.modelValue.filter(o=>o!==n.state))}return(r,o)=>(re(),Ue("label",{class:Ot(["kvass-contact-checkbox",[{"kvass-contact-checkbox--required":"required"in r.$attrs},r.$attrs.class]])},[je("input",ts({class:"kvass-contact-checkbox__element",type:"checkbox"},r.$attrs,{value:e.modelValue,onInput:s}),null,16,Mi),je("span",{class:"kvass-contact-checkbox__label",innerHTML:e.label},null,8,Ii)],2))}});var jt=en(Ni,[["styles",[Ai]]]),Si=`.kvass-contact-field{display:flex;flex-direction:column;gap:.3rem}.kvass-contact-field__element{padding:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2);border-radius:var(--kvass-contact-border-radius, var(--kvass-contact-default-border-radius));border:1px solid var(--kvass-contact-border-color, var(--kvass-contact-default-border-color));resize:vertical;font:inherit}.kvass-contact-field__element:focus-visible{outline:2px solid var(--kvass-contact-color, var(--kvass-contact-default-color));outline-offset:2px}.kvass-contact-field--required .kvass-contact-field__label:after{content:"*";color:var(--kvass-contact-error, var(--kvass-contact-default-error));margin-left:.3rem}.kvass-contact-field--required.kvass-contact-field--focused .kvass-contact-field__element:invalid{border-color:var(--kvass-contact-error, var(--kvass-contact-default-error))}.kvass-contact-field--full-width{grid-column-end:span var(--kvass-contact-grid-columns, var(--kvass-contact-default-grid-columns))}
3
+ `;const $i=["for"],ji={key:0,class:"kvass-contact-field__label"},Ri={inheritAttrs:!1},Li=Object.assign(Ri,{props:{modelValue:[String,Array],label:String,type:String},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,s=ss(()=>{switch(n.type){case"textarea":return"textarea";case"select":return"select";default:return"input"}}),r=pt(!1);function o(l){t("update:modelValue",l.target.value),r.value=!0}return(l,c)=>(re(),Ue("label",{class:Ot(["kvass-contact-field",[{"kvass-contact-field--required":"required"in l.$attrs,"kvass-contact-field--focused":r.value},l.$attrs.class]]),for:l.$attrs.id},[e.label?(re(),Ue("span",ji,_t(e.label),1)):xt("",!0),(re(),lt(Ll(de(s)),ts({class:"kvass-contact-field__element"},l.$attrs,{onInput:o,value:e.modelValue}),{default:Xn(()=>[Br(l.$slots,"default")]),_:3},16,["value"]))],10,$i))}});var mt=en(Li,[["styles",[Si]]]),Ui=`.kvass-contact-fieldset{position:relative;display:flex;flex-direction:column;gap:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 4);margin:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 1.5) 0 0 0;padding:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2);border-radius:var(--kvass-contact-border-radius, var(--kvass-contact-default-border-radius));border:1px solid var(--kvass-contact-border-color, var(--kvass-contact-default-border-color));font:inherit}.kvass-contact-fieldset:focus-visible{outline:2px solid var(--kvass-contact-color, var(--kvass-contact-default-color));outline-offset:2px}.kvass-contact-fieldset__label{margin:0;padding:0;position:absolute;top:-1.4rem;left:0}
4
+ `;const Bi={class:"kvass-contact-fieldset"},Hi={key:0,class:"kvass-contact-fieldset__label"},Ki={props:{label:String},setup(e){return(t,n)=>(re(),Ue("fieldset",Bi,[e.label?(re(),Ue("legend",Hi,_t(e.label),1)):xt("",!0),Br(t.$slots,"default")]))}};var zr=en(Ki,[["styles",[Ui]]]);function Jr(e,t,n){return n&&n instanceof Array&&n.length?Promise.all(n.map(s=>{let r={onModel:"Project",ref:s};return Jr(e,ln(on({},t),{project:s,references:[r,...t.references]}))})):n&&!n.length?Di(e,t.contact,t.comment):fetch(`${e}/api/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:`
5
+ mutation ($data: LeadCreate!) {
6
+ LeadCreate(data: $data) {
7
+ id
8
+ }
9
+ }
10
+ `,variables:{data:t}})}).then(s=>s.json())}function Di(e,t,n){return fetch(`${e}/api/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:`
11
+ mutation ($data: ContactInput!, $comment: String) {
12
+ ContactCreate(data: $data, comment: $comment) {
13
+ id
14
+ }
15
+ }
16
+ `,variables:{data:t,comment:n}})}).then(s=>s.json())}function Vi(e){return fetch(`${e}/api/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:`
17
+ query {
18
+ Projects {
19
+ id
20
+ name
21
+ }
22
+ }
23
+ `})}).then(t=>t.json())}var qi=`.kvass-contact{--kvass-contact-default-background: #ffffff;--kvass-contact-default-spacing: 2rem;--kvass-contact-default-border-radius: 4px;--kvass-contact-default-border-color: #eaeaea;--kvass-contact-default-color: #222222;--kvass-contact-default-color-inverted: #ffffff;--kvass-contact-default-max-width: 720px;--kvass-contact-default-primary: #1d56d8;--kvass-contact-default-error: #d81d1d;--kvass-contact-default-grid-columns: 1;--kvass-contact-default-disabled: #eaeaea;background-color:var(--kvass-contact-background, var(--kvass-contact-default-background));padding:var(--kvass-contact-spacing, var(--kvass-contact-default-spacing));border-radius:var(--kvass-contact-border-radius, var(--kvass-contact-default-border-radius));color:var(--kvass-contact-color, var(--kvass-contact-default-color));max-width:var(--kvass-contact-max-width, var(--kvass-contact-default-max-width));font:inherit;accent-color:var(--kvass-contact-primary, var(--kvass-contact-default-primary));display:flex;flex-direction:column;gap:var(--kvass-contact-spacing, var(--kvass-contact-default-spacing))}@media (max-width: 600px){.kvass-contact{--kvass-contact-grid-columns: 1;padding:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2)}}.kvass-contact *:focus-visible{outline:2px solid var(--kvass-contact-color, var(--kvass-contact-default-color));outline-offset:2px}.kvass-contact__header{display:flex;flex-direction:column;gap:.5rem}.kvass-contact__fields{display:grid;grid-template-columns:repeat(var(--kvass-contact-grid-columns, var(--kvass-contact-default-grid-columns)),1fr);gap:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2)}.kvass-contact__title{font-size:2rem;margin:0}.kvass-contact__subtitle{opacity:.7;margin:0}.kvass-contact__submit{padding:calc(var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2);border-radius:var(--kvass-contact-border-radius, var(--kvass-contact-default-border-radius));background-color:var(--kvass-contact-primary, var(--kvass-contact-default-primary));color:var(--kvass-contact-color-inverted, var(--kvass-contact-default-color-inverted));border:none;font:inherit;width:100%}.kvass-contact__submit:disabled{background-color:var(--kvass-contact-disabled, var(--kvass-contact-default-disabled));color:var(--kvass-contact-color, var(--kvass-contact-default-color));cursor:not-allowed}
24
+ `;const Wi=["onSubmit"],zi={class:"kvass-contact__header"},Ji={class:"kvass-contact__title"},Yi={key:0,class:"kvass-contact__subtitle"},Xi={class:"kvass-contact__fields"},Zi=["disabled"],Qi={props:{lang:{type:String,default:()=>document.documentElement.getAttribute("lang")||"nb"},privacyUrl:{type:String},upsell:{type:Boolean,default:!1},accountUrl:{type:String,required:!0},projects:String,references:String,tags:String},setup(e){const t=e,n={nb:{title:"Meld interesse",submit:"Meld interesse",name:"Navn",email:"E-post",phone:"Telefonnummer",message:"Melding",projects:"Hvilke prosjekter er du interessert i?",upsell:"Jeg \xF8nsker informasjon om lignende prosjekter",privacy:"Jeg \xF8nsker \xE5 bli kontaktet i samtykke med [personvernerkl\xE6ringen]",success:"Takk for interessen!"},en:{title:"Contact agent",submit:"Submit",name:"Name",email:"Email",phone:"Phone",message:"Message",projects:"Which projects are you interested in?",upsell:"I want to know about other similar projects",privacy:"I agree to the [privacy policy]",success:"Thank you for your interest"}},s=ei(),r=ss(()=>t.privacyUrl?t.privacyUrl:`${t.accountUrl}/api/legal/privacy/tenant`),o={contact:{name:null,email:null,phone:null,upsell:!1,tags:t.tags.split(",")},comment:null},l=Yt(structuredClone(o)),c=pt(!1),f=pt([]),u=pt([]),g=pt([]),x=T=>T.charAt(0).toUpperCase()+T.substring(1);function v(T){let O=s["label"+x(T)]||n[t.lang][T];return T==="privacy"?O.replace(/\[(.+)\]/,`<a href="${r.value}">$1</a>`):O}function P(){Object.assign(l,structuredClone(o)),u.value=[]}function S(){Jr(t.accountUrl,ln(on({},l),{references:g.value}),u.value).then(()=>{c.value=!0,P()})}function $(){const T=t.references.split(",").map(O=>{const[R,q]=O.split(":");return{onModel:R,ref:q}});g.value=T}return Zn(()=>{t.projects?t.projects.split(",").forEach(T=>u.value.push(T)):Vi(t.accountUrl).then(T=>f.value=T.data.Projects),$()}),(T,O)=>(re(),Ue("form",{class:"kvass-contact",onSubmit:Ti(S,["prevent"])},[je("div",zi,[je("h2",Ji,_t(v("title")),1),v("subtitle")?(re(),Ue("p",Yi,_t(v("subtitle")),1)):xt("",!0)]),je("div",Xi,[ee(mt,{label:v("name"),type:"text",required:"",modelValue:de(l).contact.name,"onUpdate:modelValue":O[0]||(O[0]=R=>de(l).contact.name=R)},null,8,["label","modelValue"]),ee(mt,{label:v("email"),type:"email",pattern:"\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}",required:"",modelValue:de(l).contact.email,"onUpdate:modelValue":O[1]||(O[1]=R=>de(l).contact.email=R)},null,8,["label","modelValue"]),ee(mt,{label:v("phone"),type:"tel",modelValue:de(l).contact.phone,"onUpdate:modelValue":O[2]||(O[2]=R=>de(l).contact.phone=R)},null,8,["label","modelValue"]),e.projects?xt("",!0):(re(),lt(zr,{key:0,label:v("projects")},{default:Xn(()=>[(re(!0),Ue(ce,null,Vl(f.value,R=>(re(),lt(jt,{key:R.id,state:R.id,label:R.name,modelValue:u.value,"onUpdate:modelValue":O[3]||(O[3]=q=>u.value=q)},null,8,["state","label","modelValue"]))),128))]),_:1},8,["label"])),ee(mt,{label:v("message"),type:"textarea",rows:"5",class:"kvass-contact-field--full-width",modelValue:de(l).comment,"onUpdate:modelValue":O[4]||(O[4]=R=>de(l).comment=R)},null,8,["label","modelValue"]),e.upsell?(re(),lt(jt,{key:1,label:v("upsell"),class:"kvass-contact-field--full-width",modelValue:de(l).contact.upsell,"onUpdate:modelValue":O[5]||(O[5]=R=>de(l).contact.upsell=R)},null,8,["label","modelValue"])):xt("",!0),ee(jt,{label:v("privacy"),class:"kvass-contact-field--full-width",required:""},null,8,["label"])]),je("button",{class:"kvass-contact__submit",type:"submit",disabled:c.value},_t(c.value?v("success"):v("submit")),9,Zi)],40,Wi))}};var Nn=en(Qi,[["styles",[qi]]]);Nn.styles=[...Nn.styles,...mt.styles,...zr.styles,...jt.styles];customElements.define("kvass-contact",xi(Nn));
package/index.html ADDED
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html lang="nb">
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <link rel="icon" type="image/svg+xml" href="favicon.svg" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
+ <title>Kvass Lead Form</title>
9
+ </head>
10
+
11
+ <body>
12
+ <kvass-contact account-url="https://elder.kvass.test" label-subtitle="Ønsker du å motta vårt nyhetsbrev?"
13
+ tags="Bedriftsside" upsell references="Residential:6274d3d42850c40034c4a0b7" />
14
+
15
+ <script type="module" src="/src/contact/main.js"></script>
16
+ </body>
17
+
18
+ </html>
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@kvass/widgets",
3
+ "version": "1.0.0",
4
+ "scripts": {
5
+ "dev": "vite",
6
+ "build": "vite build",
7
+ "preview": "vite preview",
8
+ "prepare": "husky install",
9
+ "semantic-release": "dotenv semantic-release"
10
+ },
11
+ "dependencies": {
12
+ "vue": "^3.2.25"
13
+ },
14
+ "devDependencies": {
15
+ "@vitejs/plugin-vue": "^2.0.0",
16
+ "dotenv-cli": "^5.1.0",
17
+ "husky": "^8.0.1",
18
+ "sass": "^1.51.0",
19
+ "semantic-release": "^19.0.2",
20
+ "semantic-release-cli": "^5.4.4",
21
+ "vite": "^2.8.0"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/Kvass-App/widgets.git"
26
+ }
27
+ }
@@ -0,0 +1,68 @@
1
+ # kvass-contact
2
+
3
+ A simple, embeddable Web Component for sending leads to Kvass.
4
+
5
+ ## Develop
6
+
7
+ To run in development mode, first install the neccessary packages.
8
+
9
+ ```
10
+ npm install
11
+ ```
12
+
13
+ Then, run in development mode.
14
+
15
+ ```
16
+ npm run dev
17
+ ```
18
+
19
+ Open `localhost:3000` in the browser of your choice, and you will see the form widget.
20
+
21
+ ## Build
22
+
23
+ To build the widget for production, run `build` instead of `dev`.
24
+
25
+ ```
26
+ npm run build
27
+ ```
28
+
29
+ To use the widget, use the `<kvass-contact />` element as shown here.
30
+
31
+ ```html
32
+ <kvass-contact account-url="https://example.kvass.no" />
33
+ ```
34
+
35
+ ## Props
36
+
37
+ The component has several props for easy configuration.
38
+
39
+ | Name | Type | Description | Default |
40
+ | --------------------- | ------- | -------------------------------------------------------------------------------- | --------------------------------------- |
41
+ | label-title | String | Title of the lead form | `"Meld interesse"` |
42
+ | label-subtitle | String | Optional subtitle shown under form title | |
43
+ | label-submit | String | Label for the submit button | `"Meld interesse"` |
44
+ | privacyUrl | String | Optional URL to privacy statement | `{accountUrl}/api/legal/privacy/tenant` |
45
+ | accountUrl `required` | String | Account URL where data will be sent. | |
46
+ | projects | String | Comma-separated list of project ids. If not defined, a selection field will show | |
47
+ | references `required` | String | Comma-separated list of references in {type}:{id} format | |
48
+ | upsell | Boolean | If `true`, shows a checkbox for upsell | `false` |
49
+ | tags | String | Comma-separated list of tags | |
50
+
51
+ ## Styling
52
+
53
+ The widget's styles are based on CSS custom properties, and can be overwritten.
54
+ These are the available CSS variables.
55
+
56
+ | Name | Description | Default |
57
+ | ------------------------------ | ----------------------------------------------------------- | --------- |
58
+ | --kvass-contact-background | The form's background color | `#ffffff` |
59
+ | --kvass-contact-spacing | Base spacing amount. Other amounts are calculated from this | `2rem` |
60
+ | --kvass-contact-max-width | Max width of the form | `720px` |
61
+ | --kvass-contact-border-radius | Base border-radius | `4px` |
62
+ | --kvass-contact-border-color | Color of the borders of the form fields | `#eaeaea` |
63
+ | --kvass-contact-color | Base text color | `#222222` |
64
+ | --kvass-contact-color-inverted | Inverted text color. Used for the submit button | `#ffffff` |
65
+ | --kvass-contact-primary | Primary color. Used for the submit button | `#1d56d8` |
66
+ | --kvass-contact-error | Error color. Used for error states | `#d81d1d` |
67
+ | --kvass-contact-grid-columns | Amount of columns in form | `1` |
68
+ | --kvass-contact-disabled | Background color on disabled button | `#eaeaea` |
@@ -0,0 +1,71 @@
1
+ function createLead(url, data, projects) {
2
+ if (projects && projects instanceof Array && projects.length) return Promise.all(projects.map(p => {
3
+ let projectRef = { onModel: 'Project', ref: p }
4
+ return createLead(url, { ...data, project: p, references: [projectRef, ...data.references] })
5
+ }))
6
+
7
+ if (projects && !projects.length) {
8
+ return createContact(url, data.contact, data.comment)
9
+ }
10
+
11
+ return fetch(`${url}/api/graphql`, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/json'
15
+ },
16
+ body: JSON.stringify({
17
+ query: `
18
+ mutation ($data: LeadCreate!) {
19
+ LeadCreate(data: $data) {
20
+ id
21
+ }
22
+ }
23
+ `,
24
+ variables: { data }
25
+ })
26
+ }).then(res => res.json())
27
+ }
28
+
29
+ function createContact(url, data, comment) {
30
+ return fetch(`${url}/api/graphql`, {
31
+ method: 'POST',
32
+ headers: {
33
+ 'Content-Type': 'application/json'
34
+ },
35
+ body: JSON.stringify({
36
+ query: `
37
+ mutation ($data: ContactInput!, $comment: String) {
38
+ ContactCreate(data: $data, comment: $comment) {
39
+ id
40
+ }
41
+ }
42
+ `,
43
+ variables: { data, comment }
44
+ })
45
+ }).then(res => res.json())
46
+ }
47
+
48
+ function getProjects(url) {
49
+ return fetch(`${url}/api/graphql`, {
50
+ method: 'POST',
51
+ headers: {
52
+ 'Content-Type': 'application/json'
53
+ },
54
+ body: JSON.stringify({
55
+ query: `
56
+ query {
57
+ Projects {
58
+ id
59
+ name
60
+ }
61
+ }
62
+ `
63
+ })
64
+ }).then(res => res.json())
65
+ }
66
+
67
+ export {
68
+ createLead,
69
+ createContact,
70
+ getProjects
71
+ }
@@ -0,0 +1,65 @@
1
+ <script>
2
+ export default {
3
+ // disable attrs on root element
4
+ inheritAttrs: false,
5
+ }
6
+ </script>
7
+
8
+ <script setup>
9
+ const emit = defineEmits(['update:modelValue'])
10
+ const props = defineProps({
11
+ modelValue: [Boolean, Array],
12
+ state: String,
13
+ label: String,
14
+ })
15
+
16
+ function onInput(ev) {
17
+ if (typeof props.modelValue === 'boolean')
18
+ return emit('update:modelValue', ev.target.checked)
19
+ return emit(
20
+ 'update:modelValue',
21
+ ev.target.checked
22
+ ? [...props.modelValue, props.state]
23
+ : props.modelValue.filter((v) => v !== props.state),
24
+ )
25
+ }
26
+ </script>
27
+
28
+ <template>
29
+ <label
30
+ class="kvass-contact-checkbox"
31
+ :class="[
32
+ { 'kvass-contact-checkbox--required': 'required' in $attrs },
33
+ $attrs.class,
34
+ ]"
35
+ >
36
+ <input
37
+ class="kvass-contact-checkbox__element"
38
+ type="checkbox"
39
+ v-bind="$attrs"
40
+ :value="modelValue"
41
+ @input="onInput"
42
+ />
43
+ <span class="kvass-contact-checkbox__label" v-html="label"></span>
44
+ </label>
45
+ </template>
46
+
47
+ <style lang="scss">
48
+ .kvass-contact-checkbox {
49
+ display: flex;
50
+ align-items: baseline;
51
+ gap: 0.5rem;
52
+
53
+ &__element {
54
+ margin: 0;
55
+ }
56
+
57
+ &--required {
58
+ span:after {
59
+ content: '*';
60
+ color: var(--kvass-contact-error, var(--kvass-contact-default-error));
61
+ margin-left: 0.3rem;
62
+ }
63
+ }
64
+ }
65
+ </style>
@@ -0,0 +1,116 @@
1
+ <script>
2
+ export default {
3
+ // disable attrs on root element
4
+ inheritAttrs: false,
5
+ }
6
+ </script>
7
+
8
+ <script setup>
9
+ import { computed, ref } from 'vue'
10
+
11
+ const emit = defineEmits(['update:modelValue'])
12
+ const props = defineProps({
13
+ modelValue: [String, Array],
14
+ label: String,
15
+ type: String,
16
+ })
17
+
18
+ const component = computed(() => {
19
+ switch (props.type) {
20
+ case 'textarea':
21
+ return 'textarea'
22
+ case 'select':
23
+ return 'select'
24
+ default:
25
+ return 'input'
26
+ }
27
+ })
28
+
29
+ const focused = ref(false)
30
+
31
+ function handleInput(event) {
32
+ emit('update:modelValue', event.target.value)
33
+ focused.value = true
34
+ }
35
+ </script>
36
+
37
+ <template>
38
+ <label
39
+ class="kvass-contact-field"
40
+ :class="[
41
+ {
42
+ 'kvass-contact-field--required': 'required' in $attrs,
43
+ 'kvass-contact-field--focused': focused,
44
+ },
45
+ $attrs.class,
46
+ ]"
47
+ :for="$attrs.id"
48
+ >
49
+ <span class="kvass-contact-field__label" v-if="label">{{ label }}</span>
50
+ <component
51
+ :is="component"
52
+ class="kvass-contact-field__element"
53
+ v-bind="$attrs"
54
+ @input="handleInput"
55
+ :value="modelValue"
56
+ >
57
+ <slot />
58
+ </component>
59
+ </label>
60
+ </template>
61
+
62
+ <style lang="scss">
63
+ .kvass-contact-field {
64
+ display: flex;
65
+ flex-direction: column;
66
+ gap: 0.3rem;
67
+
68
+ &__element {
69
+ padding: calc(
70
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2
71
+ );
72
+ border-radius: var(
73
+ --kvass-contact-border-radius,
74
+ var(--kvass-contact-default-border-radius)
75
+ );
76
+ border: 1px solid
77
+ var(
78
+ --kvass-contact-border-color,
79
+ var(--kvass-contact-default-border-color)
80
+ );
81
+ resize: vertical;
82
+ font: inherit;
83
+
84
+ &:focus-visible {
85
+ outline: 2px solid
86
+ var(--kvass-contact-color, var(--kvass-contact-default-color));
87
+ outline-offset: 2px;
88
+ }
89
+ }
90
+
91
+ &--required {
92
+ .kvass-contact-field__label:after {
93
+ content: '*';
94
+ color: var(--kvass-contact-error, var(--kvass-contact-default-error));
95
+ margin-left: 0.3rem;
96
+ }
97
+
98
+ &.kvass-contact-field--focused {
99
+ .kvass-contact-field__element:invalid {
100
+ border-color: var(
101
+ --kvass-contact-error,
102
+ var(--kvass-contact-default-error)
103
+ );
104
+ }
105
+ }
106
+ }
107
+
108
+ &--full-width {
109
+ grid-column-end: span
110
+ var(
111
+ --kvass-contact-grid-columns,
112
+ var(--kvass-contact-default-grid-columns)
113
+ );
114
+ }
115
+ }
116
+ </style>
@@ -0,0 +1,53 @@
1
+ <script setup>
2
+ defineProps({
3
+ label: String,
4
+ })
5
+ </script>
6
+
7
+ <template>
8
+ <fieldset class="kvass-contact-fieldset">
9
+ <legend class="kvass-contact-fieldset__label" v-if="label">
10
+ {{ label }}
11
+ </legend>
12
+ <slot />
13
+ </fieldset>
14
+ </template>
15
+
16
+ <style lang="scss">
17
+ .kvass-contact-fieldset {
18
+ position: relative;
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: calc(
22
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 4
23
+ );
24
+ margin: calc(
25
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 1.5
26
+ )
27
+ 0 0 0;
28
+ padding: calc(
29
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2
30
+ );
31
+ border-radius: var(
32
+ --kvass-contact-border-radius,
33
+ var(--kvass-contact-default-border-radius)
34
+ );
35
+ border: 1px solid
36
+ var(--kvass-contact-border-color, var(--kvass-contact-default-border-color));
37
+ font: inherit;
38
+
39
+ &:focus-visible {
40
+ outline: 2px solid
41
+ var(--kvass-contact-color, var(--kvass-contact-default-color));
42
+ outline-offset: 2px;
43
+ }
44
+
45
+ &__label {
46
+ margin: 0;
47
+ padding: 0;
48
+ position: absolute;
49
+ top: -1.4rem;
50
+ left: 0;
51
+ }
52
+ }
53
+ </style>
@@ -0,0 +1,319 @@
1
+ <script setup>
2
+ import {
3
+ onMounted,
4
+ reactive,
5
+ ref,
6
+ watch,
7
+ computed,
8
+ useAttrs,
9
+ isReactive,
10
+ } from 'vue'
11
+ import { createLead, getProjects, createContact } from '../api'
12
+ import Field from './Field.ce.vue'
13
+ import Fieldset from './Fieldset.ce.vue'
14
+ import Checkbox from './Checkbox.ce.vue'
15
+
16
+ const Labels = {
17
+ nb: {
18
+ title: 'Meld interesse',
19
+ submit: 'Meld interesse',
20
+ name: 'Navn',
21
+ email: 'E-post',
22
+ phone: 'Telefonnummer',
23
+ message: 'Melding',
24
+ projects: 'Hvilke prosjekter er du interessert i?',
25
+ upsell: 'Jeg ønsker informasjon om lignende prosjekter',
26
+ privacy:
27
+ 'Jeg ønsker å bli kontaktet i samtykke med [personvernerklæringen]',
28
+ success: 'Takk for interessen!',
29
+ },
30
+ en: {
31
+ title: 'Contact agent',
32
+ submit: 'Submit',
33
+ name: 'Name',
34
+ email: 'Email',
35
+ phone: 'Phone',
36
+ message: 'Message',
37
+ projects: 'Which projects are you interested in?',
38
+ upsell: 'I want to know about other similar projects',
39
+ privacy: 'I agree to the [privacy policy]',
40
+ success: 'Thank you for your interest',
41
+ },
42
+ }
43
+
44
+ const attrs = useAttrs()
45
+
46
+ const props = defineProps({
47
+ lang: {
48
+ type: String,
49
+ default: () => {
50
+ return document.documentElement.getAttribute('lang') || 'nb'
51
+ },
52
+ },
53
+ privacyUrl: {
54
+ type: String,
55
+ },
56
+ upsell: {
57
+ type: Boolean,
58
+ default: false,
59
+ },
60
+ accountUrl: {
61
+ type: String,
62
+ required: true,
63
+ },
64
+ projects: String,
65
+ references: String,
66
+ tags: String,
67
+ })
68
+
69
+ const privacyUrlComp = computed(() =>
70
+ props.privacyUrl
71
+ ? props.privacyUrl
72
+ : `${props.accountUrl}/api/legal/privacy/tenant`,
73
+ )
74
+
75
+ const initialForm = {
76
+ contact: {
77
+ name: null,
78
+ email: null,
79
+ phone: null,
80
+ upsell: false,
81
+ tags: props.tags.split(','),
82
+ },
83
+ comment: null,
84
+ }
85
+ const form = reactive(structuredClone(initialForm))
86
+
87
+ const submitted = ref(false)
88
+ const fetchedProjects = ref([])
89
+ const selectedProjects = ref([])
90
+ const references = ref([])
91
+
92
+ const Capitalize = (v) => v.charAt(0).toUpperCase() + v.substring(1)
93
+
94
+ function getLabel(key) {
95
+ let label = attrs['label' + Capitalize(key)] || Labels[props.lang][key]
96
+ if (key === 'privacy')
97
+ return label.replace(/\[(.+)\]/, `<a href="${privacyUrlComp.value}">$1</a>`)
98
+ return label
99
+ }
100
+
101
+ function resetForm() {
102
+ Object.assign(form, structuredClone(initialForm))
103
+ selectedProjects.value = []
104
+ }
105
+
106
+ function submit() {
107
+ createLead(
108
+ props.accountUrl,
109
+ {
110
+ ...form,
111
+ references: references.value,
112
+ },
113
+ selectedProjects.value,
114
+ ).then(() => {
115
+ submitted.value = true
116
+ resetForm()
117
+ })
118
+ }
119
+
120
+ function setReferences() {
121
+ const refs = props.references.split(',').map((r) => {
122
+ const [onModel, ref] = r.split(':')
123
+ return {
124
+ onModel,
125
+ ref,
126
+ }
127
+ })
128
+ references.value = refs
129
+ }
130
+
131
+ onMounted(() => {
132
+ if (!props.projects) {
133
+ getProjects(props.accountUrl).then(
134
+ (data) => (fetchedProjects.value = data.data.Projects),
135
+ )
136
+ } else {
137
+ props.projects.split(',').forEach((p) => selectedProjects.value.push(p))
138
+ }
139
+ setReferences()
140
+ })
141
+ </script>
142
+
143
+ <template>
144
+ <form class="kvass-contact" @submit.prevent="submit">
145
+ <div class="kvass-contact__header">
146
+ <h2 class="kvass-contact__title">{{ getLabel('title') }}</h2>
147
+ <p class="kvass-contact__subtitle" v-if="getLabel('subtitle')">
148
+ {{ getLabel('subtitle') }}
149
+ </p>
150
+ </div>
151
+
152
+ <div class="kvass-contact__fields">
153
+ <Field
154
+ :label="getLabel('name')"
155
+ type="text"
156
+ required
157
+ v-model="form.contact.name"
158
+ />
159
+ <Field
160
+ :label="getLabel('email')"
161
+ type="email"
162
+ pattern="\b[\w\.-]+@[\w\.-]+\.\w{2,4}"
163
+ required
164
+ v-model="form.contact.email"
165
+ />
166
+ <Field
167
+ :label="getLabel('phone')"
168
+ type="tel"
169
+ v-model="form.contact.phone"
170
+ />
171
+ <Fieldset :label="getLabel('projects')" v-if="!projects">
172
+ <Checkbox
173
+ v-for="project in fetchedProjects"
174
+ :key="project.id"
175
+ :state="project.id"
176
+ :label="project.name"
177
+ v-model="selectedProjects"
178
+ />
179
+ </Fieldset>
180
+ <Field
181
+ :label="getLabel('message')"
182
+ type="textarea"
183
+ rows="5"
184
+ class="kvass-contact-field--full-width"
185
+ v-model="form.comment"
186
+ />
187
+ <Checkbox
188
+ v-if="upsell"
189
+ :label="getLabel('upsell')"
190
+ class="kvass-contact-field--full-width"
191
+ v-model="form.contact.upsell"
192
+ />
193
+ <Checkbox
194
+ :label="getLabel('privacy')"
195
+ class="kvass-contact-field--full-width"
196
+ required
197
+ />
198
+ </div>
199
+ <button class="kvass-contact__submit" type="submit" :disabled="submitted">
200
+ {{ submitted ? getLabel('success') : getLabel('submit') }}
201
+ </button>
202
+ </form>
203
+ </template>
204
+
205
+ <style lang="scss">
206
+ .kvass-contact {
207
+ // default variables
208
+ --kvass-contact-default-background: #ffffff;
209
+ --kvass-contact-default-spacing: 2rem;
210
+ --kvass-contact-default-border-radius: 4px;
211
+ --kvass-contact-default-border-color: #eaeaea;
212
+ --kvass-contact-default-color: #222222;
213
+ --kvass-contact-default-color-inverted: #ffffff;
214
+ --kvass-contact-default-max-width: 720px;
215
+ --kvass-contact-default-primary: #1d56d8;
216
+ --kvass-contact-default-error: #d81d1d;
217
+ --kvass-contact-default-grid-columns: 1;
218
+ --kvass-contact-default-disabled: #eaeaea;
219
+
220
+ background-color: var(
221
+ --kvass-contact-background,
222
+ var(--kvass-contact-default-background)
223
+ );
224
+ padding: var(--kvass-contact-spacing, var(--kvass-contact-default-spacing));
225
+ border-radius: var(
226
+ --kvass-contact-border-radius,
227
+ var(--kvass-contact-default-border-radius)
228
+ );
229
+ color: var(--kvass-contact-color, var(--kvass-contact-default-color));
230
+ max-width: var(
231
+ --kvass-contact-max-width,
232
+ var(--kvass-contact-default-max-width)
233
+ );
234
+ font: inherit;
235
+ accent-color: var(
236
+ --kvass-contact-primary,
237
+ var(--kvass-contact-default-primary)
238
+ );
239
+
240
+ display: flex;
241
+ flex-direction: column;
242
+ gap: var(--kvass-contact-spacing, var(--kvass-contact-default-spacing));
243
+
244
+ @media (max-width: 600px) {
245
+ --kvass-contact-grid-columns: 1;
246
+ padding: calc(
247
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2
248
+ );
249
+ }
250
+
251
+ * {
252
+ &:focus-visible {
253
+ outline: 2px solid
254
+ var(--kvass-contact-color, var(--kvass-contact-default-color));
255
+ outline-offset: 2px;
256
+ }
257
+ }
258
+
259
+ &__header {
260
+ display: flex;
261
+ flex-direction: column;
262
+ gap: 0.5rem;
263
+ }
264
+
265
+ &__fields {
266
+ display: grid;
267
+ grid-template-columns: repeat(
268
+ var(
269
+ --kvass-contact-grid-columns,
270
+ var(--kvass-contact-default-grid-columns)
271
+ ),
272
+ 1fr
273
+ );
274
+ gap: calc(
275
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2
276
+ );
277
+ }
278
+
279
+ &__title {
280
+ font-size: 2rem;
281
+ margin: 0;
282
+ }
283
+
284
+ &__subtitle {
285
+ opacity: 0.7;
286
+ margin: 0;
287
+ }
288
+
289
+ &__submit {
290
+ padding: calc(
291
+ var(--kvass-contact-spacing, var(--kvass-contact-default-spacing)) / 2
292
+ );
293
+ border-radius: var(
294
+ --kvass-contact-border-radius,
295
+ var(--kvass-contact-default-border-radius)
296
+ );
297
+ background-color: var(
298
+ --kvass-contact-primary,
299
+ var(--kvass-contact-default-primary)
300
+ );
301
+ color: var(
302
+ --kvass-contact-color-inverted,
303
+ var(--kvass-contact-default-color-inverted)
304
+ );
305
+ border: none;
306
+ font: inherit;
307
+ width: 100%;
308
+
309
+ &:disabled {
310
+ background-color: var(
311
+ --kvass-contact-disabled,
312
+ var(--kvass-contact-default-disabled)
313
+ );
314
+ color: var(--kvass-contact-color, var(--kvass-contact-default-color));
315
+ cursor: not-allowed;
316
+ }
317
+ }
318
+ }
319
+ </style>
@@ -0,0 +1,9 @@
1
+ import { defineCustomElement } from 'vue';
2
+ import Checkbox from './components/Checkbox.ce.vue';
3
+ import Field from './components/Field.ce.vue';
4
+ import Fieldset from './components/Fieldset.ce.vue';
5
+ import Form from './components/Form.ce.vue';
6
+
7
+ Form.styles = [...Form.styles, ...Field.styles, ...Fieldset.styles, ...Checkbox.styles]
8
+
9
+ customElements.define('kvass-contact', defineCustomElement(Form));
package/vite.config.js ADDED
@@ -0,0 +1,24 @@
1
+ import { fileURLToPath } from 'url'
2
+ import { defineConfig } from 'vite'
3
+ import vue from '@vitejs/plugin-vue'
4
+
5
+ // https://vitejs.dev/config/
6
+ export default defineConfig({
7
+ plugins: [vue({ customElement: true })],
8
+ build: {
9
+ rollupOptions: {
10
+ output: {
11
+ manualChunks: false,
12
+ entryFileNames: `[name].js`,
13
+ chunkFileNames: `[name].js`,
14
+ assetFileNames: `[name].[ext]`
15
+ },
16
+ input: {
17
+ contact: fileURLToPath(new URL('./src/contact/main.js', import.meta.url))
18
+ }
19
+ }
20
+ },
21
+ server: {
22
+ port: 3001
23
+ }
24
+ })