@wayke-se/components-react 6.0.0-beta.0 → 6.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -38
- package/dist/assets/StyreneA-Bold-Web-4CXEYQLA-4CXEYQLA.woff2 +0 -0
- package/dist/assets/StyreneA-Bold-Web-AGBUOKS2-AGBUOKS2.woff +0 -0
- package/dist/assets/StyreneA-Light-Web-DAMPSUFB-DAMPSUFB.woff +0 -0
- package/dist/assets/StyreneA-Light-Web-EE4AJECE-EE4AJECE.woff2 +0 -0
- package/dist/assets/StyreneA-Medium-Web-53Q6X35A-53Q6X35A.woff +0 -0
- package/dist/assets/StyreneA-Medium-Web-7KYQNCKQ-7KYQNCKQ.woff2 +0 -0
- package/dist/assets/StyreneA-Regular-Web-7SAOGHB5-7SAOGHB5.woff2 +0 -0
- package/dist/assets/StyreneA-Regular-Web-XFBCXNPA-XFBCXNPA.woff +0 -0
- package/dist/chunks/chunk-XBJKSIMP.js +2 -0
- package/dist/chunks/chunk-XBJKSIMP.js.map +7 -0
- package/dist/chunks/dist-3TYBTGV5.js +1969 -0
- package/dist/chunks/dist-3TYBTGV5.js.map +7 -0
- package/dist/index.js +753 -2770
- package/dist/index.js.map +4 -4
- package/dist/style.css +11 -0
- package/dist/types/src/State/Settings/settings.d.ts +9 -3
- package/dist/types/src/components/ActionList/index.d.ts +1 -1
- package/dist/types/src/components/Content/index.d.ts +7 -2
- package/dist/types/src/components/FilterPanel/faceSelector.d.ts +3 -1
- package/dist/types/src/components/FilterPanel/rangeFacet.d.ts +3 -1
- package/dist/types/src/components/Gallery/wrapper.d.ts +7 -4
- package/dist/types/src/components/RangeSlider/RangeSliderSimple.d.ts +4 -3
- package/dist/types/src/components/RangeSlider/SliderWithLabel.d.ts +1 -2
- package/dist/types/src/components/RangeSlider/index.d.ts +3 -1
- package/dist/types/src/components/RangeSlider/wrapper.d.ts +11 -10
- package/dist/types/src/components/Sphere/SphereViewer.d.ts +0 -1
- package/dist/types/src/layouts/searchItem/useEcom.d.ts +1 -1
- package/dist/types/src/utils/markdown.d.ts +3 -0
- package/package.json +21 -13
- package/dist/assets/ajax-loader.gif +0 -0
- package/dist/assets/default.css +0 -1
- package/dist/assets/fonts/slick.eot +0 -0
- package/dist/assets/fonts/slick.svg +0 -14
- package/dist/assets/fonts/slick.ttf +0 -0
- package/dist/assets/fonts/slick.woff +0 -0
- package/dist/index.mjs +0 -5387
- package/dist/index.mjs.map +0 -7
- package/dist/types/src/components/RangeSlider/handle.d.ts +0 -9
- package/dist/types/src/components/RangeSlider/track.d.ts +0 -9
|
@@ -0,0 +1,1969 @@
|
|
|
1
|
+
import{a as ue,b as H,c as Ms,d as Kr,e as fh}from"./chunk-XBJKSIMP.js";var ta=H((ea,Gi)=>{(function(t,e){"use strict";typeof Gi=="object"&&typeof Gi.exports=="object"?Gi.exports=e():typeof define=="function"&&define.amd?define([],e):t.objectPath=e()})(ea,function(){"use strict";var t=Object.prototype.toString;function e(d,p){return d==null?!1:Object.prototype.hasOwnProperty.call(d,p)}function i(d){if(!d||r(d)&&d.length===0)return!0;if(typeof d!="string"){for(var p in d)if(e(d,p))return!1;return!0}return!1}function s(d){return t.call(d)}function n(d){return typeof d=="object"&&s(d)==="[object Object]"}var r=Array.isArray||function(d){return t.call(d)==="[object Array]"};function o(d){return typeof d=="boolean"||s(d)==="[object Boolean]"}function c(d){var p=parseInt(d);return p.toString()===d?p:d}function l(d){d=d||{};var p=function(f){return Object.keys(p).reduce(function(g,y){return y==="create"||typeof p[y]=="function"&&(g[y]=p[y].bind(p,f)),g},{})},h;d.includeInheritedProps?h=function(){return!0}:h=function(f,g){return typeof g=="number"&&Array.isArray(f)||e(f,g)};function m(f,g){if(h(f,g))return f[g]}var b;d.includeInheritedProps?b=function(f,g){typeof g!="string"&&typeof g!="number"&&(g=String(g));var y=m(f,g);if(g==="__proto__"||g==="prototype"||g==="constructor"&&typeof y=="function")throw new Error("For security reasons, object's magic properties cannot be set");return y}:b=function(f,g){return m(f,g)};function _(f,g,y,I){if(typeof g=="number"&&(g=[g]),!g||g.length===0)return f;if(typeof g=="string")return _(f,g.split(".").map(c),y,I);var $=g[0],Y=b(f,$);return g.length===1?((Y===void 0||!I)&&(f[$]=y),Y):(Y===void 0&&(typeof g[1]=="number"?f[$]=[]:f[$]={}),_(f[$],g.slice(1),y,I))}return p.has=function(f,g){if(typeof g=="number"?g=[g]:typeof g=="string"&&(g=g.split(".")),!g||g.length===0)return!!f;for(var y=0;y<g.length;y++){var I=c(g[y]);if(typeof I=="number"&&r(f)&&I<f.length||(d.includeInheritedProps?I in Object(f):e(f,I)))f=f[I];else return!1}return!0},p.ensureExists=function(f,g,y){return _(f,g,y,!0)},p.set=function(f,g,y,I){return _(f,g,y,I)},p.insert=function(f,g,y,I){var $=p.get(f,g);I=~~I,r($)||($=[],p.set(f,g,$)),$.splice(I,0,y)},p.empty=function(f,g){if(!i(g)&&f!=null){var y,I;if(y=p.get(f,g)){if(typeof y=="string")return p.set(f,g,"");if(o(y))return p.set(f,g,!1);if(typeof y=="number")return p.set(f,g,0);if(r(y))y.length=0;else if(n(y))for(I in y)h(y,I)&&delete y[I];else return p.set(f,g,null)}}},p.push=function(f,g){var y=p.get(f,g);r(y)||(y=[],p.set(f,g,y)),y.push.apply(y,Array.prototype.slice.call(arguments,2))},p.coalesce=function(f,g,y){for(var I,$=0,Y=g.length;$<Y;$++)if((I=p.get(f,g[$]))!==void 0)return I;return y},p.get=function(f,g,y){if(typeof g=="number"&&(g=[g]),!g||g.length===0)return f;if(f==null)return y;if(typeof g=="string")return p.get(f,g.split("."),y);var I=c(g[0]),$=b(f,I);return $===void 0?y:g.length===1?$:p.get(f[I],g.slice(1),y)},p.del=function(g,y){if(typeof y=="number"&&(y=[y]),g==null||i(y))return g;if(typeof y=="string")return p.del(g,y.split("."));var I=c(y[0]);if(b(g,I),!h(g,I))return g;if(y.length===1)r(g)?g.splice(I,1):delete g[I];else return p.del(g[I],y.slice(1));return g},p}var u=l();return u.create=l,u.withInheritedProps=l({includeInheritedProps:!0}),u})});function ia(t){return t===0||t>=55296&&t<=57343||t>1114111}function sa(t){return ia(t)?65533:t>=128&&t<=159&&pm[t-128]||t}function na(t){return ia(t)?65533:t}var pm,ra=ue(()=>{pm=[8364,0,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,0,381,0,0,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,0,382,376]});function aa(t,e,i,s,n,r){let c=t.length,l=r*90,u=0,d=()=>{let D=Ue[t.charCodeAt(u++)];return D<r?D:D*91-l+Ue[t.charCodeAt(u++)]},p=i-s,h=i+n,m=new Int32Array(h);m.fill(-1,s,r),m.fill(-1,r+p,h);let b=new Int32Array(h),_=new Int32Array(h);function f(D,Z){let K=0,O=Z,A=Z+D;for(;O<A;){let C=Ue[t.charCodeAt(u++)];if(C<89)K+=C,m[O++]=K;else if(C===89){let T=Ue[t.charCodeAt(u++)]+2;for(;T--;)m[O++]=++K}else{let T=Ue[t.charCodeAt(u++)];K+=89+(T<90?T*91+Ue[t.charCodeAt(u++)]:Ue[t.charCodeAt(u++)]*8281+Ue[t.charCodeAt(u++)]*91+Ue[t.charCodeAt(u++)]),m[O++]=K}}}f(s,0),f(p,r);let g=new Int32Array(n*2),y=0,I=0;function $(D,Z){for(let K=0;K<D;K++){let O=Z+K,A=d(),C=d();g[I*2]=A,g[I*2+1]=C,I+=1,b[O]=y;let T=(m[A]<0?_[A]:1)+(m[C]<0?_[C]:1);_[O]=T,y+=T}}$(n-r+s,r+p),$(r-s,s);let Y=new Uint16Array(y),ce=0;for(let D=0;D<I;D++)for(let Z=0;Z<2;Z++){let K=g[D*2+Z],O=m[K];if(O<0){let A=b[K],C=A+_[K];for(;A<C;)Y[ce++]=Y[A++]}else Y[ce++]=O}let pe=new Uint16Array(e),z=0;for(;u<c;){let D=Ue[t.charCodeAt(u++)];D>=r&&(D=D*91-l+Ue[t.charCodeAt(u++)]);let Z=m[D];if(Z<0){let K=b[D],O=K+_[D];for(;K<O;)pe[z++]=Y[K++]}else pe[z++]=Z}return pe}var Ue,oa=ue(()=>{Ue=(()=>{let t=new Uint8Array(127),e=0;for(let i=33;i<=126;i++)i!==34&&i!==36&&i!==92&&(t[i]=e++);return t})()});var rn,ca=ue(()=>{oa();rn=aa("!}.&u%}'&}*'~!6*)%&,~!J~!J~%L~y<~!R,~~%Lu~~#GD~~#|)1#%}^%}2%+#.##%##%}&%##%'#%##&%#%#'%#&#%#&#'#%%#&#%##%#)%''%&%#%#'%#%%#%%}%%%#%#&(23#%%#&-%0%('1#(##%#'##+%'*.:1}#%#6-+(%'%%#%%%}#L'2351&('%}&/N'(0(/*-%(%%}#'+&T%7.2}#&%&#%#36/5##%&%%#&#%%#))2%%##%&&'0~!#*+&'%1~!%).'3q?&%'1~!.##%6(~!+%%%(Gw'rT~!E#<nA%#jZ~!H%(~!42##~!*31&~!G%U~#)5~#`3~!J~!Z~%]~%Y~%C~!q~!u~#kz~%#~!6'~!D~!U~!?~#T~!c%~!G#'~%7|~!G~!J~!G&~#pb~(Df}#%}*&}#%##%##%##&#-}&'#'&%#.++}%mI,#,@&(}*%}*'%&##&#%##%}&0}#.},U},%}+%}&%}#%##&}B%(}(%}+%)})%##%#&}&%##%&}<%}>%#%&}*%}(%}9%}/%})%}*%}*%}?&}&%}3%}&*#%})%#%#)}#&#-#+*%E%%'%'#%}#*V##&##I}#&&##%&%#&&Qf%%))w/0+&%#(#.%-''''++++7}>%4'',##1,#%#&%##&#'##&#*#9)%&%}#*}%,#+P(%A&%#'&##wSD',9E00#y#@}(+}&%&>~!#~!X}#*}(&&}(&}(,%}%&#+&}#&}I%#%}%)#(},'%#*}4%%#%}(''}#/##(##),%-##%%)#&}(.}&%#&}%%}*&#%},&&}&%}#%*'#%})%}D&}&%}-&}6&#&}-,%}#%})-(~+`~,=?~I9'9%~!,#%})%})%}@%}?%}(~!?~#<~#pP~#BG~#=1#%K+~#?#~%;)~#A~#mF1~#A'~'X%'~#lR~#N~'N~#r~#m#-~#i'?%#'%~#B%##%,%#~#_%#0%~#]732~,w~2+#:&#%&'0%&>%}#>##F+)#%&&#(+_}4&}-%}(&}@&}O7Fdf0@+/v4}&WU##&/0#&'('B#%}.%}'+#%}#%%&#&%#%##+#&#)#6#'#.},%}c%},%#%##%&#&%#&~#>'*-.%##%##%}#%%}%'~#)D1}#%*&~#_%%'(~#S2%'.}#~#=##*'*-%}&'%'##&&~'E%.#&~#M4}%%##&'%#~#O1##%&#'+~#<B%##%%'%+~#;#@%}#&%#&&%#(~#H1}'%'##&&~#?A}&'~#D#%32}'&&&&~#[}'(#%}'~#;C})&}%%#%~#=&%,3}%'(#%%~#^'#&&)#%'~#Y%-~#d-%'~#^%%&#&&&}#~#b~2t*&'~&(~&@~0%~e~3}%*''0})&}+~!9##-}#%-hD*)1fC#%/&/fB#40~!+#)*4~!+~!K'&:~!/*7~!.#~!H~!L':~%x&~!H#~!*~%1~!I#~!+A~#p'~!F~~#-#~,,(~.Z~!V~%;'B'mq-W~!N~%I%#&&#&}#%},%%}'%}+X#%}#&}(%}'%}<%}#%}%%'}'%}:~![)9@~%>~#UA%-%##&~!C%~!-.9:~!1~!-^2/:a~!y,D*J#-5)/4~%23,~#G~!L1~!0X3`~!2+~!!0-~&E~!W~!o,>Y&]~%cZx_&~#O*9#A#'#+I'%#)~!0B*-5A+-((F&*M#)(-7-5+'-3a5Vi~!Y~!?+[)%3),ERHm~!+:D,VG.+)?fB%%*(%)'(#&80%1'8`K8?`+'Z#&O&'H5#*9)A%%5&3))0%39+.*7#()&&*=4@**L)<'_&*+..;(#*+)./&0#3)%')-8(4ixD(&.}%,('aI:,)%,k2231T)I'#/-W7,/'Q#.'Y24+h')37</31&83##&0#),H(?'&?/1##%#&&#%''-%&&&#(&''&#.-'%#%%(,')*'&#&#'##%(%(#%('#&##%%%%('%#%#%%#%#&%##h>w+v<ayvyvcg.uuhKr}g/v|g>u9i[~>g5uI~=RvdwEg;v/g;uk!!TTSx]@RT!U!#!@VBRUU!'UTe-d0c`e&gSdicedFcrdTaqb.kYcAohdYd@a3e+d}dMdtd.aJ#bqcK`dle/e.e'dwdPdodddjbEb}ogd^ofdpduc6j?l%d{drdqc)d7bacOdQ%T#Y)X.sR[yH>6Vyv3[xwLu>vo'!*.[yBacahoj>6Rew3[xqdZa#!a&#^(X-[yG>6Vyu3[xvg3sEr|g.u/Ri9db0T#^(Xa)!-[y;>6Vylg4wKs{JwNZt3@3r=c4Z([xlg;wKt!cpq's@v7A'*a(a+!-a#[y<3Dt?3Dt'>6Vym3[xmg9rxsNJwLZt4~?r?db1T#`-!(Xa,!0[yS>6Vz%NuQs.g4wKtnJwNZtS@3r>c4Z([y%g;wKtrdga8!a(!#&T*Y-Xa#!a0<or[yc3Dtq>6Vz43[y3JwNZtf@3s!Ju}!%Dti:pm3c_%X#tjB5pkd6q!r]u?voC'*-a.a2!0a&a+[yI3DtI3Ds~3DtH>6Vyw3[xx;:s#~<5pKJwNZtE@3r~d`a)!a2T#a.(!+U.X1[yT3Dt`3Dtv>6Vz&3[y&g9rxwzcxstPu.<rAJwLZtT~?r@dZa%!a.&^*Za(/Reu[ya>6Vz23[y1g3sEr}wkg{NuQRg{ci(U#5@b`~,cg#U(2WnH5wugcRh7dX#T(Y,a'Ta!!a,[yZ<]mj>6Vz,3[y+Pv#5ReZKu+=,%!H}7ABwkaS?Rh:BcW(X#<]mrj:ubv/ARekdg%!(!a.*Ta(Y.X1!#sP>Rl*Dt6[y>>6Vyo3Wf*jOvuumvuRgRJuq*!:9<B@bX~3jVv&v@s@5Re[d/rQt{uAvo&a&a*)a2!,0Wf!3Dt0=Bs'>6Re}3[xy~<5s%JwJZt1~Gs)c;&!#2sJkNuXvzq7rxu,Re8dka4!a8(aEZ+a@Y.X1Xa)[yd=Bs(3DtP>6Vz53[y4cX#X&Re:avRe9~<5s&JwJZtQ~Gs*i^rzvdRg+Jv{%!2sbB@bX}kdga,!Za?&^*T1/!a'Dt+[y6>6Vyf3Wf%g/u;s4hGu6?Rh-JvZ,!c%#&RoX54Rivj7uyvf8RgTKvZB%*!2sGh<vu5Rgq<=C::9bb~#dZ#T&Ta6Y.X*Dt>[y93Wf)coZ(T,6VyifluvRgC@95@B@bX~/hFu34cC#T,k/unq8w8Q5RkUklwQuzunq8w8Q5Rk8d/rJu?v8w9)-&!a0a;a&aIWejg3sEr/h1s<DtDJvyZqY5aws3Jvy!&Wei~Hr1:au5@Bag>23E~5c:Z&bX};kKv?w&unuVu5Rjc;>bs)#~@:Rh.=ay<a]C;b`}Vd6s/t{uAvoaxa()!a,a7%-a#a2Dt,[yF2Wo[>6Vyt3[xuNuPRi&NuPwpi#RoWh?vf8Ri%Jv]!%Ri:KvxD!.'2WeAjZu`q9rxu,Re7woeAg-unLq(qA_/*2Wg_g3u5q^9:4E}/jTrxrzv=Wkkd~0UX#^^Xa-a1a5T&a=U1a'*aEa]!a*aPaA-adok[y54Rn>;:p3~Dp5g9rpsFNvZqjg3uJp4~<5p0Pw;5qlJwNZt*@3p1Pw:5p/Ou!5p2JvG'!6Vye=<qnJvh_[xhg3v,Rh3kOwOw-sDuev/Re^dha[a%!%!a+#Ta7)-5TaCaO!aka!a)sf[yb2>Rl!9ARiq5E}Qg=ucRkBE|oJrJ_@Wk~@Wk{JrJ_@Wk|@WkyJrJ_@Wk}@WkzJvO_[y2g-vMRmiKuYC!)&>Ri;>Ri<@3RkNc](X#@9Rk=g5vuRmhKvDB!+'=]meg3u4Rmgd)#Y'Vz3CARmfd`a+!%T'!+#Ta1Ta6TaM-sTDt9[yA9sYd'%Y#s[[xpj:ueunaXRgEjRq,v-vuqdd2'`#6Rev<32@5>:2<E}5xIo9a*X#Y(;5RePJvD_g>vyRgNj8w)v8<wggs:RgXiZt|vjx,hSq3ah!-(~@:Ro/Ou!5RhWj^v(pyw8unRhUdx-UY#^Ua.a3a70!)%UX1TaDa)'omRiRRhE[y:3Dsz=Br,>6Vyj3[xkg6ruwjcqsrPw;5r*Ku]D'Zt-@3r(~?r.i[vwv]dU1a--U#`a4(g/vsRhPOu!5RhLj:rmu9Wo!~@:wdh@g/vsRiTjXuvvNr}:RhBj^v(pyw8unRn]dz1UYa'a+^Y(!aETZalaRY.Ta?a4[yDJw1!#qLsW>6Vyrfzq-pLflpwRe|Js>%!Dt@3Dt&Jvy_[xs~HrnjMuwpsw'RecKu+D#'!t<~Grl~?rjg5u-x,gwp{ah!-(~@:Rg~Ou!5Rh'jXuvvNr}:Rh#cW#X/c;&!#2sLi[v7u7RgpJv)(!iLrxu,Re6j7v@s@5Se[e7d`aW!Za(a`T.a#!a3!&aDa-!9)Dt_=6s+3[x~~DR|h~DS6avhGun5RkZj3w)v-]mkKunB!&*]kb97R|i<ARk<c:Z(6Vy}Juh'!wziMRoS:F|vkLuauJv5vtvQRh1d='T+Y#VyO~DR|jcF#T'7R|g97R|kJv3'!ay<Rj,Jvh&!:ReXcsa6*a+#a#_aIRf9aLRf?c,Z&Rf5Rf7c.Z&Rf;Rf>cQ#%T'p-Rf8Rf=ct#%'(*!,p,Rf4p+Rf6Rf:Rf<d~'Ua%U*^UYa(!a,-!#a4YaTalaEX0a8a<Weo3Dt/3Dsx=Br93Wen~Dr;~<5p<JwNZt2@3p=Pw:5p;Ou!5r3c7&!#:p>3Ds}KvGB)_6Vyk2sM=<r7x'eovA(!hFu1ARf}cV#X&@r5j6rvwQa^Rf3c=Za'wkghJv__g;unRggA53B9=b^}%j6uduo5Jq;!(hIv%2Re`Ou4ARe_e%a#^^^Xa&!a*a2!&a6YaP!*ad!#a:aE/5Rn?[y@>6Vyp;:pE~DrY~<5pBJwNZt8@3pCh=rt3rWPw:5pAJup_[xoNuPpF9c!#'45pD5ARn)d8#X'X*3@rU72s]h>v<<sSjJpqvewOJq/(!hNw'5ReBk0s2u3w/w'5ReE5@Jq.!a+JQ!&WeU23d(#Y&RjG5]jBk!u7w&u0udARjEe#+^^^Ub#!a2/a`Z(agT1!a-a;|@TaG!aS[yV=Re~fow'RguNuPRe?bz#'>RoUWeL>:Cbb|?JwPZtVg6ruRmzJvD'!6Vz(g/vmRh~Jvy_[y(g9voRgyx*cy(#2>Ri2B9b]~9kIw9u7rluJu3Rg]dI#a%UY'@=p%CAx.gQZ&RhwwygtRm{x5g_Z'+ABqR9Woa=Bp&dV#^*Xa'!&@o{g4v]Rk;Jv{!%Rk[wkkiA5RkiwwfUB=x,fUuqC&*!>RfTg8v0RfV~ARfSd;rJsAuAv9wR'ae+/aO!a@aza/a#[yQ@Wg!2Wemg3sEr0JvB_g>uvReWg2v+Re=KupB_+[y!2AbY~-~Hr2AJwD!(h<~El>h<~El?Kun@+_:9b`}Kg-v/Ri3g;vtwyk_9]k_d=&T#*U.6qh@Ab`|K9:H|CJv[!&3Dtex'fDwC%!Rf[9WlMd[(^X,!a%Z06Vz!@WgBg=v~Rgvg,QRe@awd,#Y+jTv|Q~EfWj]uNr|~FRfXdy#Y&^Ua%!aO.!(a)Ua;=!a@aKap!a-,a!Ta]a[rSa]p?[y82sK=Bq~;:p:~<5p8Pw:5p7d'#Y'Wf(;RnRi[u4w&RgJJvG'!6Vyh=<r#ijuuv/sIKuYD'ZtG@3p9~Gr&d2#`(g<vtRgFj`u5w&rqpxRf2CJuY!+:wfnTOu!5Rg}jNs1ucv&RfwJvA!&3@q|BDcC#T,k/unq8w8Q5RkTklwQuzunq8w8Q5Rk9dga#!a'!a=#a0!:+Tb*b@aO.a4!aba8aFJv^}?!VyR~Dr<g;u%Rn.~<5p[x'e`wNZtR@3p]Pw:5pZhNvjBp.woe_g5u-r4JwF!%DtO3:ooc7&!#:p^3DtpLuGw(!+%)Dtk6Vz#2sd=<r8d'#Y([y#<x3gJt`w@!)%}MRiowzikRij=]ilxAf3,U(#B2Rf#g0v-Rm[ck{`U#]giKv3>)!&6Ri154s,KuGB_%@r68r:dJ|t`#X(9<E|u2@H|rx3gJu?w'!+'1Nu7Reg4=H~+9<wxgY95Rm]xLggZ-`(X}U2:Ri4h<uOawRmsJv__5@bb{jbV~3dka#a'a]!,#a+U=a>b6a3b%!/aKa/)!arwve^VyJ;:pR~DpTg3uJpS~<5pOPw;5qmPw:5pNOu!5pQJvG'!6Vyx=<qoJvA!{~Jup!%@qk7Rn/KvyD!}''[xz;>wkh'?Rh,x8gyt`w5D!&),(SgyccRgztJ@3pPB5p#d'(Y#<]mmifubw&RgoJvE&!82s^JvF&!8Rf,ADb]~;x=h'rNu]vK!,%'*0RnORh)4Rh*AqQg-vaRnNg;wHwkh'ba~4cE#Ta*x3gctyw@'!+%RnFRnD<4Rn@hFvK5RnCxWg[#`&a0Ua()`1Rm75Rg[c]%X#qi8Rg^NvdRj>BwzgZauwji7Rm6A4wgg]d1#&(*,.0a#Rm;Rm<Rm=Rm>Rm?Rm@RmARmBe%#^^^Xaea?aC/b+(,!a+a#!a/!>a&Ta<aKbD!2wphBRnk[yPw}hE|.=Br-3Dtm>6Vy~g6urRf.x,hPrNav!%'RnqRo%Ro#Nu;q[Pw;5r+JwNZtM@3r)d'#Y'Weh;xChL#`&RnmRnoKu}>%(!Rne~Bs-;2wjcussJv+'!aYSO}6@B<5?ba~8LrNvj!.%*ROwungw~ng~:9;Ri^>wtnig;wHRnixDh@|(UZ.x1h@|)!#:2<H|*xHn]#-UX'3Ro)z=iT}6ARns=Bwsn_wpnaRncw]aR(#UXa&Ua*a/=]iPd'#Y&Ro'WnXf{QRm2hNvj]nZd`'T~&1`{|`#9b]{}c:'!#Wl{>@=be}]?cl{{U#:5Abb}Jds#^YaF!a*b4a#a3aPa>&Tb!bH!*a_!Eau?/a&RjY<]gj>6Vz*;:pe~DrZg,QRj1JwNZtX@wihspcJvZ&!VyX9WmOJu|!|N2WmHJvh&!]ht~Bpbcn&T(!#RmQ<s7Nu;padH#X'`+WmJ@>RmKCARhnKup=!)&Wf+:RhqNuPpf9c!#'45pd5AwghpARn(Ls@w!%,)!RmP@Wfe<E|IJva!&WmNg8vsRmLd`*.`#Y'Xa!axRn*]hrA8Rhug5s@rXg8u!RmMd8#X'X*3@rV72smdI*#UY&RmICARho~GsgxVgd)Ta'U-Y&Xa!T#RnEWnA@Wffg1uDRi0hFvK5RnBxGnG&#`%owp)@wsf+bX}Ze-*1!a*^^^Ua|!#a.aq&Ya2!a>.a6!a:aO`aJDtL[y`@Wg#>6Vz12@wzoYRoZNuPRi!NuPRhzg=ucRi,@=b`{Yg=ucRi-ACJvB!&Sh[ebSh]ebi`wUuFRm4Jw2_[y0JvB!.<Ju(!&SoG}6Shd}6<Ju(!&SoH}6She}6Kur@._g5vHRieJvx!{L2G{Kx6gd'T#?Rh82Wi5cZ#X(g1w)Rm5dW-Y(Ta#!a)!#aYa=wnfE=su2>>bU{0j9udv:<svj8uQv-7RgHdE%#^'sq9sp=>Bb_{TJv`!&g/r|snj6v(us5d,#Y(56H}[978H}]Jw5!&g1rushJvB!+j;v{u5?zDhd}6}bj;v{u5?zDhe}6}ce*#`(^^^a[aea!=!a6a*aoXb1a.!aAbL!b>,b'aL!aV@Wf|2Wlg3[y/JwNZt^@3piPw:5pgJunZou3@rsJva&!Vy_g<v~Rm#JvG'!6Vz0=<r{Ju{%!:pj@WfsiXuJu3Rm:JvZ&!WfA~Bph@c4Z&Dtwax5rubx(#:awRk1@d,#Y&RfjRfid1#,Y(@Wfp2Wlrg5s@ryKu[@!,'=]ig9wlk?Rk>g5u-rqJvy'!@9RkQcH(T#=>Ri~@<wkj(Wj(KuZB*!&<7rw@9RkRcH(T#=>Ri}@<wkj)Wj)dg(Ta2Xa9X#`-!a*CARhg@@=I}d9x;c~#X%so=<sj>2@@=aybb}XjWv0Q~EfEj3vLv;<d,#Y(56H}`978H}_dgaPaFa'a/!#a3Y0a_a;a|!1(a7-[yE3[xt;:pJNvZrrg3uJrvJwNZt=@3pIh=rt3rxPw:5pGOu!5rpJvG'!6Vys=<rz@c4Z&Dt(ax5rtJvZ!&~BpH@wsfNg-vaRlNci*U#=<wei<F}a5@Jq.!a*JQ!%@qZ23d(#Y&RjH5]jCk!u7w&u0udARjFd/prq=tyvpaEa(a:.!a1aZ(@@=I}:9wpd%=<sX55w_h}@@=I{t=ay<aU@@=I}T=ay<2@@=I})?C9:9au@9Cb]}DP~=x-fAZ(2Wl1=ay<aU@@=I}>5@d##Y+jTv|vV~EfFj]uNpn~FRfGdgaK!Z2&!a8a-Tb({E!acTbM*!a(DtY[yYd'%Y#sl[y*hHvh>Re5x2c{Z}.j4uCvcawRiMd+#X+_x&d!},<5RkX;2Hzw@x,gavfB-!{CcF&T#Roe;RodwWbBg5urRgaKvHC*_6Vz+<4opieuew&Rmq@d]&Y)X,T#X0Rh}<BqP=4qS9:ReMg/ujReNJw0!/<Jui%!bd{kawwnemRelAxUa?a3#*.&UX(Ya+a/RhvRnQ<o}9Wmtd-#Y&RgSRmw9;Rmxay=Rmyg-vaRmuxEhSrNu,v-voC!%(aR.a(a7+1Ro1>Ro5CE{A9b]{@;5x#eO{:g;urRi+KrNA!%(Ro3>Ro79;Ri_Ku@>{;&!x%gX|{KunA_+g5QRj/g3u5Rj#g>uERj%wio/xRhS&!,!#^1U}wba{8>>@=be}qC@:D5ba{7Ku+A&!}x?ba}t>>@=be}se(aA^^^Uat!b0#{pa+awUazbGa#aLb9bgaWac'a5TbS=Br!d1#`%scp_Jvl!#rT>Re0JvX&!VyN=H{Fcm#U&:pY=ReaJv2&!]h0=]nUJvG'!6Vy|=<r%JrM_=]h2@Wlud'#)U'Wf'b]{i=]h/Jvh!&~BpWg=v]RnMx+ny#'Nu;pVwjnu=]nwxJnx,T#`&Reqwjnt=]nvieu9vrRjLLuYwP(#+!th@wih5pX~Gr'g5v/Rh4KunA'!-CARnP@wwiN:Rm_9x'cvw>!|l=<saKvAA!0&3@q}>w^e1bp#&Re2Re3BDx7gH#T|f5H|eKuZ>!%(:qNAH{]Jv6!+3B2B9=b^{X<5<B92:E{ZLvhwA(a;a%!igQuyRmad+#Y}m@3Rh5d8#X'X*:AqUAHzmaxwbh<aXRnVcF}RT#Nw&cj#U(BWnug/vsRntdka)(a3+.Zb7aYYan1!bVa@Xa}[y^@b[{G=H{+hFu73Rj&Pv#5ReQcK%T#sig1v{Rj'Ku+D#'!t]~Grm~?rkKuMB!01d5#`'Vy.ta3Dtu~Hroc8#'{^45s85AwZbP&!#Rn!wghxWn#KvEA!)&2RlA2RlBx:h|#(T,=]j09Wobz>x]z/@awRoTd+#Y(az]hFhCrm4d,#Y+jTv|Q~EfMj]uNr|~FRfOdCa!Xa9_X#@<plJvf!%b`{(9;Rgwc;.!#2x7cw#T|UDb]|T5Ju={(!=@E{&Jv)&!Ab`{'awJvf!~*>>@=be{#KuY>!+&4Ezyi[ugv&RjIdea+T)#UXa&T-T&a!Rh9auRmW=]kLg5vuRn+g3u4Rn-Ow6ARn,hHus5xNk?#UX(U~)/g8v0RkD~AwkkF?Ri.OuNBwkkA?Ri/d|a2`a*^UYa.!aBTZaTa'Xa;!(!2!-a#b2[yC>6Vyq3[xr2Wi?g1rusVh%s?DtF~<5rbJs;%!DtBfswKtCj[uvuSsEu3RgVx3o:u+wN'*Zt;@3rd~Grh~?rfg8w)Lq)qE&-a%!>bI|`jWv0vV~EfCjTv|vV~Ef@j]uNpn~FRfBcK#T']gWNu7x,k7q4ai(0!hHv8<RhmkMu9vrsBuev/RhlCJvB!,g<v{wchh~@:Rhji[vrv{wchi~@:RhkdS&a5UY#Ta!RgPwwiI5BwciI~@:Rh`x'iJvj'!5]iJPu8Bwch]~@:Rhach)U#h3rp]gLh@t|Ax,hTq3ah!-(~@:Ro0Ou!5RhXj^v(pyw8unRhVd|)`,^UYas!a?/a2Z'a^Ta{Tb7Ta(a#!a,Wf&9sZ3DtAadamov=Bqt3[xig8vsRm~>waiL2b`{QJv*_Ouv2qgj<v]v2BqfdR'X*X#Y-@3qr~Gqv~?p6hHv-]glPup5Lq+q?_%*b_{qF{n9b^{rOu4ARhpKvCD!+&~Bqp:5Dbb}nwoiKl&unuTuBv]v+ueunaXRf0=Jvh!0nKufu8v1w&w7q%w&uHrz:Rgnj5w,uxDJq/(!hNw'5ReCk0s2u3w/w'5ReFd>Za&!*UaA=<wkgsRnSJv^!%Refifw3vyRgOKu_B'!,<]gkiiu:w&Rh<=C@a^<B57@2F{[<B5@aW:=3away9A5aW=<B=C@a^<B57@2F{Ie-#`(^^^bCara.b8aza6!/bZ,!adTbnTbOb+aFaS!aAT9@Wf~2Wli3Dtl2@d,#Y&RfnRfmJwJZtN~GqyJva&!VyMg<v~Rm%iXuJu3Rm9Jv[_=]ih9wlkDRkCd1#`(@Wg>2Wls3cH#T(@<Rj*=>Ri|b~'#23s9h<~El.d'#Y&Dtxi^rzvdRl#d*#U%(o|B2s`hJwSaxRmDKv4B&!1:Rmdd5#`'Vx}to~Hq{x'f1v3(!BA5ba|bJv_&!Wfug1v]ReIdO+U/Y#&G}-8wze=Rh{g1v]ReHg/uQRf/by#)ibQwERl/cH#T(@<Rj+=>Ri{cNu+vlax-!(#a0qa9<Rii2;;bU{H;x<i=&X#Rk`<4wwi=C9H~8xAI(Y#<azRi@45wXI<B9;5bb~7dL(X#Xa(+!aL6Vy{g5QqOau:5au2@ay547EzbxOcU(UX-T#Ta#:Cbb|A?wjh/b_|SOw6ARgtihr}u7Rhy<d1#T)X1@@=I|~=ay<2@@=aybb}Sj3vLv;<d,#Y(56H}A978H}@dGpvs@uAu`vcw9*!aFa+ai%(b!aXa8.a?a[ozWey=sU2@G}Nch&U#Rf_WexKu+D#'!t:~Gr`~?r^j]uNr|~FRg*j^psurwJt|RmcKv)@&!)7Rkv~Br[@wxfO:Rl3co#U'6Rezj_q#vIuavjRltwzeyh@vr5JqD0!>aY?C9:9au@9Cb]}9cl#U*5;5<H||jbuus1ucv&Rfvg1v~d/pppzqFr^a--a~!aMat1(hFv;Wiz@@=Izoj5uuv-7Rix~Cw`fk2WlVcZ#X,k)u3vWs@u2]ktg;wEx'fBq(_2Wg/jTv|vV~EfoJv]!15x'hzqG!(P~EfU~CRl_j6v(us5x4i-#T(2WmZ?C2F|d>Kq<aj1!*jTqIsBv=Wl`~Cw`fi2WlWj`v0u*~>RlR=c>Z,k#u3vWs@u2]kr<c1Z+jTqIsBv=Wla~Cw`fm2WlXdmb3!a{(arZa`bkTa%TbQTa-a9+c'!aM!/[yL=Bqug.w'RifhFvyDRj.g>vgwyk^9]k^Jv3_@WfbAARkhJw2_[x|JvB_wkoIRoKwkoJRoLd'(Y#<]gm=<9<H|yd'%_X#skDtb3awwqkgNulRkgdB#^',9:p'hJwSaxRmEBwVb8@4=H|qLu+w50&!)@3qs~?pU>Awwn;;Rn=c:Z'ARn<=<qwKvC@!/&~BqqJv6!&]eVb^z^xRge'/a%+^`#Sge}6<4Rn3=]n0Pw2>Rn8Jw0!&>Rn:>Rn6cY#a7+!a&=<wkaNw~h3z_c5Z{=wjh#=]nLKv^D!&)Vyz=bW|swYb<WetcG#T(2wxa@qVx@gD#Y&b^|V5JwG&!5bb|pg/w&RgD@x=kHs=uAvn!a%%/'+RmSRh694Ro`g-vaRmRhHv-]mlxCcS#`&ba~.5cD#Ta)P~=d,#Y(56H{>978H{Dd_#{2^Y%_+qbbb{6g3sERhsbU{?dfa.,`a(Xa<!aiX#(55RiG54RiHcI#T'WiU3RiVNvdwtfcRlKNvdd,#Y&RlHRlExQgf.1*^T'X#Sgf}6Wn4=]hfPrk>Rn7Jw0!&>Rn5>Rn9Lunw?&a2!,5<oq@@wqfdRlJj5Q~=d,#Y(~ARfcOuN]fdDKw;ay(}i!547E}j?cI#T(@5bV}iCbV}hdv(^^Tb?a40,b##Tbo!a*bR!a<b|a/!aKai!aU[yK=]o^g:v>ReGJwPZtK<7Rh+h<~El,Pv#5ReR@awwxjCg,ulRjDJv6&!]j!z?aQeeg>w=Sh<eeJw;!&axEzOg,Qosc!#*:wkeJ]eJ>x'h-u(!%Ro.w~h.zPdNZ(X,Ya![x{;9ReY;wkgxRiF:x?ap#Y&RmUg<s2Rkod]+UY0TZ'!a&A9sw<=bczLNvuw{gqzNhJwSaxRmCKuLay!#&s_Rf-55b^{uJvZa!!c%#(55Ri654wmiu5RiuawLu,vp!+}^%b_}Y9;wkgxba}o>A9:=b^}zKuh=a''!3awRk3c*'!#aHRk6c+Z&Rk5Rk4Jv)&!awRjSawd9*`#0?C2@EzMj8u<uJ5RmbjQrquJu3x,k>uq@_+=ayb^|W~ARkEOuN]k@7dhzV^X/X&a-#zRzSb`zXcJzTT#2WkVKvDBzW!%FzY9;5bbzWjQrquJu3Jw3%!b`zU=ayb^zQd:#X(T-a!6Vyywxh}=b]{Jg=u1RiAdGp~qHtzv!w(wA+a+a;<!aJaYai'anasb(=azRmV:Cbb{MLq2vb!%')RjuRjrRjtRjqx3jnqCw3!%')Rk(Rk+Rk&Rk)Lq2vb!%')Rj{RjxRjzRjwLq2vb!%')RjsRjpRjfRjex3jcqCw3!%')Rk'Rk*RjkRjl9<CbbzfOu4ARhxLq2vb!%')RjyRjvRjhRjgx=joq*uKvb!%')+-Rk.Rk%Rj~Rk-Rk#Rj}x=jdq*uKvb!%')+-Rk,Rk!Rj|RjmRjjRjidAq&qKs@uAv8Aa.'*-a@a&0!aM@a5[y73Dsy3Ds|3Dt):wxgI2sHJwJZt.~Gqxwsf0ikrzt}Rl0Jvy_[xj~HqzKv_A|D!&WfP8axRoVcf,U#k(v]v+ueunaXRf1Ju}'!g8u#Ri=jQw!sCunLprq>!,')~<5qeGzq9F{W=c##%s5au:5aU3CBE|;d4#X(D!a&6Vygx(b;#(=]ed?C2F{N<capoq2r[a&!aPa9,'Pw;5s:@@=I|,55w_h|@@=IzcP~=x'fCqB_2Wl2>aU@@=I|1OuNBc1Z+jTqIsBv=Wlc~Cw`fl2WlZ~AcTa%!Z+jTqIsBv=Wlb~Cw`fh2WlYk+uNqJsBv=WlSg,u3dca3#UXaMYa)TaB-=cM|7T#<bI}l5@B932:aV2G{BOuNBJq:|M!5Ezt=<B=C@a^<B57@2F{v>cB{/T#=ay<bI{3Jv6!a.6BKq0ah&+!5E}HP~Ef{978BaU@@=Iza<7d#.Y#978BaU@@=IzH~AJq0!(@@=IzG978BaU@@=IzFe,aU*Y&^^^bvJb,b:bFad!a,c2Ta>aL.bo6!a#CbTa'T#Re{2Wlh2@G{yg6t~Ro_NvdRfticuRQRllJv3&!x&c|zs@Jw3!%RflwpfkRlpKuL;%(!Re<@G|C2GzdhIvuBwgjAg-u0RjAKQB%!(GzZ@G|5NuuRl7d='T+Y#Vy[g<v~Rm!==G|>JvA!)@wma=]m1ifuaw&RmnLs@vT'!|/+[y,g:v>ReTJw1!#qX=x!eC{bLu+wT&)ZtZauq_~Graci&U#F|89:r_Lupvq!.)&2RlG8RfaC=x!eF{_h?rpWlmd&'!#X|&]k::xJey#`'T|+<E|&2@H|%dE#(^,g;u.RiEg6vjRiC9xCkA{O|zY#g=ucRmXKs0@!&*@G|m@awRknJuh!,3d(}gY}eJvj!%Rm):Jw3!%Rm+Rm-Ls0w(&!a(a#@b[|6cZ#X'7RkxWgAOu4ARn'dH'U#Y*Vz-Wm'CARm}d]*#a%^a*T'aK!a<9bV{PC=p*Jw4!&SgxcbB5r]idw(wBRmF7xFkt#&`(Rm/Rm8E|!JuY_9:Rl5=wrgr2:bbxd@xXfB(a*#T+!.X0X1Ta/a'T&RlDRfL>RlyARl9b[z[>RfZ:RlL:RfRwlg/ARl;9;RlxKv,A/!%7s69<74=BA5ba{-8Bde#`a<XaKYa1,a'P~=wxfB2bZ}}?C972@@=I}r8@55B9;5bb}G978B2@@=aybb}3j3vLv;<Jw3&!>Rfk=ayb^}4~Ad1#`*@@=aybb{w2@>==<bbz]dx+UY#^UaF!a9!bB'Ya1.!ajXa#%olRhD[y=3Dt#Ov5BrHKuMB%!(Rf^Wep~HrJwkiQjKr|~FRg)Ku+D#'!t5~GrF~?rDdV)UY,Z/_7RkuG{<~BrBg,rlsO:235B@bX}|d?a1!#`(6Vyn5@d##Y+jTv|vV~EfIj]uNpn~FRfH7Lq2vb1!a9-978BaU@@=Iz9978BbU}#~AJq0!(@@=Iz8978BaU@@=Iz7~AJQ|}!978BbU}!JvkaK!AdUa21-U#`a+(g/vsRn~Ou!5RPj:rmu9WhOjXuvvNr}:RhAj^v(pyw8unRn[kPr}p|u7vwv]RiSBd;pppzq@qHQa?(b.!a.a`@.|xa(hFv;Wiyj5uuv-7Riw~Cw`fg2WlU978BbU|wOuNBJqG!(P~EfD~CRlQcZ#X,k)u3vWs@u2]ksg;wEx'f@q1_2Wg.j]uNpn~FRfqJv]!15x'h{qG!(@@=IzK~CRl^j6v(us5x4i,#T(2WmY?C2F{1>Kq<aj1!*jTqIsBv=Wld~Cw`fj2Wl[j`v0u*~>RlT=c>Z,k#u3vWs@u2]kq<c1Z+jTqIsBv=Wle~Cw`fn2Wl]dn1#c(a(b^a2!b/bAT(bj!aDa7bu,a_a{c0!2T0g:v>ReD2@G{42@G{5~DpM~<5rc=Bx6i>{RT#RnI@zCx]y]z:2Jv[!zr5Awyk]9]k]dD(Y+X#6Vz.g=wKtgwhaCwgmTWj2Lu,w%_+/[y-B;b^xeg3u3Rj-2@bX{*KrJ<!+'@Wg(g?QRlC@Jv`!%b[zIwsfII}8JQ_@w|kW|=Jv(%!AqcOuNBJvEzh!bYzjLs@wP#(0!oy@>RkdJwMZtc3Dtd@BcG#T'9bWxg2@2Fznd*#Y+;2x'c}w<zizixNgwa#Z'U+!/!a'!a+w~g~z6wcn{Rn}wcnzRn|5Rh%=]nJg5vuRmvNvdRlvcprJu}w*az*a#!%.a.'Bot9qT]kj@Wg'ay2Gzv@Jv`!%b[zEwsfHI}1;ck#Ux`<Cbbx_Lu+w!a&0*!wko*wwo,So,}6Juqxf!E}PigQuyRm`d3(`#8>Rn%:A5B;bZ~%KvhCa!a2!x>k7#Uxb@b{#xaRk7Jw0!)>wwhlShl}6>wwhmShm}6CJvB!.x'hhvj{!!5Bwkhhbaz}x'hivjz~!5Bwkhibaz|xEhTrNu,v-vpD!a%&/)a3a.,%Ro2t[CE{)@3re9b]{%wjo09:rgc:Z&Ro6=<riifuaw&RmoKrNA!%(Ro4>Ro89;Ri`dSaL'UYzxZb)7Rka3xRhT&!,!#^1U}vbaz{>>@=be}yC@:D5bazzKu+A&!}{?ba}y>>@=be}wxBh[t`u~vJvr!%a!a()a,a0a4RoC=]o;Ju(!%RoGRhdwjh`=]oAg>w#Ro?g5vuRo=NvdRl|Ku]C.!&;RoEJvB!%RoORoMBx'h[v+_?w~h`}~5?w~hd~!xKh]oiptu-utv.vp!#%&a30a@a'a+(a/aOp(o~p!RoDJu(!%RoHRhewjha=]oBNvdRl}g>w#Ro@g5vuRo>c[#X']o<CauRoRAd-#Y':RkpauRoQKu]C.!&;RoFJvB!%RoNRoPBx'h]v+_?w~ha}t5?w~he}ue!/UbhYacXaW^Tc&a;b:a-c/#b&aja1(!cL+!bKbt!bmcRc9aIc?8[yW3Dtt94Rg`Jv}!&SiRMzBhEebShEMNuPRe>x7gL#TzuwjirRipc<Z&>on;>z=h-MSh.Mwqczx'a7vj&!>Re4@=ResJt__NuPRi*NuPRi)j]uNr|~FRfzKrJ>_+@Wfy@Wf]2WocKrJ<!+'@Wg%g/QRl@@Jv`!&awRl<wsfFIzgLu(w*!.*&ShBMwvhIRhI9;RhNx1hK'!#Sn]Mx1hK~0!#:2<H~7cNu+w7D*'1ZtW>Rn1~?rOc:Z&Rn2=<rQ<7wjh&=BSnLMc]#X(6Vz)w[b=a!U#9wzgMc3#&(RgMRitRis<x,gKt`ax!&+SioM=BSilMc3#&(RgKRinRimKurB,!&SiQMzBhDebShDM6BJQ!(P~Efx978B2@@=I}WLrJw!!,a*&@G}O@9wkibRid@@x'fKwC!&SlDMSfLMjUv~Q~EfKKv3@a+!(hFv-]mpx/hYZ(C5RiWz<o/MwkhY?So/M@x,gbvfB*&!SgEM:SoeeehFu3:Rgbda(,^TZa)X/7Sg[eb:2RgI~BrMC@wgkc:wwkcRerx3h(uUvK!&*,SnOM4Sh*MArRg;wHRh(x=h;rJvPwI!a4',a'0@Wg&=BSh/Mg>w=Rh=g3w*wwgGRgGcW(X#;Sg}M2Gzk@Jv`!&awRl=wsfGIz`dKZ*T'Y-:RhR7RhQg5u-p`j6v(us5d,#Y+~Awkia?RicOuNBwkibba}Ld6p~tyu_vbAa'a+!a/'a3aEa8a!>Sh,ebJv{!&Sh@ebSaReb9;SgwebNuPRi(NvdRl)NuPRi'hHu^<Rm^Jvv_@Wl(g;u1Si/ebKu'B&!*Sh?eb@Wl'z@aPeb95Si.ebcpputyvjB)!,&a+0a%ShAMWeK@G}C@WfJ9;RhMwvhH9w{ia}ix,hJvRA1(!zAn[MRhHx1hJ~*!#hFv(BSn[MBJQ!(@@=I~'978B2@@=I}2db.Ua<'X}+T#a0XaG2G}E;wkg|wuh!Rh!x,hZu,@)!&So0MVy)C5RiXACJvB!&5RiY5RiZg8w)cG}*T#2@bU}=KsA>(!a.3wkhZba~(x,h^u(A!&(SoCMRhb5Bz=h[eb?w~hb~6x,h_u(A!&(SoDMRhc5Bz=h]eb?w~hc~6e)aA1T#T,^^^c-bMb&blcPaP(a/!0!bA=b5c@a(!bfbrc#2afwmhARnjwchORnp2Wlf3DtsNvdRl-2@wpa<]m0bx(#:awRk2@Jw3!%RfhwpfgRlnKQB%!(G{V@G|'NuuRl6d='T+Y#VyUg<v~Rl~==G|<Jv+'!aYShC}6@B<5?ba~8@Jw3'!g2QRljhLrpWlOd+#Y'g.w'rIg>w*wgj@g-u0Rj@Lu+wT&)ZtUauq]~GrGci&U#F|39:rELrNvj!.%*RhCwunfw~nf~:9;Ri]>wtnhg;wHRnhx3hDs@v~!/+'@Wfr@9RkSNu&Rlo=@<5GzoKs0@_+@Wl+@awRkmJuh!-3d(}pY#qWJvj!%Rm(:Jw3!%Rm,Rm*de&!1U-U#`)Re;@G|.@9Ri82@wjfvRlq=@<5GzpLvOvr!).&2RlF8Rf`C=x!eE{.Jw3_g2QRlkhLrpWlPde(!#U{s,UXa*Ta'[y'g:v>ReS;x0PZ&RnlRnn~HrKJw1}f!=x!eB|2w]aP(#Xa&a*Ta.Ua2a7=]iOd'#Y&Ro&WnWg;u.RiDg6vjRiBNvdRlzhNvj]nYJuW_2Wm3x)kFze{9d])!a.!,Y01!#&aC!a3RndC=ox~BrC@2b^{pg,rlse7x'ksuq!%Rm.E{xidw(wBRmGx9o+)X#wwo-So-}69:Rl4@xSf@a#XZ'X)X,Ta(/ARl8b[xc>RfY:RlI:RfQwlg.ARl:9;Rlwdn'#^XafaQa1X1TaHTa)@b[{zcZ#X'7RkwWg@Ou4ARn&x)kG#{,g7u/RkGdH'U#Y*Vz'Wm&CARm|bx#(A]gUbUzJj9Q~=d,#Y(56H}l978H{U7d,0#U*2>ABb_xZ978BbU{e~AJQ{g!978BbU{hxMh?ad{oUYZ.x1h?{l!#:2<H{mx3n[t{vl!,&a%3Ro(z=iS}6ARnr=Bwsn^wvn`Rnbd`*T}B0!#^X'BG{c9b]{a>>@=be}F?JvS!&BG{d7BG}(Bde#`a1X,Ya@!a'P~=wxf@2bZ}I56B2@@=aybb}08@55B9;5bb}<j3vLv;<Jw3&!>Rfg=ayb^}&OuNBKuLA!)a!P~=x#fD{f2@>==<bbzl?C972@@=Ix^d6rSu,v7w*C(0a)a6#B+a%!sQ[y?3Dt%3[xn~<5rLOu!5p@Ku+D#'!t7~GrP~?rNKvlaya7'!h+v-5qMg=t|cd,U#5AAaa5Abb{S@52B5@a[@52B5Gx[iXueu;d<#`a(!/549C;ag>23ExY5@Dah89b^~689Jv)!~2b[~1Lv'w(%*!a#bX|aPrmawRe]keu7uhv-q6rxu,q`xTo]/a5aU!bNaDXbi!b-!ao!b<bwA!#5@B932:aV2G|:d-)Y#hJrL>RhG<7@C5<H|_=Cau:5aj5@B932:bJ|ng>vIbs)#?C2F|9jPv0w.vISh-MKvUaz(.!9ABbb|[5;5<H|Eg>unwfh;9:4E|YjQsBt|vjx'hYq3!(?C2F|J:2<BaY?C2F|GOu!5x,g|p{ah!-(?C2F|c9:4E|OjXuvvNr}:Rh&i[w*t|cd+U#jJvsu)vsSn~Mkfrmu9p}u7vwv]So!McW#Xa!ax5@A5aY:5;5<H|>kJv~vYrquJu3x4ib#T)2@SmZM?C2F|Bj:rmu9@xPhI(a*a#U#`a3-5Abb|L~@:RhK9:4E|0@52B5G|#C::aY?C2F|-:2<BaY?C2F|.5Jvk!a)javYrquJu3x4ia#T)2@SmYM?C2F|HAxPhH(!a#U#`a*-5Abb|4~@:RhJ9:4E|R@52B5G|F:2<BaY?C2F|Sc^#Xa2j=Qq5CJvB!-g<v{z;hhM?C2F|Zi[vrv{z;hiM?C2F|XKsA>!a)-g<v{z;h[eb?C2F|]i[vrv{z;h]eb?C2F|^iZu.vix,hZq3ah!.(?C2F|QOu!5ShXM:2<BaY?C2F|P",13494,2713,49,25,61)});var ti,an=ue(()=>{ti=new Uint16Array([512,26465,29036,7,0,2,4,116,24638,116,24636,8693,29807,24610,621,1,0,0,3,112,24614,111,115,24615])});var ve,la=ue(()=>{(function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.FLAG13=8192]="FLAG13",t[t.BRANCH_LENGTH=8064]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE",t[t.VALUE_MASK=8191]="VALUE_MASK"})(ve||(ve={}))});function da(t){return t-be.ZERO>>>0<=9}function mm(t){return(t|Wi)-be.LOWER_A>>>0<=5}function fm(t){return(t|Wi)-be.LOWER_A>>>0<=25}function gm(t){return t===be.EQUALS||fm(t)||da(t)}function km(t,e,i,s){let n=(e&ve.BRANCH_LENGTH)>>7,r=e&ve.JUMP_TABLE;if(r){if(n===0)return s===r?i:-1;let l=s-r;if(l>>>0>=n)return-1;let u=t[i+l];return u===0?-1:i+n+u-1&65535}if(n===0)return-1;let o=n+1>>1,c=i+o+n;for(let l=0;l<n;l++){let d=t[i+(l>>1)]>>((l&1)<<3)&255;if(d===s){let p=i+o+l;return c+t[p]&65535}if(d>s)return-1}return-1}var be,Wi,Ie,qe,Yi,ua=ue(()=>{ra();an();la();ca();an();(function(t){t[t.AMP=38]="AMP",t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_X=120]="LOWER_X"})(be||(be={}));Wi=32;(function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"})(Ie||(Ie={}));(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(qe||(qe={}));Yi=class{decodeTree;emitCodePoint;errors;state=Ie.EntityStart;consumed=1;result=0;treeIndex=0;excess=1;decodeMode=qe.Strict;runConsumed=0;constructor(e,i,s){this.decodeTree=e,this.emitCodePoint=i,this.errors=s}startEntity(e){this.decodeMode=e,this.state=Ie.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,i){switch(this.state){case Ie.EntityStart:return e.charCodeAt(i)===be.NUM?(this.state=Ie.NumericStart,this.consumed+=1,this.stateNumericStart(e,i+1)):(this.state=Ie.NamedEntity,this.stateNamedEntity(e,i));case Ie.NumericStart:return this.stateNumericStart(e,i);case Ie.NumericDecimal:return this.stateNumericDecimal(e,i);case Ie.NumericHex:return this.stateNumericHex(e,i);default:return this.stateNamedEntity(e,i)}}stateNumericStart(e,i){return i>=e.length?-1:(e.charCodeAt(i)|Wi)===be.LOWER_X?(this.state=Ie.NumericHex,this.consumed+=1,this.stateNumericHex(e,i+1)):(this.state=Ie.NumericDecimal,this.stateNumericDecimal(e,i))}stateNumericHex(e,i){let s=e.length,{result:n}=this,{consumed:r}=this;for(;i<s;){let o=e.charCodeAt(i);if(da(o)||mm(o)){let c=o<=be.NINE?o-be.ZERO:(o|Wi)-be.LOWER_A+10;n=n*16+c,r+=1,i+=1}else return this.result=n,this.consumed=r,this.emitNumericEntity(o,3)}return this.result=n,this.consumed=r,-1}stateNumericDecimal(e,i){let s=e.length,{result:n}=this,{consumed:r}=this;for(;i<s;){let o=e.charCodeAt(i)-be.ZERO;if(o>>>0>9)return this.result=n,this.consumed=r,this.emitNumericEntity(o+be.ZERO,2);n=n*10+o,r+=1,i+=1}return this.result=n,this.consumed=r,-1}emitNumericEntity(e,i){if(this.consumed<=i)return this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===be.SEMI)this.consumed+=1;else if(this.decodeMode===qe.Strict)return 0;return this.emitCodePoint((this.decodeTree===ti?na:sa)(this.result),this.consumed),this.errors&&(e!==be.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}flushAndEmitLegacyOrReject(e,i,s,n){return this.consumed=e,this.excess=i,this.result===0||this.decodeMode===qe.Attribute&&(n===0||i>1||gm(s))?0:this.emitNotTerminatedNamedEntity()}stateNamedEntity(e,i){let{decodeTree:s}=this,n=e.length,r=this.decodeMode===qe.Strict,{treeIndex:o}=this,{excess:c}=this,{consumed:l}=this,u=s[o];for(;i<n;){for(;(u&(ve.VALUE_LENGTH|ve.FLAG13))===0&&(u&ve.JUMP_TABLE)!==0;){let m=e.charCodeAt(i),b=u&ve.JUMP_TABLE,_=(u&ve.BRANCH_LENGTH)>>7;if(_===0){if(m!==b)return this.flushAndEmitLegacyOrReject(l,c,m,0);o+=1}else{let f=m-b;if(f>>>0>=_)return this.flushAndEmitLegacyOrReject(l,c,m,0);let g=s[o+1+f];if(g===0)return this.flushAndEmitLegacyOrReject(l,c,m,0);o=o+_+g&65535}if(u=s[o],i+=1,c+=1,i>=n)break}if(i>=n)break;if((u&(ve.VALUE_LENGTH|ve.FLAG13))===ve.FLAG13){let m=(u&ve.BRANCH_LENGTH)>>7,{runConsumed:b}=this;if(b===0){let _=e.charCodeAt(i);if(_!==(u&ve.JUMP_TABLE))return this.flushAndEmitLegacyOrReject(l,c,_,0);i+=1,c+=1,b=1}for(;b<m;){if(i>=n)return this.treeIndex=o,this.excess=c,this.consumed=l,this.runConsumed=b,-1;let _=b-1,g=s[o+1+(_>>1)]>>((_&1)<<3)&255,y=e.charCodeAt(i);if(y!==g)return this.runConsumed=0,this.flushAndEmitLegacyOrReject(l,c,y,0);i+=1,c+=1,b+=1}this.runConsumed=0,o+=1+(m>>1),u=s[o];continue}let d=u>>>14,p=e.charCodeAt(i);if(d!==0){if(!r&&(u&ve.FLAG13)===0&&(this.result=o,l+=c-1,c=1),p===be.SEMI)return this.emitNamedEntityData(o,d,l+c);if(d===1)return this.flushAndEmitLegacyOrReject(l,c,p,d)}let h=km(s,u,o+(d||1),p);if(h<0)return this.flushAndEmitLegacyOrReject(l,c,p,d);o=h,u=s[o],i+=1,c+=1}return!r&&u>>>14&&(u&ve.FLAG13)===0&&(this.result=o,l+=c-1,c=1),this.treeIndex=o,this.excess=c,this.consumed=l,-1}emitNotTerminatedNamedEntity(){let{result:e,decodeTree:i}=this,s=i[e]>>>14;return this.emitNamedEntityData(e,s,this.consumed),this.errors?.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,i,s){let{decodeTree:n}=this;return this.emitCodePoint(i===1?n[e]&ve.VALUE_MASK:n[e+1],s),i===3&&this.emitCodePoint(n[e+2],s),s}end(){switch(this.state){case Ie.NamedEntity:return this.result!==0&&(this.decodeMode!==qe.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Ie.NumericDecimal:return this.emitNumericEntity(0,2);case Ie.NumericHex:return this.emitNumericEntity(0,3);case Ie.NumericStart:return this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed),0;default:return 0}}}});function yt(t){return t===M.Space||t===M.NewLine||t===M.Tab||t===M.FormFeed||t===M.CarriageReturn}function Rt(t){return t===M.Slash||t===M.Gt||yt(t)}function ym(t){return t>=M.LowerA&&t<=M.LowerZ||t>=M.UpperA&&t<=M.UpperZ}var M,w,De,j,vm,vt,on=ue(()=>{ua();(function(t){t[t.Tab=9]="Tab",t[t.NewLine=10]="NewLine",t[t.FormFeed=12]="FormFeed",t[t.CarriageReturn=13]="CarriageReturn",t[t.Space=32]="Space",t[t.ExclamationMark=33]="ExclamationMark",t[t.Number=35]="Number",t[t.Amp=38]="Amp",t[t.SingleQuote=39]="SingleQuote",t[t.DoubleQuote=34]="DoubleQuote",t[t.Dash=45]="Dash",t[t.Slash=47]="Slash",t[t.Zero=48]="Zero",t[t.Nine=57]="Nine",t[t.Semi=59]="Semi",t[t.Lt=60]="Lt",t[t.Eq=61]="Eq",t[t.Gt=62]="Gt",t[t.Questionmark=63]="Questionmark",t[t.UpperA=65]="UpperA",t[t.LowerA=97]="LowerA",t[t.UpperF=70]="UpperF",t[t.LowerF=102]="LowerF",t[t.UpperZ=90]="UpperZ",t[t.LowerZ=122]="LowerZ",t[t.LowerX=120]="LowerX",t[t.OpeningSquareBracket=91]="OpeningSquareBracket"})(M||(M={}));(function(t){t[t.Text=1]="Text",t[t.BeforeTagName=2]="BeforeTagName",t[t.InTagName=3]="InTagName",t[t.InSelfClosingTag=4]="InSelfClosingTag",t[t.BeforeClosingTagName=5]="BeforeClosingTagName",t[t.InClosingTagName=6]="InClosingTagName",t[t.AfterClosingTagName=7]="AfterClosingTagName",t[t.BeforeAttributeName=8]="BeforeAttributeName",t[t.InAttributeName=9]="InAttributeName",t[t.AfterAttributeName=10]="AfterAttributeName",t[t.BeforeAttributeValue=11]="BeforeAttributeValue",t[t.InAttributeValueDq=12]="InAttributeValueDq",t[t.InAttributeValueSq=13]="InAttributeValueSq",t[t.InAttributeValueNq=14]="InAttributeValueNq",t[t.BeforeDeclaration=15]="BeforeDeclaration",t[t.InDeclaration=16]="InDeclaration",t[t.InProcessingInstruction=17]="InProcessingInstruction",t[t.BeforeComment=18]="BeforeComment",t[t.CDATASequence=19]="CDATASequence",t[t.DeclarationSequence=20]="DeclarationSequence",t[t.InSpecialComment=21]="InSpecialComment",t[t.InCommentLike=22]="InCommentLike",t[t.SpecialStartSequence=23]="SpecialStartSequence",t[t.InSpecialTag=24]="InSpecialTag",t[t.InPlainText=25]="InPlainText",t[t.InEntity=26]="InEntity"})(w||(w={}));(function(t){t[t.NoValue=0]="NoValue",t[t.Unquoted=1]="Unquoted",t[t.Single=2]="Single",t[t.Double=3]="Double"})(De||(De={}));j={Empty:new Uint8Array(0),Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,33,62]),Doctype:new Uint8Array([100,111,99,116,121,112,101]),IframeEnd:new Uint8Array([60,47,105,102,114,97,109,101]),NoembedEnd:new Uint8Array([60,47,110,111,101,109,98,101,100]),NoframesEnd:new Uint8Array([60,47,110,111,102,114,97,109,101,115]),Plaintext:new Uint8Array([60,47,112,108,97,105,110,116,101,120,116]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])},vm=new Map([[j.IframeEnd[2],j.IframeEnd],[j.NoembedEnd[2],j.NoembedEnd],[j.Plaintext[2],j.Plaintext],[j.ScriptEnd[2],j.ScriptEnd],[j.TitleEnd[2],j.TitleEnd],[j.XmpEnd[2],j.XmpEnd]]),vt=class{cbs;state=w.Text;buffer="";sectionStart=0;index=0;entityStart=0;baseState=w.Text;isSpecial=!1;running=!0;offset=0;xmlMode;decodeEntities;recognizeSelfClosing;entityDecoder;constructor({xmlMode:e=!1,decodeEntities:i=!0,recognizeSelfClosing:s=e},n){this.cbs=n,this.xmlMode=e,this.decodeEntities=i,this.recognizeSelfClosing=s,this.entityDecoder=new Yi(e?ti:rn,(r,o)=>this.emitCodePoint(r,o))}reset(){this.state=w.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=w.Text,this.isSpecial=!1,this.currentSequence=j.Empty,this.sequenceIndex=0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(e){e===M.Lt||!this.decodeEntities&&this.fastForwardTo(M.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=w.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===M.Amp&&this.startEntity()}currentSequence=j.Empty;sequenceIndex=0;enterTagBody(){this.currentSequence===j.Plaintext?(this.currentSequence=j.Empty,this.state=w.InPlainText):this.isSpecial?(this.state=w.InSpecialTag,this.sequenceIndex=0):this.state=w.Text}stateSpecialStartSequence(e){let i=e|32;if(this.sequenceIndex<this.currentSequence.length){if(i===this.currentSequence[this.sequenceIndex]){this.sequenceIndex++;return}if(this.sequenceIndex===3){if(this.currentSequence===j.ScriptEnd&&i===j.StyleEnd[3]){this.currentSequence=j.StyleEnd,this.sequenceIndex=4;return}if(this.currentSequence===j.TitleEnd&&i===j.TextareaEnd[3]){this.currentSequence=j.TextareaEnd,this.sequenceIndex=4;return}}else if(this.sequenceIndex===4&&this.currentSequence===j.NoembedEnd&&i===j.NoframesEnd[4]){this.currentSequence=j.NoframesEnd,this.sequenceIndex=5;return}}else if(Rt(e)){this.sequenceIndex=0,this.state=w.InTagName,this.stateInTagName(e);return}this.isSpecial=!1,this.currentSequence=j.Empty,this.sequenceIndex=0,this.state=w.InTagName,this.stateInTagName(e)}stateCDATASequence(e){e===j.Cdata[this.sequenceIndex]?++this.sequenceIndex===j.Cdata.length&&(this.state=w.InCommentLike,this.currentSequence=j.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.xmlMode?(this.state=w.InDeclaration,this.stateInDeclaration(e)):(this.state=w.InSpecialComment,this.stateInSpecialComment(e)))}fastForwardTo(e){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===e)return!0;return this.index=this.buffer.length+this.offset-1,!1}emitComment(e){this.cbs.oncomment(this.sectionStart,this.index,e),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=w.Text}stateInCommentLike(e){!this.xmlMode&&this.currentSequence===j.CommentEnd&&this.sequenceIndex<=1&&this.index===this.sectionStart+this.sequenceIndex&&e===M.Gt?this.emitComment(this.sequenceIndex):this.currentSequence===j.CommentEnd&&this.sequenceIndex===2&&e===M.Gt?this.emitComment(2):this.currentSequence===j.CommentEnd&&this.sequenceIndex===this.currentSequence.length-1&&e!==M.Gt?this.sequenceIndex=+(e===M.Dash):e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===j.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,3),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=w.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(e){return this.xmlMode?!Rt(e):ym(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(Rt(e)){let i=this.index-this.currentSequence.length;if(this.sectionStart<i){let s=this.index;this.index=i,this.cbs.ontext(this.sectionStart,i),this.index=s}this.isSpecial=!1,this.sectionStart=i+2,this.stateInClosingTagName(e);return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===j.TitleEnd||this.currentSequence===j.TextareaEnd?this.decodeEntities&&e===M.Amp&&this.startEntity():this.fastForwardTo(M.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(e===M.Lt)}stateBeforeTagName(e){if(e===M.ExclamationMark)this.state=w.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===M.Questionmark)this.xmlMode?(this.state=w.InProcessingInstruction,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.state=w.InSpecialComment,this.sectionStart=this.index);else if(this.isTagStartChar(e)){this.sectionStart=this.index;let i=this.xmlMode||this.cbs.isInForeignContext?.()?void 0:vm.get(e|32);i===void 0?this.state=w.InTagName:(this.isSpecial=!0,this.currentSequence=i,this.sequenceIndex=3,this.state=w.SpecialStartSequence)}else e===M.Slash?this.state=w.BeforeClosingTagName:(this.state=w.Text,this.stateText(e))}stateInTagName(e){Rt(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=w.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){yt(e)?this.xmlMode||(this.state=w.InSpecialComment,this.sectionStart=this.index):e===M.Gt?(this.state=w.Text,this.xmlMode||(this.sectionStart=this.index+1)):(this.state=this.isTagStartChar(e)?w.InClosingTagName:w.InSpecialComment,this.sectionStart=this.index)}stateInClosingTagName(e){Rt(e)&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=w.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===M.Gt||this.fastForwardTo(M.Gt))&&(this.state=w.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===M.Gt?(this.cbs.onopentagend(this.index),this.enterTagBody(),this.sectionStart=this.index+1):e===M.Slash?this.state=w.InSelfClosingTag:yt(e)||(this.state=w.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){if(e===M.Gt){if(this.cbs.onselfclosingtag(this.index),this.sectionStart=this.index+1,!this.recognizeSelfClosing){this.enterTagBody();return}this.state=w.Text,this.isSpecial=!1,this.currentSequence=j.Empty}else yt(e)||(this.state=w.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===M.Eq||Rt(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=w.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===M.Eq?this.state=w.BeforeAttributeValue:e===M.Slash||e===M.Gt?(this.cbs.onattribend(De.NoValue,this.sectionStart),this.sectionStart=-1,this.state=w.BeforeAttributeName,this.stateBeforeAttributeName(e)):yt(e)||(this.cbs.onattribend(De.NoValue,this.sectionStart),this.state=w.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===M.DoubleQuote?(this.state=w.InAttributeValueDq,this.sectionStart=this.index+1):e===M.SingleQuote?(this.state=w.InAttributeValueSq,this.sectionStart=this.index+1):yt(e)||(this.sectionStart=this.index,this.state=w.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,i){e===i||!this.decodeEntities&&this.fastForwardTo(i)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(i===M.DoubleQuote?De.Double:De.Single,this.index+1),this.state=w.BeforeAttributeName):this.decodeEntities&&e===M.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,M.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,M.SingleQuote)}stateInAttributeValueNoQuotes(e){yt(e)||e===M.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(De.Unquoted,this.index),this.state=w.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===M.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===M.OpeningSquareBracket?(this.state=w.CDATASequence,this.sequenceIndex=0):this.xmlMode?this.state=e===M.Dash?w.BeforeComment:w.InDeclaration:(e|32)===j.Doctype[0]?(this.state=w.DeclarationSequence,this.currentSequence=j.Doctype,this.sequenceIndex=1):e===M.Gt?(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=w.Text,this.sectionStart=this.index+1):e===M.Dash?this.state=w.BeforeComment:this.state=w.InSpecialComment}stateDeclarationSequence(e){this.sequenceIndex===this.currentSequence.length?(this.state=w.InDeclaration,this.stateInDeclaration(e)):(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:e===M.Gt?(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=w.Text,this.sectionStart=this.index+1):this.state=w.InSpecialComment}stateInDeclaration(e){(e===M.Gt||this.fastForwardTo(M.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=w.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){e===M.Questionmark?this.sequenceIndex=1:e===M.Gt&&this.sequenceIndex===1?(this.cbs.onprocessinginstruction(this.sectionStart,this.index-1),this.sequenceIndex=0,this.state=w.Text,this.sectionStart=this.index+1):this.sequenceIndex=Number(this.fastForwardTo(M.Questionmark))}stateBeforeComment(e){e===M.Dash?(this.state=w.InCommentLike,this.currentSequence=j.CommentEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):this.xmlMode?this.state=w.InDeclaration:e===M.Gt?(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=w.Text,this.sectionStart=this.index+1):this.state=w.InSpecialComment}stateInSpecialComment(e){(e===M.Gt||this.fastForwardTo(M.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=w.Text,this.sectionStart=this.index+1)}startEntity(){this.baseState=this.state,this.state=w.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?qe.Strict:this.baseState===w.Text||this.baseState===w.InSpecialTag?qe.Legacy:qe.Attribute)}stateInEntity(){let e=this.index-this.offset,i=this.entityDecoder.write(this.buffer,e);if(i>=0)this.state=this.baseState,i===0&&(this.index-=1);else{if(e<this.buffer.length&&this.buffer.charCodeAt(e)===M.Amp){this.state=this.baseState,this.index-=1;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===w.Text||this.state===w.InPlainText||this.state===w.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===w.InAttributeValueDq||this.state===w.InAttributeValueSq||this.state===w.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let e=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case w.Text:{this.stateText(e);break}case w.InPlainText:{this.index=this.buffer.length+this.offset-1;break}case w.SpecialStartSequence:{this.stateSpecialStartSequence(e);break}case w.InSpecialTag:{this.stateInSpecialTag(e);break}case w.CDATASequence:{this.stateCDATASequence(e);break}case w.DeclarationSequence:{this.stateDeclarationSequence(e);break}case w.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(e);break}case w.InAttributeName:{this.stateInAttributeName(e);break}case w.InCommentLike:{this.stateInCommentLike(e);break}case w.InSpecialComment:{this.stateInSpecialComment(e);break}case w.BeforeAttributeName:{this.stateBeforeAttributeName(e);break}case w.InTagName:{this.stateInTagName(e);break}case w.InClosingTagName:{this.stateInClosingTagName(e);break}case w.BeforeTagName:{this.stateBeforeTagName(e);break}case w.AfterAttributeName:{this.stateAfterAttributeName(e);break}case w.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(e);break}case w.BeforeAttributeValue:{this.stateBeforeAttributeValue(e);break}case w.BeforeClosingTagName:{this.stateBeforeClosingTagName(e);break}case w.AfterClosingTagName:{this.stateAfterClosingTagName(e);break}case w.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(e);break}case w.InSelfClosingTag:{this.stateInSelfClosingTag(e);break}case w.InDeclaration:{this.stateInDeclaration(e);break}case w.BeforeDeclaration:{this.stateBeforeDeclaration(e);break}case w.BeforeComment:{this.stateBeforeComment(e);break}case w.InProcessingInstruction:{this.stateInProcessingInstruction(e);break}case w.InEntity:{this.stateInEntity();break}}this.index++}this.cleanup()}finish(){this.state===w.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingCommentLikeData(e){if(this.state!==w.InCommentLike)return!1;if(this.currentSequence===j.CdataEnd)if(this.xmlMode)this.sectionStart<e&&this.cbs.oncdata(this.sectionStart,e,0);else{let i=this.sectionStart-j.Cdata.length-1;this.cbs.oncomment(i,e,0)}else{let i=this.xmlMode?0:Math.min(this.sequenceIndex,j.CommentEnd.length-1);this.cbs.oncomment(this.sectionStart,e,i)}return!0}handleTrailingMarkupDeclaration(e){if(this.xmlMode)switch(this.state){case w.InSpecialComment:case w.BeforeComment:case w.CDATASequence:case w.DeclarationSequence:case w.InDeclaration:return this.cbs.ontext(this.sectionStart,e),!0;default:return!1}switch(this.state){case w.BeforeDeclaration:case w.InSpecialComment:case w.BeforeComment:case w.CDATASequence:return this.cbs.oncomment(this.sectionStart,e,0),!0;case w.DeclarationSequence:return this.sequenceIndex!==j.Doctype.length&&this.cbs.oncomment(this.sectionStart,e,0),!0;case w.InDeclaration:return!0;default:return!1}}handleTrailingData(){let e=this.buffer.length+this.offset;if(!(this.handleTrailingCommentLikeData(e)||this.handleTrailingMarkupDeclaration(e))&&!(this.sectionStart>=e))switch(this.state){case w.InTagName:case w.BeforeAttributeName:case w.BeforeAttributeValue:case w.AfterAttributeName:case w.InAttributeName:case w.InAttributeValueSq:case w.InAttributeValueDq:case w.InAttributeValueNq:case w.InClosingTagName:break;default:this.cbs.ontext(this.sectionStart,e)}}emitCodePoint(e,i){this.baseState!==w.Text&&this.baseState!==w.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+i,this.index=this.sectionStart-1,this.cbs.onattribentity(e)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+i,this.index=this.sectionStart-1,this.cbs.ontextentity(e,this.sectionStart))}}});var ha,Dt,me,Ot,pa,ma,fa,wm,ga,Em,xm,ka,ya,et,Im,wt,cn=ue(()=>{on();({fromCodePoint:ha}=String),Dt=new Set(["input","option","optgroup","select","button","datalist","textarea"]),me=new Set(["p"]),Ot=new Set(["h1","h2","h3","h4","h5","h6","p"]),pa=new Set(["thead","tbody"]),ma=new Set(["dd","dt"]),fa=new Set(["rt","rp"]),wm=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["a",new Set(["a"])],["li",new Set(["li"])],["p",me],["h1",Ot],["h2",Ot],["h3",Ot],["h4",Ot],["h5",Ot],["h6",Ot],["select",Dt],["input",Dt],["output",Dt],["button",Dt],["datalist",Dt],["textarea",Dt],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",ma],["dt",ma],["address",me],["article",me],["aside",me],["blockquote",me],["details",me],["div",me],["dl",me],["fieldset",me],["figcaption",me],["figure",me],["footer",me],["form",me],["header",me],["hr",me],["main",me],["nav",me],["ol",me],["pre",me],["section",me],["table",me],["ul",me],["rt",fa],["rp",fa],["tbody",pa],["tfoot",pa]]),ga="doctype",Em=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),xm=new Set(["math","svg"]),ka=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),ya=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]);(function(t){t[t.None=0]="None",t[t.Svg=1]="Svg",t[t.MathML=2]="MathML"})(et||(et={}));Im=/\s|\//,wt=class{options;startIndex=0;endIndex=0;openTagStart=0;tagname="";attribname="";attribvalue="";attribs=null;stack=[];foreignContext;cbs;lowerCaseTagNames;lowerCaseAttributeNames;recognizeSelfClosing;htmlMode;tokenizer;buffers=[];bufferOffset=0;writeIndex=0;ended=!1;constructor(e,i={}){this.options=i,this.cbs=e??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=i.lowerCaseTags??this.htmlMode,this.lowerCaseAttributeNames=i.lowerCaseAttributeNames??this.htmlMode,this.recognizeSelfClosing=i.recognizeSelfClosing??!this.htmlMode,this.tokenizer=new(i.Tokenizer??vt)(this.options,this),this.foreignContext=[et.None],this.cbs.onparserinit?.(this)}ontext(e,i){let s=this.getSlice(e,i);this.endIndex=i-1,this.cbs.ontext?.(s),this.startIndex=i}ontextentity(e,i){this.endIndex=i-1,this.cbs.ontext?.(ha(e)),this.startIndex=i}isInForeignContext(){return this.foreignContext[0]!==et.None}isVoidElement(e){return this.htmlMode&&Em.has(e)}readTagName(e,i){let s=this.lowerCaseTagNames?this.getSlice(e,i).toLowerCase():this.getSlice(e,i);if(!(this.lowerCaseTagNames&&this.htmlMode))return s;if(this.foreignContext[0]===et.Svg)return ya.get(s)??s;if(this.foreignContext.length>1){let n=ya.get(s);if(n!==void 0&&this.stack.includes(n))return n}return this.isInForeignContext()?s:s==="image"?"img":s}onopentagname(e,i){this.endIndex=i,this.emitOpenTag(this.readTagName(e,i))}emitOpenTag(e){if(this.openTagStart=this.startIndex,this.tagname=e,this.htmlMode&&e==="form"&&this.stack.includes("form")){this.tagname="";return}let i=this.htmlMode&&wm.get(e);if(i)for(;this.stack.length>0&&i.has(this.stack[0]);)this.popElement(!0);this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(e==="svg"?this.foreignContext.unshift(et.Svg):e==="math"?this.foreignContext.unshift(et.MathML):ka.has(e)&&this.foreignContext.unshift(et.None))),this.cbs.onopentagname?.(e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){this.startIndex=this.openTagStart,this.attribs&&(this.cbs.onopentag?.(this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,i){this.endIndex=i;let s=this.readTagName(e,i);if(this.isVoidElement(s))this.htmlMode&&s==="br"&&(this.cbs.onopentagname?.("br"),this.cbs.onopentag?.("br",{},!0),this.cbs.onclosetag?.("br",!1));else{let n=this.stack.indexOf(s);if(n!==-1){for(let r=0;r<n;r++)this.popElement(!0);this.popElement(!1)}else this.htmlMode&&s==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=i+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.isInForeignContext()?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}popElement(e){let i=this.stack.shift();this.htmlMode&&(xm.has(i)||ka.has(i))&&this.foreignContext.shift(),this.cbs.onclosetag?.(i,e)}closeCurrentTag(e){let i=this.tagname;this.endOpenTag(e),this.stack[0]===i&&this.popElement(!e)}onattribname(e,i){this.startIndex=e;let s=this.getSlice(e,i);this.attribname=this.lowerCaseAttributeNames?s.toLowerCase():s}onattribdata(e,i){this.attribvalue+=this.getSlice(e,i)}onattribentity(e){this.attribvalue+=ha(e)}onattribend(e,i){this.endIndex=i,this.cbs.onattribute?.(this.attribname,this.attribvalue,e===De.Double?'"':e===De.Single?"'":e===De.NoValue?void 0:null),this.attribs&&!Object.hasOwn(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(e){let i=e.search(Im),s=i<0?e:e.substr(0,i);return this.lowerCaseTagNames&&(s=s.toLowerCase()),s}ondeclaration(e,i){this.endIndex=i;let s=this.getSlice(e,i);if(this.cbs.onprocessinginstruction){let n=this.htmlMode?this.lowerCaseTagNames?ga:s.slice(0,ga.length):this.getInstructionName(s);this.cbs.onprocessinginstruction(`!${n}`,`!${s}`)}this.startIndex=i+1}onprocessinginstruction(e,i){this.endIndex=i;let s=this.getSlice(e,i);if(this.cbs.onprocessinginstruction){let n=this.getInstructionName(s);this.cbs.onprocessinginstruction(`?${n}`,`?${s}`)}this.startIndex=i+1}oncomment(e,i,s){this.endIndex=i,this.cbs.oncomment?.(this.getSlice(e,i-s)),this.cbs.oncommentend?.(),this.startIndex=i+1}oncdata(e,i,s){this.endIndex=i;let n=this.getSlice(e,i-s);!this.htmlMode||this.options.recognizeCDATA?(this.cbs.oncdatastart?.(),this.cbs.ontext?.(n),this.cbs.oncdataend?.()):this.isInForeignContext()?this.cbs.ontext?.(n):(this.cbs.oncomment?.(`[CDATA[${n}]]`),this.cbs.oncommentend?.()),this.startIndex=i+1}onend(){if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e<this.stack.length;e++)this.cbs.onclosetag(this.stack[e],!0)}this.cbs.onend?.()}reset(){this.cbs.onreset?.(),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,this.cbs.onparserinit?.(this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(et.None),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(e){this.reset(),this.end(e)}getSlice(e,i){if(e===i)return"";for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let s=this.buffers[0].slice(e-this.bufferOffset,i-this.bufferOffset);for(;i-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),s+=this.buffers[0].slice(0,i-this.bufferOffset);return s}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){if(this.ended){this.cbs.onerror?.(new Error(".write() after done!"));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)}end(e){if(this.ended){this.cbs.onerror?.(new Error(".end() after done!"));return}e&&this.write(e),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}}});var zi={};Ms(zi,{CDATA:()=>kn,Comment:()=>pn,Directive:()=>hn,Doctype:()=>bm,ElementType:()=>Q,Root:()=>dn,Script:()=>mn,Style:()=>fn,Tag:()=>gn,Text:()=>un,isTag:()=>ln});function ln(t){return t.type===Q.Tag||t.type===Q.Script||t.type===Q.Style}var Q,dn,un,hn,pn,mn,fn,gn,kn,bm,Lt=ue(()=>{(function(t){t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"})(Q||(Q={}));dn=Q.Root,un=Q.Text,hn=Q.Directive,pn=Q.Comment,mn=Q.Script,fn=Q.Style,gn=Q.Tag,kn=Q.CDATA,bm=Q.Doctype});function Se(t){return ln(t)}function Ji(t){return t.type===Q.CDATA}function at(t){return t.type===Q.Text}function vn(t){return t.type===Q.Comment}function Sm(t){return t.type===Q.Directive}function Cm(t){return t.type===Q.Root}function Ne(t){return Object.hasOwn(t,"children")}function va(t,e=!1){let i;if(at(t))i=new Mt(t.data);else if(vn(t))i=new si(t.data);else if(Se(t)){let s=e?yn(t.children):[],n=new oi(t.name,{...t.attribs},s);for(let r of s)r.parent=n;t.namespace!=null&&(n.namespace=t.namespace),t["x-attribsNamespace"]&&(n["x-attribsNamespace"]={...t["x-attribsNamespace"]}),t["x-attribsPrefix"]&&(n["x-attribsPrefix"]={...t["x-attribsPrefix"]}),i=n}else if(Ji(t)){let s=e?yn(t.children):[],n=new ai(s);for(let r of s)r.parent=n;i=n}else if(Cm(t)){let s=e?yn(t.children):[],n=new $t(s);for(let r of s)r.parent=n;t["x-mode"]&&(n["x-mode"]=t["x-mode"]),i=n}else if(Sm(t)){let s=new ni(t.name,t.data);t["x-name"]!=null&&(s["x-name"]=t["x-name"],s["x-publicId"]=t["x-publicId"],s["x-systemId"]=t["x-systemId"]),i=s}else throw new Error(`Not implemented yet: ${t.type}`);return i.startIndex=t.startIndex,i.endIndex=t.endIndex,t.sourceCodeLocation!=null&&(i.sourceCodeLocation=t.sourceCodeLocation),i}function yn(t){let e=t.map(i=>va(i,!0));for(let i=1;i<e.length;i++)e[i].prev=e[i-1],e[i-1].next=e[i];return e}var Ki,ii,Mt,si,ni,ri,ai,$t,oi,wn=ue(()=>{Lt();Ki=class{parent=null;prev=null;next=null;startIndex=null;endIndex=null;get parentNode(){return this.parent}set parentNode(e){this.parent=e}get previousSibling(){return this.prev}set previousSibling(e){this.prev=e}get nextSibling(){return this.next}set nextSibling(e){this.next=e}cloneNode(e=!1){return va(this,e)}},ii=class extends Ki{data;constructor(e){super(),this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}},Mt=class extends ii{type=Q.Text;get nodeType(){return 3}},si=class extends ii{type=Q.Comment;get nodeType(){return 8}},ni=class extends ii{type=Q.Directive;name;constructor(e,i){super(i),this.name=e}get nodeType(){return 1}"x-name";"x-publicId";"x-systemId"},ri=class extends Ki{children;constructor(e){super(),this.children=e}get firstChild(){return this.children[0]??null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(e){this.children=e}},ai=class extends ri{type=Q.CDATA;get nodeType(){return 4}},$t=class extends ri{type=Q.Root;get nodeType(){return 9}},oi=class extends ri{name;attribs;type;constructor(e,i,s=[],n=e==="script"?Q.Script:e==="style"?Q.Style:Q.Tag){super(s),this.name=e,this.attribs=i,this.type=n}get nodeType(){return 1}get tagName(){return this.name}set tagName(e){this.name=e}get attributes(){return Object.keys(this.attribs).map(e=>({name:e,value:this.attribs[e],namespace:this["x-attribsNamespace"]?.[e],prefix:this["x-attribsPrefix"]?.[e]}))}namespace;"x-attribsNamespace";"x-attribsPrefix"}});var wa,ot,ct=ue(()=>{Lt();wn();wn();wa={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},ot=class{dom=[];root=new $t(this.dom);callback;options;elementCB;done=!1;tagStack=[this.root];lastNode=null;parser=null;constructor(e,i,s){typeof i=="function"&&(s=i,i=wa),typeof e=="object"&&(i=e,e=void 0),this.callback=e??null,this.options=i??wa,this.elementCB=s??null}onparserinit(e){this.parser=e}onreset(){this.dom=[],this.root=new $t(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(e){this.handleCallback(e)}onclosetag(){this.lastNode=null;let e=this.tagStack.pop();this.options.withEndIndices&&this.parser&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)}onopentag(e,i){let s=this.options.xmlMode?Q.Tag:void 0,n=new oi(e,i,void 0,s);this.addNode(n),this.tagStack.push(n)}ontext(e){let{lastNode:i}=this;if(i&&i.type===Q.Text)i.data+=e,this.options.withEndIndices&&this.parser&&(i.endIndex=this.parser.endIndex);else{let s=new Mt(e);this.addNode(s),this.lastNode=s}}oncomment(e){if(this.lastNode&&this.lastNode.type===Q.Comment){this.lastNode.data+=e;return}let i=new si(e);this.addNode(i),this.lastNode=i}oncommentend(){this.lastNode=null}oncdatastart(){let e=new Mt(""),i=new ai([e]);this.addNode(i),e.parent=i,this.lastNode=e}oncdataend(){this.lastNode=null}onprocessinginstruction(e,i){let s=new ni(e,i);this.addNode(s)}handleCallback(e){if(typeof this.callback=="function")this.callback(e,this.dom);else if(e)throw e}addNode(e){let i=this.tagStack[this.tagStack.length-1],s=i.children[i.children.length-1];this.options.withStartIndices&&this.parser&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&this.parser&&(e.endIndex=this.parser.endIndex),i.children.push(e),s&&(e.prev=s,s.next=e),e.parent=i,this.lastNode=null}}});function Ft(t,e,i=!0,s=Number.POSITIVE_INFINITY){return Ea(t,Array.isArray(e)?e:[e],i,s)}function Ea(t,e,i,s){let n=[],r=[Array.isArray(e)?e:[e]],o=[0];for(;;){if(o[0]>=r[0].length){if(o.length===1)return n;r.shift(),o.shift();continue}let c=r[0][o[0]++];if(t(c)&&(n.push(c),--s<=0))return n;i&&Ne(c)&&c.children.length>0&&(o.unshift(0),r.unshift(c.children))}}function Qi(t,e,i=!0){let s=Array.isArray(e)?e:[e];for(let n of s){if(Se(n)&&t(n))return n;if(i&&Ne(n)&&n.children.length>0){let r=Qi(t,n.children,!0);if(r)return r}}return null}function xa(t,e){return(Array.isArray(e)?e:[e]).some(i=>Se(i)&&t(i)||Ne(i)&&xa(t,i.children))}function Am(t,e){let i=[],s=[Array.isArray(e)?e:[e]],n=[0];for(;;){if(n[0]>=s[0].length){if(s.length===1)return i;s.shift(),n.shift();continue}let r=s[0][n[0]++];Se(r)&&t(r)&&i.push(r),Ne(r)&&r.children.length>0&&(n.unshift(0),s.unshift(r.children))}}var En=ue(()=>{ct()});function xn(t,e){return typeof e=="function"?i=>Se(i)&&e(i.attribs[t]):i=>Se(i)&&i.attribs[t]===e}function Nm(t,e){return i=>t(i)||e(i)}function Ia(t){let e=Object.keys(t).map(i=>{let s=t[i];return Object.hasOwn(Xi,i)?Xi[i](s):xn(i,s)});return e.length===0?null:e.reduce(Nm)}function _m(t,e){let i=Ia(t);return i?i(e):!0}function Tm(t,e,i,s=Number.POSITIVE_INFINITY){let n=Ia(t);return n?Ft(n,e,i,s):[]}function Rm(t,e,i=!0){return Array.isArray(e)||(e=[e]),Qi(xn("id",t),e,i)}function Et(t,e,i=!0,s=Number.POSITIVE_INFINITY){return Ft(Xi.tag_name(t),e,i,s)}function Dm(t,e,i=!0,s=Number.POSITIVE_INFINITY){return Ft(xn("class",t),e,i,s)}function Om(t,e,i=!0,s=Number.POSITIVE_INFINITY){return Ft(Xi.tag_type(t),e,i,s)}var Xi,In=ue(()=>{ct();En();Xi={tag_name(t){return typeof t=="function"?e=>Se(e)&&t(e.name):t==="*"?Se:e=>Se(e)&&e.name===t},tag_type(t){return typeof t=="function"?e=>t(e.type):e=>e.type===t},tag_contains(t){return typeof t=="function"?e=>at(e)&&t(e.data):e=>at(e)&&e.data===t}}});function Sa(t){return t===34?""":t===38?"&":t===39?"'":t===60?"<":t===62?">":" "}function ba(t){return t>=128||t>=32&&t<64&&(Lm>>>t&1)===1}function Zi(t){let{length:e}=t,i,s=0,n=0;for(;n<e;){let r=t.charCodeAt(n);if(!ba(r)){let c=Math.min(n+32,e),l=n+1;for(;l<c&&!ba(t.charCodeAt(l));)l++;if(l<c){n=l;continue}if(l>=e||(bn.lastIndex=l,!bn.test(t)))break;n=bn.lastIndex-1;continue}if(i===void 0?i=t.substring(0,n):s!==n&&(i+=t.substring(s,n)),r<64){i+=Sa(r),s=n+=1;continue}let o=t.codePointAt(n);i+=`&#x${o.toString(16)};`,o!==r&&n++,s=n+=1}return i===void 0?t:(s<e&&(i+=t.substr(s)),i)}function Ca(t,e){if(t.lastIndex=0,!t.test(e))return e;let i="",s=0;do{let n=t.lastIndex-1;s!==n&&(i+=e.substring(s,n));let r=e.charCodeAt(n);i+=Sa(r),s=n+1}while(t.test(e));return i+e.substring(s)}function Sn(t){return Ca(Mm,t)}function Cn(t){return Ca($m,t)}var Lm,bn,Mm,$m,Aa=ue(()=>{Lm=1342177476,bn=/["&'<>\u0080-\uFFFF]/g;Mm=/["&\u{A0}]/gu;$m=/[&<>\u{A0}]/gu});var Na,_a,Ta=ue(()=>{Aa();(function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"})(Na||(Na={}));(function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"})(_a||(_a={}))});var Ra,Da,Oa=ue(()=>{Ra=new Map("altGlyph altGlyphDef altGlyphItem animateColor animateMotion animateTransform clipPath 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 foreignObject glyphRef linearGradient radialGradient textPath".split(" ").map(t=>[t.toLowerCase(),t])),Da=new Map("definitionURL attributeName attributeType baseFrequency baseProfile calcMode clipPathUnits diffuseConstant edgeMode filterUnits glyphRef gradientTransform gradientUnits kernelMatrix kernelUnitLength keyPoints keySplines keyTimes lengthAdjust limitingConeAngle markerHeight markerUnits markerWidth maskContentUnits maskUnits numOctaves pathLength patternContentUnits patternTransform patternUnits pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits refX refY repeatCount repeatDur requiredExtensions requiredFeatures specularConstant specularExponent spreadMethod startOffset stdDeviation stitchTiles surfaceScale systemLanguage tableValues targetX targetY textLength viewBox viewTarget xChannelSelector yChannelSelector zoomAndPan".split(" ").map(t=>[t.toLowerCase(),t]))});function qm(t,e={}){let i="length"in t?t:[t],s=e.xmlMode??!1,n="";for(let r=0;r<i.length;r++)n+=$a(i[r],e,s);return n}function Ma(t,e,i){let s="";for(let n=0;n<t.length;n++)s+=$a(t[n],e,i);return s}function $a(t,e,i){switch(t.type){case dn:return Ma(t.children,e,i);case hn:return`<${t.data}>`;case pn:return`<!--${t.data}-->`;case kn:return`<![CDATA[${t.children[0].data}]]>`;case mn:case fn:case gn:return jm(t,e,i);case un:{let s=t,n=s.data||"";return(e.encodeEntities??e.decodeEntities)!==!1&&!(!i&&s.parent&&Fm.has(s.parent.name))?i||e.encodeEntities!=="utf8"?Zi(n):Cn(n):n}}}function jm(t,e,i){i==="foreign"&&(t.name=Ra.get(t.name)??t.name,t.parent&&Um.has(t.parent.name)&&(i=!1)),!i&&Pm.has(t.name)&&(i="foreign");let{name:s,children:n}=t,r=!i&&Bm.has(s),o=`<${s}${Hm(t.attribs,e,i)}`;return n.length===0&&(i?e.selfClosingTags!==!1:e.selfClosingTags&&r)?o+=i?"/>":" />":(o+=">",n.length>0&&(o+=Ma(n,e,i)),r||(o+=`</${s}>`)),o}function Vm(t){return t.replaceAll('"',""")}function Hm(t,e,i){if(!t)return"";let s=(e.encodeEntities??e.decodeEntities)===!1?Vm:i||e.encodeEntities!=="utf8"?Zi:Sn,n=i==="foreign",r=!!(e.emptyAttrs??i),o="";for(let c in t){if(!Object.hasOwn(t,c))continue;let l=t[c],u=n?Da.get(c)??c:c;o+=!r&&(l==null||l==="")?` ${u}`:` ${u}="${s(l==null?"":String(l))}"`}return o}var Fm,Bm,Pm,Um,La,Fa=ue(()=>{Lt();Ta();Oa();Fm=new Set("style script xmp iframe noembed noframes plaintext noscript".split(" ")),Bm=new Set("area base basefont br col command embed frame hr img input isindex keygen link meta param source track wbr".split(" ")),Pm=new Set(["svg","math"]),Um=new Set("mi mo mn ms mtext annotation-xml foreignObject desc title".split(" "));La=qm});function Ba(t,e){return La(t,e)}function Gm(t,e){return Ne(t)?t.children.map(i=>Ba(i,e)).join(""):""}function es(t){return Array.isArray(t)?t.map(es).join(""):Se(t)?t.name==="br"?`
|
|
2
|
+
`:es(t.children):Ji(t)?es(t.children):at(t)?t.data:""}function ci(t){return Array.isArray(t)?t.map(ci).join(""):Ne(t)&&!vn(t)?ci(t.children):at(t)?t.data:""}function An(t){return Array.isArray(t)?t.map(An).join(""):Ne(t)&&(t.type===Q.Tag||Ji(t))?An(t.children):at(t)?t.data:""}var Nn=ue(()=>{Fa();Lt();ct()});function li(t){let e=ts(Jm,t);return e?e.name==="feed"?Wm(e):Ym(e):null}function Wm(t){let e=t.children,i={type:"atom",items:Et("entry",e).map(r=>{let{children:o}=r,c={media:Pa(o)};_e(c,"id","id",o),_e(c,"title","title",o);let l=ts("link",o)?.attribs.href;l&&(c.link=l);let u=lt("summary",o)||lt("content",o);u&&(c.description=u);let d=lt("updated",o);return d&&(c.pubDate=new Date(d)),c})};_e(i,"id","id",e),_e(i,"title","title",e);let s=ts("link",e)?.attribs.href;s&&(i.link=s),_e(i,"description","subtitle",e);let n=lt("updated",e);return n&&(i.updated=new Date(n)),_e(i,"author","email",e,!0),i}function Ym(t){let e=ts("channel",t.children)?.children??[],i={type:t.name.substr(0,3),id:"",items:Et("item",t.children).map(n=>{let{children:r}=n,o={media:Pa(r)};_e(o,"id","guid",r),_e(o,"title","title",r),_e(o,"link","link",r),_e(o,"description","description",r);let c=lt("pubDate",r)||lt("dc:date",r);return c&&(o.pubDate=new Date(c)),o})};_e(i,"title","title",e),_e(i,"link","link",e),_e(i,"description","description",e);let s=lt("lastBuildDate",e);return s&&(i.updated=new Date(s)),_e(i,"author","managingEditor",e,!0),i}function Pa(t){return Et("media:content",t).map(e=>{let{attribs:i}=e,s={medium:i.medium,isDefault:!!i.isDefault};for(let n of zm)i[n]&&(s[n]=i[n]);for(let n of Km)i[n]&&(s[n]=Number.parseInt(i[n],10));return i.expression&&(s.expression=i.expression),s})}function ts(t,e){return Et(t,e,!0,1)[0]}function lt(t,e,i=!1){return ci(Et(t,e,i,1)).trim()}function _e(t,e,i,s,n=!1){let r=lt(i,s,n);r&&(t[e]=r)}function Jm(t){return t==="rss"||t==="feed"||t==="rdf:RDF"}var zm,Km,Ua=ue(()=>{In();Nn();zm=["url","type","lang"],Km=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"]});function Qm(t){let e=t.length;for(;--e>=0;){let i=t[e];if(e>0&&t.lastIndexOf(i,e-1)>=0){t.splice(e,1);continue}for(let s=i.parent;s;s=s.parent)if(t.includes(s)){t.splice(e,1);break}}return t}function qa(t,e){let i=[],s=[];if(t===e)return 0;let n=Ne(t)?t:t.parent;for(;n;)i.unshift(n),n=n.parent;for(n=Ne(e)?e:e.parent;n;)s.unshift(n),n=n.parent;let r=Math.min(i.length,s.length),o=0;for(;o<r&&i[o]===s[o];)o++;if(o===0)return $e.DISCONNECTED;let c=i[o-1],l=c.children,u=i[o],d=s[o];return l.indexOf(u)>l.indexOf(d)?c===e?$e.FOLLOWING|$e.CONTAINED_BY:$e.FOLLOWING:c===t?$e.PRECEDING|$e.CONTAINS:$e.PRECEDING}function Xm(t){return t=t.filter((e,i,s)=>!s.includes(e,i+1)),t.sort((e,i)=>{let s=qa(e,i);return s&$e.PRECEDING?-1:s&$e.FOLLOWING?1:0}),t}var $e,ja=ue(()=>{ct();(function(t){t[t.DISCONNECTED=1]="DISCONNECTED",t[t.PRECEDING=2]="PRECEDING",t[t.FOLLOWING=4]="FOLLOWING",t[t.CONTAINS=8]="CONTAINS",t[t.CONTAINED_BY=16]="CONTAINED_BY"})($e||($e={}))});function di(t){if(t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t.parent){let e=t.parent.children,i=e.lastIndexOf(t);i!==-1&&e.splice(i,1)}t.next=null,t.prev=null,t.parent=null}function Zm(t,e){if(e.prev=t.prev,e.prev&&(e.prev.next=e),e.next=t.next,e.next&&(e.next.prev=e),e.parent=t.parent,e.parent){let{children:i}=e.parent,s=i.lastIndexOf(t);if(s===-1)return;i[s]=e,t.parent=null}}function ef(t,e){if(di(e),e.next=null,e.parent=t,t.children.push(e)>1){let i=t.children[t.children.length-2];i.next=e,e.prev=i}else e.prev=null}function tf(t,e){di(e);let{parent:i}=t,s=t.next;if(e.next=s,e.prev=t,t.next=e,e.parent=i,s){if(s.prev=e,i){let n=i.children;n.splice(n.lastIndexOf(s),0,e)}}else i&&i.children.push(e)}function sf(t,e){if(di(e),e.parent=t,e.prev=null,t.children.unshift(e)===1)e.next=null;else{let i=t.children[1];i.prev=e,e.next=i}}function nf(t,e){di(e);let{parent:i}=t;if(i){let s=i.children;s.splice(s.indexOf(t),0,e)}t.prev&&(t.prev.next=e),e.parent=i,e.prev=t.prev,e.next=t,t.prev=e}var Va=ue(()=>{});function Ha(t){return Ne(t)?t.children:[]}function Ga(t){return t.parent||null}function rf(t){let e=Ga(t);if(e!=null)return Ha(e);let i=[t],{prev:s,next:n}=t;for(;s!=null;)i.unshift(s),{prev:s}=s;for(;n!=null;)i.push(n),{next:n}=n;return i}function af(t,e){let{attribs:i}=t;return i?.[e]}function of(t,e){let{attribs:i}=t;return i!=null&&Object.hasOwn(i,e)&&i[e]!=null}function cf(t){return t.name}function lf(t){let{next:e}=t;for(;e!==null&&!Se(e);)({next:e}=e);return e}function df(t){let{prev:e}=t;for(;e!==null&&!Se(e);)({prev:e}=e);return e}var Wa=ue(()=>{ct()});var _n={};Ms(_n,{DocumentPosition:()=>$e,append:()=>tf,appendChild:()=>ef,compareDocumentPosition:()=>qa,existsOne:()=>xa,filter:()=>Ft,find:()=>Ea,findAll:()=>Am,findOne:()=>Qi,getAttributeValue:()=>af,getChildren:()=>Ha,getElementById:()=>Rm,getElements:()=>Tm,getElementsByClassName:()=>Dm,getElementsByTagName:()=>Et,getElementsByTagType:()=>Om,getFeed:()=>li,getInnerHTML:()=>Gm,getName:()=>cf,getOuterHTML:()=>Ba,getParent:()=>Ga,getSiblings:()=>rf,getText:()=>es,hasAttrib:()=>of,innerText:()=>An,nextElementSibling:()=>lf,prepend:()=>nf,prependChild:()=>sf,prevElementSibling:()=>df,removeElement:()=>di,removeSubsets:()=>Qm,replaceElement:()=>Zm,testElement:()=>_m,textContent:()=>ci,uniqueSort:()=>Xm});var is=ue(()=>{Ua();ja();In();Va();En();Nn();Wa()});var za={};Ms(za,{DefaultHandler:()=>ot,DomHandler:()=>ot,DomUtils:()=>_n,ElementType:()=>zi,Parser:()=>wt,QuoteType:()=>De,Tokenizer:()=>vt,createDocumentStream:()=>uf,getFeed:()=>li,parseDocument:()=>Ya,parseFeed:()=>pf});function Ya(t,e){let i=new ot(void 0,e);return new wt(i,e).end(t),i.root}function uf(t,e,i){let s=new ot(n=>t(n,s.root),e,i);return new wt(s,e)}function pf(t,e=hf){return li(Ya(t,e).children)}var hf,Ka=ue(()=>{cn();cn();ct();ct();Lt();on();is();is();is();hf={xmlMode:!0}});var Qa=H((db,Ja)=>{"use strict";Ja.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}});var eo=H(Za=>{"use strict";function Xa(t){return Object.prototype.toString.call(t)==="[object Object]"}function mf(t){var e,i;return Xa(t)===!1?!1:(e=t.constructor,e===void 0?!0:(i=e.prototype,!(Xa(i)===!1||i.hasOwnProperty("isPrototypeOf")===!1)))}Za.isPlainObject=mf});var io=H((to,ss)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof ss=="object"&&ss.exports?ss.exports=e():t.parseSrcset=e()})(to,function(){return function(t){function e(I){return I===" "||I===" "||I===`
|
|
3
|
+
`||I==="\f"||I==="\r"}function i(I){var $,Y=I.exec(t.substring(_));if(Y)return $=Y[0],_+=$.length,$}for(var s=t.length,n=/^[ \t\n\r\u000c]+/,r=/^[, \t\n\r\u000c]+/,o=/^[^ \t\n\r\u000c]+/,c=/[,]+$/,l=/^\d+$/,u=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,d,p,h,m,b,_=0,f=[];;){if(i(r),_>=s)return f;d=i(o),p=[],d.slice(-1)===","?(d=d.replace(c,""),y()):g()}function g(){for(i(n),h="",m="in descriptor";;){if(b=t.charAt(_),m==="in descriptor")if(e(b))h&&(p.push(h),h="",m="after descriptor");else if(b===","){_+=1,h&&p.push(h),y();return}else if(b==="(")h=h+b,m="in parens";else if(b===""){h&&p.push(h),y();return}else h=h+b;else if(m==="in parens")if(b===")")h=h+b,m="in descriptor";else if(b===""){p.push(h),y();return}else h=h+b;else if(m==="after descriptor"&&!e(b))if(b===""){y();return}else m="in descriptor",_-=1;_+=1}}function y(){var I=!1,$,Y,ce,pe,z={},D,Z,K,O,A;for(pe=0;pe<p.length;pe++)D=p[pe],Z=D[D.length-1],K=D.substring(0,D.length-1),O=parseInt(K,10),A=parseFloat(K),l.test(K)&&Z==="w"?(($||Y)&&(I=!0),O===0?I=!0:$=O):u.test(K)&&Z==="x"?(($||Y||ce)&&(I=!0),A<0?I=!0:Y=A):l.test(K)&&Z==="h"?((ce||Y)&&(I=!0),O===0?I=!0:ce=O):I=!0;I?console&&console.log&&console.log("Invalid srcset descriptor found in '"+t+"' at '"+D+"'."):(z.url=d,$&&(z.w=$),Y&&(z.d=Y),ce&&(z.h=ce),f.push(z))}}})});var no=H((hb,Tn)=>{var G=String,so=function(){return{isColorSupported:!1,reset:G,bold:G,dim:G,italic:G,underline:G,inverse:G,hidden:G,strikethrough:G,black:G,red:G,green:G,yellow:G,blue:G,magenta:G,cyan:G,white:G,gray:G,bgBlack:G,bgRed:G,bgGreen:G,bgYellow:G,bgBlue:G,bgMagenta:G,bgCyan:G,bgWhite:G,blackBright:G,redBright:G,greenBright:G,yellowBright:G,blueBright:G,magentaBright:G,cyanBright:G,whiteBright:G,bgBlackBright:G,bgRedBright:G,bgGreenBright:G,bgYellowBright:G,bgBlueBright:G,bgMagentaBright:G,bgCyanBright:G,bgWhiteBright:G}};Tn.exports=so();Tn.exports.createColors=so});var Rn=H(()=>{});var ns=H((fb,oo)=>{"use strict";var ro=no(),ao=Rn(),ui=class t extends Error{constructor(e,i,s,n,r,o){super(e),this.name="CssSyntaxError",this.reason=e,r&&(this.file=r),n&&(this.source=n),o&&(this.plugin=o),typeof i<"u"&&typeof s<"u"&&(typeof i=="number"?(this.line=i,this.column=s):(this.line=i.line,this.column=i.column,this.endLine=s.line,this.endColumn=s.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let i=this.source;e==null&&(e=ro.isColorSupported);let s=d=>d,n=d=>d,r=d=>d;if(e){let{bold:d,gray:p,red:h}=ro.createColors(!0);n=m=>d(h(m)),s=m=>p(m),ao&&(r=m=>ao(m))}let o=i.split(/\r?\n/),c=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),u=String(l).length;return o.slice(c,l).map((d,p)=>{let h=c+1+p,m=" "+(" "+h).slice(-u)+" | ";if(h===this.line){if(d.length>160){let _=20,f=Math.max(0,this.column-_),g=Math.max(this.column+_,this.endColumn+_),y=d.slice(f,g),I=s(m.replace(/\d/g," "))+d.slice(0,Math.min(this.column-1,_-1)).replace(/[^\t]/g," ");return n(">")+s(m)+r(y)+`
|
|
4
|
+
`+I+n("^")}let b=s(m.replace(/\d/g," "))+d.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+s(m)+r(d)+`
|
|
5
|
+
`+b+n("^")}return" "+s(m)+r(d)}).join(`
|
|
6
|
+
`)}toString(){let e=this.showSourceCode();return e&&(e=`
|
|
7
|
+
|
|
8
|
+
`+e+`
|
|
9
|
+
`),this.name+": "+this.message+e}};oo.exports=ui;ui.default=ui});var Dn=H((gb,po)=>{"use strict";var ff=/[\t\n\f\r "#'()/;[\\\]{}]/,co={after:`
|
|
10
|
+
`,beforeClose:`
|
|
11
|
+
`,beforeComment:`
|
|
12
|
+
`,beforeDecl:`
|
|
13
|
+
`,beforeOpen:" ",beforeRule:`
|
|
14
|
+
`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function gf(t){return t[0].toUpperCase()+t.slice(1)}function lo(t,e){let i="@"+e.name,s=e.params?t.rawValue(e,"params"):"",n=e.raws.afterName;return typeof n>"u"?n=s?" ":"":n===""&&s&&!ff.test(s[0])&&(n=" "),i+n+s}function kf(t){if(!t.prop.startsWith("--"))return!1;let e=t.raws.before;return typeof e>"u"||!/[^\s;]$/.test(e)}function ho(t,e,i){let s=i.nodes,n=s.length-1;for(;n>0&&s[n].type==="comment";)n-=1;let r=t.raw(i,"semicolon"),o=i.type==="document";for(let c=s.length-1;c>=0;c--){let l=s[c],u=n!==c||r;!u&&c<s.length-1&&(l.type==="atrule"&&!l.nodes||l.type==="decl"&&kf(l))&&(u=!0),e.push({document:o,node:l,semicolon:u})}}function uo(t,e,i,s){let n=t.raw(i,"between","beforeOpen");t.builder(s+n+"{",i,"start");let r=i.nodes&&i.nodes.length,o=()=>{let c=r?t.raw(i,"after"):t.raw(i,"after","emptyBody");c&&t.builder(c),t.builder("}",i,"end"),i.type==="rule"&&i.raws.ownSemicolon&&t.builder(i.raws.ownSemicolon,i,"end")};r?(e.push(o),ho(t,e,i)):o()}var hi=class t{constructor(e){this.builder=e}atrule(e,i){let s=lo(this,e);if(e.nodes)this.block(e,s);else{let n=(e.raws.between||"")+(i?";":"");this.builder(s+n,e)}}beforeAfter(e,i){let s;e.type==="decl"?s=this.raw(e,null,"beforeDecl"):e.type==="comment"?s=this.raw(e,null,"beforeComment"):i==="before"?s=this.raw(e,null,"beforeRule"):s=this.raw(e,null,"beforeClose");let n=e.parent,r=0;for(;n&&n.type!=="root";)r+=1,n=n.parent;if(s.includes(`
|
|
15
|
+
`)){let o=this.raw(e,null,"indent");if(o.length)for(let c=0;c<r;c++)s+=o}return s}block(e,i){let s=this.raw(e,"between","beforeOpen");this.builder(i+s+"{",e,"start");let n;e.nodes&&e.nodes.length?(this.body(e),n=this.raw(e,"after")):n=this.raw(e,"after","emptyBody"),n&&this.builder(n),this.builder("}",e,"end")}body(e){let i=t.prototype,s=["atrule","block","body","rule","stringify"].every(r=>this[r]===i[r]),n=[];for(ho(this,n,e);n.length>0;){let r=n.pop();if(typeof r=="function"){r();continue}let o=r.node,c=this.raw(o,"before");c&&this.builder(c),s&&o.type==="rule"?uo(this,n,o,this.rawValue(o,"selector")):s&&o.type==="atrule"&&o.nodes?uo(this,n,o,lo(this,o)):this.stringify(o,r.semicolon)}}comment(e){let i=this.raw(e,"left","commentLeft"),s=this.raw(e,"right","commentRight");this.builder("/*"+i+e.text+s+"*/",e)}decl(e,i){let s=e.raws,n=this.raw(e,"between","colon"),r=e.prop+n+this.rawValue(e,"value");e.important&&(r+=s.important||" !important"),i&&(r+=";"),this.builder(r,e)}document(e){this.body(e)}raw(e,i,s){let n;if(s||(s=i),i&&(n=e.raws[i],typeof n<"u"))return n;let r=e.parent;if(s==="before"&&(!r||r.type==="root"&&r.first===e||r&&r.type==="document"))return"";if(!r)return co[s];let o=e.root(),c=o.rawCache||(o.rawCache={});if(typeof c[s]<"u")return c[s];if(s==="before"||s==="after")return this.beforeAfter(e,s);{let l="raw"+gf(s);this[l]?n=this[l](o,e):o.walk(u=>{if(n=u.raws[i],typeof n<"u")return!1})}return typeof n>"u"&&(n=co[s]),c[s]=n,n}rawBeforeClose(e){let i;return e.walk(s=>{if(s.nodes&&s.nodes.length>0&&typeof s.raws.after<"u")return i=s.raws.after,i.includes(`
|
|
16
|
+
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),i&&(i=i.replace(/\S/g,"")),i}rawBeforeComment(e,i){let s;return e.walkComments(n=>{if(typeof n.raws.before<"u")return s=n.raws.before,s.includes(`
|
|
17
|
+
`)&&(s=s.replace(/[^\n]+$/,"")),!1}),typeof s>"u"?s=this.raw(i,null,"beforeDecl"):s&&(s=s.replace(/\S/g,"")),s}rawBeforeDecl(e,i){let s;return e.walkDecls(n=>{if(typeof n.raws.before<"u")return s=n.raws.before,s.includes(`
|
|
18
|
+
`)&&(s=s.replace(/[^\n]+$/,"")),!1}),typeof s>"u"?s=this.raw(i,null,"beforeRule"):s&&(s=s.replace(/\S/g,"")),s}rawBeforeOpen(e){let i;return e.walk(s=>{if(s.type!=="decl"&&(i=s.raws.between,typeof i<"u"))return!1}),i}rawBeforeRule(e){let i;return e.walk(s=>{if(s.nodes&&(s.parent!==e||e.first!==s)&&typeof s.raws.before<"u")return i=s.raws.before,i.includes(`
|
|
19
|
+
`)&&(i=i.replace(/[^\n]+$/,"")),!1}),i&&(i=i.replace(/\S/g,"")),i}rawColon(e){let i;return e.walkDecls(s=>{if(typeof s.raws.between<"u")return i=s.raws.between.replace(/[^\s:]/g,""),!1}),i}rawEmptyBody(e){let i;return e.walk(s=>{if(s.nodes&&s.nodes.length===0&&(i=s.raws.after,typeof i<"u"))return!1}),i}rawIndent(e){if(e.raws.indent)return e.raws.indent;let i;return e.walk(s=>{let n=s.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof s.raws.before<"u"){let r=s.raws.before.split(`
|
|
20
|
+
`);return i=r[r.length-1],i=i.replace(/\S/g,""),!1}}),i}rawSemicolon(e){let i;return e.walk(s=>{if(s.nodes&&s.nodes.length&&s.last.type==="decl"&&(i=s.raws.semicolon,typeof i<"u"))return!1}),i}rawValue(e,i){let s=e[i],n=e.raws[i];return n&&n.value===s?n.raw:s}root(e){!(e.parent&&e.parent.type==="document")&&e.source&&e.source.input.hasBOM&&this.builder("\uFEFF",e,"start"),this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,i){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,i)}};po.exports=hi;hi.default=hi});var pi=H((kb,mo)=>{"use strict";var yf=Dn(),vf=/(<)(\/?style\b)/gi,wf=/(<)(!--)/g;function Ef(t){return t.includes("<")?t.replace(vf,"\\3c $2").replace(wf,"\\3c $2"):t}var On=class extends yf{escapeHTML(e,i){let s=this.builder,n,r;if(this.builder=(c,l,u)=>{n?(r+=c,n.push(c,l,u)):c.includes("<")?(r=c,n=[c,l,u]):s(c,l,u)},i(),this.builder=s,!n)return;let o=Ef(r);if(o===r)for(let c=0;c<n.length;c+=3)s(n[c],n[c+1],n[c+2]);else s(o,e)}root(e){e.parent&&e.parent.type==="document"?(this.escapeHTML(e,()=>this.body(e)),e.raws.after&&this.builder(e.raws.after)):this.escapeHTML(e,()=>super.root(e))}};function Ln(t,e){let i=new On(e);t.type==="root"||t.type==="document"?i.stringify(t):i.escapeHTML(t,()=>i.stringify(t))}mo.exports=Ln;Ln.default=Ln});var mi=H((yb,Mn)=>{"use strict";Mn.exports.isClean=Symbol("isClean");Mn.exports.my=Symbol("my")});var ki=H((vb,fo)=>{"use strict";var xf=ns(),If=Dn(),bf=pi(),{isClean:fi,my:Sf}=mi();function Cf(t,e){let i=new t.constructor,s=[[t,i,e]];for(;s.length>0;){let[n,r,o]=s.pop();for(let c in n){if(!Object.prototype.hasOwnProperty.call(n,c)||c==="proxyCache")continue;let l=n[c],u=typeof l;if(c==="parent"&&u==="object")o&&(r[c]=o);else if(c==="source")r[c]=l;else if(Array.isArray(l)){let d=[];r[c]=d;for(let p of l){let h=new p.constructor;d.push(h),s.push([p,h,r])}}else{if(u==="object"&&l!==null){let d=new l.constructor;s.push([l,d,void 0]),l=d}r[c]=l}}}return i}function ze(t,e){if(e&&typeof e.offset<"u")return e.offset;let i=1,s=1,n=0;for(let r=0;r<t.length;r++){if(s===e.line&&i===e.column){n=r;break}t[r]===`
|
|
21
|
+
`?(i=1,s+=1):i+=1}return n}var gi=class t{get proxyOf(){return this}constructor(e={}){this.raws={},this[fi]=!1,this[Sf]=!0;for(let i of Object.keys(e))if(i!=="__proto__")if(i==="nodes"){this.nodes=[];for(let s of e[i])typeof s.clone=="function"&&s.parent?this.append(s.clone()):this.append(s)}else this[i]=e[i]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let i=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${i.input.from}:${i.start.line}:${i.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let i in e)this[i]=e[i];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let i=Cf(this);for(let s in e)i[s]=e[s];return i}cloneAfter(e={}){let i=this.clone(e);return this.parent.insertAfter(this,i),i}cloneBefore(e={}){let i=this.clone(e);return this.parent.insertBefore(this,i),i}error(e,i={}){if(this.source){let{end:s,start:n}=this.rangeBy(i);return this.source.input.error(e,{column:n.column,line:n.line},{column:s.column,line:s.line},i)}return new xf(e)}getProxyProcessor(){return{get(e,i){return i==="proxyOf"?e:i==="root"?()=>e.root().toProxy():e[i]},set(e,i,s){return e[i]===s||(e[i]=s,(i==="prop"||i==="value"||i==="name"||i==="params"||i==="important"||i==="text")&&e.markDirty()),!0}}}markClean(){this[fi]=!0}markDirty(){if(this[fi]){this[fi]=!1;let e=this;for(;e=e.parent;)e[fi]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let i="document"in this.source.input?this.source.input.document:this.source.input.css,s={column:this.source.start.column,line:this.source.start.line,offset:ze(i,this.source.start)};if(e.index)s=this.positionInside(e.index);else if(e.word){let r=i.slice(ze(i,this.source.start),ze(i,this.source.end)).indexOf(e.word);r!==-1&&(s=this.positionInside(r))}return s}positionInside(e){let i=this.source.start.column,s=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,r=ze(n,this.source.start),o=r+e;for(let c=r;c<o;c++)n[c]===`
|
|
22
|
+
`?(i=1,s+=1):i+=1;return{column:i,line:s,offset:o}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let i="document"in this.source.input?this.source.input.document:this.source.input.css,s={column:this.source.start.column,line:this.source.start.line,offset:ze(i,this.source.start)},n=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ze(i,this.source.end)+1}:{column:s.column+1,line:s.line,offset:s.offset+1};if(e.word){let o=i.slice(ze(i,this.source.start),ze(i,this.source.end)).indexOf(e.word);o!==-1&&(s=this.positionInside(o),n=this.positionInside(o+e.word.length))}else e.start?s={column:e.start.column,line:e.start.line,offset:ze(i,e.start)}:typeof e.index=="number"&&(s=this.positionInside(e.index)),e.end?n={column:e.end.column,line:e.end.line,offset:ze(i,e.end)}:typeof e.endIndex=="number"?n=this.positionInside(e.endIndex):typeof e.index=="number"&&(n=this.positionInside(e.index+1));return(n.line<s.line||n.line===s.line&&n.column<=s.column)&&(n={column:s.column+1,line:s.line,offset:s.offset+1}),{end:n,start:s}}raw(e,i){return new If().raw(this,e,i)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let i=this,s=!1;for(let n of e)n===this?s=!0:s?(this.parent.insertAfter(i,n),i=n):this.parent.insertBefore(i,n);s||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,i){let s=i==null;i=i||new Map;let n=[],r=[[this,n,0]];for(let c=0;c<r.length;c++){let[l,u,d]=r[c],p={};u[d]=p;for(let h in l){if(!Object.prototype.hasOwnProperty.call(l,h)||h==="parent"||h==="proxyCache")continue;let m=l[h];if(Array.isArray(m)){let b=[];p[h]=b;for(let _=0;_<m.length;_++){let f=m[_];typeof f=="object"&&f.toJSON?f.toJSON===t.prototype.toJSON?r.push([f,b,_]):b[_]=f.toJSON(null,i):b[_]=f}}else if(typeof m=="object"&&m.toJSON)m.toJSON===t.prototype.toJSON?r.push([m,p,h]):p[h]=m.toJSON(null,i);else if(h==="source"){if(m==null)continue;let b=i.get(m.input);b==null&&(b=i.size,i.set(m.input,b)),p[h]={end:m.end,inputId:b,start:m.start}}else p[h]=m}}let o=n[0];return s&&(o.inputs=[...i.keys()].map(c=>c.toJSON())),o}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=bf){e.stringify&&(e=e.stringify);let i="";return e(this,s=>{i+=s}),i}warn(e,i,s={}){let n={node:this};for(let r in s)n[r]=s[r];return e.warn(i,n)}};fo.exports=gi;gi.default=gi});var vi=H((wb,go)=>{"use strict";var Af=ki(),yi=class extends Af{constructor(e){super(e),this.type="comment"}};go.exports=yi;yi.default=yi});var Ei=H((Eb,ko)=>{"use strict";var Nf=ki(),wi=class extends Nf{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};ko.exports=wi;wi.default=wi});var tt=H((xb,So)=>{"use strict";var vo=vi(),wo=Ei(),yo=ki(),{isClean:Eo,my:xo}=mi(),$n,Io,bo,Fn;function _f(t){let e=t.slice();for(;e.length>0;){let i=e.pop();if(delete i.source,i.nodes){i.nodes=i.nodes.slice();for(let s of i.nodes)e.push(s)}}return t.slice()}function Tf(t){let e=[t];for(;e.length>0;){let i=e.pop();if(i[Eo]=!1,i.proxyOf.nodes)for(let s of i.proxyOf.nodes)e.push(s)}}var Ke=class t extends yo{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let i of e){let s=this.normalize(i,this.last);for(let n of s)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){let i=[this];for(;i.length>0;){let s=i.pop();if(s!==this&&s.cleanRaws!==t.prototype.cleanRaws){s.cleanRaws(e);continue}if(yo.prototype.cleanRaws.call(s,e),s.nodes)for(let n of s.nodes)i.push(n)}}each(e){if(!this.proxyOf.nodes)return;let i=this.getIterator(),s,n;for(;this.indexes[i]<this.proxyOf.nodes.length&&(s=this.indexes[i],n=e(this.proxyOf.nodes[s],s),n!==!1);)this.indexes[i]+=1;return delete this.indexes[i],n}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,i){return i==="proxyOf"?e:e[i]?i==="each"||typeof i=="string"&&i.startsWith("walk")?(...s)=>e[i](...s.map(n=>typeof n=="function"?(r,o)=>n(r.toProxy(),o):n)):i==="every"||i==="some"?s=>e[i]((n,...r)=>s(n.toProxy(),...r)):i==="root"?()=>e.root().toProxy():i==="nodes"?e.nodes.map(s=>s.toProxy()):i==="first"||i==="last"?e[i].toProxy():e[i]:e[i]},set(e,i,s){return e[i]===s||(e[i]=s,(i==="name"||i==="params"||i==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,i){let s=this.index(e),n=this.normalize(i,this.proxyOf.nodes[s]).reverse();s=this.index(e);for(let o of n)this.proxyOf.nodes.splice(s+1,0,o);let r;for(let o in this.indexes)r=this.indexes[o],s<r&&(this.indexes[o]=r+n.length);return this.markDirty(),this}insertBefore(e,i){let s=this.index(e),n=s===0?"prepend":!1,r=this.normalize(i,this.proxyOf.nodes[s],n).reverse();s=this.index(e);for(let c of r)this.proxyOf.nodes.splice(s,0,c);let o;for(let c in this.indexes)o=this.indexes[c],s<=o&&(this.indexes[c]=o+r.length);return this.markDirty(),this}normalize(e,i){if(typeof e=="string")e=_f(Io(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new wo(e)]}else if(e.selector||e.selectors)e=[new Fn(e)];else if(e.name)e=[new $n(e)];else if(e.text)e=[new vo(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[xo]||t.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Eo]&&Tf(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&i&&typeof i.raws.before<"u"&&(n.raws.before=i.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let i of e){let s=this.normalize(i,this.first,"prepend").reverse();for(let n of s)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+s.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let i;for(let s in this.indexes)i=this.indexes[s],i>=e&&(this.indexes[s]=i-1);return this.markDirty(),this}replaceValues(e,i,s){return s||(s=i,i={}),this.walkDecls(n=>{i.props&&!i.props.includes(n.prop)||i.fast&&!n.value.includes(i.fast)||(n.value=n.value.replace(e,s))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){if(!this.proxyOf.nodes)return;let i=[{iterator:this.getIterator(),node:this.proxyOf}];for(;i.length>0;){let{iterator:s,node:n}=i[i.length-1],r=n.indexes[s];if(r>=n.proxyOf.nodes.length){delete n.indexes[s],i.pop();let l=i[i.length-1];l&&(l.node.indexes[l.iterator]+=1);continue}let o=n.proxyOf.nodes[r],c;try{c=e(o,r)}catch(l){throw o.addToError(l)}if(c===!1){for(let l of i)delete l.node.indexes[l.iterator];return!1}o.walk&&o.proxyOf.nodes?i.push({iterator:o.getIterator(),node:o}):n.indexes[s]+=1}}walkAtRules(e,i){return i?e instanceof RegExp?this.walk((s,n)=>{if(s.type==="atrule"&&e.test(s.name))return i(s,n)}):this.walk((s,n)=>{if(s.type==="atrule"&&s.name===e)return i(s,n)}):(i=e,this.walk((s,n)=>{if(s.type==="atrule")return i(s,n)}))}walkComments(e){return this.walk((i,s)=>{if(i.type==="comment")return e(i,s)})}walkDecls(e,i){return i?e instanceof RegExp?this.walk((s,n)=>{if(s.type==="decl"&&e.test(s.prop))return i(s,n)}):this.walk((s,n)=>{if(s.type==="decl"&&s.prop===e)return i(s,n)}):(i=e,this.walk((s,n)=>{if(s.type==="decl")return i(s,n)}))}walkRules(e,i){return i?e instanceof RegExp?this.walk((s,n)=>{if(s.type==="rule"&&e.test(s.selector))return i(s,n)}):this.walk((s,n)=>{if(s.type==="rule"&&s.selector===e)return i(s,n)}):(i=e,this.walk((s,n)=>{if(s.type==="rule")return i(s,n)}))}};Ke.registerParse=t=>{Io=t};Ke.registerRule=t=>{Fn=t};Ke.registerAtRule=t=>{$n=t};Ke.registerRoot=t=>{bo=t};So.exports=Ke;Ke.default=Ke;Ke.rebuild=t=>{let e=[t];for(;e.length>0;){let i=e.pop();if(i.type==="atrule"?Object.setPrototypeOf(i,$n.prototype):i.type==="rule"?Object.setPrototypeOf(i,Fn.prototype):i.type==="decl"?Object.setPrototypeOf(i,wo.prototype):i.type==="comment"?Object.setPrototypeOf(i,vo.prototype):i.type==="root"&&Object.setPrototypeOf(i,bo.prototype),i[xo]=!0,i.nodes)for(let s of i.nodes)e.push(s)}}});var rs=H((Ib,Ao)=>{"use strict";var Co=tt(),Bt=class extends Co{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Ao.exports=Bt;Bt.default=Bt;Co.registerAtRule(Bt)});var as=H((bb,To)=>{"use strict";var Rf=tt(),No,_o,xt=class extends Rf{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new No(new _o,this,e).stringify()}};xt.registerLazyResult=t=>{No=t};xt.registerProcessor=t=>{_o=t};To.exports=xt;xt.default=xt});var Do=H((Sb,Ro)=>{var Df="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Of=(t,e=21)=>(i=e)=>{let s="",n=i|0;for(;n-- >0;)s+=t[Math.random()*t.length|0];return s},Lf=(t=21)=>{let e="",i=t|0;for(;i-- >0;)e+=Df[Math.random()*64|0];return e};Ro.exports={nanoid:Lf,customAlphabet:Of}});var os=H(()=>{});var cs=H(()=>{});var Bn=H(()=>{});var Oo=H(()=>{});var Pn=H((Lb,Fo)=>{"use strict";var{existsSync:Mf,readFileSync:$f,realpathSync:Ff}=Oo(),{dirname:ls,isAbsolute:Bf,join:Pf,relative:Uf,sep:qf}=os(),{SourceMapConsumer:Lo,SourceMapGenerator:Mo}=cs();function $o(t){try{return Ff(t)}catch{return t}}function jf(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var xi=class{constructor(e,i){if(i.map===!1)return;i.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let s=i.map?i.map.prev:void 0,n=this.loadMap(i.from,s);!this.mapFile&&i.from&&(this.mapFile=i.from),this.mapFile&&(this.root=ls(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new Lo(this.json||this.text)),this.consumerCache}decodeInline(e){let i=/^data:application\/json;charset=utf-?8;base64,/,s=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/,o=e.match(n)||e.match(r);if(o)return decodeURIComponent(e.substr(o[0].length));let c=e.match(i)||e.match(s);if(c)return jf(e.substr(c[0].length));let l=e.slice(22);throw l=l.slice(0,l.indexOf(",")),new Error("Unsupported source map encoding "+l)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let i=e.match(/\/\*\s*# sourceMappingURL=/g);if(!i)return;let s=e.lastIndexOf(i.pop()),n=e.indexOf("*/",s);s>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(s,n)))}loadFile(e,i,s){if(!s&&!this.unsafeMap){if(!/\.map$/i.test(e)||!i)return;let n=Uf($o(ls(i)),$o(e));if(n===".."||n.startsWith(".."+qf)||Bf(n))return}if(this.root=ls(e),Mf(e))return this.mapFile=e,$f(e,"utf-8").toString().trim()}loadMap(e,i){if(i===!1)return!1;if(i){if(typeof i=="string")return i;if(typeof i=="function"){let s=i(e);if(s){let n=this.loadFile(s,e,!0);if(!n)throw new Error("Unable to load previous source map: "+s.toString());return n}}else{if(i instanceof Lo)return Mo.fromSourceMap(i).toString();if(i instanceof Mo)return i.toString();if(this.isMap(i))return JSON.stringify(i);throw new Error("Unsupported previous source map format: "+i.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let s=this.annotation;e&&(s=Pf(ls(e),s));let n=this.loadFile(s,e,!1);if(n)try{this.json=JSON.parse(n.replace(/^\)]}'[^\n]*\n/,""))}catch{return}return n}}}startWith(e,i){return e?e.substr(0,i.length)===i:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};Fo.exports=xi;xi.default=xi});var Ii=H((Mb,jo)=>{"use strict";var{nanoid:Vf}=Do(),{isAbsolute:jn,resolve:Vn}=os(),{SourceMapConsumer:Hf,SourceMapGenerator:Gf}=cs(),{fileURLToPath:Bo,pathToFileURL:ds}=Bn(),Po=ns(),Wf=Pn(),Un=Rn(),qn=Symbol("lineToIndexCache"),Yf=!!(Hf&&Gf),Uo=!!(Vn&&jn);function qo(t){if(t[qn])return t[qn];let e=t.css.split(`
|
|
23
|
+
`),i=new Array(e.length),s=0;for(let n=0,r=e.length;n<r;n++)i[n]=s,s+=e[n].length+1;return t[qn]=i,i}var Pt=class{get from(){return this.file||this.id}constructor(e,i={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,i.document&&(this.document=i.document.toString()),i.from&&(!Uo||/^\w+:\/\//.test(i.from)||jn(i.from)?this.file=i.from:this.file=Vn(i.from)),Uo&&Yf){let s=new Wf(this.css,i);if(s.text){this.map=s;let n=s.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id="<input css "+Vf(6)+">"),this.map&&(this.map.file=this.from)}error(e,i,s,n={}){let r,o,c,l,u;if(i&&typeof i=="object"){let p=i,h=s;if(typeof p.offset=="number"){l=p.offset;let m=this.fromOffset(l);i=m.line,s=m.col}else i=p.line,s=p.column,l=this.fromLineAndColumn(i,s);if(typeof h.offset=="number"){c=h.offset;let m=this.fromOffset(c);o=m.line,r=m.col}else o=h.line,r=h.column,c=this.fromLineAndColumn(h.line,h.column)}else if(s)l=this.fromLineAndColumn(i,s);else{l=i;let p=this.fromOffset(l);i=p.line,s=p.col}let d=this.origin(i,s,o,r);return d?u=new Po(e,d.endLine===void 0?d.line:{column:d.column,line:d.line},d.endLine===void 0?d.column:{column:d.endColumn,line:d.endLine},d.source,d.file,n.plugin):u=new Po(e,o===void 0?i:{column:s,line:i},o===void 0?s:{column:r,line:o},this.css,this.file,n.plugin),u.input={column:s,endColumn:r,endLine:o,endOffset:c,line:i,offset:l,source:this.css},this.file&&(ds&&(u.input.url=ds(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(e,i){return qo(this)[e-1]+i-1}fromOffset(e){let i=qo(this),s=i[i.length-1],n=0;if(e>=s)n=i.length-1;else{let r=i.length-2,o;for(;n<r;)if(o=n+(r-n>>1),e<i[o])r=o-1;else if(e>=i[o+1])n=o+1;else{n=o;break}}return{col:e-i[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:Vn(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,i,s,n){if(!this.map)return!1;let r=this.map.consumer(),o=r.originalPositionFor({column:i-1,line:e});if(!o.source)return!1;let c;if(typeof s=="number"){let p=r.originalPositionFor({column:n-1,line:s});p.source&&(c=p)}let l;jn(o.source)?l=ds(o.source):l=new URL(o.source,this.map.consumer().sourceRoot||ds(this.map.mapFile));let u={column:o.column+1,endColumn:c&&c.column+1,endLine:c&&c.line,line:o.line,url:l.toString()};if(l.protocol==="file:")if(Bo)u.file=Bo(l);else throw new Error("file: protocol is not available in this PostCSS build");let d=r.sourceContentFor(o.source);return d&&(u.source=d),u}toJSON(){let e={};for(let i of["hasBOM","css","file","id"])this[i]!=null&&(e[i]=this[i]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};jo.exports=Pt;Pt.default=Pt;Un&&Un.registerInput&&Un.registerInput(Pt)});var Ut=H(($b,Wo)=>{"use strict";var Vo=tt(),Ho,Go,dt=class extends Vo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,i,s){let n=new Set;for(let o of Array.isArray(e)?e:[e])o&&typeof o=="object"&&!o.parent&&o.raws&&typeof o.raws.before<"u"&&n.add(o.raws);let r=super.normalize(e);if(i){if(s==="prepend")this.nodes.length>1?i.raws.before=this.nodes[1].raws.before:delete i.raws.before;else if(this.first!==i)for(let o of r)n.has(o.raws)||(o.raws.before=i.raws.before)}return r}removeChild(e,i){let s=this.index(e);return!i&&s===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[s].raws.before),super.removeChild(e)}toResult(e={}){return new Ho(new Go,this,e).stringify()}};dt.registerLazyResult=t=>{Ho=t};dt.registerProcessor=t=>{Go=t};Wo.exports=dt;dt.default=dt;Vo.registerRoot(dt)});var Hn=H((Fb,Yo)=>{"use strict";var bi={comma(t){return bi.split(t,[","],!0)},space(t){let e=[" ",`
|
|
24
|
+
`," "];return bi.split(t,e)},split(t,e,i){if(typeof t!="string")return[];let s=[],n="",r=!1,o=0,c=!1,l="",u=!1,d=!1;for(let h=0;h<t.length;h++){let m=t[h];if(d){n+=m,m==="*"&&t[h+1]==="/"&&(n+="/",h+=1,d=!1);continue}if(u)u=!1;else if(m==="\\")u=!0;else if(c)m===l&&(c=!1);else if(m==='"'||m==="'")c=!0,l=m;else if(m==="/"&&t[h+1]==="*"){n+="/*",h+=1,d=!0;continue}else m==="("?o+=1:m===")"?o>0&&(o-=1):o===0&&e.includes(m)&&(r=!0);if(r){let b=n.trim();(i||b!=="")&&s.push(b),n="",r=!1}else n+=m}let p=n.trim();return(i||p!=="")&&s.push(p),s}};Yo.exports=bi;bi.default=bi});var us=H((Bb,Ko)=>{"use strict";var zo=tt(),zf=Hn(),qt=class extends zo{get selectors(){return zf.comma(this.selector)}set selectors(e){let i=this.selector?this.selector.match(/,\s*/):null,s=i?i[0]:","+this.raw("between","beforeOpen");this.selector=e.join(s)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Ko.exports=qt;qt.default=qt;zo.registerRule(qt)});var Xo=H((Pb,Qo)=>{"use strict";var Kf=rs(),Jf=vi(),Qf=Ei(),Xf=Ii(),Zf=Pn(),eg=Ut(),tg=us();function Jo(t,e){return t.inputs?t.inputs.map(i=>{let s={...i,__proto__:Xf.prototype};return s.map&&(s.map={...s.map,__proto__:Zf.prototype}),s}):e}function ig(t,e,i){let s={...t};if(delete s.inputs,delete s.nodes,s.source){let{inputId:r,...o}=s.source;s.source=o,r!=null&&(s.source.input=e[r])}let n;if(s.type==="root")n=new eg(s);else if(s.type==="decl")n=new Qf(s);else if(s.type==="rule")n=new tg(s);else if(s.type==="comment")n=new Jf(s);else if(s.type==="atrule")n=new Kf(s);else throw new Error("Unknown node type: "+t.type);if(i){n.nodes=i;for(let r of i)r.parent=n}return n}function hs(t,e){if(Array.isArray(t))return t.map(n=>hs(n));let i,s=[{childIndex:0,children:[],inputs:Jo(t,e),json:t}];for(;s.length>0;){let n=s[s.length-1],r=n.json.nodes;if(r&&n.childIndex<r.length){let c=r[n.childIndex];n.childIndex+=1,s.push({childIndex:0,children:[],inputs:Jo(c,n.inputs),json:c});continue}s.pop();let o=ig(n.json,n.inputs,r?n.children:void 0);s.length>0?s[s.length-1].children.push(o):i=o}return i}Qo.exports=hs;hs.default=hs});var Wn=H((Ub,nc)=>{"use strict";var{dirname:ps,relative:ec,resolve:tc,sep:ic}=os(),{SourceMapConsumer:sc,SourceMapGenerator:ms}=cs(),{pathToFileURL:Zo}=Bn(),sg=Ii(),ng=!!(sc&&ms),rg=!!(ps&&tc&&ec&&ic),Gn=class{constructor(e,i,s,n){this.stringify=e,this.mapOpts=s.map||{},this.root=i,this.opts=s,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let i=`
|
|
25
|
+
`;this.css.includes(`\r
|
|
26
|
+
`)&&(i=`\r
|
|
27
|
+
`),this.css+=i+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let i=this.toUrl(this.path(e.file)),s=e.root||ps(e.file),n;this.mapOpts.sourcesContent===!1?(n=new sc(e.text),n.sourcesContent&&(n.sourcesContent=null)):n=e.consumer(),this.map.applySourceMap(n,i,this.toUrl(this.path(s)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let i=this.root.nodes.length-1;i>=0;i--)e=this.root.nodes[i],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(i)}else if(this.css){let e="/*# sourceMappingURL=",i="",s=0,n;for(;(n=this.css.indexOf(e,s))!==-1;){let r=this.css.indexOf("*/",n+e.length);if(r===-1)break;for(;n>s&&this.css[n-1]===`
|
|
28
|
+
`;)n--;i+=this.css.slice(s,n),s=r+2}s>0&&(this.css=i+this.css.slice(s))}}}generate(){if(this.clearAnnotation(),rg&&ng&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,i=>{e+=i}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=ms.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new ms({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new ms({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,i=1,s="<no source>",n={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,o;this.stringify(this.root,(c,l,u)=>{if(this.css+=c,l&&u!=="end"&&(n.generated.line=e,n.generated.column=i-1,l.source&&l.source.start?(n.source=this.sourcePath(l),n.original.line=l.source.start.line,n.original.column=l.source.start.column-1,this.map.addMapping(n)):(n.source=s,n.original.line=1,n.original.column=0,this.map.addMapping(n))),o=c.match(/\n/g),o?(e+=o.length,r=c.lastIndexOf(`
|
|
29
|
+
`),i=c.length-r):i+=c.length,l&&u!=="start"){let d=l.parent||{raws:{}};(!(l.type==="decl"||l.type==="atrule"&&!l.nodes)||l!==d.last||d.raws.semicolon)&&(l.source&&l.source.end?(n.source=this.sourcePath(l),n.original.line=l.source.end.line,n.original.column=l.source.end.column-1,n.generated.line=e,n.generated.column=i-2,this.map.addMapping(n)):(n.source=s,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=i-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(i=>i.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let i=this.memoizedPaths.get(e);if(i)return i;let s=this.opts.to?ps(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(s=ps(tc(s,this.mapOpts.annotation)));let n=ec(s,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let i=e.source.input.map;this.previousMaps.includes(i)||this.previousMaps.push(i)}});else{let e=new sg(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(i=>{if(i.source){let s=i.source.input.from;if(s&&!e[s]){e[s]=!0;let n=this.usesFileUrls?this.toFileUrl(s):this.toUrl(this.path(s));this.map.setSourceContent(n,i.source.input.css)}}});else if(this.css){let i=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(i,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let i=this.memoizedFileURLs.get(e);if(i)return i;if(Zo){let s=Zo(e).toString();return this.memoizedFileURLs.set(e,s),s}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let i=this.memoizedURLs.get(e);if(i)return i;ic==="\\"&&(e=e.replace(/\\/g,"/"));let s=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,s),s}};nc.exports=Gn});var oc=H((qb,ac)=>{"use strict";var fs=/[\t\n\f\r "#'()/;[\\\]{}]/g,gs=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,ag=/.[\r\n"'(/\\]/,rc=/[\da-f]/i;ac.exports=function(e,i={}){let s=e.css.valueOf(),n=i.ignoreErrors,r,o,c,l,u,d,p,h,m,b,_=s.length,f=0,g=[],y=[],I=-1;function $(){return f}function Y(D){throw e.error("Unclosed "+D,f)}function ce(){return y.length===0&&f>=_}function pe(D){if(y.length)return y.pop();if(f>=_)return;let Z=D?D.ignoreUnclosed:!1;switch(r=s.charCodeAt(f),r){case 10:case 32:case 9:case 13:case 12:{l=f;do l+=1,r=s.charCodeAt(l);while(r===32||r===10||r===9||r===13||r===12);d=["space",s.slice(f,l)],f=l-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let K=String.fromCharCode(r);d=[K,K,f];break}case 40:{if(b=g.length?g.pop()[1]:"",m=s.charCodeAt(f+1),b==="url"&&m!==39&&m!==34&&m!==32&&m!==10&&m!==9&&m!==12&&m!==13){l=f;do{if(p=!1,l=s.indexOf(")",l+1),l===-1)if(n||Z){l=f;break}else Y("bracket");for(h=l;s.charCodeAt(h-1)===92;)h-=1,p=!p}while(p);d=["brackets",s.slice(f,l+1),f,l],f=l}else f<=I?d=["(","(",f]:(l=s.indexOf(")",f+1),o=s.slice(f,l+1),l===-1||ag.test(o)?(I=l===-1?_:l,d=["(","(",f]):(d=["brackets",o,f,l],f=l));break}case 39:case 34:{u=r===39?"'":'"',l=f;do{if(p=!1,l=s.indexOf(u,l+1),l===-1)if(n||Z){l=f+1;break}else Y("string");for(h=l;s.charCodeAt(h-1)===92;)h-=1,p=!p}while(p);d=["string",s.slice(f,l+1),f,l],f=l;break}case 64:{fs.lastIndex=f+1,fs.test(s),fs.lastIndex===0?l=s.length-1:l=fs.lastIndex-2,d=["at-word",s.slice(f,l+1),f,l],f=l;break}case 92:{for(l=f,c=!0;s.charCodeAt(l+1)===92;)l+=1,c=!c;if(r=s.charCodeAt(l+1),c&&r!==47&&r!==32&&r!==10&&r!==9&&r!==13&&r!==12&&(l+=1,rc.test(s.charAt(l)))){for(;rc.test(s.charAt(l+1));)l+=1;s.charCodeAt(l+1)===32&&(l+=1)}d=["word",s.slice(f,l+1),f,l],f=l;break}default:{r===47&&s.charCodeAt(f+1)===42?(l=s.indexOf("*/",f+2)+1,l===0&&(n||Z?l=s.length:Y("comment")),d=["comment",s.slice(f,l+1),f,l],f=l):(gs.lastIndex=f+1,gs.test(s),gs.lastIndex===0?l=s.length-1:l=gs.lastIndex-2,d=["word",s.slice(f,l+1),f,l],g.push(d),f=l);break}}return f++,d}function z(D){y.push(D)}return{back:z,endOfFile:ce,nextToken:pe,position:$}}});var uc=H((jb,dc)=>{"use strict";var og=rs(),cg=vi(),lg=Ei(),dg=Ut(),cc=us(),ug=oc(),lc={empty:!0,space:!0};function hg(t){for(let e=t.length-1;e>=0;e--){let i=t[e],s=i[3]||i[2];if(s)return s}}function Yn(t,e,i){let s="";for(let n=e;n<i;n++)s+=t[n][1];return s}var zn=class{constructor(e){this.input=e,this.root=new dg,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let i=new og;i.name=e[1].slice(1),i.name===""&&this.unnamedAtrule(i,e),this.init(i,e[2]);let s,n,r,o=!1,c=!1,l=[],u=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),s=e[0],s==="("||s==="["?u.push(s==="("?")":"]"):s==="{"&&u.length>0?u.push("}"):s===u[u.length-1]&&u.pop(),u.length===0)if(s===";"){i.source.end=this.getPosition(e[2]),i.source.end.offset++,this.semicolon=!0;break}else if(s==="{"){c=!0;break}else if(s==="}"){if(l.length>0){for(r=l.length-1,n=l[r];n&&n[0]==="space";)n=l[--r];n&&(i.source.end=this.getPosition(n[3]||n[2]),i.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(i.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(i,"params",l),o&&(e=l[l.length-1],i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++,this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),c&&(i.nodes=[],this.current=i)}checkMissedSemicolon(e){let i=this.colon(e);if(i===!1)return;let s=0,n;for(let r=i-1;r>=0&&(n=e[r],!(n[0]!=="space"&&(s+=1,s===2)));r--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let i=0,s,n,r;for(let[o,c]of e.entries()){if(n=c,r=n[0],r==="("&&(i+=1),r===")"&&(i-=1),i===0&&r===":")if(!s)this.doubleColon(n);else{if(s[0]==="word"&&s[1]==="progid")continue;return o}s=n}return!1}comment(e){let i=new cg;this.init(i,e[2]),i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++;let s=e[1].slice(2,-2);if(!s.trim())i.text="",i.raws.left=s,i.raws.right="";else{let n=s.match(/^(\s*)([^]*\S)(\s*)$/);i.text=n[2],i.raws.left=n[1],i.raws.right=n[3]}}createTokenizer(){this.tokenizer=ug(this.input)}decl(e,i){let s=new lg;this.init(s,e[0][2]);let n=e[e.length-1];n[0]===";"&&(this.semicolon=!0,e.pop()),s.source.end=this.getPosition(n[3]||n[2]||hg(e)),s.source.end.offset++;let r=0;for(;e[r][0]!=="word";)r===e.length-1&&this.unknownWord([e[r]]),r++;s.raws.before+=Yn(e,0,r),s.source.start=this.getPosition(e[r][2]);let o=r;for(;r<e.length;){let h=e[r][0];if(h===":"||h==="space"||h==="comment")break;r++}s.prop=Yn(e,o,r);let c=r,l;for(;r<e.length&&(l=e[r],r++,l[0]!==":");)l[0]==="word"&&/\w/.test(l[1])&&this.unknownWord([l]);s.raws.between=Yn(e,c,r),(s.prop[0]==="_"||s.prop[0]==="*")&&(s.raws.before+=s.prop[0],s.prop=s.prop.slice(1));let u=r;for(;r<e.length;){let h=e[r][0];if(h!=="space"&&h!=="comment")break;r++}let d=e.slice(u,r);e=e.slice(r),this.precheckMissedSemicolon(e);for(let h=e.length-1;h>=0;h--){if(l=e[h],l[1].toLowerCase()==="!important"){s.important=!0;let m=this.stringFrom(e,h);m=this.spacesFromEnd(e)+m,m!==" !important"&&(s.raws.important=m);break}else if(l[1].toLowerCase()==="important"){let m=e.slice(0),b="";for(let _=h;_>0;_--){let f=m[_][0];if(b.trim().startsWith("!")&&f!=="space")break;b=m.pop()[1]+b}b.trim().startsWith("!")&&(s.important=!0,s.raws.important=b,e=m)}if(l[0]!=="space"&&l[0]!=="comment")break}e.some(h=>h[0]!=="space"&&h[0]!=="comment")&&(s.raws.between+=d.map(h=>h[1]).join(""),d=[]),this.raw(s,"value",d.concat(e),i),s.value.includes(":")&&!i&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let i=new cc;this.init(i,e[2]),i.selector="",i.raws.between="",this.current=i}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let i=this.current.nodes[this.current.nodes.length-1];i&&i.type==="rule"&&!i.raws.ownSemicolon&&(i.raws.ownSemicolon=this.spaces,this.spaces="",i.source.end=this.getPosition(e[2]),i.source.end.offset++)}}getPosition(e){let i=this.input.fromOffset(e);return{column:i.col,line:i.line,offset:e}}init(e,i){this.current.push(e),e.source={input:this.input,start:this.getPosition(i)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let i=!1,s=null,n=!1,r=null,o=[],c=e[1].startsWith("--"),l=[],u=e;for(;u;){if(s=u[0],l.push(u),s==="("||s==="[")r||(r=u),o.push(s==="("?")":"]");else if(c&&n&&s==="{")r||(r=u),o.push("}");else if(o.length===0)if(s===";")if(n){this.decl(l,c);return}else break;else if(s==="{"){this.rule(l);return}else if(s==="}"){this.tokenizer.back(l.pop()),i=!0;break}else s===":"&&(n=!0);else s===o[o.length-1]&&(o.pop(),o.length===0&&(r=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(i=!0),o.length>0&&this.unclosedBracket(r),i&&n){if(!c)for(;l.length&&(u=l[l.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,c)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,i,s,n){let r,o,c=s.length,l="",u="",d=!0,p,h;for(let m=0;m<c;m+=1)r=s[m],o=r[0],o==="space"&&m===c-1&&!n?d=!1:o==="comment"?(h=s[m-1]?s[m-1][0]:"empty",p=s[m+1]?s[m+1][0]:"empty",!lc[h]&&!lc[p]?u===","?d=!1:(l+=r[1],u=r[1].slice(-1)):d=!1):(l+=r[1],u=r[1].slice(-1));if(!d){let m=s.reduce((b,_)=>b+_[1],"");e.raws[i]={raw:m,value:l}}e[i]=l}rule(e){e.pop();let i=new cc;this.init(i,e[0][2]),i.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(i,"selector",e),this.current=i}spacesAndCommentsFromEnd(e){let i,s="";for(;e.length&&(i=e[e.length-1][0],!(i!=="space"&&i!=="comment"));)s=e.pop()[1]+s;return s}spacesAndCommentsFromStart(e){let i,s="";for(;e.length&&(i=e[0][0],!(i!=="space"&&i!=="comment"));)s+=e.shift()[1];return s}spacesFromEnd(e){let i,s="";for(;e.length&&(i=e[e.length-1][0],i==="space");)s=e.pop()[1]+s;return s}stringFrom(e,i){let s="";for(let n=i;n<e.length;n++)s+=e[n][1];return e.splice(i,e.length-i),s}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,i){throw this.input.error("At-rule without name",{offset:i[2]},{offset:i[2]+i[1].length})}};dc.exports=zn});var ys=H((Vb,hc)=>{"use strict";var pg=tt(),mg=Ii(),fg=uc();function ks(t,e){let i=new mg(t,e),s=new fg(i);try{s.parse()}catch(n){throw n}return s.root}hc.exports=ks;ks.default=ks;pg.registerParse(ks)});var Kn=H((Hb,pc)=>{"use strict";var gg=tt(),{my:kg}=mi(),Si=class{constructor(e,i={}){if(this.type="warning",this.text=e,i.node&&i.node.source){i.node[kg]||gg.rebuild(i.node);let s=i.node.rangeBy(i);this.line=s.start.line,this.column=s.start.column,this.endLine=s.end.line,this.endColumn=s.end.column}for(let s in i)this[s]=i[s]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};pc.exports=Si;Si.default=Si});var vs=H((Gb,mc)=>{"use strict";var yg=Kn(),Ci=class{get content(){return this.css}constructor(e,i,s){this.processor=e,this.messages=[],this.root=i,this.opts=s,this.css="",this.map=void 0}toString(){return this.css}warn(e,i={}){i.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(i.plugin=this.lastPlugin.postcssPlugin);let s=new yg(e,i);return this.messages.push(s),s}warnings(){return this.messages.filter(e=>e.type==="warning")}};mc.exports=Ci;Ci.default=Ci});var Jn=H((Wb,gc)=>{"use strict";var fc={};gc.exports=function(e){fc[e]||(fc[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Zn=H((zb,wc)=>{"use strict";var vg=tt(),wg=as(),Eg=Wn(),xg=ys(),kc=vs(),Ig=Ut(),bg=pi(),{isClean:je,my:Sg}=mi(),Yb=Jn(),Cg={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Ag={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Ng={Once:!0,postcssPlugin:!0,prepare:!0},jt=0;function Ai(t){return typeof t=="object"&&typeof t.then=="function"}function Qn(t){let e=!1,i=Cg[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[i,i+"-"+e,jt,i+"Exit",i+"Exit-"+e]:e?[i,i+"-"+e,i+"Exit",i+"Exit-"+e]:t.append?[i,jt,i+"Exit"]:[i,i+"Exit"]}function yc(t){let e;return t.type==="document"?e=["Document",jt,"DocumentExit"]:t.type==="root"?e=["Root",jt,"RootExit"]:e=Qn(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function vc(t){let e=[t];for(;e.length>0;){let i=e.pop();if(i[je]=!1,i.nodes)for(let s of i.nodes)e.push(s)}return t}var Xn={},ut=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,i,s){this.stringified=!1,this.processed=!1;let n;if(typeof i=="object"&&i!==null&&(i.type==="root"||i.type==="document"))n=vc(i);else if(i instanceof t||i instanceof kc)n=vc(i.root),i.map&&(typeof s.map>"u"&&(s.map={}),s.map.inline||(s.map.inline=!1),s.map.prev=i.map);else{let r=xg;s.syntax&&(r=s.syntax.parse),s.parser&&(r=s.parser),r.parse&&(r=r.parse);try{n=r(i,s)}catch(o){this.processed=!0,this.error=o}n&&!n[Sg]&&vg.rebuild(n)}this.result=new kc(e,n,s),this.helpers={...Xn,postcss:Xn,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,i){let s=this.result.lastPlugin;try{i&&i.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=s.postcssPlugin,e.setMessage()):s.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(i,s,n)=>{this.listeners[s]||(this.listeners[s]=[]),this.listeners[s].push([i,n])};for(let i of this.plugins)if(typeof i=="object")for(let s in i){if(!Ag[s]&&/^[A-Z]/.test(s))throw new Error(`Unknown event ${s} in ${i.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Ng[s])if(typeof i[s]=="object")for(let n in i[s])n==="*"?e(i,s,i[s][n]):e(i,s+"-"+n.toLowerCase(),i[s][n]);else typeof i[s]=="function"&&e(i,s,i[s])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let i=this.plugins[e],s=this.runOnRoot(i);if(Ai(s))try{await s}catch(n){throw this.handleError(n)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[je];){e[je]=!0;let i=[yc(e)];for(;i.length>0;){let s=this.visitTick(i);if(Ai(s))try{await s}catch(n){let r=i[i.length-1].node;throw this.handleError(n,r)}}}if(this.listeners.OnceExit)for(let[i,s]of this.listeners.OnceExit){this.result.lastPlugin=i;try{if(e.type==="document"){let n=e.nodes.map(r=>s(r,this.helpers));await Promise.all(n)}else await s(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let i=this.result.root.nodes.map(s=>e.Once(s,this.helpers));return Ai(i[0])?Promise.all(i):i}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(i){throw this.handleError(i)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,i=bg;e.syntax&&(i=e.syntax.stringify),e.stringifier&&(i=e.stringifier),i.stringify&&(i=i.stringify);let s=this.result.root.source;if(e.map===void 0&&!(s&&s.input&&s.input.map)){let o="";return i(this.result.root,c=>{o+=c}),this.result.css=o,this.result}let r=new Eg(i,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let i=this.runOnRoot(e);if(Ai(i))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[je];)e[je]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let i of e.nodes)this.visitSync(this.listeners.OnceExit,i);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,i){return this.async().then(e,i)}toString(){return this.css}visitSync(e,i){for(let[s,n]of e){this.result.lastPlugin=s;let r;try{r=n(i,this.helpers)}catch(o){throw this.handleError(o,i.proxyOf)}if(i.type!=="root"&&i.type!=="document"&&!i.parent)return!0;if(Ai(r))throw this.getAsyncError()}}visitTick(e){let i=e[e.length-1],{node:s,visitors:n}=i;if(s.type!=="root"&&s.type!=="document"&&!s.parent){e.pop();return}if(n.length>0&&i.visitorIndex<n.length){let[o,c]=n[i.visitorIndex];i.visitorIndex+=1,i.visitorIndex===n.length&&(i.visitors=[],i.visitorIndex=0),this.result.lastPlugin=o;try{return c(s.toProxy(),this.helpers)}catch(l){throw this.handleError(l,s)}}if(i.iterator!==0){let o=i.iterator;i.descending&&(i.descending=!1,s.indexes[o]+=1);let c;for(;c=s.nodes[s.indexes[o]];){if(!c[je]){c[je]=!0,i.descending=!0,e.push(yc(c));return}s.indexes[o]+=1}i.iterator=0,delete s.indexes[o]}let r=i.events;for(;i.eventIndex<r.length;){let o=r[i.eventIndex];if(i.eventIndex+=1,o===jt){s.nodes&&s.nodes.length&&(s[je]=!0,i.iterator=s.getIterator());return}else if(this.listeners[o]){i.visitors=this.listeners[o];return}}e.pop()}walkSync(e){e[je]=!0;let i=[{eventIndex:0,events:Qn(e),iterator:0,node:e}];for(;i.length>0;){let s=i[i.length-1],n=s.node;if(s.iterator!==0){let r=s.iterator;s.descending&&(s.descending=!1,n.indexes[r]+=1);let o,c=!1;for(;o=n.nodes[n.indexes[r]];){if(!o[je]){o[je]=!0,s.descending=!0,i.push({eventIndex:0,events:Qn(o),iterator:0,node:o}),c=!0;break}n.indexes[r]+=1}if(c)continue;s.iterator=0,delete n.indexes[r]}if(s.eventIndex<s.events.length){let r=s.events[s.eventIndex];if(s.eventIndex+=1,r===jt)n.nodes&&n.nodes.length&&(s.iterator=n.getIterator());else{let o=this.listeners[r];o&&this.visitSync(o,n.toProxy())&&i.pop()}continue}i.pop()}}warnings(){return this.sync().warnings()}};ut.registerPostcss=t=>{Xn=t};wc.exports=ut;ut.default=ut;Ig.registerLazyResult(ut);wg.registerLazyResult(ut)});var xc=H((Jb,Ec)=>{"use strict";var _g=Wn(),Tg=ys(),Rg=vs(),Dg=pi(),Kb=Jn(),Ni=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,i=Tg;try{e=i(this._css,this._opts)}catch(s){this.error=s}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,i,s){i=i.toString(),this.stringified=!1,this._processor=e,this._css=i,this._opts=s,this._map=void 0;let n=Dg;this.result=new Rg(this._processor,void 0,this._opts),this.result.css=i;let r=this;Object.defineProperty(this.result,"root",{get(){return r.root}});let o=new _g(n,void 0,this._opts,i);if(o.isMap()){let[c,l]=o.generate();c&&(this.result.css=c),l&&(this.result.map=l)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,i){return this.async().then(e,i)}toString(){return this._css}warnings(){return[]}};Ec.exports=Ni;Ni.default=Ni});var bc=H((Qb,Ic)=>{"use strict";var Og=as(),Lg=Zn(),Mg=xc(),$g=Ut(),It=class{constructor(e=[]){this.version="8.5.29",this.plugins=this.normalize(e)}normalize(e){let i=[];for(let s of e)if(s.postcss===!0?s=s():s.postcss&&(s=s.postcss),typeof s=="object"&&Array.isArray(s.plugins))i=i.concat(s.plugins);else if(typeof s=="object"&&s.postcssPlugin)i.push(s);else if(typeof s=="function")i.push(s);else if(!(typeof s=="object"&&(s.parse||s.stringify)))throw new Error(s+" is not a PostCSS plugin");return i}process(e,i={}){return!this.plugins.length&&!i.parser&&!i.stringifier&&!i.syntax?new Mg(this,e,i):new Lg(this,e,i)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};Ic.exports=It;It.default=It;$g.registerProcessor(It);Og.registerProcessor(It)});var Dc=H((Xb,Rc)=>{"use strict";var Sc=rs(),Cc=vi(),Fg=tt(),Bg=ns(),Ac=Ei(),Nc=as(),Pg=Xo(),Ug=Ii(),qg=Zn(),jg=Hn(),Vg=ki(),Hg=ys(),er=bc(),Gg=vs(),_c=Ut(),Tc=us(),Wg=pi(),Yg=Kn();function ie(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new er(t)}ie.plugin=function(e,i){let s=!1;function n(...o){console&&console.warn&&!s&&(s=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:
|
|
30
|
+
https://evilmartians.com/chronicles/postcss-8-plugin-migration`));let c=i(...o);return c.postcssPlugin=e,c.postcssVersion=new er().version,c}let r;return Object.defineProperty(n,"postcss",{get(){return r||(r=n()),r}}),n.process=function(o,c,l){return ie([n(l)]).process(o,c)},n};ie.stringify=Wg;ie.parse=Hg;ie.fromJSON=Pg;ie.list=jg;ie.comment=t=>new Cc(t);ie.atRule=t=>new Sc(t);ie.decl=t=>new Ac(t);ie.rule=t=>new Tc(t);ie.root=t=>new _c(t);ie.document=t=>new Nc(t);ie.CssSyntaxError=Bg;ie.Declaration=Ac;ie.Container=Fg;ie.Processor=er;ie.Document=Nc;ie.Comment=Cc;ie.Warning=Yg;ie.AtRule=Sc;ie.Result=Gg;ie.Input=Ug;ie.Rule=Tc;ie.Root=_c;ie.Node=Vg;qg.registerPostcss(ie);Rc.exports=ie;ie.default=ie});var Oc=H((tr,ir)=>{(function(t,e){typeof tr=="object"&&typeof ir<"u"?ir.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(tr,(function(){"use strict";var t=1e3,e=6e4,i=36e5,s="millisecond",n="second",r="minute",o="hour",c="day",l="week",u="month",d="quarter",p="year",h="date",m="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,_=/\[([^\]]+)]|YYYY|YY|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,f={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(O){var A=["th","st","nd","rd"],C=O%100;return"["+O+(A[(C-20)%10]||A[C]||A[0])+"]"}},g=function(O,A,C){var T=String(O);return!T||T.length>=A?O:""+Array(A+1-T.length).join(C)+O},y={s:g,z:function(O){var A=-O.utcOffset(),C=Math.abs(A),T=Math.floor(C/60),R=C%60;return(A<=0?"+":"-")+g(T,2,"0")+":"+g(R,2,"0")},m:function O(A,C){if(A.date()<C.date())return-O(C,A);var T=12*(C.year()-A.year())+(C.month()-A.month()),R=A.clone().add(T,u),U=C-R<0,q=A.clone().add(T+(U?-1:1),u);return+(-(T+(C-R)/(U?R-q:q-R))||0)},a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:u,y:p,w:l,d:c,D:h,h:o,m:r,s:n,ms:s,Q:d}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},I="en",$={};$[I]=f;var Y="$isDayjsObject",ce=function(O){return O instanceof Z||!(!O||!O[Y])},pe=function O(A,C,T){var R;if(!A)return I;if(typeof A=="string"){var U=A.toLowerCase();$[U]&&(R=U),C&&($[U]=C,R=U);var q=A.split("-");if(!R&&q.length>1)return O(q[0])}else{var se=A.name;$[se]=A,R=se}return!T&&R&&(I=R),R||!T&&I},z=function(O,A){if(ce(O))return O.clone();var C=typeof A=="object"?A:{};return C.date=O,C.args=arguments,new Z(C)},D=y;D.l=pe,D.i=ce,D.w=function(O,A){return z(O,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var Z=(function(){function O(C){this.$L=pe(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[Y]=!0}var A=O.prototype;return A.parse=function(C){this.$d=(function(T){var R=T.date,U=T.utc;if(R===null)return new Date(NaN);if(D.u(R))return new Date;if(R instanceof Date)return new Date(R);if(typeof R=="string"&&!/Z$/i.test(R)){var q=R.match(b);if(q){var se=q[2]-1||0,le=(q[7]||"0").substring(0,3);return U?new Date(Date.UTC(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,le)):new Date(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,le)}}return new Date(R)})(C),this.init()},A.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},A.$utils=function(){return D},A.isValid=function(){return this.$d.toString()!==m},A.isSame=function(C,T){var R=z(C);return this.startOf(T)<=R&&R<=this.endOf(T)},A.isAfter=function(C,T){return z(C)<this.startOf(T)},A.isBefore=function(C,T){return this.endOf(T)<z(C)},A.$g=function(C,T,R){return D.u(C)?this[T]:this.set(R,C)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(C,T){var R=this,U=!!D.u(T)||T,q=D.p(C),se=function(x,E){var N=D.w(R.$u?Date.UTC(R.$y,E,x):new Date(R.$y,E,x),R);return U?N:N.endOf(c)},le=function(x,E){return D.w(R.toDate()[x].apply(R.toDate("s"),(U?[0,0,0,0]:[23,59,59,999]).slice(E)),R)},fe=this.$W,ke=this.$M,Ae=this.$D,st="set"+(this.$u?"UTC":"");switch(q){case p:return U?se(1,0):se(31,11);case u:return U?se(1,ke):se(0,ke+1);case l:var He=this.$locale().weekStart||0,k=(fe<He?fe+7:fe)-He;return se(U?Ae-k:Ae+(6-k),ke);case c:case h:return le(st+"Hours",0);case o:return le(st+"Minutes",1);case r:return le(st+"Seconds",2);case n:return le(st+"Milliseconds",3);default:return this.clone()}},A.endOf=function(C){return this.startOf(C,!1)},A.$set=function(C,T){var R,U=D.p(C),q="set"+(this.$u?"UTC":""),se=(R={},R[c]=q+"Date",R[h]=q+"Date",R[u]=q+"Month",R[p]=q+"FullYear",R[o]=q+"Hours",R[r]=q+"Minutes",R[n]=q+"Seconds",R[s]=q+"Milliseconds",R)[U],le=U===c?this.$D+(T-this.$W):T;if(U===u||U===p){var fe=this.clone().set(h,1);fe.$d[se](le),fe.init(),this.$d=fe.set(h,Math.min(this.$D,fe.daysInMonth())).$d}else se&&this.$d[se](le);return this.init(),this},A.set=function(C,T){return this.clone().$set(C,T)},A.get=function(C){return this[D.p(C)]()},A.add=function(C,T){var R,U=this;C=Number(C);var q=D.p(T),se=function(ke){var Ae=z(U);return D.w(Ae.date(Ae.date()+Math.round(ke*C)),U)};if(q===u)return this.set(u,this.$M+C);if(q===p)return this.set(p,this.$y+C);if(q===c)return se(1);if(q===l)return se(7);var le=(R={},R[r]=e,R[o]=i,R[n]=t,R)[q]||1,fe=this.$d.getTime()+C*le;return D.w(fe,this)},A.subtract=function(C,T){return this.add(-1*C,T)},A.format=function(C){var T=this,R=this.$locale();if(!this.isValid())return R.invalidDate||m;var U=C||"YYYY-MM-DDTHH:mm:ssZ",q=D.z(this),se=this.$H,le=this.$m,fe=this.$M,ke=R.weekdays,Ae=R.months,st=R.meridiem,He=function(E,N,X,de){return E&&(E[N]||E(T,U))||X[N].slice(0,de)},k=function(E){return D.s(se%12||12,E,"0")},x=st||function(E,N,X){var de=E<12?"AM":"PM";return X?de.toLowerCase():de};return U.replace(_,(function(E,N){return N||(function(X){switch(X){case"YY":return String(T.$y).slice(-2);case"YYYY":return D.s(T.$y,4,"0");case"M":return fe+1;case"MM":return D.s(fe+1,2,"0");case"MMM":return He(R.monthsShort,fe,Ae,3);case"MMMM":return He(Ae,fe);case"D":return T.$D;case"DD":return D.s(T.$D,2,"0");case"d":return String(T.$W);case"dd":return He(R.weekdaysMin,T.$W,ke,2);case"ddd":return He(R.weekdaysShort,T.$W,ke,3);case"dddd":return ke[T.$W];case"H":return String(se);case"HH":return D.s(se,2,"0");case"h":return k(1);case"hh":return k(2);case"a":return x(se,le,!0);case"A":return x(se,le,!1);case"m":return String(le);case"mm":return D.s(le,2,"0");case"s":return String(T.$s);case"ss":return D.s(T.$s,2,"0");case"SSS":return D.s(T.$ms,3,"0");case"Z":return q}return null})(E)||q.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(C,T,R){var U,q=this,se=D.p(T),le=z(C),fe=(le.utcOffset()-this.utcOffset())*e,ke=this-le,Ae=function(){return D.m(q,le)};switch(se){case p:U=Ae()/12;break;case u:U=Ae();break;case d:U=Ae()/3;break;case l:U=(ke-fe)/6048e5;break;case c:U=(ke-fe)/864e5;break;case o:U=ke/i;break;case r:U=ke/e;break;case n:U=ke/t;break;default:U=ke}return R?U:D.a(U)},A.daysInMonth=function(){return this.endOf(u).$D},A.$locale=function(){return $[this.$L]},A.locale=function(C,T){if(!C)return this.$L;var R=this.clone(),U=pe(C,T,!0);return U&&(R.$L=U),R},A.clone=function(){return D.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},O})(),K=Z.prototype;return z.prototype=K,[["$ms",s],["$s",n],["$m",r],["$H",o],["$W",c],["$M",u],["$y",p],["$D",h]].forEach((function(O){K[O[1]]=function(A){return this.$g(A,O[0],O[1])}})),z.extend=function(O,A){return O.$i||(O(A,Z,z),O.$i=!0),z},z.locale=pe,z.isDayjs=ce,z.unix=function(O){return z(1e3*O)},z.en=$[I],z.Ls=$,z.p={},z}))});var Mc=H((Zb,nr)=>{var ws=Oc();function Lc(t){for(t=t.replace(/[\x00-\x20]+/g,"");;){let e=t.indexOf("<!--");if(e===-1)break;let i=t.indexOf("-->",e+4);if(i===-1)break;t=t.substring(0,e)+t.substring(i+3)}return t}function sr(t,e){e=e||{};let i=e.allowedSchemes||["http","https","ftp","mailto","tel","sms"],s=e.allowProtocolRelative!==!1;if(typeof t!="string")return!1;t=Lc(t);let n=t.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return t.match(/^[/\\]{2}/)?!s:!1;let r=n[1].toLowerCase();return i.indexOf(r)===-1}nr.exports=function(t){let e={};return e.options=t||{},e.filterTag=e.options.filterTag||function(i){return i=i.trim(),i.toLowerCase()},e.string=function(i,s){return typeof i!="string"&&(typeof i=="number"||typeof i=="boolean"?i+="":i=""),i=i.trim(),s!==void 0&&i===""&&(i=s),i},e.strings=function(i){return Array.isArray(i)?i.map(function(s){return e.string(s)}):[]},e.integer=function(i,s,n,r){if(s===void 0&&(s=0),typeof i=="number")i=Math.floor(i);else try{i=parseInt(i,10),isNaN(i)&&(i=s)}catch{i=s}return typeof n=="number"&&i<n&&(i=n),typeof r=="number"&&i>r&&(i=r),i},e.padInteger=function(i,s){let n=i+"";for(;n.length<s;)n="0"+n;return n},e.float=function(i,s,n,r){if(s===void 0&&(s=0),typeof i!="number")try{i=parseFloat(i,10),isNaN(i)&&(i=s)}catch{i=s}return typeof n=="number"&&i<n&&(i=n),typeof r=="number"&&i>r&&(i=r),i},e.naughtyHref=sr,e.url=function(i,s,n){if(i=e.string(i,s),i===s)return i;if(i=Lc(i),sr(i)||(i=r(i),i===null))return s;return i;function r(o){return o.match(/^(((https?|ftp):\/\/)|((mailto|tel|sms):)|#|([^/.]+)?\/|[^/.]+$)/)?o:o.match(/^[^/.]+\.[^/.]+/)?(n?"https://":"http://")+o:null}},e.select=function(i,s,n){if(i=e.string(i),!s||!s.length)return n;let r;return typeof s[0]=="object"?(r=s.find(function(o){return o.value===null||o.value===void 0?!1:o.value.toString()===i}),r!=null?r.value:n):(r=s.find(function(o){return o==null?!1:o.toString()===i}),r!==void 0?r:n)},e.boolean=function(i,s){return i===!0?!0:i===!1?!1:(i=e.string(i,s),i===s?i===void 0?!1:i:(i=i.toLowerCase().charAt(0),i===""||i==="n"||i==="0"||i==="f"?!1:i==="t"||i==="y"||i==="1"))},e.addBooleanFilterToCriteria=function(i,s,n,r){r===void 0&&(r=null);let o=typeof i=="object"&&i!==null?i[s]:i;o=o===void 0?r:o,o=e.booleanOrNull(o),o===null||(o?n[s]=!0:n[s]={$ne:!0})},e.booleanOrNull=function(i,s){return i===!0||i===!1||i===null?i:(i=e.string(i,s),i===s?s===void 0?null:i:i==="null"?null:(i=i.toLowerCase().charAt(0),i===""||i==="n"||i==="0"||i==="f"?!1:i==="t"||i==="y"||i==="1"?!0:i==="a"?null:s))},e.date=function(i,s,n){let r;function o(){return s===void 0&&(s=ws().format("YYYY-MM-DD")),s}if(typeof i=="string"){if(i.match(/\//)){if(r=i.split("/"),r.length===2)return(n||new Date).getFullYear()+"-"+e.padInteger(r[0],2)+"-"+e.padInteger(r[1],2);if(r.length===3){if(r[2]<100){let c=n||new Date,l=c.getFullYear()%100,u=c.getFullYear()-l,d=parseInt(r[2])+u;d-c.getFullYear()>50&&(d-=100),r[2]=d}return e.padInteger(r[2],4)+"-"+e.padInteger(r[0],2)+"-"+e.padInteger(r[1],2)}else return o()}else if(i.match(/-/))return r=i.split("-"),r.length===2?(n||new Date).getFullYear()+"-"+e.padInteger(r[0],2)+"-"+e.padInteger(r[1],2):r.length===3?e.padInteger(r[0],4)+"-"+e.padInteger(r[1],2)+"-"+e.padInteger(r[2],2):o()}try{return i===null||(i=n||new Date(i),isNaN(i.getTime()))?o():i.getFullYear()+"-"+e.padInteger(i.getMonth()+1,2)+"-"+e.padInteger(i.getDate(),2)}catch{return o()}},e.formatDate=function(i){return ws(i).format("YYYY-MM-DD")},e.time=function(i,s){i=e.string(i).toLowerCase(),i=i.trim();let n=i.match(/^(\d+)([:|.](\d+))?([:|.](\d+))?\s*(am|pm|AM|PM|a|p|A|M)?$/);if(n){let r=parseInt(n[1],10),o=n[3]!==void 0?parseInt(n[3],10):0,c=n[5]!==void 0?parseInt(n[5],10):0,l=n[6]?n[6].toLowerCase():n[6];return l=l&&l.charAt(0),r===12&&l==="a"?r-=12:r===12&&l==="p"||l==="p"&&(r+=12),(r===24||r==="24")&&(r=0),e.padInteger(r,2)+":"+e.padInteger(o,2)+":"+e.padInteger(c,2)}else return s!==void 0?s:ws().format("HH:mm")},e.formatTime=function(i){return ws(i).format("HH:mm:ss")},e.tags=function(i,s){return typeof i=="string"&&(i=i.split(/,\s*/)),Array.isArray(i)?i.map(c=>e.string(c)).map(s||e.filterTag).filter(c=>c.length>0):[]},e.idRegExp=e.options.idRegExp||/^[A-Za-z0-9_]+$/,e.id=function(i,s){let n=e.string(i,s);return n===s||n.match(e.idRegExp)?n:s},e.ids=function(i){return Array.isArray(i)?i.filter(function(n){return e.id(n)!==void 0}):[]},e};nr.exports.naughtyHref=sr});var Pc=H((eS,Bc)=>{var zg=(Ka(),fh(za)),$c=Qa(),{isPlainObject:Kg}=eo(),Jg=io(),{parse:Qg}=Dc(),{naughtyHref:Xg}=Mc(),Zg=["img","audio","video","picture","svg","object","map","iframe","embed"],ek=["script","style"],tk=["animate","animatecolor","animatemotion","animatetransform","set"],ik=["href"],sk=["debug","info","warn","error"];function nk(t){let e=t&&t.logger||console,i={};for(let s of sk)i[s]=typeof e[s]=="function"?(...n)=>e[s](...n):(...n)=>console[s](...n);return i}function Vt(t,e){t&&Object.keys(t).forEach(function(i){e(t[i],i)})}function Je(t,e){return{}.hasOwnProperty.call(t,e)}function rk(t,e){return!Array.isArray(t)||!Array.isArray(e)?e:t.concat(e)}function ak(t,e){let i=Object.create(null);for(let s of[t,e])for(let n of Object.keys(s))i[n]=Je(i,n)?i[n].concat(s[n]):s[n];return i}function Fc(t,e){let i=[];return Vt(t,function(s){e(s)&&i.push(s)}),i}function ok(t){for(let e in t)if(Je(t,e))return!1;return!0}function ck(t){return t.map(function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")}).join(", ")}Bc.exports=Ht;var lk=/^[^\0\t\n\f\r /<=>]+$/,dk=8;function Ht(t,e,i){if(t==null)return"";let s=i&&i.depth||0,n=i&&i.iframeFallbackDepth||0;typeof t=="number"&&(t=t.toString());let r="",o="";function c(k,x){let E=this;this.tag=k,this.attribs=x||{},this.tagPosition=r.length,this.text="",this.openingTagLength=0,this.mediaChildren=[],this.updateParentNodeText=function(){if(I.length){let N=I[I.length-1];N.text+=E.text}},this.updateParentNodeMediaChildren=function(){I.length&&Zg.includes(this.tag)&&I[I.length-1].mediaChildren.push(this.tag)}}e=Object.assign({},Ht.defaults,e),e.parser=Object.assign({},uk,e.parser);let l=nk(e),u=function(k){return e.allowedTags===!1||(e.allowedTags||[]).indexOf(k)>-1};ek.forEach(function(k){u(k)&&!e.allowVulnerableTags&&l.warn(`Your \`allowedTags\` option includes \`${k}\`, which is inherently vulnerable to XSS attacks. Please remove it from \`allowedTags\`, or, to disable this warning, add the \`allowVulnerableTags\` option and ensure you are accounting for this risk.`)});let d=e.nonTextTags||["script","style","textarea","option","xmp"],p,h;e.allowedAttributes&&(p={},h={},Vt(e.allowedAttributes,function(k,x){p[x]=[];let E=[];k.forEach(function(N){typeof N=="string"&&N.indexOf("*")>=0?E.push($c(N).replace(/\\\*/g,".*")):p[x].push(N)}),E.length&&(h[x]=new RegExp("^("+E.join("|")+")$"))}));let m={},b={},_={};Vt(e.allowedClasses,function(k,x){if(p&&(Je(p,x)||(p[x]=[]),p[x].push("class")),m[x]=k,Array.isArray(k)){let E=[];m[x]=[],_[x]=[],k.forEach(function(N){typeof N=="string"&&N.indexOf("*")>=0?E.push($c(N).replace(/\\\*/g,".*")):N instanceof RegExp?_[x].push(N):m[x].push(N)}),E.length&&(b[x]=new RegExp("^("+E.join("|")+")$"))}});let f={},g;Vt(e.transformTags,function(k,x){let E;typeof k=="function"?E=k:typeof k=="string"&&(E=Ht.simpleTransform(k)),x==="*"?g=E:f[x]=E});let y,I,$,Y,ce,pe,z,D,Z=!1;O();let K=new zg.Parser({onopentag:function(k,x){if(e.onOpenTag&&e.onOpenTag(k,x),A(),e.enforceHtmlBoundary&&k==="html"&&O(),D)return;if(ce){pe++;return}let E=new c(k,x);I.push(E);let N=!1,X=!!E.text,de;if(Je(f,k)&&(de=f[k](k,x),E.attribs=x=de.attribs,de.text!==void 0&&(E.innerText=de.text),k!==de.tagName&&(E.name=k=de.tagName,Y[y]=de.tagName)),g&&(de=g(k,x),E.attribs=x=de.attribs,k!==de.tagName&&(E.name=k=de.tagName,Y[y]=de.tagName)),(!u(k)||se(k,x)||e.disallowedTagsMode==="recursiveEscape"&&!ok($)||e.nestingLimit!=null&&y>=e.nestingLimit)&&(N=!0,$[y]=!0,(e.disallowedTagsMode==="discard"||e.disallowedTagsMode==="completelyDiscard")&&d.indexOf(k)!==-1&&(ce=!0,pe=1,E.tag.toLowerCase()==="noscript"&&(z=C("noscript",K.endIndex+1)))),y++,N){if(e.disallowedTagsMode==="discard"||e.disallowedTagsMode==="completelyDiscard"){if(E.innerText&&!X){let J=T(E.innerText);e.textFilter?r+=e.textFilter(J,k):r+=J,Z=!0}return}o=r,r=""}if(r+="<"+k,k==="script"&&(e.allowedScriptHostnames||e.allowedScriptDomains)&&(E.innerText=""),N&&(e.disallowedTagsMode==="escape"||e.disallowedTagsMode==="recursiveEscape")&&e.preserveEscapedAttributes?Vt(x,function(J,F){r+=" "+F+'="'+T(J||"",!0)+'"'}):(!p||Je(p,k)||p["*"])&&Vt(x,function(J,F){if(!lk.test(F)){delete E.attribs[F];return}if(J===""&&!e.allowedEmptyAttributes.includes(F)&&(e.nonBooleanAttributes.includes(F)||e.nonBooleanAttributes.includes("*"))){delete E.attribs[F];return}let Tt=!1;if(!p||Je(p,k)&&p[k].indexOf(F)!==-1||p["*"]&&p["*"].indexOf(F)!==-1||Je(h,k)&&h[k].test(F)||h["*"]&&h["*"].test(F))Tt=!0;else if(p&&p[k]){for(let ee of p[k])if(Kg(ee)&&ee.name&&ee.name===F){Tt=!0;let te="";if(ee.multiple===!0){let gt=J.split(" ");for(let Xe of gt)ee.values.indexOf(Xe)!==-1&&(te===""?te=Xe:te+=" "+Xe)}else ee.values.indexOf(J)>=0&&(te=J);J=te}}if(Tt){if(e.allowedSchemesAppliedToAttributes.indexOf(F)!==-1&&R(k,J)){delete E.attribs[F];return}if(k==="meta"&&F.toLowerCase()==="content"&&U(x)&&q(J)){delete E.attribs[F];return}if(k==="script"&&F==="src"){let ee=!0;try{let te=fe(J);if(e.allowedScriptHostnames||e.allowedScriptDomains){let gt=(e.allowedScriptHostnames||[]).find(function(Fe){return Fe===te.url.hostname}),Xe=(e.allowedScriptDomains||[]).find(function(Fe){return te.url.hostname===Fe||te.url.hostname.endsWith(`.${Fe}`)});ee=gt||Xe}}catch{ee=!1}if(!ee){delete E.attribs[F];return}}if(k==="iframe"&&F==="src"){let ee=!0;try{let te=fe(J);if(te.isRelativeUrl)ee=Je(e,"allowIframeRelativeUrls")?e.allowIframeRelativeUrls:!e.allowedIframeHostnames&&!e.allowedIframeDomains;else if(e.allowedIframeHostnames||e.allowedIframeDomains){let gt=(e.allowedIframeHostnames||[]).find(function(Fe){return Fe===te.url.hostname}),Xe=(e.allowedIframeDomains||[]).find(function(Fe){return te.url.hostname===Fe||te.url.hostname.endsWith(`.${Fe}`)});ee=gt||Xe}}catch{ee=!1}if(!ee){delete E.attribs[F];return}}if(F==="srcset"||F==="imagesrcset")try{let ee=Jg(J);if(ee.forEach(function(te){R(k,te.url)&&(te.evil=!0)}),ee=Fc(ee,function(te){return!te.evil}),ee.length)J=ck(Fc(ee,function(te){return!te.evil})),E.attribs[F]=J;else{delete E.attribs[F];return}}catch{delete E.attribs[F];return}if(F==="class"){let ee=m[k],te=m["*"],gt=b[k],Xe=_[k],Fe=_["*"],ph=b["*"],zr=[gt,ph].concat(Xe,Fe).filter(function(mh){return mh});if(ee&&te?J=He(J,rk(ee,te),zr):J=He(J,ee||te,zr),!J.length){delete E.attribs[F];return}}if(F==="style"){if(e.parseStyleAttributes)try{let ee=Qg(k+" {"+J+"}",{map:!1}),te=ke(ee,e.allowedStyles);if(J=Ae(te),J.length===0){delete E.attribs[F];return}}catch{typeof window<"u"&&l.warn(`Failed to parse "${k} {${J}}". If you are running this in a browser, we recommend disabling style parsing with the parseStyleAttributes option, since it only works in a node environment due to a postcss dependency. More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete E.attribs[F];return}else if(e.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}r+=" "+F,J&&J.length?r+='="'+T(J,!0)+'"':e.allowedEmptyAttributes.includes(F)&&(r+='=""')}else delete E.attribs[F]}),e.selfClosing.indexOf(k)!==-1)r+=" />";else if(r+=">",E.innerText&&!X){let J=T(E.innerText);e.textFilter?r+=e.textFilter(J,k):r+=J,Z=!0}N&&(r=o+T(r),o=""),E.openingTagLength=r.length-E.tagPosition},ontext:function(k){if(A(),ce||D)return;let x=I[I.length-1],E;if(x&&(E=x.tag,k=x.innerText!==void 0?x.innerText:k),e.disallowedTagsMode==="completelyDiscard"&&!u(E))k="";else if(E&&u(E)&&(e.disallowedTagsMode==="discard"||e.disallowedTagsMode==="completelyDiscard")&&(E==="script"||E==="style"))r+=k;else if(E&&u(E)&&(e.disallowedTagsMode==="discard"||e.disallowedTagsMode==="completelyDiscard")&&(E==="textarea"||E==="xmp"))E==="xmp"?r+=k.replace(/</g,"<").replace(/>/g,">"):r+=T(k,!1);else if(E==="iframe"&&!u(E)&&e.disallowedTagsMode==="discard"&&n<dk)r+=Ht(k,e,{depth:y,iframeFallbackDepth:n+1});else if(!Z){let N=T(k,!1);e.textFilter?r+=e.textFilter(N,E):r+=N}if(I.length){let N=I[I.length-1];N.text+=k}},onclosetag:function(k,x){if(e.onCloseTag&&e.onCloseTag(k,x),A(),D){let X=I[I.length-1];if(!X||X.tag!==k)return}else if(ce)if(pe--,!pe)ce=!1,z!==null&&(D=!0);else return;let E=I.pop();if(!E)return;if(E.tag!==k){I.push(E);return}ce=e.enforceHtmlBoundary?k==="html":!1,y--;let N=$[y];if(N){if(delete $[y],e.disallowedTagsMode==="discard"||e.disallowedTagsMode==="completelyDiscard"){E.updateParentNodeText();return}o=r,r=""}if(Y[y]&&(k=Y[y],delete Y[y]),e.exclusiveFilter){let X=e.exclusiveFilter(E);if(X==="excludeTag"){N&&(r=o,o=""),r=r.substring(0,E.tagPosition)+r.substring(E.tagPosition+E.openingTagLength);return}else if(X){r=r.substring(0,E.tagPosition);return}}if(E.updateParentNodeMediaChildren(),E.updateParentNodeText(),e.selfClosing.indexOf(k)!==-1||x&&!u(k)&&["escape","recursiveEscape"].indexOf(e.disallowedTagsMode)>=0){N&&(r=o,o="");return}r+="</"+k+">",N&&(r=o+T(r),o=""),Z=!1}},e.parser);if(K.write(t),K.end(),e.disallowedTagsMode==="escape"||e.disallowedTagsMode==="recursiveEscape"){let k=K.endIndex;if(k!=null&&k>=0&&k<t.length){let x=t.substring(k);r+=T(x)}else(k==null||k<0)&&t.length>0&&r===""&&(r=T(t))}return r;function O(){r="",y=s,I=[],$={},Y={},ce=!1,pe=0,z=null,D=!1}function A(){z!==null&&K.startIndex>=z&&(z=null,D=!1)}function C(k,x){let E=new RegExp("</"+k+"[\\t\\n\\f\\r />]","ig");E.lastIndex=x;let N=E.exec(t);return N?N.index:1/0}function T(k,x){return typeof k!="string"&&(k=k+""),e.parser.decodeEntities&&(k=k.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),x&&(k=k.replace(/"/g,"""))),k=k.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(/</g,"<").replace(/>/g,">"),x&&(k=k.replace(/"/g,""")),k}function R(k,x){let E=Je(e.allowedSchemesByTag,k)?e.allowedSchemesByTag[k]:e.allowedSchemes||[];return Xg(x,{allowedSchemes:E,allowProtocolRelative:e.allowProtocolRelative})}function U(k){return Object.keys(k).some(function(x){return x.toLowerCase()==="http-equiv"&&String(k[x]).trim().toLowerCase()==="refresh"})}function q(k){let x=String(k),E=function(F){return F===" "||F===" "||F===`
|
|
31
|
+
`||F==="\f"||F==="\r"},N=0,X=function(){for(;N<x.length&&E(x[N]);)N++},de=function(F){return(x[F]||"").toLowerCase()};X();let Yr=N;for(;N<x.length&&/[0-9.]/.test(x[N]);)N++;if(N===Yr)return!0;if(N<x.length){let F=x[N];if(F!==";"&&F!==","&&!E(F))return!0;X(),(x[N]===";"||x[N]===",")&&N++,X()}if(N>=x.length)return!1;let _t=x.slice(N),J=!0;if(de(N)==="u"&&(J=!1,de(N+1)==="r"&&de(N+2)==="l"&&(N+=3,X(),x[N]==="="&&(N++,X(),J=!0))),J){let F=x[N];if((F==='"'||F==="'")&&N++,_t=x.slice(N),F==='"'||F==="'"){let Tt=_t.indexOf(F);Tt!==-1&&(_t=_t.slice(0,Tt))}}return R("meta",_t)}function se(k,x){if(tk.indexOf(le(k))===-1)return!1;let E=e.allowedSchemesAppliedToAttributes||[];return Object.keys(x||{}).some(function(N){if(le(N)!=="attributename")return!1;let X=(x[N]||"").trim().toLowerCase(),de=X.slice(X.lastIndexOf(":")+1);return ik.indexOf(de)!==-1||E.indexOf(X)!==-1||E.indexOf(de)!==-1})}function le(k){let x=k.toLowerCase();return x.slice(x.lastIndexOf(":")+1)}function fe(k){if(k=k.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),k.startsWith("relative:"))throw new Error("relative: exploit attempt");let x="relative://relative-site";for(let X=0;X<100;X++)x+=`/${X}`;let E=new URL(k,x);return{isRelativeUrl:E&&E.hostname==="relative-site"&&E.protocol==="relative:",url:E}}function ke(k,x){if(!x)return k;let E=k.nodes[0],N;return x[E.selector]&&x["*"]?N=ak(x[E.selector],x["*"]):N=x[E.selector]||x["*"],N&&(k.nodes[0].nodes=E.nodes.reduce(st(N),[])),k}function Ae(k){return k.nodes[0].nodes.reduce(function(x,E){return x.push(`${E.prop}:${E.value}${E.important?" !important":""}`),x},[]).join(";")}function st(k){return function(x,E){return Je(k,E.prop)&&k[E.prop].some(function(X){return X.test(E.value)})&&x.push(E),x}}function He(k,x,E){return x?(k=k.split(/\s+/),k.filter(function(N){return x.indexOf(N)!==-1||E.some(function(X){return X.test(N)})}).join(" ")):k}}var uk={decodeEntities:!0};Ht.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","menu","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta","col"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite","action","formaction","data","xlink:href","poster","background","ping","longdesc","usemap","codebase","classid","archive","profile","manifest","itemid","dynsrc","lowsrc"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0,preserveEscapedAttributes:!1};Ht.simpleTransform=function(t,e,i){return i=i===void 0?!0:i,e=e||{},function(s,n){let r;if(i)for(r in e)n[r]=e[r];else n=e;return{tagName:t,attribs:n}}}});import hk from"i18next";var gh=()=>!window||!window.location?void 0:{topic:window.location.host.replace("www.",""),channel:"Web"},kh=()=>{},he=class t{constructor(){this.config=kh()}static current(){if(t.instance)return t.instance;let e=new t;if(!e.config)throw t.notBoundError;return t.instance=e,t.instance}static bind(e){return t.instance=new t,t.instance.config={api:{address:e.api.address},origin:e.origin?{topic:e.origin.topic,channel:e.origin.channel}:gh(),bankIdThumbprint:e.bankIdThumbprint},t.instance}static destroy(){t.instance=void 0}getApiAddress(){if(!this.config)throw t.notBoundError;return this.config.api.address}getOrigin(){if(!this.config)throw t.notBoundError;return this.config.origin}useBankIdThumbprint(){if(!this.config)throw t.notBoundError;return!!this.config.bankIdThumbprint}getBankIdThumbprint(){if(!this.config)throw t.notBoundError;return this.config.bankIdThumbprint}};he.instance=void 0;he.notBoundError=new Error("Configuration not bound yet");var Di=class t extends Error{constructor(e,i){super(i),this.response=e,Object.setPrototypeOf(this,t.prototype)}getResponse(){return this.response}},$s=class t extends Error{constructor(){super("The vehicle is not available for purchase"),Object.setPrototypeOf(this,t.prototype)}},yh=t=>{throw t.errorCode===1?new $s:new Error(t.message)},vh=t=>t.getResponse().json().then(yh),wh="x-certificate-thumbprint",Fs=class{constructor(){this._method="get",this._headers={},this._body=null}accept(e){return this._headers.Accept=e,this}method(e){return this._method=e,this}authorization(e){return this._headers.Authorization=`Bearer ${e}`,this}requestForgeryToken(e){if(!e)throw new Error("Missing request forgery token");return this._headers["x-rf-token"]=e,this}content(e,i="application/json"){return i==="application/json"?this._body=JSON.stringify(e):this._body=e,i&&(this._headers["Content-Type"]=i),this}bankIdThumbprint(e){if(!e)throw new Error("Bank id thumbprint can not be falsy");return this._headers[wh]=e,this}build(){return{body:this._body,headers:this._headers,method:this._method}}},Eh=(t,e)=>{if(t.status>=200&&t.status<300)return t;throw new Di(t,String(t.status))},Bs={requestForgeryToken:void 0},Be=()=>({...Bs}),xh=t=>(Bs.requestForgeryToken=t.requestForgeryToken||Bs.requestForgeryToken,t),Xt=(t,e)=>fetch(t,e).then(i=>Eh(i,e)),Ih=["202","204"],Le=(t,e)=>Xt(t,e).then(i=>Ih.includes(String(i.status))?null:i.json()).catch(i=>{if(i instanceof Di)return vh(i);throw i}),Pe=t=>t.then(xh),Te=()=>new Fs,bh=({requestForgeryToken:t})=>Te().method("get").accept("application/json").requestForgeryToken(t).build(),Sh=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Ch=(t,e)=>Pe(Le(`${e.getApiAddress()}/v2/address?SocialId=${t.personalNumber}`,bh(Be()))).then(Sh),Oi=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing address lookup request");if(!e.personalNumber)throw new Error("Missing personal number in address lookup request")}forCustomer(e){return this.properties.personalNumber=e,this}build(){return this.properties}},Ps=class{constructor(e){if(!e)throw new Error("Missing address lookup response data");this.response=e}getAddress(){return{city:this.response.city,name:this.response.name,givenName:this.response.givenName,surname:this.response.surname,postalCode:this.response.postalCode,street:this.response.street,street2:this.response.street2,distance:this.response.distance}}},Us=class{constructor(){this.properties={}}withAddress(e){return this.properties.address=e,this.properties.name=e.name,this.properties.givenName=e.givenName,this.properties.surname=e.surname,this}withPersonalNumber(e){return this.properties.personalNumber=e,this}withEmail(e){return this.properties.email=e,this}withPhoneNumber(e){return this.properties.phoneNumber=e,this}withGivenName(e){return this.properties.givenName=e,this}withSurname(e){return this.properties.surname=e,this}build(){return this.properties}},Ah=()=>new Oi,Nh=()=>new Us,_h=t=>(Oi.validateRequest(t),Ch(t,he.current()).then(e=>new Ps(e))),Zt=Object.freeze({__proto__:null,newAddressLookupRequest:Ah,newCustomer:Nh,lookupAddress:_h}),Th=(t,{requestForgeryToken:e})=>{let i={drivingDistance:t.drivingDistance,socialId:t.personalNumber,vehicleId:t.id,branchId:t.branchId};return Te().method("post").accept("application/json").requestForgeryToken(e).content(i).build()},Rh=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Dh=(t,e)=>Pe(Le(`${e.getApiAddress()}/v3/insurance`,Th(t,Be()))).then(Rh),Li=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing insurance options request");if(!e.id)throw new Error("Missing vehicle ID for insurance options request");if(!e.personalNumber)throw new Error("Missing personal number for insurance options request");if(!e.drivingDistance)throw new Error("Missing driving distance for insurance options request")}forVehicle(e){return this.properties.id=e,this}forDealer(e){return this.properties.branchId=e,this}forCustomer(e){return this.properties.personalNumber=e,this}withDrivingDistance(e){return this.properties.drivingDistance=e,this}build(){return this.properties}},qs=class{constructor(e){if(!e)throw new Error("Missing insurance options response data");this.response=e}getInsuranceOptions(){return this.response.insurances}},Oh=()=>new Li,Lh=t=>(Li.validateRequest(t),Dh(t,he.current()).then(e=>new qs(e))),Xs=Object.freeze({__proto__:null,newInsuranceOptionsRequest:Oh,getOptions:Lh}),Mh=()=>Te().method("get").accept("application/json").build(),$h=(t,e,{requestForgeryToken:i})=>{let s={vehicleId:t.id,tradeIn:t.tradein,insurance:t.insurance?{...t.insurance,socialId:t.insurance.personalNumber?t.insurance.personalNumber:t.customer.personalNumber}:void 0,payment:t.payment,delivery:t.deliveryType,customer:{socialId:t.customer.personalNumber,email:t.customer.email,phone:t.customer.phoneNumber,name:t.customer.name,address:t.customer.address,givenName:t.customer.givenName,surname:t.customer.surname},accessories:t.accessories,urls:t.urls,origin:e.getOrigin()};return Te().method("post").accept("application/json").requestForgeryToken(i).content(s).build()},Fh=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Bh=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Ph=({id:t,branchId:e})=>{let i=`/v3/orders/new?vehicleId=${t}`;return e?`${i}&branchId=${e}`:i},Uh=(t,e)=>Pe(Le(`${e.getApiAddress()}${Ph(t)}`,Mh())).then(Fh),qh=()=>"/v3/orders",jh=(t,e)=>Pe(Le(`${e.getApiAddress()}${qh()}`,$h(t,e,Be()))).then(Bh),js=class{constructor(){this.properties={}}forPersonalNumber(e){return this.properties.personalNumber=e,this}withDrivingDistance(e){return this.properties.drivingDistance=e,this}withAddOns(e){return this.properties.addons=e,this}build(){return this.properties}},Mi=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing order creation request");if(!e.id)throw new Error("Missing vehicle ID in order creation request");if(!e.customer)throw new Error("Missing customer in order creation request");if(!e.payment)throw new Error("Missing payment in order creation request");if(!e.deliveryType)throw new Error("Missing delivery type in order creation request")}forVehicle(e){return this.properties.id=e,this}withAccessories(e){return this.properties.accessories=e.map(i=>({id:i.id})),this}withCustomer(e){return this.properties.customer=e,this}withPayment(e){return this.properties.payment=e,this}withDeliveryType(e){return this.properties.deliveryType=e,this}withInsurance(e){return this.properties.insurance=e,this}withTradeIn(e){return this.properties.tradein=e,this}withUrls(e,i){return this.properties.urls={redirect:e,payment:i},this}build(){return this.properties}},Vs=class{constructor(e){if(!e)throw new Error("Missing order create response data");this.response=e}getId(){return this.response.id}getPayment(){return this.response.payment}getOrderNumber(){return this.response.orderNumber}},$i=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing order setup request");if(!e.id)throw new Error("Missing vehicle ID in order setup request")}forVehicle(e){return this.properties.id=e,this}forDealer(e){return this.properties.branchId=e,this}build(){return this.properties}},Fi=class{constructor(e){if(!e)throw new Error("Missing payment lookup response data");this.response=e}getCosts(){return{monthlyCost:this.response.monthlyCost,totalCreditCost:this.response.totalCreditCost}}getFees(){return{setupFee:this.response.setupFee,administrationFee:this.response.administrationFee}}getInterests(){return{interest:this.response.interest,effectiveInterest:this.response.effectiveInterest}}getDurationSpec(){return this.response.duration}getDownPaymentSpec(){return this.response.downPayment}getResidualValueSpec(){return this.response.residual}getTotalResidualValue(){return this.response.totalResidualValue}getPublicURL(){return this.response.link}shouldUseCreditScoring(){return this.response.useCreditScoring}getFinancialProductCode(){return this.response.financialProductCode}getPrice(){return this.response.vehiclePrice}getCreditAmount(){return this.response.loanAmount}hasPrivacyPolicy(){return!!this.response.privacyPolicyUrl}getPrivacyPolicyUrl(){return this.response.privacyPolicyUrl}hasMoneyLaunderingInformationURL(){return!!this.response.moneyLaunderingInformationUrl}getMoneyLaunderingInformationURL(){return this.response.moneyLaunderingInformationUrl}hasFinancialOptionId(){return!!this.response.financialOptionId}getFinancialOptionId(){return this.response.financialOptionId}},Hs=class{constructor(e){if(!e)throw new Error("Missing order options response data");this.response=e}getOrderVehicle(){return this.response.vehicle}getAccessories(){return!this.response.accessories||!this.response.accessories.length?[]:this.response.accessories.map(e=>({id:e.id,articleNumber:e.articleNumber,logoUrl:e.logoUrl,longDescription:e.longDescription,shortDescription:e.shortDescription,manufacturer:e.manufacturer,model:e.model,name:e.name,price:e.price,assemblyPrice:e.assemblyPrice,salePrice:e.salePrice,productPageLink:e.productPageLink,productPageLinkText:e.productPageLinkText,media:e.media?e.media.map(i=>({externalId:i.externalId,sortOrder:i.sortOrder,url:i.url})):[]}))}requiresDealerSelection(){return this.response.dealers&&this.response.dealers.length>1}getDealerSites(){return!this.response.dealers||!this.response.dealers.length?[]:this.response.dealers}getPaymentOptions(){return!this.response.payment||!this.response.payment.length?[]:this.response.payment.map(e=>({loanDetails:e.loanDetails?new Fi(e.loanDetails):void 0,logo:e.logo,name:e.name,price:e.price,type:e.type,unit:e.unit,externalId:e.externalId}))}getDeliveryOptions(){return!this.response.delivery||!this.response.delivery.length?[]:this.response.delivery.map(e=>({type:e.type,deliveryTime:e.deliveryTime,startupCost:e.startupCost,unitPrice:e.unitPrice,unit:e.unit,minQuantity:e.minQuantity,maxQuantity:e.maxQuantity}))}getInsuranceOption(){return this.response.insurance?{institute:this.response.insurance.institute,identifier:this.response.insurance.identifier,longDescription:this.response.insurance.longDescription,description:this.response.insurance.description,logo:this.response.insurance.logo,title:this.response.insurance.title,url:this.response.insurance.url,ecomInsuranceText:this.response.insurance.ecomInsuranceText,requiresDistance:this.response.insurance.requiresDistance,requiresPersonalNumber:this.response.insurance.requiresPersonalNumber}:void 0}getOrderConditions(){return this.response.conditions}getOrderReturnConditions(){return this.response.returnConditions}getConditionsPdfUri(){return this.response.conditionsPdfUri}getContactInformation(){return this.response.contactInformation}allowsTradeIn(){return this.response.tradeIn}isUnavailable(){return this.response.unavailable}isReserved(){return!!this.response.reserved}isPaymentRequired(){return this.response.paymentRequired}},Gs=class{constructor(){this.properties={}}withType(e){return this.properties.type=e,this}withDuration(e){return this.properties.months=e,this}withDownPayment(e){return this.properties.downPayment=e,this}withResidualValue(e){return this.properties.residualValue=e,this}withExternalId(e){return this.properties.externalId=e,this}withCreditAssessment(e){return this.properties.creditAssessment=e,this}build(){return this.properties}},Ws=class{constructor(){this.properties={}}withScoreId(e){return this.properties.scoreId=e,this}withFinancialProductCode(e){return this.properties.financialProductCode=e,this}withRecommendation(e){return this.properties.recommendation=e,this}withDecision(e){return this.properties.decision=e,this}build(){return this.properties}},Vh=()=>new $i,Hh=()=>new Mi,Gh=()=>new js,Wh=()=>new Gs,Yh=()=>new Ws,zh=t=>($i.validateRequest(t),Uh(t,he.current()).then(e=>new Hs(e))),Kh=t=>(Mi.validateRequest(t),jh(t,he.current()).then(e=>new Vs(e))),We=Object.freeze({__proto__:null,newOptionsRequest:Vh,newCreateRequest:Hh,newInsurance:Gh,newPayment:Wh,newCreditAssessment:Yh,getOptions:zh,create:Kh}),Jh=t=>{let e={branchId:t.branchId,duration:t.duration,downPayment:t.downPayment,residual:t.residual,financialOptionId:t.financialOptionId};return Te().method("post").accept("application/json").content(e).build()},Qh=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Xh=(t,e)=>Le(`${e.getApiAddress()}/payment/${t.id}`,Jh(t)).then(Qh),Bi=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing payment lookup request");if(!e.id)throw new Error("Missing vehicle ID in payment lookup request");if(!e.duration||e.duration<1)throw new Error("Missing month duration in payment lookup request");if(!e.downPayment||e.downPayment<1)throw new Error("Missing cash deposit in payment lookup request")}forVehicle(e){return this.properties.id=e,this}forDealer(e){return this.properties.branchId=e,this}withDuration(e){return this.properties.duration=e,this}withDownPayment(e){return this.properties.downPayment=e,this}withResidualValue(e){return this.properties.residual=e,this}withFinancialOptionId(e){return this.properties.financialOptionId=e,this}build(){return this.properties}},Zh=()=>new Bi,ep=t=>(Bi.validateRequest(t),Xh(t,he.current()).then(e=>new Fi(e))),Zs=Object.freeze({__proto__:null,newLookupRequest:Zh,lookupPayment:ep}),tp=({requestForgeryToken:t})=>Te().method("get").accept("application/json").requestForgeryToken(t).build(),ip=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},sp=(t,e)=>Pe(Le(`${e.getApiAddress()}/v2/tradein/${t.registrationNumber}?mileage=${t.mileage}&condition=${t.condition}`,tp(Be()))).then(ip),Pi=class{constructor(){this.properties={}}static validateRequest(e){if(!e)throw new Error("Missing vehicle lookup request");if(!e.registrationNumber)throw new Error("Missing registration number in vehicle lookup request");if(e.mileage&&!e.condition)throw new Error("Missing vehicle condition for valuation in vehicle lookup request");if(e.condition&&!e.mileage)throw new Error("Missing mileage for valuation in vehicle lookup request")}withRegistrationNumber(e){return this.properties.registrationNumber=e,this}withMileage(e){return this.properties.mileage=e,this}withCondition(e){return this.properties.condition=e,this}build(){return this.properties}},Ys=class{constructor(e,i){if(!e)throw new Error("Missing vehicle lookup response data");this.response=e,this.registrationNumber=i}getVehicle(){return{manufacturer:this.response.manufacturer,modelName:this.response.modelName,modelSeries:this.response.modelSeries,modelYear:this.response.modelYear,valuation:this.response.valuation}}},zs=class{constructor(){this.properties={}}forVehicle(e){return this.properties.registrationNumber=e,this}withMileage(e){return this.properties.mileage=e,this}withCondition(e){return this.properties.condition=e,this}withComment(e){return this.properties.comments=e,this}build(){return this.properties}},np=()=>new Pi,rp=()=>new zs,ap=t=>(Pi.validateRequest(t),sp(t,he.current()).then(e=>new Ys(e,t.registrationNumber))),ei=Object.freeze({__proto__:null,newLookupRequest:np,newVehicleTrade:rp,lookupVehicle:ap}),V;(function(t){t.SameDevice="SameDevice",t.QrCode="QrCode"})(V||(V={}));var nt;(function(t){t.Pending="pending",t.Failed="failed",t.Complete="complete",t.Unknown="unknown"})(nt||(nt={}));var Hi=()=>{let t=Be().requestForgeryToken,e=Te().method("post").accept("application/json").requestForgeryToken(t);if(he.current().useBankIdThumbprint()){let s=he.current().getBankIdThumbprint();e.bankIdThumbprint(s)}return e.build()},op=t=>{switch(t){case V.QrCode:return"/qr-code";case V.SameDevice:return"/same-device";default:throw new Error("BankId auth method not supported")}},cp=t=>{let e=op(t.method);return`${he.current().getApiAddress()}/bankid/auth${e}`},lp=t=>{let e=cp(t),i=Hi();return Pe(Le(e,i))},dp=t=>`${he.current().getApiAddress()}/bankid/collect/${t}`,up=t=>{let e=dp(t.orderRef),i=Hi();return Pe(Le(e,i))},hp=t=>`${he.current().getApiAddress()}/bankid/cancel/${t}`,pp=t=>{let e=hp(t.orderRef),i=Hi();return Xt(e,i)},mp=t=>`${he.current().getApiAddress()}/bankid/auth/${t}/qr-code/refresh`,fp=t=>{let e=mp(t.orderRef),i=Hi();return Pe(Le(e,i))},en=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},gp=t=>lp(t).then(en),kp=t=>up(t).then(en),yp=t=>pp(t).then(()=>!0),vp=t=>fp(t).then(en),Ui=class{constructor(){this.properties={}}static validate(e){if(!e)throw new Error("Request can not be falsy");if(!e.method)throw new Error("Missing auth method")}withMethod(e){return this.properties.method=e,this}build(){return this.properties}},Ks=class{constructor(e,i){if(!e)throw new Error("Response can not be falsy");if(!i)throw new Error("Method can not be falsy");this.orderRef=e.orderRef,this.qrCodeAsBase64=e.qrCodeAsBase64,this.autoLaunchUrl=e.autoLaunchUrl,this.method=i}getMethod(){return this.method}isQrCode(){return this.method===V.QrCode}isSameDevice(){return this.method===V.SameDevice}getOrderRef(){return this.orderRef}getQrCode(){if(!this.isQrCode())throw new Error("Not qr code response");return this.qrCodeAsBase64}getAutoLaunchUrl(){if(!this.isSameDevice())throw new Error("Not same device response");return this.autoLaunchUrl}},qi=class{constructor(){this.properties={}}static validate(e){if(!e)throw new Error("Request can not be falsy");if(!e.orderRef)throw new Error("Missing order ref")}withOrderRef(e){return this.properties.orderRef=e,this}build(){return this.properties}},wp=()=>"Starta BankID-appen.",Ep=()=>"Starta BankID-appen.",xp=()=>"S\xF6ker efter BankID, det kan ta en liten stund... Om det har g\xE5tt n\xE5gra sekunder och inget BankID har hittats har du sannolikt inget BankID som g\xE5r att anv\xE4nda f\xF6r den aktuella identifieringen/underskriften i den h\xE4r enheten. Om du inte har n\xE5got BankID kan du h\xE4mta ett hos din internetbank.",Ip=()=>"Skriv in din s\xE4kerhetskod i BankID-appen och v\xE4lj Legitimera eller Skriv under.",bp=()=>"BankID-appen svarar inte. Kontrollera att den \xE4r startad och att du har internetanslutning. Om du inte har n\xE5got giltigt BankID kan du h\xE4mta ett hos din Bank. F\xF6rs\xF6k sedan igen.",Sp=()=>"Det BankID du f\xF6rs\xF6ker anv\xE4nda \xE4r f\xF6r gammalt eller sp\xE4rrat. Anv\xE4nd ett annat BankID eller h\xE4mta ett nytt hos din internetbank.",Cp=()=>"\xC5tg\xE4rden avbruten.",Ap=()=>"\xC5tg\xE4rden avbruten. Fo\u0308rso\u0308k igen.",Np=()=>"Starta BankID-appen.",Ye={};Ye.outstandingTransaction=wp;Ye.noClient=Ep;Ye.started=xp;Ye.userSign=Ip;Ye.expiredTransaction=bp;Ye.certificateErr=Sp;Ye.userCancel=Cp;Ye.cancelled=Ap;Ye.startFailed=Np;var Qr=t=>{if(!t)return"";let e=Ye[t];return e?e():""},Jt=class t{constructor(e){if(!e)throw new Error("Response can not be falsy");this.orderRef=e.orderRef,this.status=this.parseStatus(e.status),this.hintCode=e.hintCode,this.message=Qr(e.hintCode),this.isCompleted()&&e.completionData&&(this.personalNumber=e.completionData.personalNumber,this.address=e.completionData.address)}parseStatus(e){switch(e){case"pending":return nt.Pending;case"complete":return nt.Complete;case"failed":return nt.Failed;default:return nt.Unknown}}getOrderRef(){return this.orderRef}getStatus(){return this.status}isPending(){return this.status===nt.Pending}getHintCode(){return this.hintCode}hasMessage(){return!!this.message}getMessage(){return this.message}shouldRenew(){return this.hintCode===t.START_FAILED_CODE||this.hintCode===t.USER_CANCEL_CODE}isCompleted(){return this.status===nt.Complete}getPersonalNumber(){return this.personalNumber}getAddress(){return this.address}};Jt.START_FAILED_CODE="startFailed";Jt.USER_CANCEL_CODE="userCancel";var ji=class{constructor(){this.properties={}}static validate(e){if(!e)throw new Error("Request can not be falsy");if(!e.orderRef)throw new Error("Missing order ref")}withOrderRef(e){return this.properties.orderRef=e,this}build(){return this.properties}},Vi=class{constructor(){this.properties={}}static validate(e){if(!e)throw new Error("Request can not be falsy");if(!e.orderRef)throw new Error("Missing orderRef")}withOrderRef(e){return this.properties.orderRef=e,this}build(){return this.properties}},Js=class{constructor(e){if(!e)throw new Error("Response can not be falsy");if(!e.orderRef)throw new Error("Response is missing an orderRef");if(!e.qrCodeAsBase64)throw new Error("Response is missing a QR code");this.orderRef=e.orderRef,this.qrCodeAsBase64=e.qrCodeAsBase64}getOrderRef(){return this.orderRef}getQrCode(){return this.qrCodeAsBase64}},_p=()=>new Ui,Tp=()=>new qi,Rp=()=>new ji,Dp=()=>new Vi,Op=t=>(Ui.validate(t),gp(t).then(e=>new Ks(e,t.method))),Lp=t=>(qi.validate(t),kp(t).then(e=>new Jt(e))),Mp=t=>(ji.validate(t),yp(t)),$p=t=>(Vi.validate(t),vp(t).then(e=>new Js(e))),Ze=Object.freeze({__proto__:null,newAuthRequest:_p,newCollectRequest:Tp,newCancelRequest:Rp,newQrCodeRequest:Dp,auth:Op,collect:Lp,cancel:Mp,qrcode:$p}),Fp=t=>{let i=`${he.current().getApiAddress()}/credit-assessment/${t}`,s=Be().requestForgeryToken,n=Te().method("get").accept("application/json").requestForgeryToken(s).build();return Pe(Le(i,n))},Bp=t=>{let i=`${he.current().getApiAddress()}/credit-assessment/v2`,s=Be().requestForgeryToken,n=Te().method("post").accept("application/json").requestForgeryToken(s).content(t).build();return Pe(Le(i,n))},Pp=t=>{switch(t){case V.QrCode:return"/qr-code";case V.SameDevice:return"/same-device";default:throw new Error("BankId auth method not supported")}},Up=t=>{let e=Pp(t.method);return`${he.current().getApiAddress()}/credit-assessment/sign/${t.caseId}${e}`},qp=t=>{let e=Up(t),i=Be().requestForgeryToken,s=Te().method("post").accept("application/json").requestForgeryToken(i).build();return Pe(Le(e,s))},jp=t=>{let i=`${he.current().getApiAddress()}/credit-assessment/sign/${t}`,s=Be().requestForgeryToken,n=Te().method("delete").requestForgeryToken(s).build();return Xt(i,n)},Vp=t=>{let i=`${he.current().getApiAddress()}/credit-assessment/${t}`,s=Be().requestForgeryToken,n=Te().method("delete").requestForgeryToken(s).build();return Xt(i,n)},Hp=t=>{let i=`${he.current().getApiAddress()}/credit-assessment/${t}/accept`,s=Be().requestForgeryToken,n=Te().method("put").requestForgeryToken(s).build();return Xt(i,n)},tn=t=>{if(!t||!t.successful||!t.response)throw new Error("The request did not succeed");return t.response},Gp=t=>Bp(t).then(tn),Wp=t=>Fp(t).then(tn),Yp=t=>qp(t).then(tn),zp=t=>jp(t).then(()=>!0),Kp=t=>Vp(t).then(()=>!0),Jp=t=>Hp(t).then(()=>!0),Qs=class{constructor(e,i){if(!e)throw new Error("Response can not be falsy");if(!i.method)throw new Error("Method can not be falsy");this.qrCodeAsBase64=e.qrCodeAsBase64,this.autoLaunchUrl=e.autoLaunchUrl,this.method=i.method,this.caseId=i.caseId}getMethod(){return this.method}isQrCode(){return this.method===V.QrCode}isSameDevice(){return this.method===V.SameDevice}getQrCode(){if(!this.isQrCode())throw new Error("Not qr code response");return this.qrCodeAsBase64}getAutoLaunchUrl(){if(!this.isSameDevice())throw new Error("Not same device response");return this.autoLaunchUrl}getCaseId(){return this.caseId}},kt;(function(t){t.Married="married",t.Single="single",t.CommonLaw="commonLaw"})(kt||(kt={}));var Ge;(function(t){t.Other="other",t.Retired="retired",t.FullTimeEmployed="fullTimeEmployed",t.Student="student",t.TemporarilyEmployed="temporarilyEmployed",t.SelfEmployed="selfEmployed"})(Ge||(Ge={}));var Oe;(function(t){t.SingleFamily="singleFamily",t.Condominium="condominium",t.Apartment="apartment"})(Oe||(Oe={}));var ae;(function(t){t.Received="received",t.SigningInitiated="signingInitiated",t.SigningFailed="signingFailed",t.Signed="signed",t.ScoringInitiated="scoringInitiated",t.Scored="scored",t.NotScored="notScored",t.Accepted="accepted",t.Declined="declined",t.Unknown="unknown"})(ae||(ae={}));var Kt;(function(t){t.Approved="approved",t.Rejected="rejected",t.Unknown="unknown"})(Kt||(Kt={}));var ye;(function(t){t.Approve="approve",t.AssessManually="assessManually",t.Reject="reject",t.Unknown="unknown"})(ye||(ye={}));var Qp=t=>{switch(t){case"received":return ae.Received;case"signingInitiated":return ae.SigningInitiated;case"signingFailed":return ae.SigningFailed;case"signed":return ae.Signed;case"scoringInitiated":return ae.ScoringInitiated;case"scored":return ae.Scored;case"notScored":return ae.NotScored;case"accepted":return ae.Accepted;case"declined":return ae.Declined;default:return ae.Unknown}},Xp=t=>{switch(t){case"approved":return Kt.Approved;case"rejected":return Kt.Rejected;default:return Kt.Unknown}},Zp=t=>{switch(t){case"approve":return ye.Approve;case"assessManually":return ye.AssessManually;case"reject":return ye.Reject;default:return ye.Unknown}},Qt=class t{constructor(e){this.hintCode=e.bankIdHintCode,this.vfScoreCaseId=e.vfScoreCaseId,this.signingMessage=Qr(e.bankIdHintCode),this.status=Qp(e.status),this.decision=Xp(e.decision),this.recommendation=Zp(e.recommendation),this.qrCode=e.qrCode}getSigningMessage(){return this.signingMessage}shouldRenewSigning(){let e=this.status===ae.SigningFailed,i=this.hintCode===t.START_FAILED_CODE||this.hintCode===t.USER_CANCEL_CODE;return e&&i}isSigned(){return this.status===ae.Signed||this.status===ae.ScoringInitiated||this.status===ae.Scored||this.status===ae.NotScored||this.status===ae.Accepted}getAddress(){throw new Error("Method not implemented.")}getStatus(){return this.status}hasPendingSigning(){return this.status===ae.SigningInitiated}getHintCode(){return this.hintCode}hasPendingScoring(){return this.status===ae.Signed||this.status===ae.ScoringInitiated}isScored(){return this.status===ae.Scored||this.status===ae.Accepted}hasScoringError(){return this.status===ae.NotScored}getScoringId(){return this.vfScoreCaseId}getRecommendation(){return this.recommendation}getDecision(){return this.decision}getQrCode(){return this.qrCode}isAccepted(){return this.status===ae.Accepted}};Qt.START_FAILED_CODE="startFailed";Qt.USER_CANCEL_CODE="userCancel";var em=t=>{if(!t)throw new TypeError("Household economy can not be falsy");if(!t.employment)throw new TypeError("Household economy must have employment");if(!t.maritalStatus)throw new TypeError("Household economy must have marital status");if(!t.income&&t.income!==0)throw new TypeError("Household economy must have income");if(!t.householdChildren&&t.householdChildren!==0)throw new TypeError("Household economy must have household children");if(t.housingType===Oe.SingleFamily&&t.housingCost>0)throw new TypeError("A single family housing type can not have separate costs");if(!t.housingType)throw new TypeError("Household must be of a specific type")},tm=t=>{if(!t)throw new TypeError("Loan can not be falsy");if(!t.financialProductId)throw new TypeError("Loan must have financial product id");if(!t.credit&&t.credit!==0)throw new TypeError("Loan must have credit");if(!t.downPayment&&t.downPayment!==0)throw new TypeError("Loan must have down payment");if(!t.interestRate&&t.interestRate!==0)throw new TypeError("Loan must have interest rate");if(!t.monthlyCost&&t.monthlyCost!==0)throw new TypeError("Loan must have monthly cost");if(!t.price&&t.price!==0)throw new TypeError("Loan must have price")},im=t=>{if(!t)throw new TypeError("Customer can not be falsy");if(!t.socialId)throw new TypeError("Customer must have social id");if(!t.email)throw new TypeError("Customer must have email");if(!t.phone)throw new TypeError("Customer must have phone")},sm=t=>{if(!t)throw new TypeError("Inquiry can not be falsy");if(!t.externalId)throw new TypeError("Inquiry must have external id");em(t.householdEconomy),tm(t.loan),im(t.customer)},nm=t=>(sm(t),Gp(t)),rm=t=>Wp(t).then(e=>new Qt(e)),am=t=>Yp(t).then(e=>new Qs(e,t)),om=t=>zp(t),cm=t=>Jp(t),lm=t=>Kp(t),Me=Object.freeze({__proto__:null,newCase:nm,getStatus:rm,signCase:am,cancelSigning:om,accept:cm,decline:lm}),re;(function(t){t.Between0And1000="Between0And1000",t.Between1000And1500="Between1000And1500",t.Between1500And2000="Between1500And2000",t.Between2000And2500="Between2000And2500",t.Over2500="Over2500"})(re||(re={}));var rt;(function(t){t.None="None",t.Pickup="Pickup",t.Delivery="Delivery"})(rt||(rt={}));var P;(function(t){t.Cash="Cash",t.Lease="Lease",t.Loan="Loan"})(P||(P={}));var Jr;(function(t){t.VeryGood="VeryGood",t.Good="Good",t.Ok="Ok"})(Jr||(Jr={}));function Re(t){return`Minified Redux error #${t}; visit https://redux.js.org/Errors?code=${t} for the full message or use the non-minified dev environment for full errors. `}var dm=typeof Symbol=="function"&&Symbol.observable||"@@observable",Xr=dm,sn=()=>Math.random().toString(36).substring(7).split("").join("."),um={INIT:`@@redux/INIT${sn()}`,REPLACE:`@@redux/REPLACE${sn()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${sn()}`},Zr=um;function hm(t){if(typeof t!="object"||t===null)return!1;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e||Object.getPrototypeOf(t)===null}function nn(t,e,i){if(typeof t!="function")throw new Error(Re(2));if(typeof e=="function"&&typeof i=="function"||typeof i=="function"&&typeof arguments[3]=="function")throw new Error(Re(0));if(typeof e=="function"&&typeof i>"u"&&(i=e,e=void 0),typeof i<"u"){if(typeof i!="function")throw new Error(Re(1));return i(nn)(t,e)}let s=t,n=e,r=new Map,o=r,c=0,l=!1;function u(){o===r&&(o=new Map,r.forEach((f,g)=>{o.set(g,f)}))}function d(){if(l)throw new Error(Re(3));return n}function p(f){if(typeof f!="function")throw new Error(Re(4));if(l)throw new Error(Re(5));let g=!0;u();let y=c++;return o.set(y,f),function(){if(g){if(l)throw new Error(Re(6));g=!1,u(),o.delete(y),r=null}}}function h(f){if(!hm(f))throw new Error(Re(7));if(typeof f.type>"u")throw new Error(Re(8));if(typeof f.type!="string")throw new Error(Re(17));if(l)throw new Error(Re(9));try{l=!0,n=s(n,f)}finally{l=!1}return(r=o).forEach(y=>{y()}),f}function m(f){if(typeof f!="function")throw new Error(Re(10));s=f,h({type:Zr.REPLACE})}function b(){let f=p;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(Re(11));function y(){let $=g;$.next&&$.next(d())}return y(),{unsubscribe:f(y)}},[Xr](){return this}}}return h({type:Zr.INIT}),{dispatch:h,subscribe:p,getState:d,replaceReducer:m,[Xr]:b}}var Er=Kr(ta(),1),bt=Kr(Pc(),1);import{marked as Zy}from"marked";var pk={glossary:{change:"Endre",showPrevious:"Vis forrige",showNext:"Vis neste",showPreviousImage:"Vis forrige bilde",showNextImage:"Vis neste bilde",readMore:"Les mer",closeModal:"Lukk modalen",homeUrl:"https://www.drive.no",goToHome:"G\xE5 til drive.no",company:"Drive",modalTitle:"Drive Ecom",add:"Legg til",chosen:"Valgt",ourAdvantages:"Fordeler med \xE5 kj\xF8pe bilen online hos oss",showHelp:"Vis hjelp",closeHelp:"Lukk hjelp",whatDoesThisMean:"Hva betyr dette?",buyOnline:"Kj\xF8p online hos oss"},confirmClose:{heading:"Bilen er ikke reservert enn\xE5",message:"Du har ikke klikket deg gjennom alle trinnene som kreves for at bestillingen skal fullf\xF8res og bilen skal reserveres til deg. Er du sikker p\xE5 at du vil avslutte bestillingen din?",abortButton:"Fortsett min bestilling",confirmButton:"Avbryt min bestilling"},accessoryItemInfo:{backButton:"Tilbake",logoAlt:"Produsentens logo for"},accessories:{title:"Tilbeh\xF8r",noSelected:"Ingen valgt",changeButtonTitle:"Endre tilbeh\xF8r",heading:"Vil du kj\xF8pe tilbeh\xF8r til din nye bil?",description:"Her viser vi noen av tilbeh\xF8rene som passer til din nye bil.",proceedButton:"G\xE5 videre",skipButton:"Hopp over dette trinnet"},centralStorage:{title:"Sentral lager",heading:"Hvilket anlegg vil du kj\xF8pe fra?",description:"Dette kj\xF8ret\xF8yet er en sentrallagerbil og er tilgjengelig fra flere anlegg. Velg anlegget du vil handle fra.",changeButtonTitle:"Endre",proceedButton:"G\xE5 videre",errorMessage:"En feil oppstod, og det var ikke mulig \xE5 velge ovennevnte anlegg. Pr\xF8v igjen.",dealerSelection:"Valg av anlegg",addressMissing:"Adresse mangler"},confirmation:{title:"Fullf\xF8r bestillingen",paymentTitle:"Betaling",heading:"Nesten ferdig!",description:"For \xE5 reservere bilen til deg trenger vi bare \xE5 verifisere din identitet med BankID. Etter det vil {{name}} kontakte deg for \xE5 fullf\xF8re kj\xF8pet.",description2:"Kj\xF8pet blir f\xF8rst bindende etter signering av endelig tilbud fra {{name}}. Det er ogs\xE5 da betalingen vil foreg\xE5.",ageError:"Du m\xE5 v\xE6re over 18 \xE5r for \xE5 kunne fortsette. Identifisering med BankID viser at du er under 18 \xE5r gammel.",requestError:"En feil oppstod, og det var ikke mulig \xE5 opprette bestillingen, pr\xF8v igjen.",notAvailable:"Denne bilen er dessverre ikke lenger tilgjengelig.",socialIdNotMatchingError:"Personnummeret i f\xF8rste trinn samsvarer ikke med det som er knyttet til BankID",confirmConditionsTitle:"Jeg godkjenner {{link}}.",insuranceText:"og har tatt del av informasjonen om forsikringsformidling",reserveButton:"Reserver bilen",policyText:"Dine personopplysninger behandles og lagres i samsvar med v\xE5r {{link}}.",reservationDisclaimer:"Vi forbeholder oss retten til eventuelle endringer i tilgjengeligheten av tilbudte biler.",bankIdDescriptionQrCode:"For \xE5 verifisere din identitet, start BankID-applikasjonen p\xE5 din andre enhet.",bankIdDescriptionSameDevice:"For \xE5 verifisere din identitet, start BankID-applikasjonen.",bankIdErrorMessage:"Det var ikke mulig \xE5 hente status for n\xE5v\xE6rende BankID-signering.",bankIdQrCodeErrorMessage:"Det var ikke mulig \xE5 hente ny QR-kode for BankID-signering.",bankIdInitErrorMessage:"Det var dessverre ikke mulig \xE5 initiere BankID. Vennligst pr\xF8v igjen.",bankIdCompletedMessage:"Verifisering fullf\xF8rt, bestillingen opprettes n\xE5...",paymentHeading:"Velg betalingsm\xE5te",paymentDescription:"Gjennomf\xF8r en forskuddsbetaling p\xE5 5% av bilens pris (10 995 kr) for \xE5 reservere bilen. Velg hvordan du vil gjennomf\xF8re betalingen.",paymentDescription2:"Resterende del av kontantinnsatsen 32 985 kr med eventuelt fradrag for innbyttebil betales hos {{name}} ved kontraktsignering.",paymentCardType:"Korttype",paymentCardTypeValue:"Kreditt",paymentCardNo3DSecure:"Kort uten 3D secure",paymentCardNo3DSecureValue:"4925000000000004",paymentCard3DSecure:"Kort med 3D secure",paymentCard3DSecureValue:"4761739001010416",paymentExpiry:"MM/\xC5\xC5:",paymentExpiryValue:"12/25",paymentCVC:"CVC:",paymentCVCValue:"123",privacyPolicy:"personvernpolicy",purchaseTermsAndCancellationPolicy:"kj\xF8psvilk\xE5r og vilk\xE5r for angrerett",noVerifyConfirmMessage:"Elit in eiusmod cupidatat tempor elit fugiat ad."},customer:{title:"Dine opplysninger",changeButtonTitle:"Endre dine opplysninger",email:"E-post",phone:"Telefonnummer",socialId:"Personnummer",name:"Navn",givenName:"Fornavn",surname:"Etternavn",address:"Adresse",street:"Gateadresse",street2:"Leilighet, etasje, etc.",registeredAddress:"Registrert adresse",postalCode:"Postnummer",city:"Poststed",contactInfoTitle:"Kontaktinformasjon",contactInfoDescription:"Oppgi din e-postadresse og telefonnummer.",emailPlaceholder:"Oppgi din e-postadresse",emailErrorMessage:"En gyldig e-postadresse m\xE5 oppgis",phonePlaceholder:"Oppgi ditt telefonnummer",phoneErrorMessage:"Oppgi ditt telefonnummer",givenNamePlaceholder:"Oppgi fornavnet ditt",givenNameErrorMessage:"Oppgi fornavnet ditt",surnamePlaceholder:"Oppgi etternavnet ditt",surnameErrorMessage:"Oppgi etternavnet ditt",streetPlaceholder:"Oppgi din gateadresse",streetErrorMessage:"Oppgi din gateadresse",street2Placeholder:"Leilighet, etasje, etc.",street2ErrorMessage:"Leilighet, etasje, etc.",postalCodePlaceholder:"Oppgi postnummeret ditt",postalCodeErrorMessage:"Oppgi postnummeret ditt",cityPlaceholder:"Oppgi poststed",cityErrorMessage:"Oppgi poststed",proceedButton:"G\xE5 videre",personalInfoTitle:"Personopplysninger",personalInfoDescription:"Oppgi ditt personnummer for \xE5 hente ditt navn og adresse.",socialIdPlaceholder:"\xC5\xC5\xC5\xC5MMDD-XXXX",socialIdErrorMessage:"Oppgi personnummer i formatet \xC5\xC5\xC5\xC5MMDD-XXXX. M\xE5 v\xE6re over 18 \xE5r.",fetchButton:"Hent opplysninger",fetchErrorMessage:"Vi fikk dessverre ingen treff p\xE5 personnummeret du oppga.",fetchInfoMessage:"Vi vil hente f\xF8lgende opplysninger om deg:",policyText:"Dine personopplysninger behandles og lagres i samsvar med v\xE5r {{link}}.",changeContactsButton:"Endre"},delivery:{title:"Levering",deliveryMethod:"Leveringsm\xE5te",homeDelivery:"Hjemlevering",pickup:"Hent hos forhandleren",changeDeliveryMethod:"Endre leveringsm\xE5te",heading:"Hvordan vil du ha bilen levert?",description:"Velg om du vil ha bilen levert hjem til deg eller om du vil hente den hos {{name}}.",free:"Gratis",toYourAddress:"Til din registrerte adresse",tooFarAway:"Dessverre kan vi ikke tilby hjemlevering til din adresse.",proceedButton:"G\xE5 videre"},creditAssessment:{loanApplication:"L\xE5nes\xF8knad",loanApplicationDescription:"For \xE5 besvare din foresp\xF8rsel om bill\xE5n trenger {{name}} noen flere opplysninger om deg og din husstand. Sp\xF8rsm\xE5lene tar bare noen minutter \xE5 besvare. Bekreft og signer deretter med BankID \u2013 deretter f\xE5r du ditt l\xE5nebeskjed direkte p\xE5 skjermen og kan g\xE5 videre med ditt bilkj\xF8p. Blir du godkjent s\xE5 gjelder l\xE5nebeskjeden gjennom hele kj\xF8pet s\xE5 lenge ingen tillegg gj\xF8res \u2013 men din s\xF8knad er ikke bindende.",maritalStatus:"Sivilstatus",employment:"Sysselsetting",children:"Barn",income:"Inntekt",housingType:"Boligtype",housingTypeDescription:"Oppgi type bolig.",housingCost:"Boligkostnad",debtsAndLiabilities:"Gjeld og forpliktelser",debtsAndLiabilitiesDescription:"Oppgi eventuelle gjeld og forpliktelser innenfor respektive kategori.",totalLoanAmount:"Totalt l\xE5nebel\xF8p",noPaymentInfo:"Du betaler ingenting i dette trinnet, dette er bare en l\xE5nes\xF8knad. Kj\xF8pet fullf\xF8res deretter ved m\xF8te med {{name}}.",caseError:"Det var ikke mulig \xE5 starte en l\xE5nes\xF8knad, pr\xF8v igjen. {{caseError}}",bankIdError:"En feil oppstod med BankID, pr\xF8v igjen.",performLoanApplication:"Gjennomf\xF8r l\xE5nes\xF8knad",disclaimer:'Ved \xE5 klikke p\xE5 "Gjennomf\xF8r l\xE5nes\xF8knad" godkjenner jeg at {{name}} gj\xF8r en kredittsjekk p\xE5 meg basert p\xE5 informasjonen ovenfor, og jeg bekrefter at jeg har lest {{link}}.',disclaimerSafe:"Dine opplysninger lagres og oppbevares sikkert.",whyAnswer:"Hvorfor m\xE5 jeg svare p\xE5 alt dette?",whyAnswerDescription:"{{name}} m\xE5 innhente opplysningene fra kunden for \xE5 oppfylle bestemmelser i Forbrukerkredittloven (2010:1846) og Lov (2017:630) om tiltak mot hvitvasking og finansiering av terrorisme.",waitingFor:"Venter p\xE5 {{name}}...",fetchingInfo:"Henter opplysninger fra {{name}}. Vent, det kan ta noen sekunder.",errorOccurred:"En feil oppstod",bankIdStatusError:"Det var ikke mulig \xE5 hente status for n\xE5v\xE6rende BankID-signering",descriptionQrCode:"For \xE5 hente dine opplysninger, start BankID-applikasjonen p\xE5 din andre enhet.",descriptionSameDevice:"For \xE5 hente dine opplysninger, start BankID-applikasjonen.",incomePerMonth:"Inntekt per m\xE5ned f\xF8r skatt",incomeError:"Oppgi din inntekt per \xE5r f\xF8r skatt",incomeDescription:"L\xF8nn og/eller pensjon, ikke bidrag eller studiel\xE5n.",childrenUnder18:"Antall barn under 18 \xE5r",childrenError:"Velg antall barn",selectChildren:"Velg antall barn",tenOrMore:"10 eller flere",myPartOfMonthlyFee:"Min del av m\xE5nedsavgiften",myPartOfMonthlyRent:"Min del av m\xE5nedshusleien",excludingInterest:"Eksklusive renter og avdrag",housingCostError:"Oppgi boligkostnader per m\xE5ned",cardCredits:"Kredittkort",cardCreditsError:"Oppgi kredittkort eller la st\xE5 tomt",totalDebt:"Total gjeld",vehicleLoan:"Bill\xE5n",vehicleLoanError:"Oppgi bill\xE5n eller la st\xE5 tomt",collateral:"Sikkerhet",collateralError:"Oppgi sikkerhet eller la st\xE5 tomt",totalAmount:"Totalt bel\xF8p.",leasingFees:"Bil leasing",leasingFeesError:"Oppgi bil leasingkostnader eller la st\xE5 tomt",privateLoan:"Privatl\xE5n (ikke boligl\xE5n og studiel\xE5n)",privateLoanError:"Oppgi privatl\xE5n eller la st\xE5 tomt",fullTimeEmployed:"Fast ansatt",temporarilyEmployed:"Midlertidig ansatt",selfEmployed:"Selvstendig n\xE6ringsdrivende",retired:"Pensjonist",student:"Student",other:"Annet",married:"Gift/partnerskap",commonLaw:"Samboer",single:"Enslig",singleFamily:"Enebolig",condominium:"Borettslag",apartment:"Leilighet",proceedButton:"G\xE5 videre",abortButton:"Avbryt",assessManually:"Kredittsjekken m\xE5 gj\xF8res manuelt. Vennligst kontakt {{name}} for \xE5 fortsette.",dataProtectionPolicy:"personvernpolicy",readMore:"Les mer om dette her"},financial:{title:"Finansiell informasjon",description:"Oppgi din finansielle informasjon for \xE5 fortsette.",income:"Inntekt",incomePlaceholder:"Oppgi din inntekt",incomeErrorMessage:"En gyldig inntekt m\xE5 oppgis",expenses:"Utgifter",expensesPlaceholder:"Oppgi dine utgifter",expensesErrorMessage:"Gyldige utgifter m\xE5 oppgis",assets:"Eiendeler",assetsPlaceholder:"Oppgi dine eiendeler",assetsErrorMessage:"Gyldige eiendeler m\xE5 oppgis",liabilities:"Gjeld",liabilitiesPlaceholder:"Oppgi din gjeld",liabilitiesErrorMessage:"Gyldig gjeld m\xE5 oppgis",proceedButton:"G\xE5 videre",abortButton:"Avbryt",heading:"Finansiering",howToFinance:"Hvordan vil du finansiere din {{vehicleTitle}} {{vehicleDescription}}?",buyCar:"Kj\xF8p bilen",buyCarDescription:"Du kj\xF8per bilen og eier den selv, enten ved \xE5 betale hele bilen med egne midler eller gjennom et bill\xE5n. Du er selv ansvarlig for salget av bilen og velger selvf\xF8lgelig helt fritt n\xE5r det skal finne sted.",leaseCar:"Leie bilen",leaseCarDescription:"N\xE5r du privatleier en bil eier du den ikke selv, men betaler en m\xE5nedsavgift i en avtalt periode som dekker en viss kj\xF8relengde og andre avtalte tjenester.",cash:"Kontant",cashDescription:"Betaling skjer hos {{contactName}} ved kontraktsignering. Ingen kostnader tilkommer.",loanApplicationOnline:"L\xE5nes\xF8knad online med BankID",loanApplicationResponse:" \u2013 svar direkte!",paymentAtContract:"Betaling skjer hos {{contactName}} ved kontraktsignering.",calculatedOn:"Beregnet p\xE5 {{creditAmount}} kr, {{duration}} mnd, {{interest}}% rente.",from:"Fra",proceed:"G\xE5 videre",privateLeasing:"Privatleasing",privateLeasingDescription:"N\xE5r du privatleier en bil eier du den ikke selv, men betaler en m\xE5nedsavgift i en avtalt periode som dekker en viss kj\xF8relengde og andre avtalte tjenester.",financialInformationToggle:"Finansiell informasjon",financialCashSelected:"Kontant betaling valgt",financialLeaseSelected:"Privatleasing valgt",financialLoanSelected:"Bill\xE5n valgt",financialCashSet:"Kontant betaling satt",financialLeaseSet:"Privatleasing satt",financialLoanSet:"Bill\xE5n satt",financialEdit:"Rediger finansiering"},loan:{title:"Bill\xE5n",description:"Finansier bilen med bill\xE5n via {{name}}.",creditScoringInfo:"Gj\xF8r din l\xE5nes\xF8knad her - og f\xE5 beskjed direkte. Husk, kj\xF8pet er ikke bindende f\xF8r du har signert det endelige forslaget som utarbeides av {{name}}.",instruction:"Oppgi din tenkte kontantinnsats og hvor mange m\xE5neder du vil legge opp l\xE5net p\xE5.",downPaymentTitle:"Kontantinnsats",downPaymentInfoTitle:"Hvor mye av dine egne penger vil du legge?",downPaymentInfoDescription:"Kontantinnsatsen er en del av bilens pris som du betaler med egne penger. Den m\xE5 v\xE6re minst 20% av prisen p\xE5 bilen. Kontantinnsatsen betaler du senere i forbindelse med kontraktsignering hos {{name}}. Hvis du har en innbyttebil kan du betale kontantinnsatsen med den. Dette avtaler du sammen med {{name}} ved kontraktsignering.",durationTitle:"Avbetaling",residualTitle:"Restverdi",errorOccurred:"En feil oppstod, pr\xF8v igjen.",proceedButton:"G\xE5 videre"},loanDetails:{disclaimerText:"*Beregnet p\xE5 {{interest}} % rente (effektiv {{effectiveInterest}} %). Den renten du f\xE5r settes ved kontraktsignering.",showDetails:"Vis detaljer",details:"Detaljer",repaymentPeriod:"Avbetalingsperiode",months:"mnd",interest:"Rente",effectiveInterest:"Effektiv rente",setupFee:"Etableringskostnad",administrationFee:"Administrasjonskostnader",totalCreditCost:"Total kredittkostnad",disclaimerText1:"*Dette er ikke det endelige tilbudet. Renten kan endres hvis det gj\xF8res justeringer i den opprinnelige nedbetalingsplanen, tillegg i utstyr eller andre endringer som p\xE5virker det opprinnelige prisforslaget.",disclaimerText2:"Hvis markedsrenten endres, kan m\xE5nedskostnaden endres tilsvarende. M\xE5nedskostnaden kan ogs\xE5 p\xE5virkes av den kredittvurderingen som gj\xF8res etter en kredittsjekk.",moreInfo:"Mer informasjon om {{loanOrgName}}"},loanDetailsDetailed:{showDetails:"Vis detaljer",details:"Detaljer",repaymentPeriod:"Avbetalingsperiode",months:"mnd",interest:"Rente",effectiveInterest:"Effektiv rente",setupFee:"Etableringskostnad",administrationFee:"Administrasjonskostnader",totalCreditCost:"Total kredittkostnad",disclaimerText1:"*Dette er ikke det endelige tilbudet. Renten kan endres hvis det gj\xF8res justeringer i den opprinnelige nedbetalingsplanen, tillegg i utstyr eller andre endringer som p\xE5virker det opprinnelige prisforslaget.",disclaimerText2:"Hvis markedsrenten endres, kan m\xE5nedskostnaden endres tilsvarende. M\xE5nedskostnaden kan ogs\xE5 p\xE5virkes av den kredittvurderingen som gj\xF8res etter en kredittsjekk.",moreInfo:"Mer informasjon om {{loanOrgName}}"},loanDetailsMonthlyCost:{monthlyCost:"M\xE5nedskostnad for l\xE5net",perMonth:"kr/mnd*"},stageCompletedFinancial:{downPayment:"Kontantinnsats",loanAmount:"L\xE5nebel\xF8p",repaymentPeriod:"Avbetalingsperiode",months:"mnd",monthlyCost:"M\xE5nedskostnad for l\xE5net",disclaimerText:"*Beregnet p\xE5 {{interest}} % rente (effektiv {{effectiveInterest}} %). Den renten du f\xE5r settes ved kontraktsignering.",orderAlmostReady:"Bestillingen er snart klar, her ser du ditt l\xE5nebeskjed:",changeFinancing:"Endre finansiering",financing:"Finansiering",cash:"Kontant",lease:"Privatleasing"},stageCompletedFinancialCreditAssessment:{approved:"Gratulerer! Din l\xE5nes\xF8knad er godkjent av {{loanName}}.",approvedDescription:"Fullf\xF8r bestillingen ved \xE5 klikke deg gjennom de neste trinnene. Har du sp\xF8rsm\xE5l underveis? Kontakt {{contactName}} p\xE5 tlf {{contactPhone}}.",assessManually:"N\xE5r bestillingen er fullf\xF8rt, vil vi g\xE5 gjennom saken din og gi deg tilbakemelding med et l\xE5nebeskjed.",assessManuallyDescription:"Bilen er fortsatt ikke reservert. G\xE5 videre til neste trinn for \xE5 fullf\xF8re bestillingen, men det er ikke sikkert at l\xE5net ditt vil bli godkjent. Har du sp\xF8rsm\xE5l underveis? Kontakt {{contactName}} p\xE5 tlf {{contactPhone}}.",declined:"Vi kan dessverre ikke godkjenne din s\xF8knad om bill\xE5n.",declinedDescription:"Det kan v\xE6re ulike grunner til at en s\xF8knad avsl\xE5s. Du vil snart motta et brev med bekreftelse og mer informasjon om din s\xF8knad.",declinedNextSteps:"Ditt allerede p\xE5begynte kj\xF8p kan fortsatt gjennomf\xF8res og fullf\xF8res, for \xE5 g\xE5 videre kan du velge en annen betalingsm\xE5te.",contactInfo:"Har du sp\xF8rsm\xE5l underveis? Kontakt {{contactName}} p\xE5 tlf {{contactPhone}}."},loanSummary:{title:"Bill\xE5n",description:"Bestillingen er snart klar, her ser du ditt l\xE5nebeskjed:",successMessage:"Gratulerer! Din l\xE5nes\xF8knad er godkjent av {{loanName}}.",notReserved:"Bilen er ikke reservert enn\xE5. Fullf\xF8r bestillingen ved \xE5 klikke deg gjennom de neste trinnene. Har du sp\xF8rsm\xE5l underveis? Kontakt [forhandleren] p\xE5 tlf [telefonnummer].",downPayment:"Kontantinnsats",loanAmount:"L\xE5nebel\xF8p",repaymentPeriod:"Avbetalingsperiode",monthlyCost:"M\xE5nedskostnad for l\xE5net",disclaimer:"*Beregnet p\xE5 X,XX % rente (effektiv X,XX %). Den renten du f\xE5r settes ved kontraktsignering."},summary:{financing:"Finansiering",cash:"Kontant",loan:"Bill\xE5n",leasing:"Privatleasing",changeButton:"Endre",centralStorageTitle:"Sentral lager",dealerSelection:"Valg av forhandler",customerTitle:"Kundeopplysninger",customerName:"For- og etternavn",customerSSN:"Personnummer",customerAddress:"Adresse",customerEmail:"E-post",customerPhone:"Telefonnummer",deliveryTitle:"Levering",deliveryMethod:"Leveringsm\xE5te",homeDelivery:"Hjemlevering",pickup:"Hent hos forhandleren",thankYou:"Takk for din bestilling!",whatHappensNext:"Dette skjer n\xE5:",orderConfirmation:"En bestillingsbekreftelse vil bli sendt til din e-postadresse {{email}}.*",contactFromDealer:"{{contactName}} tar kontakt med deg for \xE5 g\xE5 gjennom avtale, betaling og levering.",driveSafely:"Klart! Kj\xF8r forsiktig p\xE5 veiene.",orderConfirmationDisclaimer:"*Bestillingsbekreftelsen sendes normalt innen 10 minutter, men kan i unntakstilfeller ta opptil 48 timer.",orderNumber:"Bestillingsnummer {{createdOrderId}}",orderTitle:"Din bestilling",paymentMethod:"Betalingsm\xE5te",perMonth:"kr/mnd",lease:"Privatleasing",from:"Fra",accessories:"Tilbeh\xF8r",insurance:"Forsikring",free:"Gratis",tradeInTitle:"Innbyttebil",mileage:"Kj\xF8relengde",description:"Beskrivelse",condition:"Bilens tilstand",estimatedValue:"Omtrentlig verdi",no:"Nei"},insurance:{heading:"Vil du tegne en forsikring p\xE5 din nye bil?",description:"Nedenfor vises forslag p\xE5 forsikringer som passer deg og din nye bil.",proceedButton:"G\xE5 videre",backButton:"Tilbake",logoAlt:"Produsentens logo for {{title}}",ifDescription:"Oppgi din estimerte kj\xF8relengde for \xE5 se din forsikringskostnad. Deretter presenterer vi forslag p\xE5 forsikringer som passer deg og din nye bil. I b\xE5de hel- og halvforsikring inng\xE5r trafikkforsikring som er obligatorisk \xE5 ha. Hvis du har valgt \xE5 finansiere bilen med et bill\xE5n, er prisen du ser rabattert.",showInsurances:"Vis forsikringer",ifAlert:"Vi er tilknyttede forsikringsformidlere til {{insuranceDisclaimerTitle}}, If Skadeforsikring. Forsikringsgiver er If Skadeforsikring (publ). Hva dette inneb\xE6rer kan du lese mer om p\xE5 forsikringsformidlerens nettside.",ifDisclaimer:"Ved \xE5 klikke p\xE5 Vis forsikringer godkjenner du at vi sender dine opplysninger videre til {{insuranceDisclaimerTitle}} slik at de kan gi deg en pris p\xE5 forsikring. Hvordan de h\xE5ndterer dine personopplysninger kan du lese om p\xE5 deres nettside.",skipButton:"Hopp over dette trinnet",perMonth:"kr/mnd",addons:"Tillegg",includes:"Forsikringen inneholder",update:"Oppdater",select:"Velg",estimatedMileage:"Estimert kj\xF8relengde",edit:"Endre",fetchError:"Det var ikke mulig \xE5 hente forsikringer.",retry:"Pr\xF8v igjen",title:"Forsikring",none:"Ingen",changeButtonTitle:"Endre forsikring"},tradeIn:{title:"Innbyttebil",mileage:"Kj\xF8relengde",description:"Beskrivelse",condition:"Bilens tilstand",estimatedValue:"Omtrentlig verdi",infoText:"Vi sender med opplysninger om din innbyttebil til bilforhandleren.",infoDisclaimer:"V\xE6r oppmerksom p\xE5 at vurderingen som utf\xF8res gir en estimert innbytteverdi. Den endelige verdien avgj\xF8res n\xE5r forhandleren kan bekrefte bilens tilstand.",no:"Nei",changeButtonTitle:"Endre",heading:"Har du en innbyttebil?",tradeInDescription:"Har du en bil du vil bytte inn n\xE5r du kj\xF8per din nye bil? Her f\xE5r du en estimert innkj\xF8pspris av oss direkte online.",yesButton:"Jeg har innbyttebil",skipButton:"Hopp over dette trinnet",veryGoodCondition:"Meget god tilstand",goodCondition:"God tilstand",okCondition:"Helt ok tilstand",noScratches:"Ingen riper eller skader",serviced:"Servet ved hver anledning med stempler i serviceboken",goodTires:"Dekk med veldig god m\xF8nsterdybde (5-8 mm)",someScratches:"Noen mindre riper og/eller skader",okTires:"Dekk som ikke trenger \xE5 byttes (m\xF8nsterdybde p\xE5 3-5 mm)",manyScratches:"Det er en del riper og skader",notServiced:"Ikke servet ved hver anledning",badTires:"Dekk som m\xE5 byttes (m\xF8nsterdybde under 3 mm)",detailsHeading:"Opplysninger om din innbyttebil",detailsDescription:"Oppgi registreringsnummeret og aktuell kj\xF8relengde for din innbyttebil s\xE5 f\xE5r du en estimert innkj\xF8pspris av oss.",registrationNumber:"Registreringsnummer",registrationNumberError:"Et gyldig registreringsnummer i formatet AB12345 m\xE5 oppgis",registrationNumberPlaceholder:"Oppgi registreringsnummer",mileageError:"En kj\xF8relengde mellom 0 til 80 000 km m\xE5 oppgis",mileagePlaceholder:"Oppgi bilens kj\xF8relengde",descriptionOptional:"Beskrivelse (valgfritt)",descriptionError:"Beskrivelsen er ikke gyldig",descriptionPlaceholder:"Beskriv bilen",fetchValue:"Hent estimert verdi",proceedButton:"Bruk og g\xE5 videre",fetchError:"Vi fikk dessverre ingen treff p\xE5 registreringsnummeret du oppga. Vennligst kontroller at registreringsnummeret stemmer."},vehicleInfo:"Kj\xF8ret\xF8yinformasjon",orderCallback:{thankYou:"Takk for ditt kj\xF8p",orderId:"Ordre id",waykeId:"Drive id"},howTo:{heading:"Slik kj\xF8per du bilen online",description:"Hos oss kan du trygt kj\xF8pe din neste bil online. Reserver bilen ved \xE5 klikke deg gjennom v\xE5r kj\xF8psflyt med f\xF8lgende trinn:",timelineAriaLabel:"Fremgangsm\xE5te",customerHeading:"Dine kundeopplysninger",centralStorageHeading:"Velg anlegg",centralStorageDescription:"Velg hvilket anlegg du vil kj\xF8pe bilen fra.",deliveryHeading:"Velg leveringsm\xE5te",tradeInHeading:"Har du innbyttebil?",tradeInDescription:"F\xE5 den vurdert direkte online.",financialHeading:"Finansiering",insuranceHeading:"Vil du tegne en forsikring?",insuranceDescription:"Se forslag p\xE5 forsikringer som passer din nye bil.",accessoriesHeading:"Tilbeh\xF8r",accessoriesDescription:"Bestill ekstra utstyr til bilen din.",financialDescriptionAll:"Denne bilen kan du kj\xF8pe kontant, privatleie eller finansiere med et bill\xE5n.",financialDescriptionCashLease:"Denne bilen kan du kj\xF8pe kontant eller privatleie.",financialDescriptionCashLoan:"Denne bilen kan du kj\xF8pe kontant eller finansiere med et bill\xE5n",financialDescriptionLoanLease:"Denne bilen kan du privatleie eller finansiere med et bill\xE5n",financialDescriptionCash:"Denne bilen kan du kj\xF8pe kontant.",financialDescriptionLoan:"Denne bilen kan du finansiere med et bill\xE5n",financialDescriptionLease:"Denne bilen kan du privatleie.",deliveryDescriptionBoth:"Hjemlevering eller hent hos forhandleren.",deliveryDescriptionPickup:"Hent hos forhandleren.",deliveryDescriptionHome:"Hjemlevering.",paymentHeading:"Gjennomf\xF8r forskuddsbetaling!",paymentDescription:"Gjennomf\xF8r forskuddsbetaling p\xE5 5% av bilens verdi. (Gjennomf\xF8r betaling av depositum tilsvarende 5% av bilens verdi.)",finalHeading:"Klart!",finalDescription:"Etter at bestillingen er gjennomf\xF8rt tar {{contactName}} kontakt med deg for \xE5 avtale detaljer rundt betaling og signere avtalen."},preview:{heading:"S\xE5 g\xF8y at du vil kj\xF8pe denne bilen!",proceedButton:"G\xE5 videre",checklistTitle:"Kj\xF8p online hos Drive",checklistAriaLabel:"Fordeler med \xE5 kj\xF8pe bilen online hos Drive",checklistItem1:"Trygg h\xE5ndtering av personopplysninger",checklistItem2:"Reserver bilen n\xE5 - betaling og avtalesignering skjer senere med forhandleren",checklistItem3:"Ikke bindende f\xF8r avtale er signert med forhandleren",checklistItem4:"Kun kontrollerte biler",error:"En feil oppstod og det var ikke mulig \xE5 initiere modulen. Pr\xF8v igjen.",reserved:"Bilen er dessverre reservert av en annen kj\xF8per og kan derfor ikke reserveres akkurat n\xE5.",unavailable:"Bilen er dessverre ikke lenger tilgjengelig og kan derfor ikke reserveres."}},mk=pk,fk={glossary:{change:"\xC4ndra",showPrevious:"Visa f\xF6reg\xE5ende",showNext:"Visa n\xE4sta",showPreviousImage:"Visa f\xF6reg\xE5ende bild",showNextImage:"Visa n\xE4sta bild",readMore:"L\xE4s mer",closeModal:"St\xE4ng modalen",homeUrl:"https://www.wayke.se",goToHome:"G\xE5 till wayke.se",company:"Wayke",modalTitle:"Wayke Ecom",add:"L\xE4gg till",chosen:"Vald",ourAdvantages:"F\xF6rdelar med att k\xF6pa bilen online hos oss",showHelp:"St\xE4ng hj\xE4lp",closeHelp:"St\xE4ng hj\xE4lp",whatDoesThisMean:"Vad betyder detta?",buyOnline:"K\xF6p online hos oss"},confirmClose:{heading:"Bilen \xE4r inte reserverad \xE4nnu",message:"Du har inte klickat dig igenom alla steg som kr\xE4vs f\xF6r att ordern ska slutf\xF6ras och bilen ska reserveras till dig. \xC4r du s\xE4ker p\xE5 att du vill avsluta din order?",abortButton:"Forts\xE4tt min order",confirmButton:"Avbryt min order"},accessoryItemInfo:{backButton:"Tillbaka",logoAlt:"Tillverkarens logotyp f\xF6r"},accessories:{title:"Tillbeh\xF6r",noSelected:"Inga valda",changeButtonTitle:"\xC4ndra tillbeh\xF6r",heading:"Vill du k\xF6pa till ett tillbeh\xF6r till din nya bil?",description:"H\xE4r visar vi n\xE5gra av de tillbeh\xF6r som passar din nya bil.",proceedButton:"G\xE5 vidare",skipButton:"Hoppa \xF6ver detta steg"},centralStorage:{title:"Centrallager",heading:"Vilken anl\xE4ggning vill du k\xF6pa ifr\xE5n?",description:"Detta fordon \xE4r en centrallagerbil och finns tillg\xE4ngligt fr\xE5n flera anl\xE4ggningar. V\xE4lj den anl\xE4ggning du vill handla ifr\xE5n.",changeButtonTitle:"\xC4ndra",proceedButton:"G\xE5 vidare",errorMessage:"Ett fel uppstod och det gick inte att v\xE4lja ovanst\xE5ende anl\xE4ggning. F\xF6rs\xF6k igen.",dealerSelection:"Val av anl\xE4ggning",addressMissing:"Adress saknas"},confirmation:{title:"Slutf\xF6r ordern",paymentTitle:"Betalning",heading:"Strax klart!",description:"F\xF6r att reservera bilen \xE5t dig beh\xF6ver vi bara verifiera din identitet med BankID. Efter det kommer {{name}} att kontakta dig f\xF6r att slutf\xF6ra k\xF6pet.",description2:"K\xF6pet blir bindande f\xF6rst n\xE4r du signerat det definitiva aff\xE4rsf\xF6rslaget med {{name}}. Det \xE4r \xE4ven d\xE5 betalningen sker.",ageError:"Du m\xE5ste vara \xF6ver 18 \xE5r f\xF6r att kunna forts\xE4tta. Identifiering med BankId visar att du \xE4r under 18 \xE5r gammal.",requestError:"Ett fel uppstod och det gick inte att skapa ordern, f\xF6rs\xF6k igen.",notAvailable:"Den h\xE4r bilen finns tyv\xE4rr inte l\xE4ngre tillg\xE4nglig.",socialIdNotMatchingError:"Personnummret i f\xF6rsta steget matchar inte med det som \xE4r kopplat mot bankid",confirmConditionsTitle:"Jag godk\xE4nner {{link}}.",insuranceText:"samt har tagit del av information kring f\xF6rs\xE4kringsf\xF6rmedling",reserveButton:"Reservera bilen",policyText:"Dina personuppgifter behandlas och sparas i enlighet med v\xE5r {{link}}.",reservationDisclaimer:"Vi reserverar oss f\xF6r eventuell \xE4ndring i tillg\xE5ngen av utbjudna bilar.",bankIdDescriptionQrCode:"F\xF6r att verifiera din identitet, starta din BankID applikation p\xE5 din andra enhet.",bankIdDescriptionSameDevice:"F\xF6r att verifiera din identitet, starta din BankID-applikation.",bankIdErrorMessage:"Det gick inte att h\xE4mta status kring nuvanrade BankId signering.",bankIdQrCodeErrorMessage:"Det gick inte att h\xE4mta ny QR-kod f\xF6r BankId signering.",bankIdInitErrorMessage:"Det gick tyv\xE4rr inte att initiera BankId. V\xE4nligen f\xF6rs\xF6k igen.",bankIdCompletedMessage:"Verifiering klar, ordern skapas nu...",paymentHeading:"V\xE4lj betals\xE4tt",paymentDescription:"Genomf\xF6r en f\xF6rskottsbetalning p\xE5 5% av bilens pris (10 995 kr) f\xF6r att reservera bilen. V\xE4lj hur du vill genomf\xF6ra betalningen.",paymentDescription2:"Resterande del av kontantinsatsen 32 985 kr med eventuellt avdrag av v\xE4rde f\xF6r inbytesbil betalas hos {{name}} vid kontraktskrivning.",paymentCardType:"Korttyp",paymentCardTypeValue:"Credit",paymentCardNo3DSecure:"Kort utan 3d secure",paymentCardNo3DSecureValue:"4925000000000004",paymentCard3DSecure:"Kort med 3d secure",paymentCard3DSecureValue:"4761739001010416",paymentExpiry:"MM/\xC5\xC5:",paymentExpiryValue:"12/25",paymentCVC:"CVC:",paymentCVCValue:"123",privacyPolicy:"personuppgiftspolicy",purchaseTermsAndCancellationPolicy:"k\xF6pvillkor och villkor f\xF6r \xE5ngerr\xE4tt",noVerifyConfirmMessage:"Ex exercitation excepteur commodo est reprehenderit ad pariatur cillum quis esse aute."},customer:{title:"Dina uppgifter",changeButtonTitle:"\xC4ndra dina uppgifter",email:"E-post",phone:"Telefonnummer",socialId:"Personnummer",name:"Namn",givenName:"F\xF6rnamn",surname:"Efternamn",address:"Adress",street:"Gatuadress",street2:"L\xE4genhet, v\xE5ning, etc.",registeredAddress:"Folkbokf\xF6ringsadress",postalCode:"Postnummer",city:"Stad",contactInfoTitle:"Kontaktuppgifter",contactInfoDescription:"Ange din e-postadress och ditt telefonnummer.",emailPlaceholder:"Ange din e-postadress",emailErrorMessage:"En giltig e-postadress m\xE5ste anges",phonePlaceholder:"Ange ditt telefonnummer",phoneErrorMessage:"Ange ditt telefonnummer",givenNamePlaceholder:"Ange ditt f\xF6rnamn",givenNameErrorMessage:"Ange ditt f\xF6rnamn",surnamePlaceholder:"Ange ditt efternamn",surnameErrorMessage:"Ange ditt efternamn",streetPlaceholder:"Ange din gatuadress",streetErrorMessage:"Ange din gatuadress",street2Placeholder:"L\xE4genhet, v\xE5ning, etc.",street2ErrorMessage:"L\xE4genhet, v\xE5ning, etc.",postalCodePlaceholder:"Ange ditt postnummer",postalCodeErrorMessage:"Ange ditt postnummer",cityPlaceholder:"Ange din stad",cityErrorMessage:"Ange din stad",proceedButton:"G\xE5 vidare",personalInfoTitle:"Personuppgifter",personalInfoDescription:"Ange ditt personnummer f\xF6r att h\xE4mta ditt namn och din adress.",socialIdPlaceholder:"\xC5\xC5\xC5\xC5MMDD-XXXX",socialIdErrorMessage:"Ange personnummer i formatet \xC5\xC5\xC5\xC5MMDD-XXXX. M\xE5ste vara \xF6ver 18 \xE5r.",fetchButton:"H\xE4mta uppgifter",fetchErrorMessage:"Tyv\xE4rr fick vi ingen tr\xE4ff p\xE5 personnumret du angav.",fetchInfoMessage:"Vi kommer h\xE4mta f\xF6ljande uppgifter om dig:",policyText:"Dina personuppgifter behandlas och sparas i enlighet med v\xE5r {{link}}.",changeContactsButton:"\xC4ndra"},delivery:{title:"Leverans",deliveryMethod:"Leveranss\xE4tt",homeDelivery:"Hemleverans",pickup:"H\xE4mta hos handlaren",changeDeliveryMethod:"\xC4ndra leveranss\xE4tt",heading:"Hur vill du ha din bil levererad?",description:"V\xE4lj ifall du vill ha bilen levererad hem till dig eller ifall du vill h\xE4mta den hos {{name}}.",free:"Gratis",toYourAddress:"Till din folkbokf\xF6ringsadress",tooFarAway:"Tyv\xE4rr kan vi inte erbjuda hemleverans till din adress.",proceedButton:"G\xE5 vidare"},creditAssessment:{loanApplication:"L\xE5neans\xF6kan",loanApplicationDescription:"F\xF6r att besvara din f\xF6rfr\xE5gan om bill\xE5n beh\xF6ver {{name}} n\xE5gra fler uppgifter om dig och ditt hush\xE5ll. Fr\xE5gorna tar bara n\xE5gon minut att besvara. Bekr\xE4fta och signera sedan med BankID \u2013 d\xE4refter f\xE5r du ditt l\xE5nebesked direkt p\xE5 sk\xE4rmen och kan g\xE5 vidare med ditt bilk\xF6p. Blir du godk\xE4nd s\xE5 g\xE4ller l\xE5nebeskedet genom hela k\xF6pet s\xE5 l\xE4nge inga till\xE4gg g\xF6rs \u2013 men din ans\xF6kan \xE4r inte bindande.",maritalStatus:"Civilstatus",employment:"Syssels\xE4ttning",children:"Barn",income:"Inkomst",housingType:"Boendeform",housingTypeDescription:"Ange typ av boende.",housingCost:"Boendekostnad",debtsAndLiabilities:"Skulder och Ansvarsf\xF6rbindelser",debtsAndLiabilitiesDescription:"Ange eventuella skulder och ansvarsf\xF6rbindelser inom respektive kategori.",totalLoanAmount:"Totalt l\xE5nebelopp",noPaymentInfo:"Du betalar inget i detta steg, detta \xE4r bara en l\xE5neans\xF6kan. K\xF6pet slutf\xF6rs sedan vid m\xF6te med {{name}}.",caseError:"Det gick inte att starta en l\xE5neans\xF6kan, f\xF6rs\xF6k igen. {{caseError}}",bankIdError:"Ett fel uppstod med BankId, f\xF6rs\xF6k igen.",performLoanApplication:"Genomf\xF6r l\xE5neans\xF6kan",disclaimer:"Genom att klicka p\xE5 \u201DGenomf\xF6r l\xE5neans\xF6kan\u201D godk\xE4nner jag att {{name}} g\xF6r en kreditupplysning p\xE5 mig baserat p\xE5 informationen ovan och jag bekr\xE4ftar att jag l\xE4st {{link}}.",disclaimerSafe:"Dina uppgifter lagras och sparas s\xE4kert.",whyAnswer:"Varf\xF6r m\xE5ste jag svara p\xE5 allt detta?",whyAnswerDescription:"{{name}} m\xE5ste ta in uppgifterna av kunden f\xF6r att uppfylla best\xE4mmelser i Konsumentkreditlagen (2010:1846) och Lag (2017:630) om \xE5tg\xE4rder mot penningtv\xE4tt och finansiering av terrorism. {{link}}",waitingFor:"V\xE4ntar p\xE5 {{name}}...",fetchingInfo:"H\xE4mtar uppgifter fr\xE5n {{name}}. V\xE4nta kvar det kan ta n\xE5gra sekunder.",errorOccurred:"Ett fel uppstod",bankIdStatusError:"Det gick inte att h\xE4mta status kring nuvanrade BankId signering",descriptionQrCode:"F\xF6r att h\xE4mta dina uppgifter, starta din BankID applikation p\xE5 din andra enhet.",descriptionSameDevice:"F\xF6r att h\xE4mta dina uppgifter, starta din BankID-applikation.",incomePerMonth:"Inkomst per m\xE5nad f\xF6re skatt",incomeError:"Ange din inkomst per \xE5r f\xF6re skatt",incomeDescription:"L\xF6n och/eller pension, inte bidrag eller studiel\xE5n.",childrenUnder18:"Antal barn under 18 \xE5r",childrenError:"V\xE4lj antal barn",selectChildren:"V\xE4lj antal barn",tenOrMore:"10 eller fler",myPartOfMonthlyFee:"Min del av m\xE5nadsavgiften",myPartOfMonthlyRent:"Min del av m\xE5nadshyran",excludingInterest:"Exklusive r\xE4nta och amortering",housingCostError:"Ange boendekostnader per m\xE5nad",cardCredits:"Kortkrediter",cardCreditsError:"Ange kortkrediter eller l\xE4mna tomt",totalDebt:"Total skuld",vehicleLoan:"Bill\xE5n",vehicleLoanError:"Ange bill\xE5n eller l\xE4mna tomt",collateral:"Borgens\xE5tagande",collateralError:"Ange borgens\xE5tagande eller l\xE4mna tomt",totalAmount:"Totalt belopp.",leasingFees:"Billeasing",leasingFeesError:"Ang billeasingkostnader eller l\xE4mna tomt",privateLoan:"Privatl\xE5n (ej bol\xE5n och CSN)",privateLoanError:"Ange privatl\xE5n eller l\xE4mna tomt",fullTimeEmployed:"Fast eller tillsvidareanst\xE4lld",temporarilyEmployed:"Visstidsanst\xE4lld",selfEmployed:"Egen f\xF6retagare",retired:"Pension\xE4r",student:"Student",other:"Annan",married:"Gift/partnerskap",commonLaw:"Sambo",single:"Ensamst\xE5ende",singleFamily:"Villa",condominium:"Bostadsr\xE4tt",apartment:"Hyresr\xE4tt",proceedButton:"G\xE5 vidare",abortButton:"Avbryt",assessManually:"Kreditupplysningen m\xE5ste g\xF6ras manuellt. V\xE4nligen kontakta {{name}} f\xF6r att forts\xE4tta.",dataProtectionPolicy:"dataskyddspolicy",readMore:"L\xE4s mer om detta h\xE4r"},financial:{title:"Finansiell information",description:"Ange din finansiella information f\xF6r att forts\xE4tta.",income:"Inkomst",incomePlaceholder:"Ange din inkomst",incomeErrorMessage:"En giltig inkomst m\xE5ste anges",expenses:"Utgifter",expensesPlaceholder:"Ange dina utgifter",expensesErrorMessage:"Giltiga utgifter m\xE5ste anges",assets:"Tillg\xE5ngar",assetsPlaceholder:"Ange dina tillg\xE5ngar",assetsErrorMessage:"Giltiga tillg\xE5ngar m\xE5ste anges",liabilities:"Skulder",liabilitiesPlaceholder:"Ange dina skulder",liabilitiesErrorMessage:"Giltiga skulder m\xE5ste anges",proceedButton:"G\xE5 vidare",abortButton:"Avbryt",heading:"\xC4gandeform",howToFinance:"Hur vill du finansiera din {{vehicleTitle}} {{vehicleDescription}}?",buyCar:"K\xF6p bilen",buyCarDescription:"Du k\xF6per bilen och \xE4ger den sj\xE4lv, antingen genom att betala hela bilen med egna medel eller genom ett bill\xE5n. Du ansvarar sj\xE4lv f\xF6r f\xF6rs\xE4ljningen av bilen och v\xE4ljer s\xE5klart helt fritt n\xE4r den ska \xE4ga rum.",leaseCar:"Leasa bilen",leaseCarDescription:"N\xE4r du privatleasar en bil \xE4ger du den inte sj\xE4lv utan betalar en m\xE5nadsavgift under en avtalad tid och som t\xE4cker en viss k\xF6rstr\xE4cka och andra avtalade tj\xE4nster.",cash:"Kontant",cashDescription:"Betalning sker hos {{contactName}} vid kontraktskrivning. Inga kostnader tillkommer.",loanApplicationOnline:"L\xE5neans\xF6kan online med BankID",loanApplicationResponse:" \u2013 svar direkt!",paymentAtContract:"Betalning sker hos {{contactName}} vid kontraktskrivning.",calculatedOn:"Ber\xE4knat p\xE5 {{creditAmount}} kr, {{duration}} m\xE5n, {{interest}}% r\xE4nta.",from:"Fr\xE5n",proceed:"G\xE5 vidare",privateLeasing:"Privatleasing",privateLeasingDescription:"N\xE4r du privatleasar en bil \xE4ger du den inte sj\xE4lv utan betalar en m\xE5nadsavgift under en avtalad tid och som t\xE4cker en viss k\xF6rstr\xE4cka och andra avtalade tj\xE4nster.",financialInformationToggle:"Finansiell information",financialCashSelected:"Kontant betalning vald",financialLeaseSelected:"Privatleasing vald",financialLoanSelected:"Bill\xE5n valt",financialCashSet:"Kontant betalning satt",financialLeaseSet:"Privatleasing satt",financialLoanSet:"Bill\xE5n satt",financialEdit:"Redigera finansiering"},loan:{title:"Bill\xE5n",description:"Finansiera bilen med bill\xE5n via {{name}}.",creditScoringInfo:"G\xF6r din l\xE5neans\xF6kan h\xE4r - och f\xE5 besked direkt. Kom ih\xE5g, k\xF6pet \xE4r inte bindande f\xF6rr\xE4n du signerat det definitiva aff\xE4rsf\xF6rslaget som tas fram av {{name}}.",instruction:"Ange din t\xE4nkta kontantinsats och hur m\xE5nga m\xE5nader du vill l\xE4gga upp ditt l\xE5n p\xE5.",downPaymentTitle:"Kontantinsats",downPaymentInfoTitle:"Hur mycket av dina egna pengar vill du l\xE4gga?",downPaymentInfoDescription:"Kontantinsatsen \xE4r en del av bilens pris som du betalar med egna pengar. Den beh\xF6ver vara minst 20% av priset p\xE5 bilen. Kontantinsatsen betalar du senare i samband med avtalsskrivning hos {{name}}. Ifall du har en inbytesbil kan du betala kontantinsatsen med den. Detta kommer du \xF6verens om tillsammans med {{name}} vid avtalsskrivning.",durationTitle:"Avbetalning",residualTitle:"Restv\xE4rde",errorOccurred:"Ett fel uppstod, f\xF6rs\xF6k igen.",proceedButton:"G\xE5 vidare"},loanDetails:{disclaimerText:"*Ber\xE4knat p\xE5 {{interest}} % r\xE4nta (effektivt {{effectiveInterest}} %). Den r\xE4nta du f\xE5r s\xE4tts vid avtalskrivning.",showDetails:"Visa detaljer",details:"Detaljer",repaymentPeriod:"Avbetalningsperoid",months:"m\xE5n",interest:"R\xE4nta",effectiveInterest:"Effektiv r\xE4nta",setupFee:"Uppl\xE4ggningskostnad",administrationFee:"Administrativa kostnader",totalCreditCost:"Total kreditkostnad",disclaimerText1:"*Det h\xE4r \xE4r inte den slutgiltiga offerten. R\xE4ntan kan komma att \xE4ndras ifall det sker justeringar i initial amorteringsplan, till\xE4gg i utrustning eller andra \xE4ndringar som p\xE5verkar det initiala prisf\xF6rslaget.",disclaimerText2:"Om marknadsr\xE4ntan f\xF6r\xE4ndras kan m\xE5nadskostnaden komma att \xE4ndras i motsvarande m\xE5n. M\xE5nadskostnaden kan ocks\xE5 komma att p\xE5verkas utifr\xE5n den kreditriskbed\xF6mning som g\xF6rs efter en kreditupplysning.",moreInfo:"Mer information om {{loanOrgName}}"},loanDetailsDetailed:{showDetails:"Visa detaljer",details:"Detaljer",repaymentPeriod:"Avbetalningsperoid",months:"m\xE5n",interest:"R\xE4nta",effectiveInterest:"Effektiv r\xE4nta",setupFee:"Uppl\xE4ggningskostnad",administrationFee:"Administrativa kostnader",totalCreditCost:"Total kreditkostnad",disclaimerText1:"*Det h\xE4r \xE4r inte den slutgiltiga offerten. R\xE4ntan kan komma att \xE4ndras ifall det sker justeringar i initial amorteringsplan, till\xE4gg i utrustning eller andra \xE4ndringar som p\xE5verkar det initiala prisf\xF6rslaget.",disclaimerText2:"Om marknadsr\xE4ntan f\xF6r\xE4ndras kan m\xE5nadskostnaden komma att \xE4ndras i motsvarande m\xE5n. M\xE5nadskostnaden kan ocks\xE5 komma att p\xE5verkas utifr\xE5n den kreditriskbed\xF6mning som g\xF6rs efter en kreditupplysning.",moreInfo:"Mer information om {{loanOrgName}}"},loanDetailsMonthlyCost:{monthlyCost:"M\xE5nadskostnad f\xF6r l\xE5net",perMonth:"kr/m\xE5n*"},stageCompletedFinancial:{downPayment:"Kontantinsats",loanAmount:"L\xE5nebelopp",repaymentPeriod:"Avbetalningsperoid",months:"m\xE5n",monthlyCost:"M\xE5nadskostnad f\xF6r l\xE5net",disclaimerText:"*Ber\xE4knat p\xE5 {{interest}} % r\xE4nta (effektivt {{effectiveInterest}} %). Den r\xE4nta du f\xE5r s\xE4tts vid avtalskrivning.",orderAlmostReady:"Ordern \xE4r snart klar, h\xE4r ser du ditt l\xE5nebesked:",changeFinancing:"\xC4ndra finansiering",financing:"Finansiering",cash:"Kontant",lease:"Privatleasing"},stageCompletedFinancialCreditAssessment:{approved:"Grattis! Din l\xE5neans\xF6kan har beviljats av {loanName}.",approvedDescription:"Slutf\xF6r ordern genom att klicka dig igenom n\xE4stkommande steg. Har du fr\xE5gor under tiden? Kontakta {{contactName}} p\xE5 tel {{contactPhone}}.",assessManually:"N\xE4r ordern \xE4r slutf\xF6rd kommer vi att g\xE5 igenom ditt \xE4rende och \xE5terkoppla till dig med ett l\xE5nebesked.",assessManuallyDescription:"Din bil \xE4r fortfarande inte reserverad. G\xE5 vidare till n\xE4sta steg f\xF6r att slutf\xF6ra ordern, men det \xE4r inte s\xE4kert att ditt l\xE5n kommer att beviljas. Har du fr\xE5gor under tiden? Kontakta {{contactName}} p\xE5 tel {{contactPhone}}.",declined:"Vi kan tyv\xE4rr inte bevilja din ans\xF6kan om bill\xE5n.",declinedDescription:"Det kan finnas olika sk\xE4l till att en ans\xF6kan nekas. Du kommer inom kort f\xE5 ett brev med bekr\xE4ftelse och mer information om just din ans\xF6kan.",declinedNextSteps:"Ditt redan p\xE5b\xF6rjade k\xF6p kan fortfarande genomf\xF6ras och avslutas, f\xF6r att g\xE5 vidare kan du v\xE4lja ett annat betals\xE4tt.",contactInfo:"Har du fr\xE5gor under tiden? Kontakta {{contactName}} p\xE5 tel {{contactPhone}}."},loanSummary:{title:"Bill\xE5n",description:"Ordern \xE4r snart klar, h\xE4r ser du ditt l\xE5nebesked:",successMessage:"Grattis! Din l\xE5neans\xF6kan har beviljats av {{loanName}}.",notReserved:"Bilen \xE4r inte reserverad \xE4nnu. Slutf\xF6r ordern genom att klicka dig igenom n\xE4stkommande steg. Har du fr\xE5gor under tiden? Kontakta [handlaren] p\xE5 tel [telefonnummer].",downPayment:"Kontantinsats",loanAmount:"L\xE5nebelopp",repaymentPeriod:"Avbetalningsperoid",monthlyCost:"M\xE5nadskostnad f\xF6r l\xE5net",disclaimer:"*Ber\xE4knat p\xE5 X,XX % r\xE4nta (effektivt X,XX %). Den r\xE4nta du f\xE5r s\xE4tts vid avtalskrivning."},summary:{financing:"Finansiering",cash:"Kontant",loan:"Bill\xE5n",leasing:"Privatleasing",changeButton:"\xC4ndra",centralStorageTitle:"Centrallager",dealerSelection:"Val av handlare",customerTitle:"Kunduppgifter",customerName:"F\xF6r- och efternamn",customerSSN:"Personnummer",customerAddress:"Adress",customerEmail:"E-post",customerPhone:"Telefonnummer",deliveryTitle:"Leverans",deliveryMethod:"Leveranss\xE4tt",homeDelivery:"Hemleverans",pickup:"H\xE4mta hos handlaren",thankYou:"Tack f\xF6r din order!",whatHappensNext:"Det h\xE4r h\xE4nder nu:",orderConfirmation:"En orderbekr\xE4ftelse kommer att skickas till din e-postadress {{email}}.*",contactFromDealer:"{{contactName}} tar kontakt med dig f\xF6r att g\xE5 igenom avtal, betalning och leverans.",driveSafely:"Klart! K\xF6r f\xF6rsiktigt ute p\xE5 v\xE4garna.",orderConfirmationDisclaimer:"*Orderbekr\xE4ftelsen skickas normalt inom 10 minuter, men kan i undantagsfall dr\xF6ja upp till 48 timmar.",orderNumber:"Ordernummer {{createdOrderId}}",orderTitle:"Din order",paymentMethod:"Betals\xE4tt",perMonth:"kr/m\xE5n",lease:"Privatleasing",from:"Fr\xE5n",accessories:"Tillbeh\xF6r",insurance:"F\xF6rs\xE4kring",free:"Gratis",tradeInTitle:"Inbytesbil",mileage:"Miltal",description:"Beskrivning",condition:"Bilens skick",estimatedValue:"Ungef\xE4rligt v\xE4rde",no:"Nej"},insurance:{heading:"Vill du teckna en f\xF6rs\xE4kring p\xE5 din nya bil?",description:"Nedan visas f\xF6rslag p\xE5 f\xF6rs\xE4kringar som passar dig och din nya bil.",proceedButton:"G\xE5 vidare",backButton:"Tillbaka",logoAlt:"Tillverkarens logotyp f\xF6r {{title}}",ifDescription:"Ange din uppskattade k\xF6rstr\xE4cka f\xF6r att se din f\xF6rs\xE4kringskostnad. D\xE4refter presenterar vi f\xF6rslag p\xE5 f\xF6rs\xE4kringar som passar dig och din nya bil. I b\xE5de hel- och halvf\xF6rs\xE4kring ing\xE5r trafikf\xF6rs\xE4kring som \xE4r obligatoriskt att ha. Ifall du har valt att finansiera bilen med ett bill\xE5n \xE4r priset du ser rabatterat.",showInsurances:"Visa f\xF6rs\xE4kringar",ifAlert:"Vi \xE4r anknutna f\xF6rs\xE4kringsf\xF6rmedlare till {{insuranceDisclaimerTitle}}, If Skadef\xF6rs\xE4kring. F\xF6rs\xE4kringsgivare \xE4r If Skadef\xF6rs\xE4kring (publ). Vad detta inneb\xE4r kan du l\xE4sa mer om p\xE5 f\xF6rs\xE4kringsf\xF6rmedlarens hemsida.",ifDisclaimer:"Genom att du klickar p\xE5 Visa f\xF6rs\xE4kringar s\xE5 godk\xE4nner du att vi skickar dina uppgifter vidare till {{insuranceDisclaimerTitle}} f\xF6r att de ska kunna ge dig ett pris p\xE5 f\xF6rs\xE4kring. Hur de hanterar dina personuppgifter kan du l\xE4sa om p\xE5 deras hemsida.",skipButton:"Hoppa \xF6ver detta steg",perMonth:"kr/m\xE5n",addons:"Tillval",includes:"F\xF6rs\xE4kringen inneh\xE5ller",update:"Uppdatera",select:"V\xE4lj",estimatedMileage:"Uppskattad k\xF6rstr\xE4cka",edit:"\xC4ndra",fetchError:"Det gick inte att h\xE4mta f\xF6rs\xE4kringar.",retry:"F\xF6rs\xF6k igen",title:"F\xF6rs\xE4kring",none:"Ingen",changeButtonTitle:"\xC4ndra f\xF6rs\xE4kring"},tradeIn:{title:"Inbytesbil",mileage:"Miltal",description:"Beskrivning",condition:"Bilens skick",estimatedValue:"Ungef\xE4rligt v\xE4rde",infoText:"Vi skickar med uppgifter om din inbytesbil till bilhandlaren.",infoDisclaimer:"Observera att v\xE4rderingen som utf\xF6rs ger ett uppskattat inbytesv\xE4rde. Det slutgiltliga v\xE4rdet avg\xF6rs n\xE4r handlare kan bekr\xE4fta bilens skick.",no:"Nej",changeButtonTitle:"\xC4ndra",heading:"Har du en inbytesbil?",tradeInDescription:"Har du en bil du vill byta in n\xE4r du k\xF6per din nya bil? H\xE4r f\xE5r du ett uppskattat ink\xF6pspris av oss direkt online.",yesButton:"Jag har inbytesbil",skipButton:"Hoppa \xF6ver detta steg",veryGoodCondition:"Mycket bra skick",goodCondition:"Bra skick",okCondition:"Helt okej skick",noScratches:"Inga repor eller skador",serviced:"Servad vid varje tillf\xE4lle med st\xE4mplar i serviceboken",goodTires:"D\xE4ck med v\xE4ldigt bra m\xF6nsterdjup (5-8 mm)",someScratches:"N\xE5gra mindre repor och/eller skador",okTires:"D\xE4ck som inte beh\xF6ver bytas (m\xF6nsterdjup om 3-5 mm)",manyScratches:"Finns en del repor och skador",notServiced:"Inte servad vid varje tillf\xE4lle",badTires:"D\xE4ck som beh\xF6ver bytas (m\xF6nsterdjup under 3 mm)",detailsHeading:"Uppgifter om din inbytesbil",detailsDescription:"Ange registreringsnumret och aktuellt miltal f\xF6r din inbytesbil s\xE5 f\xE5r du ett uppskattat ink\xF6pspris av oss.",registrationNumber:"Registreringsnummer",registrationNumberError:"Ett giltig registreringsnummer i formatet ABC123 eller ABC12A m\xE5ste anges",registrationNumberPlaceholder:"Ange registreringsnummer",mileageError:"Ett miltal mellan 0 till 80 000 mil m\xE5ste anges",mileagePlaceholder:"Ange bilens miltal",descriptionOptional:"Beskrivning (valfritt)",descriptionError:"Beskrivningen \xE4r inte giltig",descriptionPlaceholder:"Beskriv bilen",fetchValue:"H\xE4mta uppskattat v\xE4rde",proceedButton:"Anv\xE4nd och g\xE5 vidare",fetchError:"Tyv\xE4rr fick vi ingen tr\xE4ff p\xE5 registreringsnummret du angav. V\xE4nligen kontrollera att registreringsnummret st\xE4mmer."},vehicleInfo:"Fordonsinformation",orderCallback:{thankYou:"Tack f\xF6r ditt k\xF6p",orderId:"Order id",waykeId:"Wayke id"},howTo:{heading:"S\xE5 h\xE4r k\xF6per du bilen online",description:"Hos oss kan du tryggt k\xF6pa din n\xE4sta bil online. Reservera bilen genom att klicka dig igenom v\xE5rt k\xF6pfl\xF6de med f\xF6ljande steg:",timelineAriaLabel:"Tillv\xE4gag\xE5ngss\xE4tt",customerHeading:"Dina kunduppgifter",centralStorageHeading:"V\xE4lj anl\xE4ggning",centralStorageDescription:"V\xE4lj vilken anl\xE4ggning du vill k\xF6pa bilen ifr\xE5n.",deliveryHeading:"V\xE4lj leveranss\xE4tt",tradeInHeading:"Har du inbytesbil?",tradeInDescription:"F\xE5 den v\xE4rderad direkt online.",financialHeading:"\xC4gandeform",insuranceHeading:"Vill du teckna en f\xF6rs\xE4kring?",insuranceDescription:"Se f\xF6rslag p\xE5 f\xF6rs\xE4kringar som passar din nya bil.",accessoriesHeading:"Tillbeh\xF6r",accessoriesDescription:"Best\xE4ll extra utrustning till din bil.",financialDescriptionAll:"Denna bil kan du k\xF6pa kontant, privatleasa eller finansiera med ett bill\xE5n.",financialDescriptionCashLease:"Denna bil kan du k\xF6pa kontant eller privatleasa.",financialDescriptionCashLoan:"Denna bil kan du k\xF6pa kontant eller finansiera med ett bill\xE5n",financialDescriptionLoanLease:"Denna bil kan du privatleasa eller finansiera med ett bill\xE5n",financialDescriptionCash:"Denna bil kan du k\xF6pa kontant.",financialDescriptionLoan:"Denna bil kan du finansiera med ett bill\xE5n",financialDescriptionLease:"Denna bil kan du privatleasa.",deliveryDescriptionBoth:"Hemleverans eller h\xE4mta hos handlaren.",deliveryDescriptionPickup:"H\xE4mta hos handlaren.",deliveryDescriptionHome:"Hemleverans.",paymentHeading:"Genomf\xF6r f\xF6rskottsbetalning!",paymentDescription:"Genomf\xF6r f\xF6rskottskottsbetalning p\xE5 5% av bilens v\xE4rde. (Genomf\xF6r betalning av deposition motsvarande 5% av bilens v\xE4rde.)",finalHeading:"Klart!",finalDescription:"Efter att ordern \xE4r genomf\xF6rd tar {{contactName}} kontakt med dig s\xE5 kommer ni tillsammans fram till detaljer kring betalning och skriver avtal."},preview:{heading:"Vad roligt att du vill k\xF6pa denna bil!",proceedButton:"G\xE5 vidare",checklistTitle:"K\xF6p online hos Wayke",checklistAriaLabel:"F\xF6rdelar med att k\xF6pa bilen online hos Wayke",checklistItem1:"Trygg hantering av personuppgifter",checklistItem2:"Reservera bilen nu - betalning och avtalsskrivning sker senare med handlaren",checklistItem3:"Inte bindande f\xF6rr\xE4n avtal skrivits ihop med handlaren",checklistItem4:"Bara kontrollerade bilar",error:"Ett fel uppstod och det gick inte att initiera modulen. F\xF6rs\xF6k igen.",reserved:"Bilen \xE4r tyv\xE4rr reserverad av en annan k\xF6pare och kan d\xE4rf\xF6r inte reserveras just nu.",unavailable:"Bilen \xE4r tyv\xE4rr inte l\xE4ngre tillg\xE4nglig och kan d\xE4rf\xF6r inte reserveras."}},gk=fk,kk=t=>{switch(t){case"NO":return"nb-NO";case"SE":return"sv-SE";default:return"sv-SE"}},Wd=hk.createInstance(),yk=t=>{let e=kk(t);Wd.init({lng:e,resources:{"sv-SE":{translation:gk},"nb-NO":{translation:mk}}})},a=Wd,vk={name:"@wayke-se/ecom-web",version:"2.1.1",description:"Wayke Ecom Web",type:"module",module:"dist/index.mjs",main:"dist/index.js",types:"dist/index.d.ts",homepage:"https://github.com/wayke-se/wayke-ecom-web",repository:{type:"git",url:"git+https://github.com/wayke-se/wayke-ecom-web.git"},scripts:{start:"node ./esbuild/start.js",clip:"node ./esbuild/clip-ui.js && node ./clip-ui/start.js",build:"npm run clean && node ./esbuild/lib.js && node ./esbuild/cdn.js && npm run build:types","build:types":"tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --outDir dist",clean:"rimraf build && rimraf dist && rimraf dist-cdn",test:"npm run lint && npm run typecheck",typecheck:"tsc -noEmit","typecheck:watch":"tsc -noEmit -watch",lint:"npx @biomejs/biome check","lint:fix":"npx @biomejs/biome check --write",stylelint:"stylelint '**/*.scss'",prepare:"husky"},author:"Wayke",license:"ISC","lint-staged":{"*.{js,ts}":["npx @biomejs/biome check"]},devDependencies:{"@biomejs/biome":"2.4.16","@ourstudio/clip-ui":"^0.0.11","@types/node":"^25.9.1","@types/object-path":"^0.11.1","@types/sanitize-html":"^2.16.1",esbuild:"^0.28.0","esbuild-sass-plugin":"^3.7.0",husky:"^9.1.7","lint-staged":"^17.0.5",rimraf:"^6.1.3",stylelint:"^17.12.0","stylelint-config-prettier-scss":"^1.0.0","stylelint-config-standard-scss":"^17.0.0",typescript:"^6.0.3"},dependencies:{"@wayke-se/ecom":"^4.6.1",i18next:"^26.3.0",marked:"^18.0.4","object-path":"^0.11.8",redux:"^5.0.1","sanitize-html":"^2.17.4"},files:["dist"],engines:{node:">=24.0.0"},volta:{node:"24"}};function wk(t){t.addEventListener("keydown",e=>{if(e.key==="Tab"){let i=t.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex]:not([tabindex="-1"])');if(i.length===0)return;let s=i[0],n=i[i.length-1];e.shiftKey?document.activeElement===s&&(e.preventDefault(),n.focus()):document.activeElement===n&&(e.preventDefault(),s.focus())}})}var Ek=class{constructor(t,e){if(!t)throw"Missing element";if(!e){this.element=t,this.node=t;return}this.element=t;let i=e.id?this.element.querySelector(`#${e.id}`):void 0;if(i)i.className=e.className||"",e.attributes?.forEach(s=>{i.setAttribute(s.key,s.value)}),this.node=i;else{let s=document.createElement(e.htmlTag);e.id&&(s.id=e.id),s.className=e.className||"",e.attributes?.forEach(n=>{s.setAttribute(n.key,n.value)}),t.appendChild(s),this.node=s}}},S=Ek,xk=class extends S{constructor(t,{id:e}){super(t,{htmlTag:"div",className:"waykeecom-modal__body",id:e})}},Ik=xk,bk=class extends S{constructor(t,{id:e}){super(t,{htmlTag:"div",className:"waykeecom-modal__center",id:e})}},Sk=bk,Ck=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{title:t,id:e,onClick:i}=this.props;this.node.innerHTML=`
|
|
32
|
+
<button
|
|
33
|
+
title="${t}"
|
|
34
|
+
${e?`id="${e}"`:""}
|
|
35
|
+
class="waykeecom-modal__close-btn"
|
|
36
|
+
>
|
|
37
|
+
<span class="waykeecom-sr-only">${t}</span>
|
|
38
|
+
<svg
|
|
39
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
40
|
+
viewBox="0 0 16 16"
|
|
41
|
+
class="waykeecom-icon"
|
|
42
|
+
aria-hidden="true"
|
|
43
|
+
>
|
|
44
|
+
<path d="M9.1 8l5.9 5.9-1.1 1.1L8 9.1 2.1 15 1 13.9 6.9 8 1 2.1 2.1 1 8 6.9 13.9 1 15 2.1 9.1 8z" />
|
|
45
|
+
</svg>
|
|
46
|
+
</button>
|
|
47
|
+
`,i&&this.node.querySelector("button")?.addEventListener("click",i)}},Ak=Ck,Nk=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-modal__close",id:e.id}),this.handleKeydown=i=>{i.key==="Escape"&&this.props.onClose&&this.props.onClose()},this.props=e,this.render(),this.props.onClose&&window.addEventListener("keydown",this.handleKeydown)}render(){let{onClose:t}=this.props;this.node.innerHTML="",t&&new Ak(this.node,{title:a.t("glossary.closeModal"),onClick:()=>t()})}},_k=Nk,Tk=class extends S{constructor(t,{id:e}){super(t,{htmlTag:"div",className:"waykeecom-modal__container",id:e})}},Rk=Tk,Dk=class extends S{constructor(t,{id:e}){super(t,{htmlTag:"div",className:"waykeecom-modal__dialog",id:e})}},Ok=Dk,Lk=({market:t,className:e})=>{switch(t){case"SE":return`
|
|
48
|
+
<svg ${e?`class="${e}"`:""} viewBox="0 0 548.95 123.3" preserveAspectRatio="xMinYMid" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
49
|
+
<title>Wayke</title>
|
|
50
|
+
<g>
|
|
51
|
+
<path d="M275.16,48.31l-18.69,53.3h-12L219.59,28h15.08l16.84,52.57,18-52.88h12.29l18.08,53L316.68,28h13.64l-24.17,73.65H293.75Z"></path>
|
|
52
|
+
<path d="M348.51,102c-12.8,0-26.41-9.45-26.41-27s13.61-27,26.41-27c5.12,0,12.39,2,16,7.48l.76,1.16V49h12.92v52.29H365.26V93.18l-.77,1.22C361,100,353,102,348.51,102Zm1.92-41.62c-7.37,0-15,5.48-15,14.65a14.67,14.67,0,0,0,15,14.65c7.39,0,14.87-5,14.87-14.65S357.63,60.36,350.42,60.36Z"></path>
|
|
53
|
+
<path d="M408.36,123.3H395.14l9.92-22.93L381.51,49h14.88l15.39,35.53L427.16,49h13.43Z"></path>
|
|
54
|
+
<path d="M456.35,77.54V101.3h-13V25.83h13V70.31l24-21.28h17.25L469.78,73.41,499,101.3H481.34Z"></path>
|
|
55
|
+
<path d="M548.95,75.88v1.45H507.43c.52,8.16,6.5,14.36,15.18,14.36,8.37,0,11.78-4.23,12.71-5.68h13c-.83,5.37-8,16.63-25.72,16.63-16.94,0-28.4-11.77-28.4-27.47,0-16.22,11.36-27.47,27.37-27.47S548.95,58.84,548.95,75.88Zm-41.11-7.64h27.27c-2-6.61-6.82-10.33-13.53-10.33C514.45,57.92,509.49,61.73,507.84,68.24Z"></path>
|
|
56
|
+
</g>
|
|
57
|
+
<g>
|
|
58
|
+
<circle cx="4.25" cy="39.68" r="4.25"></circle>
|
|
59
|
+
<circle cx="25.15" cy="68.03" r="4.96"></circle>
|
|
60
|
+
<circle cx="46.04" cy="96.38" r="6.38"></circle>
|
|
61
|
+
<circle cx="66.93" cy="68.03" r="7.09"></circle>
|
|
62
|
+
<circle cx="87.82" cy="39.68" r="8.5"></circle>
|
|
63
|
+
<circle cx="108.72" cy="68.03" r="10.63"></circle>
|
|
64
|
+
<circle cx="129.61" cy="96.38" r="12.76"></circle>
|
|
65
|
+
<circle cx="150.5" cy="68.03" r="13.47"></circle>
|
|
66
|
+
<circle cx="171.4" cy="39.68" r="14.17"></circle>
|
|
67
|
+
<circle cx="129.61" cy="39.68" r="12.05"></circle>
|
|
68
|
+
<circle cx="66.93" cy="11.34" r="7.09"></circle>
|
|
69
|
+
<circle cx="150.5" cy="11.34" r="11.34"></circle>
|
|
70
|
+
<circle cx="108.72" cy="11.34" r="10.63"></circle>
|
|
71
|
+
<circle cx="46.04" cy="39.68" r="6.38"></circle>
|
|
72
|
+
<circle cx="25.15" cy="11.34" r="4.96"></circle>
|
|
73
|
+
</g>
|
|
74
|
+
</svg>
|
|
75
|
+
`;case"NO":return`
|
|
76
|
+
<svg ${e?`class="${e}"`:""} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 93" preserveAspectRatio="xMinYMid">
|
|
77
|
+
<title>Drive</title>
|
|
78
|
+
<path d="M234.501 0h21.343l7.478 74.395h3.583L295.466 0h21.343l-35.754 92.987h-36.947L234.501 0ZM221.882 18.631 224.504 0h-20.681l-2.609 18.631h20.668ZM198.617 37.12 190.763 93h20.668l7.854-55.88h-20.668ZM185.817 32.543C188.491 13.95 176.482 0 154.464 0h-46.022l-2.597 18.631h45.919c9.334 0 14.54 5.986 13.333 13.95-1.207 7.965-7.867 13.951-17.202 13.951h-25.302l1.298-9.373h-20.668l-7.79 55.867h20.681l3.895-27.888h23.368c3.739 9.554 7.478 18.462 11.477 27.888h22.07l-12.983-31.884a36.086 36.086 0 0 0 14.785-11.381 35.881 35.881 0 0 0 7.091-17.218ZM47.087 0H13.073L5.206 55.893h20.629l5.193-37.3h13.385c16.682 0 27.081 11.959 24.81 27.9A32.546 32.546 0 0 1 58.14 66.55a32.796 32.796 0 0 1-21.595 7.845H2.61L.013 93h34c28.679 0 52.151-20.583 55.89-46.545C93.642 20.493 75.765 0 47.087 0ZM325.975 0l-2.623 18.592h73.987L400 0h-74.025ZM336.101 74.395l2.674-18.592h42.024l2.661-18.606h-62.717L312.888 93h74.039l2.544-18.605h-53.37Z"/>
|
|
79
|
+
</svg>
|
|
80
|
+
`}},Mk=({market:t,className:e})=>{switch(t){case"SE":return`
|
|
81
|
+
<svg ${e?`class="${e}"`:""} viewBox="0 0 185.57 109.13" preserveAspectRatio="xMinYMid" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
82
|
+
<title>Wayke</title>
|
|
83
|
+
<circle cx="4.25" cy="39.68" r="4.25"></circle>
|
|
84
|
+
<circle cx="25.15" cy="68.03" r="4.96"></circle>
|
|
85
|
+
<circle cx="46.04" cy="96.38" r="6.38"></circle>
|
|
86
|
+
<circle cx="66.93" cy="68.03" r="7.09"></circle>
|
|
87
|
+
<circle cx="87.82" cy="39.68" r="8.5"></circle>
|
|
88
|
+
<circle cx="108.72" cy="68.03" r="10.63"></circle>
|
|
89
|
+
<circle cx="129.61" cy="96.38" r="12.76"></circle>
|
|
90
|
+
<circle cx="150.5" cy="68.03" r="13.47"></circle>
|
|
91
|
+
<circle cx="171.4" cy="39.68" r="14.17"></circle>
|
|
92
|
+
<circle cx="129.61" cy="39.68" r="12.05"></circle>
|
|
93
|
+
<circle cx="66.93" cy="11.34" r="7.09"></circle>
|
|
94
|
+
<circle cx="150.5" cy="11.34" r="11.34"></circle>
|
|
95
|
+
<circle cx="108.72" cy="11.34" r="10.63"></circle>
|
|
96
|
+
<circle cx="46.04" cy="39.68" r="6.38"></circle>
|
|
97
|
+
<circle cx="25.15" cy="11.34" r="4.96"></circle>
|
|
98
|
+
</svg>
|
|
99
|
+
`;case"NO":return`
|
|
100
|
+
<svg ${e?`class="${e} waykeecom-modal__norway-footer-logo"`:""} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 38">
|
|
101
|
+
<title>Drive</title>
|
|
102
|
+
<path d="M19.27 0H5.348L2.126 22.838h8.445l2.126-15.241h5.479c6.83 0 11.086 4.886 10.156 11.4a13.292 13.292 0 0 1-4.537 8.195 13.441 13.441 0 0 1-8.84 3.206H1.063L0 38h13.919c11.74 0 21.349-8.41 22.88-19.018C38.328 8.373 31.01 0 19.27 0Z" />
|
|
103
|
+
</svg>
|
|
104
|
+
`}},$k=class extends S{constructor(t,e){super(t,{htmlTag:"footer",className:"waykeecom-modal__footer",id:e.id}),this.props=e,this.render()}render(){this.node.innerHTML=`
|
|
105
|
+
<div class="waykeecom-hstack waykeecom-hstack--spacing-1 waykeecom-hstack--align-center">
|
|
106
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink">
|
|
107
|
+
${Mk({market:this.props.marketCode,className:"waykeecom-modal__footer-logo"})}
|
|
108
|
+
</div>
|
|
109
|
+
<div class="waykeecom-hstack__item">
|
|
110
|
+
Powered by <a href="${a.t("glossary.homeUrl")}" title="${a.t("glossary.goToHome")}" target="_blank" rel="noopener noreferer" class="waykeecom-link waykeecom-link--no-external-icon waykeecom-link--current-color waykeecom-link--underline">${a.t("glossary.company")}</a>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
`}},Fk=$k,Bk=class extends S{constructor(t,e){super(t,{htmlTag:"header",className:"waykeecom-modal__header",id:e.id}),this.props=e,this.render()}render(){let{title:t,logo:e,logoX2:i,onClose:s}=this.props;this.node.innerHTML=`
|
|
114
|
+
<div class="waykeecom-header">
|
|
115
|
+
<div class="waykeecom-header__logo">
|
|
116
|
+
<h2 class="waykeecom-no-margin">
|
|
117
|
+
${e?`
|
|
118
|
+
<img
|
|
119
|
+
src="${e}"
|
|
120
|
+
${i?`srcset="${i} 2x"`:""}
|
|
121
|
+
alt="${t}"
|
|
122
|
+
class="waykevaluation-image"
|
|
123
|
+
/>
|
|
124
|
+
`:Lk({market:this.props.marketCode,className:"waykevaluation-header__logo--svg"})}
|
|
125
|
+
</h2>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
`,s&&this.node.querySelectorAll("button").forEach(n=>{n.addEventListener("click",()=>s())})}},Pk=Bk,Uk=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-modal",attributes:[{key:"role",value:"dialog"},{key:"aria-modal",value:"true"},{key:"aria-labelledby",value:"wayke-ecom-title"}],id:e.id}),this.props=e,this.content=this.render(),wk(this.node)}render(){let{title:t,id:e,onClose:i}=this.props,s=new Rk(this.node,{id:`${e}-container`}),n=new Sk(s.node,{id:`${e}-center`}),r=new Ok(n.node,{id:`${e}-dialog`});new _k(r.node,{id:`${e}-close`,onClose:i}),new Pk(r.node,{title:t,logo:this.props.logo,logoX2:this.props.logoX2,onClose:i,id:`${e}-header`,marketCode:this.props.marketCode});let o=new Ik(r.node,{id:`${e}-body`});return new Fk(r.node,{id:`${e}-footer`,marketCode:this.props.marketCode}),o.node}},Uc=Uk,vr=t=>Me.cancelSigning(t),Or=t=>({costs:t.getCosts(),fees:t.getFees(),interests:t.getInterests(),durationSpec:t.getDurationSpec(),downPaymentSpec:t.getDownPaymentSpec(),residualValueSpec:t.getResidualValueSpec(),totalResidualValue:t.getTotalResidualValue(),publicURL:t.getPublicURL(),shouldUseCreditScoring:t.shouldUseCreditScoring(),financialProductCode:t.getFinancialProductCode(),price:t.getPrice(),creditAmount:t.getCreditAmount(),hasPrivacyPolicy:t.hasPrivacyPolicy(),privacyPolicyUrl:t.getPrivacyPolicyUrl(),moneyLaunderingInformationURL:t.getMoneyLaunderingInformationURL(),financialOptionId:t.getFinancialOptionId()}),qk=t=>({status:t.getStatus(),hasPendingSigning:t.hasPendingSigning(),hintCode:t.getHintCode(),signingMessage:t.getSigningMessage(),shouldRenewSigning:t.shouldRenewSigning(),isSigned:t.isSigned(),address:void 0,pendingScoring:t.hasPendingScoring(),isScored:t.isScored(),hasScoringError:t.hasScoringError(),scoringId:t.getScoringId(),recommendation:t.getRecommendation(),decision:t.getDecision(),isAccepted:t.isAccepted()}),Yd=t=>({orderVehicle:t.getOrderVehicle(),accessories:t.getAccessories(),requiresDealerSelection:t.requiresDealerSelection(),dealerSites:t.getDealerSites(),paymentOptions:t.getPaymentOptions().map(e=>({...e,loanDetails:e.loanDetails?Or(e.loanDetails):void 0})),deliveryOptions:t.getDeliveryOptions(),insuranceOption:t.getInsuranceOption(),orderConditions:t.getOrderConditions(),orderReturnConditions:t.getOrderReturnConditions(),conditionsPdfUri:t.getConditionsPdfUri(),contactInformation:t.getContactInformation(),allowsTradeIn:t.allowsTradeIn(),isUnavailable:t.isUnavailable(),isReserved:t.isReserved(),isPaymentRequired:t.isPaymentRequired()}),jk=t=>({vehicle:t.getVehicle()}),zd="RESET",Vk=t=>e=>e({type:zd,id:t}),Kd="SET_ORDER",Jd=(t,e)=>i=>i({type:Kd,order:t,vehicle:e}),Qd="SET_ID",Hk=t=>e=>e({type:Qd,id:t}),Xd="SET_CONTACT_EMAIL_AND_PHONE",Gk=t=>e=>e({type:Xd,value:t}),Zd="SET_SOCIAL_ID_AND_ADDRESS",Wk=(t,e,i)=>s=>s({type:Zd,socialId:t,address:e,lastStage:i}),eu="SET_ADDRESS",Yk=(t,e)=>i=>i({type:eu,address:t,lastStage:e}),tu="SET_HOME_DELIVERY",zk=(t,e)=>i=>i({type:tu,homeDelivery:t,lastStage:e}),iu="SET_DEALER",Kk=(t,e)=>i=>i({type:iu,dealer:t,lastStage:e}),su="INIT_TRADE_IN",Jk=t=>e=>e({type:su,lastStage:t}),nu="SET_TRADE_IN",wr=(t,e,i)=>s=>s({type:nu,lastStage:t,tradeIn:e,tradeInVehicle:i}),ru="SET_FINANCIAL",Qk=(t,e)=>i=>i({type:ru,paymentType:t,lastStage:e}),au="SET_PAYMENT_LOOKUP_RESPONSE",Xk=t=>e=>e({type:au,paymentLookupResponse:Or(t)}),ou="RESET_PAYMENT_LOOKUP_RESPONSE",Zk=()=>t=>t({type:ou}),cu="SET_DRIVING_DISTANCE",ey=t=>e=>e({type:cu,drivingDistance:t}),lu="COMPLETE_STAGE",Ti=t=>e=>e({type:lu,lastStage:t}),du="SET_OR_REMOVE_INSURANCE",Lr=t=>e=>e({type:du,insurance:t}),uu="SET_OR_REMOVE_INSURANCE_ADDONS",ty=(t,e)=>i=>i({type:uu,insurance:t,insuranceAddons:e}),hu="SET_OR_REMOVE_FREE_INSURANCE",iy=t=>e=>e({type:hu,freeInsurance:t}),pu="SET_OR_REMOVE_ACCESSORY",sy=t=>e=>e({type:pu,accessory:t}),mu="GO_TO",Qe=(t,e,i)=>s=>s({type:mu,view:t,index:e,subStage:i}),fu="SET_STAGES",ny=t=>e=>e({type:fu,stages:t}),gu="SET_CREATED_ORDER_ID",ku=(t,e)=>i=>i({type:gu,id:t,payment:e}),yu="SET_CREDIT_ASSESSMENT_RESPONSE",_i=(t,e)=>i=>i({type:yu,caseId:t,creditAssessmentResponse:e}),vu="SET_STATE",ry=t=>e=>e({type:vu,state:t}),qc=(t,e)=>t!==void 0&&e!==void 0?JSON.stringify(t).localeCompare(JSON.stringify(e))===0:t===e,ay={},jc={view:"preview",stage:1,subStage:1},Vc={id:"",topNavigation:{...jc},navigation:{...jc},customer:{email:"",phone:"",givenName:"",surname:"",socialId:""},homeDelivery:!1,accessories:[],drivingDistance:re.Between0And1000,...ay},ht=(t,e)=>e?{view:"summary",stage:1,subStage:1}:{view:"main",stage:t+1,subStage:1},pt=(t,e)=>e.view==="main"?t.stage<e.stage?e:L.topNavigation:{...t,stage:t.stage+1},rr=t=>t&&t?.length===1&&t?.[0].type===P.Cash?P.Cash:void 0,L,ar,oy=(t=Vc,e)=>{let i,s;switch(L={...t},e.type){case zd:return{...Vc,id:e.id};case fu:return{...L,stages:e.stages};case Qd:return{...L,id:e.id};case Kd:return{...t,order:e.order,paymentType:rr(e.order?.paymentOptions),vehicle:{...e.order.orderVehicle,...e.vehicle||{}}};case Xd:let n={...L,customer:{...t.customer,email:e.value.email,phone:e.value.phone},navigation:{view:"main",stage:t.navigation.stage,subStage:2}};return delete n.wantTradeIn,delete n.tradeIn,delete n.tradeInVehicle,n.paymentType=rr(t.order?.paymentOptions),delete n.paymentLookupResponse,delete n.insurance,delete n.insuranceAddOns,delete n.freeInsurance,delete n.dealer,n.accessories=[],n;case Zd:return i=ht(L.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s,address:e.address,customer:{...t.customer,socialId:e.socialId}},L;case eu:return i=ht(L.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s,address:e.address,customer:{...t.customer}},L;case iu:return i=ht(t.navigation.stage,e.lastStage),s={...i},L={...t,navigation:i,topNavigation:s,dealer:e.dealer},delete L.wantTradeIn,delete L.tradeIn,delete L.tradeInVehicle,L.paymentType=rr(t.order?.paymentOptions),delete L.paymentLookupResponse,delete L.insurance,delete L.insuranceAddOns,delete L.freeInsurance,L.accessories=[],L;case tu:return i=ht(t.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s,homeDelivery:e.homeDelivery},L;case su:return i={view:"main",stage:t.navigation.stage,subStage:1},s=pt(L.topNavigation,i),L={...t,navigation:i,wantTradeIn:!0,topNavigation:s,tradeIn:t.tradeIn||{registrationNumber:"",mileage:"",description:""}},L;case nu:return i=ht(t.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s,wantTradeIn:!!e.tradeIn,tradeIn:e.tradeIn,tradeInVehicle:e.tradeInVehicle},L;case ru:return i=ht(t.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),{...L,navigation:i,topNavigation:s,paymentType:e.paymentType};case ou:return{...L,paymentLookupResponse:void 0};case au:return{...L,paymentLookupResponse:e.paymentLookupResponse};case cu:return{...L,drivingDistance:e.drivingDistance};case lu:return i=ht(t.navigation.stage,e.lastStage),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s},L;case uu:return L.insurance=e.insurance,L.insuranceAddOns={insurance:e.insurance.name,addOns:e.insuranceAddons},L;case du:return qc(L.insurance,e.insurance)?L.insurance=void 0:L.insurance=e.insurance,L.insuranceAddOns?.insurance&&(L.insuranceAddOns=void 0),L;case hu:return qc(L.freeInsurance,e.freeInsurance)?L.freeInsurance=void 0:L.freeInsurance=e.freeInsurance,L;case pu:return ar=L.accessories.findIndex(r=>r.id===e.accessory.id),L.accessories=[...L.accessories],ar>-1?L.accessories.splice(ar,1):L.accessories.push(e.accessory),{...L,accessories:[...L.accessories]};case mu:return{...t,navigation:{view:e.view,stage:e.index||1,subStage:e.subStage||1}};case gu:return e.payment?i={view:"main",stage:t.navigation.stage,subStage:2}:i=ht(t.navigation.stage,!0),s=pt(L.topNavigation,i),L={...t,navigation:i,topNavigation:s,createdOrderId:e.id,payment:e.payment},L;case yu:return{...L,caseId:e.caseId,creditAssessmentResponse:e.creditAssessmentResponse};case vu:return{...e.state};default:return t}},cy=oy,ly=()=>nn(cy),dy=(t,e)=>t===e,uy=(t,e,i)=>{let s=i||dy,n=(0,Er.get)(t(),e);return r=>()=>{let o=(0,Er.get)(t(),e);if(!s(n,o)){let c=n;n=o,r(o,c,e)}}},wu=[],hy=t=>(wu.push(t),t),py=()=>wu.forEach(t=>t()),my=(t,e,i,s)=>{let n=uy(t.getState,e);if(s)t.subscribe(n(i));else return hy(t.subscribe(n(i)))},we=my,fy=(t=>(t.START="START",t.CLOSE="CLOSE",t.CONFIRM_CLOSE_ACTIVE="CONFIRM_CLOSE_ACTIVE",t.CONFIRM_CLOSE_CONFIRMED="CONFIRM_CLOSE_CONFIRMED",t.CONFIRM_CLOSE_ABORTED="CONFIRM_CLOSE_ABORTED",t.PREVIEW_PROCEED="PREVIEW_PROCEED",t.CENTRAL_STORAGE_ACTIVE="CENTRAL_STORAGE_ACTIVE",t.CENTRAL_STORAGE_EDIT="CENTRAL_STORAGE_EDIT",t.CENTRAL_STORAGE_SELECTED="CENTRAL_STORAGE_SELECTED",t.CENTRAL_STORAGE_SET="CENTRAL_STORAGE_SET",t.CUSTOMER_ACTIVE="CUSTOMER_ACTIVE",t.CUSTOMER_EDIT="CUSTOMER_EDIT",t.CUSTOMER_EMAIL_AND_PHONE_SET="CUSTOMER_EMAIL_AND_PHONE_SET",t.CUSTOMER_ADDRESS_BY_SSN_REQUESTED="CUSTOMER_ADDRESS_BY_SSN_REQUESTED",t.CUSTOMER_ADDRESS_BY_SSN_SUCCEEDED="CUSTOMER_ADDRESS_BY_SSN_SUCCEEDED",t.CUSTOMER_ADDRESS_BY_SSN_FAILED="CUSTOMER_ADDRESS_BY_SSN_FAILED",t.CUSTOMER_ADDRESS_SET="CUSTOMER_ADDRESS_SET",t.CUSTOMER_ADDRESS_EDIT="CUSTOMER_ADDRESS_EDIT",t.FINANCIAL_INFORMATION_TOGGLE="FINANCIAL_INFORMATION_TOGGLE",t.FINANCIAL_ACTIVE="FINANCIAL_ACTIVE",t.FINANCIAL_EDIT="FINANCIAL_EDIT",t.FINANCIAL_CASH_SELECTED="FINANCIAL_CASH_SELECTED",t.FINANCIAL_LOAN_SELECTED="FINANCIAL_LOAN_SELECTED",t.FINANCIAL_LEASE_SELECTED="FINANCIAL_LEASE_SELECTED",t.FINANCIAL_CASH_SET="FINANCIAL_CASH_SET",t.FINANCIAL_LEASE_SET="FINANCIAL_LEASE_SET",t.FINANCIAL_LOAN_SET="FINANCIAL_LOAN_SET",t.FINANCIAL_LOAN_DOWNPAYMENT_INFORMATION_TOGGLE="FINANCIAL_LOAN_DOWNPAYMENT_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_KYC_INFORMATION_TOGGLE="FINANCIAL_LOAN_KYC_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_HOUSEHOLD_COST_INFORMATION_TOGGLE="FINANCIAL_LOAN_HOUSEHOLD_COST_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_HOUSEHOLD_DEBT_INFORMATION_TOGGLE="FINANCIAL_LOAN_HOUSEHOLD_DEBT_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_DEBT_SPECIFICATION_CARD_CREDIT_INFORMATION_TOGGLE="FINANCIAL_LOAN_DEBT_SPECIFICATION_CARD_CREDIT_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_DEBT_SPECIFICATION_CAR_LOAN_INFORMATION_TOGGLE="FINANCIAL_LOAN_DEBT_SPECIFICATION_CAR_LOAN_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_DEBT_SPECIFICATION_COLLATERAL_INFORMATION_TOGGLE="FINANCIAL_LOAN_DEBT_SPECIFICATION_COLLATERAL_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_DEBT_SPECIFICATION_LEASING_FEES_INFORMATION_TOGGLE="FINANCIAL_LOAN_DEBT_SPECIFICATION_LEASING_FEES_INFORMATION_TOGGLE",t.FINANCIAL_LOAN_DEBT_SPECIFICATION_PRIVATE_LOAN_INFORMATION_TOGGLE="FINANCIAL_LOAN_DEBT_SPECIFICATION_PRIVATE_LOAN_INFORMATION_TOGGLE",t.FINANCIAL_CREDIT_SCORING_ABORTED="FINANCIAL_CREDIT_SCORING_ABORTED",t.FINANCIAL_CREDIT_SCORING_CREATE_CASE_REQUESTED="FINANCIAL_CREDIT_SCORING_CREATE_CASE_REQUESTED",t.FINANCIAL_CREDIT_SCORING_CREATE_CASE_SUCCEEDED="FINANCIAL_CREDIT_SCORING_CREATE_CASE_SUCCEEDED",t.FINANCIAL_CREDIT_SCORING_CREATE_CASE_FAILED="FINANCIAL_CREDIT_SCORING_CREATE_CASE_FAILED",t.FINANCIAL_CREDIT_SCORING_BANKID_INIT_REQUESTED="FINANCIAL_CREDIT_SCORING_BANKID_INIT_REQUESTED",t.FINANCIAL_CREDIT_SCORING_BANKID_INIT_SUCCEEDED="FINANCIAL_CREDIT_SCORING_BANKID_INIT_SUCCEEDED",t.FINANCIAL_CREDIT_SCORING_BANKID_INIT_FAILED="FINANCIAL_CREDIT_SCORING_BANKID_INIT_FAILED",t.FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_REQUESTED="FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_REQUESTED",t.FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_SUCCEEDED="FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_SUCCEEDED",t.FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_REQUESTED="FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_REQUESTED",t.FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_SUCCEEDED="FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_SUCCEEDED",t.FINANCIAL_CREDIT_SCORING_SIGNING_SIGNED="FINANCIAL_CREDIT_SCORING_SIGNING_SIGNED",t.FINANCIAL_CREDIT_SCORING_SIGNING_SCORED="FINANCIAL_CREDIT_SCORING_SIGNING_SCORED",t.TRADE_IN_ACTIVE="TRADE_IN_ACTIVE",t.TRADE_IN_EDIT="TRADE_IN_EDIT",t.TRADE_IN_SELECTED="TRADE_IN_SELECTED",t.TRADE_IN_SKIPPED="TRADE_IN_SKIPPED",t.TRADE_IN_CONDITION_VERY_GOOD_SELECTED="TRADE_IN_CONDITION_VERY_GOOD_SELECTED",t.TRADE_IN_CONDITION_GOOD_SELECTED="TRADE_IN_CONDITION_GOOD_SELECTED",t.TRADE_IN_CONDITION_OK_SELECTED="TRADE_IN_CONDITION_OK_SELECTED",t.TRADE_IN_VALUATION_REQUESTED="TRADE_IN_VALUATION_REQUESTED",t.TRADE_IN_VALUATION_SUCCEEDED="TRADE_IN_VALUATION_SUCCEEDED",t.TRADE_IN_VALUATION_FAILED="TRADE_IN_VALUATION_FAILED",t.TRADE_IN_SET="TRADE_IN_SET",t.INSURANCE_ACTIVE="INSURANCE_ACTIVE",t.INSURANCE_EDIT="INSURANCE_EDIT",t.INSURANCE_MILEAGE_BETWEEN_0_AND_1000_SELECTED="INSURANCE_MILEAGE_BETWEEN_0_AND_1000_SELECTED",t.INSURANCE_MILEAGE_BETWEEN_1000_AND_1500_SELECTED="INSURANCE_MILEAGE_BETWEEN_1000_AND_1500_SELECTED",t.INSURANCE_MILEAGE_BETWEEN_1500_AND_2000_SELECTED="INSURANCE_MILEAGE_BETWEEN_1500_AND_2000_SELECTED",t.INSURANCE_MILEAGE_BETWEEN_2000_AND_2500_SELECTED="INSURANCE_MILEAGE_BETWEEN_2000_AND_2500_SELECTED",t.INSURANCE_MILEAGE_OVER_2500_SELECTED="INSURANCE_MILEAGE_OVER_2500_SELECTED",t.INSURANCE_EDIT_MILEAGE="INSURANCE_EDIT_MILEAGE",t.INSURANCE_SKIPPED="INSURANCE_SKIPPED",t.INSURANCE_SHOW="INSURANCE_SHOW",t.INSURANCE_SET="INSURANCE_SET",t.INSURANCE_SELECTED="INSURANCE_SELECTED",t.INSURANCE_UNSELECTED="INSURANCE_UNSELECTED",t.INSURANCE_ADDON_SELECTED="INSURANCE_ADDON_SELECTED",t.INSURANCE_ADDON_UNSELECTED="INSURANCE_ADDON_UNSELECTED",t.INSURANCE_GET_INSURANCES_REQUESTED="INSURANCE_GET_INSURANCES_REQUESTED",t.INSURANCE_GET_INSURANCES_SUCCEEDED="INSURANCE_GET_INSURANCES_SUCCEEDED",t.INSURANCE_GET_INSURANCES_FAILED="INSURANCE_GET_INSURANCES_FAILED",t.INSURANCE_INFORMATION_TOGGLE="INSURANCE_INFORMATION_TOGGLE",t.INSURANCE_ARROW="INSURANCE_ARROW",t.DELIVERY_ACTIVE="DELIVERY_ACTIVE",t.DELIVERY_EDIT="DELIVERY_EDIT",t.DELIVERY_DEALER_SELECTED="DELIVERY_DEALER_SELECTED",t.DELIVERY_HOME_SELECTED="DELIVERY_HOME_SELECTED",t.DELIVERY_DEALER_SET="DELIVERY_DEALER_SET",t.DELIVERY_HOME_SET="DELIVERY_HOME_SET",t.ACCESSORY_ACTIVE="ACCESSORY_ACTIVE",t.ACCESSORY_EDIT="ACCESSORY_EDIT",t.ACCESSORY_EXPOSURE="ACCESSORY_EXPOSURE",t.ACCESSORY_SKIPPED="ACCESSORY_SKIPPED",t.ACCESSORY_SELECTED="ACCESSORY_SELECTED",t.ACCESSORY_UNSELECTED="ACCESSORY_UNSELECTED",t.ACCESSORY_INFORMATION_OPEN="ACCESSORY_INFORMATION_OPEN",t.ACCESSORY_INFORMATION_CLOSE="ACCESSORY_INFORMATION_CLOSE",t.ACCESSORY_INFORMATION_GALLERY_IMAGE_PAGING="ACCESSORY_INFORMATION_GALLERY_IMAGE_PAGING",t.ACCESSORY_ARROWS="ACCESSORY_ARROWS",t.CONFIRMATION_BANKID_ABORTED="CONFIRMATION_BANKID_ABORTED",t.CONFIRMATION_BANKID_INIT_REQUESTED="CONFIRMATION_BANKID_INIT_REQUESTED",t.CONFIRMATION_BANKID_INIT_SUCCEEDED="CONFIRMATION_BANKID_INIT_SUCCEEDED",t.CONFIRMATION_BANKID_INIT_FAILED="CONFIRMATION_BANKID_INIT_FAILED",t.CONFIRMATION_BANKID_STATUS_QR_REQUESTED="CONFIRMATION_BANKID_STATUS_QR_REQUESTED",t.CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED="CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED",t.CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_NOT_OVER_18="CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_NOT_OVER_18",t.CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_SSN_MISSMATCH="CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_SSN_MISSMATCH",t.CONFIRMATION_BANKID_STATUS_SAME_DEVICE_REQUESTED="CONFIRMATION_BANKID_STATUS_SAME_DEVICE_REQUESTED",t.CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SHOULD_RENEW="CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SHOULD_RENEW",t.CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED="CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED",t.CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_NOT_OVER_18="CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_NOT_OVER_18",t.CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_SSN_MISSMATCH="CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_SSN_MISSMATCH",t.CONFIRMATION_CREATE_ORDER_REQUESTED="CONFIRMATION_CREATE_ORDER_REQUESTED",t.CONFIRMATION_CREATE_ORDER_SUCCEEDED="CONFIRMATION_CREATE_ORDER_SUCCEEDED",t.CONFIRMATION_CREATE_ORDER_FAILED="CONFIRMATION_CREATE_ORDER_FAILED",t.CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_REQUEST="CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_REQUEST",t.CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_SUCCEEDED="CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_SUCCEEDED",t.CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_FAILED="CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_FAILED",t.SUMMARY_ACTIVE="SUMMARY_ACTIVE",t))(fy||{}),gy=(t=>(t.CENTRAL_STORAGE="CENTRAL_STORAGE",t.CUSTOMER_EMAIL_AND_PHONE="CUSTOMER_EMAIL_AND_PHONE",t.CUSTOMER_ADDRESS="CUSTOMER_ADDRESS",t.FINANCIAL="FINANCIAL",t.FINANCIAL_CREDIT_SCORING="FINANCIAL_CREDIT_SCORING",t.TRADE_IN="TRADE_IN",t.TRADE_IN_DETAILS="TRADE_IN_DETAILS",t.INSURANCE="INSURANCE",t.INSURANCE_IF="INSURANCE_IF",t.DELIVERY="DELIVERY",t.ACCESSORY="ACCESSORY",t.CONFIRMATION="CONFIRMATION",t))(gy||{}),ky=(t=>(t.PREVIEW="PREVIEW",t.MAIN="MAIN",t.SUMMARY="SUMMARY",t))(ky||{}),bs=[],yy=t=>{bs.push(t)},vy=t=>{let e=bs.findIndex(i=>i===t);e>-1&&bs.splice(e,1)},xr=[],Es=()=>xr[xr.length-1],wy=(t,e,i,s)=>{xr.push({view:t,ecomEvent:e,currentStep:i}),bs.forEach(n=>n(t,e,i,s))},v=wy,Is={},Ir=(t,e)=>{Is[t]=e},Hc=()=>{Object.keys(Is).forEach(t=>{clearInterval(Is[t]),delete Is[t]})},or=()=>{let t=document.documentElement.clientWidth/100;document.documentElement.style.setProperty("--waykeecom-vw",`${t}px`)},Ey=()=>(or(),window.addEventListener("resize",or),()=>window.removeEventListener("resize",or)),xy=t=>t==="inline"?"waykeecom-loader--inline-block":"",Iy=t=>{let e=["waykeecom-loader"],i=xy(t?.type);return i&&e.push(i),`
|
|
129
|
+
<div class="${e.join(" ")}" role="status">
|
|
130
|
+
<div class="waykeecom-loader__spinner" aria-hidden="true"></div>
|
|
131
|
+
<div class="waykeecom-sr-only">Laddar...</div>
|
|
132
|
+
</div>
|
|
133
|
+
`},Ve=Iy,by=class extends S{constructor(t,e){super(t),this.props=e,this.render()}isDisabled(){return this.props.disabled}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{title:t,id:e,disabled:i,loading:s,onClick:n}=this.props;this.node.innerHTML=`
|
|
134
|
+
<button
|
|
135
|
+
type="button"
|
|
136
|
+
${e?`id="${e}"`:""}
|
|
137
|
+
title="${t}"
|
|
138
|
+
${i&&'disabled=""'}
|
|
139
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--action"
|
|
140
|
+
>
|
|
141
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
142
|
+
${s?`
|
|
143
|
+
<span class="waykeecom-button__content">
|
|
144
|
+
${Ve({type:"inline"})}
|
|
145
|
+
</span>`:""}
|
|
146
|
+
</button>
|
|
147
|
+
`,n&&this.node.querySelector("button")?.addEventListener("click",n)}},Mr=by,Sy=class extends S{constructor(t,e){super(t),this.props=e,this.render()}isDisabled(){return this.props.disabled}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{title:t,id:e,disabled:i,loading:s,onClick:n}=this.props;this.node.innerHTML=`
|
|
148
|
+
<button
|
|
149
|
+
type="button"
|
|
150
|
+
${e?`id="${e}"`:""}
|
|
151
|
+
title="${t}"
|
|
152
|
+
${i&&'disabled=""'}
|
|
153
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--action-alt"
|
|
154
|
+
>
|
|
155
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
156
|
+
${s?`
|
|
157
|
+
<span class="waykeecom-button__content">
|
|
158
|
+
${Ve({type:"inline"})}
|
|
159
|
+
</span>`:""}
|
|
160
|
+
</button>
|
|
161
|
+
`,n&&this.node.querySelector("button")?.addEventListener("click",n)}},Cy=Sy,Gc="confirm-close-node",Wc="abort-close-node",Ay=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{onConfirmClose:t,onAbortClose:e}=this.props;this.node.innerHTML=`
|
|
162
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
163
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
164
|
+
<div class="waykeecom-hstack waykeecom-hstack--spacing-2 waykeecom-hstack--align-center">
|
|
165
|
+
<div class="waykeecom-hstack__item" aria-hidden="true">
|
|
166
|
+
<div class="waykeecom-icon-backdrop waykeecom-icon-backdrop--error">
|
|
167
|
+
<svg
|
|
168
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
169
|
+
viewBox="0 0 16 16"
|
|
170
|
+
class="waykeecom-icon"
|
|
171
|
+
data-icon="Exclamation mark"
|
|
172
|
+
>
|
|
173
|
+
<path d="M7.1 9.6 6.7 2h2.7L9 9.6H7.1zM8 11c-.8 0-1.5.7-1.5 1.5S7.2 14 8 14s1.5-.7 1.5-1.5S8.8 11 8 11z" />
|
|
174
|
+
</svg>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="waykeecom-hstack__item">
|
|
178
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${a.t("confirmClose.heading")}</h3>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
183
|
+
<div class="waykeecom-content">
|
|
184
|
+
<p class="waykeecom-content__p">${a.t("confirmClose.message")}</p>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
189
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Wc}"></div>
|
|
190
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Gc}"></div>
|
|
191
|
+
</div>
|
|
192
|
+
`,new Mr(this.node.querySelector(`#${Wc}`),{title:a.t("confirmClose.abortButton"),onClick:()=>e()}),new Cy(this.node.querySelector(`#${Gc}`),{title:a.t("confirmClose.confirmButton"),onClick:()=>t()})}},Ny=Ay,Eu=(t,e)=>{if(!e)return t;let i=new URL(t);return`${e}${i.pathname}`},_y=t=>t.toString().replace(/\s/g,""),Ty=(t,e)=>{if(!e)return t;let i=Math.pow(10,e);return(Math.round(t*i)/i).toFixed(e)},B=(t,e)=>{if(t==null)return"???";let i=Ty(t,e?.decimals!==void 0?e.decimals:0);return`${e?.prefix?`${e.prefix}`:""}${_y(i).replace(/\B(?=(\d{3})+(?!\d))/g," ")}${e?.postfix?` ${e.postfix}`:""}`},Ry=(t,e)=>{let i=t.split(" "),s=e.split(" ").map(n=>n.toLowerCase());return i.filter(n=>!s.includes(n.toLowerCase())).join(" ")},$r=t=>{if(t)return Ry(t.shortDescription||"",t.title||"")},Dy=({vehicle:t,order:e,cdnMedia:i})=>{let s=t?.imageUrls?.[0],n=t?.title,r=B(t?.price||NaN),o=e?.contactInformation?.name;return`
|
|
193
|
+
<div class="waykeecom-preview-card">
|
|
194
|
+
${s?`
|
|
195
|
+
<div class="waykeecom-preview-card__media">
|
|
196
|
+
<img src="${Eu(s,i)}?spec=200x&format=webp" alt="" class="waykeecom-preview-card__image" />
|
|
197
|
+
</div>
|
|
198
|
+
`:""}
|
|
199
|
+
<dl class="waykeecom-preview-card__body">
|
|
200
|
+
<dt class="waykeecom-sr-only">S\xE4ljare</dt>
|
|
201
|
+
<dd class="waykeecom-preview-card__seller">${o}</dd>
|
|
202
|
+
<dt class="waykeecom-sr-only">Modell</dt>
|
|
203
|
+
<dd class="waykeecom-preview-card__heading">
|
|
204
|
+
<span class="waykeecom-preview-card__title">${n}</span> ${$r(t)}
|
|
205
|
+
</dd>
|
|
206
|
+
<dt class="waykeecom-sr-only">Pris</dt>
|
|
207
|
+
<dd class="waykeecom-preview-card__price">${r} kr</dd>
|
|
208
|
+
</dl>
|
|
209
|
+
</div>
|
|
210
|
+
`},Oy=Dy,Ly=class extends S{constructor(t,e){super(t),this.props=e,this.render()}isDisabled(){return this.props.disabled}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{title:t,id:e,disabled:i,loading:s,onClick:n}=this.props;this.node.innerHTML=`
|
|
211
|
+
<button
|
|
212
|
+
type="button"
|
|
213
|
+
${e?`id="${e}"`:""}
|
|
214
|
+
title="${t}"
|
|
215
|
+
${i&&'disabled=""'}
|
|
216
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--action"
|
|
217
|
+
>
|
|
218
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
219
|
+
<span class="waykeecom-button__content">
|
|
220
|
+
${s?Ve({type:"inline"}):`
|
|
221
|
+
<svg
|
|
222
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
223
|
+
viewBox="0 0 16 16"
|
|
224
|
+
class="waykeecom-icon"
|
|
225
|
+
data-icon="Arrow right"
|
|
226
|
+
>
|
|
227
|
+
<path d="m15.2 8.8-4.8 4.8-1.7-1.7 2.7-2.7H1.2C.5 9.2 0 8.7 0 8s.5-1.2 1.2-1.2h10.2L8.7 4.1l1.7-1.7 4.8 4.8.8.8-.8.8z" />
|
|
228
|
+
</svg>`}
|
|
229
|
+
</span>
|
|
230
|
+
</button>
|
|
231
|
+
`,n&&this.node.querySelector("button")?.addEventListener("click",n)}},xe=Ly,My=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{title:t,id:e,onClick:i}=this.props;this.node.innerHTML=`
|
|
232
|
+
<button
|
|
233
|
+
type="button"
|
|
234
|
+
${e?`id="${e}"`:""}
|
|
235
|
+
title="${t}"
|
|
236
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--action-clear"
|
|
237
|
+
>
|
|
238
|
+
<span class="waykeecom-button__content">
|
|
239
|
+
<svg
|
|
240
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
241
|
+
viewBox="0 0 16 16"
|
|
242
|
+
class="waykeecom-icon"
|
|
243
|
+
data-icon="Skip"
|
|
244
|
+
>
|
|
245
|
+
<path d="m14.5 7-4.7 4.7-1.4-1.4L10.6 8H6.5c-1.1 0-2 .9-2 2v2c0 .6-.4 1-1 1s-1-.4-1-1v-2c0-2.2 1.8-4 4-4h4.1L8.3 3.7l1.4-1.4L14.5 7z" />
|
|
246
|
+
</svg>
|
|
247
|
+
</span>
|
|
248
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
249
|
+
</button>
|
|
250
|
+
`,i&&this.node.querySelector("button")?.addEventListener("click",i)}},Wt=My,$y=({key:t,value:e,image:i})=>`
|
|
251
|
+
<li class="waykeecom-key-value-list__item">
|
|
252
|
+
${i?`<div class="waykeecom-key-value-list__key">
|
|
253
|
+
<img src="${i.src}" ${i.srcSet?`srcSet="${i.srcSet}"`:""} alt="${i.alt}" class="waykeecom-key-value-list__key-image" />
|
|
254
|
+
<div class="waykeecom-key-value-list__key-label">${t}</div>
|
|
255
|
+
</div>`:`<div class="waykeecom-key-value-list__key">${t}</div>`}
|
|
256
|
+
<div class="waykeecom-key-value-list__value">${e}</div>
|
|
257
|
+
</li>
|
|
258
|
+
`,W=$y,Fy=class extends S{constructor(t,e){super(t,{htmlTag:"div"}),this.props=e,this.render()}render(){let{keyValueList:t,changeButtonTitle:e,onEdit:i}=this.props;this.node.innerHTML=`
|
|
259
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
260
|
+
<ul class="waykeecom-key-value-list">
|
|
261
|
+
${t.map(s=>W({key:s.key,image:s.image,value:s.value})).join("")}
|
|
262
|
+
</ul>
|
|
263
|
+
</div>
|
|
264
|
+
${i?`
|
|
265
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
266
|
+
<div class="waykeecom-align waykeecom-align--end">
|
|
267
|
+
<button type="button" title="${e}" class="waykeecom-link">${a.t("glossary.change")}</button>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
`:""}
|
|
271
|
+
`,i&&this.node.querySelector("button")?.addEventListener("click",()=>i())}},Ri=Fy,By=(t,e)=>{let{title:i,active:s,completed:n,id:r}=e,o=document.getElementById(r),c=o||document.createElement("li");o||c.setAttribute("id",r);let l=["waykeecom-stepper__item"];c.removeAttribute("aria-current"),c.removeAttribute("aria-disabled"),s?(l.push("waykeecom-stepper__item--is-active"),c.setAttribute("aria-current","step")):n?l.push("waykeecom-stepper__item--is-complete"):(l.push("waykeecom-stepper__item--is-disabled"),c.setAttribute("aria-disabled","true")),c.className=l.join(" "),c.innerHTML=`
|
|
272
|
+
<header class="waykeecom-stepper__header">
|
|
273
|
+
<div class="waykeecom-stepper__icon" aria-hidden="true">
|
|
274
|
+
<div class="waykeecom-icon-backdrop waykeecom-icon-backdrop--success">
|
|
275
|
+
<svg
|
|
276
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
277
|
+
viewBox="0 0 16 16"
|
|
278
|
+
class="waykeecom-icon"
|
|
279
|
+
data-icon="Check"
|
|
280
|
+
>
|
|
281
|
+
<path d="M12.3 3.3 6 9.6 3.7 7.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l3 3c.4.4 1 .4 1.4 0l7-7c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0z"/>
|
|
282
|
+
</svg>
|
|
283
|
+
</div>
|
|
284
|
+
</div>
|
|
285
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">
|
|
286
|
+
<span class="waykeecom-stepper__stage">
|
|
287
|
+
Steg ${e.index} \u2013
|
|
288
|
+
</span>
|
|
289
|
+
${i}
|
|
290
|
+
${n?'<span class="waykeecom-sr-only">(F\xE4rdigst\xE4llt)</span>':""}
|
|
291
|
+
</h3>
|
|
292
|
+
</header>
|
|
293
|
+
<div class="waykeecom-stepper__body"></div>
|
|
294
|
+
`,o||t.appendChild(c);let u=c.querySelector(".waykeecom-stepper__body");if(!u)throw"Err no element";return u},ft=By,Py=class extends S{constructor(t,e){super(t),this.props=e,this.render()}hide(t){this.props.hide!==t&&(this.props.hide=t,this.render())}render(){if(this.props.hide){this.node.innerHTML="";return}let{title:t,dataIcon:e,path:i}=this.props.direction==="left"?{title:a.t("glossary.showPrevious"),dataIcon:"Chevron left",path:'<path d="m5.4 7 5.2-5 1 1-5.2 5 5.2 5-1.1 1-5.2-5-1-1 1.1-1z" />'}:{title:a.t("glossary.showNext"),dataIcon:"Chevron right",path:'<path d="m10.5 9-5.2 5-1-1 5.2-5-5.2-5 1.1-1 5.2 5 1 1-1.1 1z" />'};this.node.innerHTML=`
|
|
295
|
+
<button type="button" title="${t}" class="waykeecom-icon-button">
|
|
296
|
+
<svg
|
|
297
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
298
|
+
viewBox="0 0 16 16"
|
|
299
|
+
class="waykeecom-icon"
|
|
300
|
+
data-icon="${e}"
|
|
301
|
+
>
|
|
302
|
+
${i}
|
|
303
|
+
</svg>
|
|
304
|
+
</button>
|
|
305
|
+
`,this.node.querySelector("button")?.addEventListener("click",()=>this.props.onClick())}},Yc=Py,zc=t=>{let e=t?.children?.[0]?.clientWidth||0,i=t?.scrollWidth||0,s=t?.scrollLeft||0,n=t?.offsetWidth||0,r=i-n;return{itemWidth:e,scrollWidth:i,scrollLeft:s,overflowElementWidth:n,overflowElementScrollWidth:r}},Uy=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-overflow-grid"}),this.contexts={},this.props=e,this.render()}onPrev(){this.props.onClick&&this.props.onClick();let t=this.overflowElement;if(t){let e=t.children?.[0]?.clientWidth||0,i=t.scrollLeft||0;if(i>0){this.contexts.right?.hide(!1);let s=i-e;t.scroll({left:s,behavior:"smooth"}),s<=0&&this.contexts.left?.hide(!0)}}}onNext(){this.props.onClick&&this.props.onClick();let t=this.overflowElement;if(t){let{itemWidth:e,scrollLeft:i,overflowElementScrollWidth:s}=zc(t);if(s!==i){this.contexts.left?.hide(!1);let n=i+e;t.scroll({left:n,behavior:"smooth"}),n>=s&&this.contexts.right?.hide(!0)}}}scrollHandler(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{let t=this.overflowElement;if(t){let e=t.scrollWidth||0;if(e<=t.offsetWidth)return;let i=t.scrollLeft||0;this.contexts.left?.hide(i<=0);let s=t.offsetWidth||0,n=e-s;this.contexts.right?.hide(n===i)}},50)}render(){let t=`${this.props.id}-prev`,e=`${this.props.id}-next`;this.node.innerHTML=`
|
|
306
|
+
<div class="waykeecom-overflow-grid__nav waykeecom-overflow-grid__nav--prev" id="${t}"></div>
|
|
307
|
+
<div class="waykeecom-overflow-grid__nav waykeecom-overflow-grid__nav--next" id="${e}"></div>
|
|
308
|
+
<div class="waykeecom-overflow-grid__list-wrapper">
|
|
309
|
+
<ul class="waykeecom-overflow-grid__list" id="${this.props.id}"></ul>
|
|
310
|
+
</div>
|
|
311
|
+
`,this.overflowElement=this.node.querySelector(`#${this.props.id}`)||void 0,this.overflowElement?.addEventListener("scroll",()=>this.scrollHandler()),this.contexts.left=new Yc(this.node.querySelector(`#${t}`),{direction:"left",hide:!0,onClick:()=>this.onPrev()}),this.contexts.right=new Yc(this.node.querySelector(`#${e}`),{direction:"right",hide:!0,onClick:()=>this.onNext()}),setTimeout(()=>{let{itemWidth:i,scrollLeft:s,overflowElementScrollWidth:n}=zc(this.overflowElement),r=s+i,o=n===s&&r>=n;this.contexts.right?.hide(o)},50)}},Fr=Uy,qy=class extends S{constructor(t,e){super(t),this.props=e,this.render()}isDisabled(){return this.props.disabled}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{id:t,disabled:e,loading:i,selected:s,fullSize:n,onClick:r}=this.props,o=s?a.t("glossary.chosen"):a.t("glossary.add"),c=["waykeecom-button",n?"waykeecom-button--full-width":"waykeecom-button--size-small"];s?c.push("waykeecom-button--success"):c.push("waykeecom-button--action-alt");let l=s?'<path d="M12.3 3.3 6 9.6 3.7 7.3c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l3 3c.4.4 1 .4 1.4 0l7-7c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0z"/>':'<path d="M14 7v2H9v5H7V9H2V7h5V2h2v5h5z" />';this.node.innerHTML=`
|
|
312
|
+
<button
|
|
313
|
+
type="button"
|
|
314
|
+
${t?`id="${t}"`:""}
|
|
315
|
+
title="${o}"
|
|
316
|
+
${e&&'disabled=""'}
|
|
317
|
+
class="${c.join(" ")}"
|
|
318
|
+
>
|
|
319
|
+
<span class="waykeecom-button__content">
|
|
320
|
+
<svg
|
|
321
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
322
|
+
viewBox="0 0 16 16"
|
|
323
|
+
class="waykeecom-icon"
|
|
324
|
+
data-icon="${s?"Check":"Plus"}"
|
|
325
|
+
>
|
|
326
|
+
${l}
|
|
327
|
+
</svg>
|
|
328
|
+
</span>
|
|
329
|
+
<span class="waykeecom-button__content">${o}</span>
|
|
330
|
+
${i?`<span class="waykeecom-button__content">${Ve({type:"inline"})}</div>`:""}
|
|
331
|
+
</button>
|
|
332
|
+
`,r&&this.node.querySelector("button")?.addEventListener("click",r)}},_s=qy,jy=class extends S{constructor(t,e){super(t),this.props=e,this.render()}disabled(t){this.props.disabled=!t,this.render()}render(){let{title:t,id:e,disabled:i,onClick:s}=this.props;this.node.innerHTML=`
|
|
333
|
+
<button
|
|
334
|
+
${e?`id="${e}"`:""}
|
|
335
|
+
title="${t}"
|
|
336
|
+
class="waykeecom-link"
|
|
337
|
+
${i?'disabled=""':""}
|
|
338
|
+
>
|
|
339
|
+
${t}
|
|
340
|
+
</button>
|
|
341
|
+
`,s&&this.node.querySelector("button")?.addEventListener("click",s)}},At=jy,Vy="button-add-remove",Hy=`${Vy}-node`,Gy="read-more",Wy=`${Gy}-node`,Yy=class extends S{constructor(t,e,i){super(t,{htmlTag:"li",className:"waykeecom-overflow-grid__item",id:i}),this.hasBeenInViewPort=!1,this.props=e,this.render(),this.attachInViewportTrigger()}attachInViewportTrigger(){this.props.inViewPort&&!this.hasBeenInViewPort&&new IntersectionObserver(t=>{if(!this.hasBeenInViewPort)for(let e of t)e.intersectionRatio===1&&(this.hasBeenInViewPort=!0,this.props.inViewPort&&this.props.inViewPort())},{threshold:[1]}).observe(this.node)}render(){let{id:t,title:e,image:i,logo:s,price:n,priceDetails:r,description:o,selected:c,onClick:l,onInfo:u}=this.props,d=t&&u?`${Wy}-${t}`:void 0,p=t?`${Hy}-${t}`:void 0;this.node.innerHTML=`
|
|
342
|
+
<div class="waykeecom-tile">
|
|
343
|
+
${i?`<img src="${i}" alt="${e}" class="waykeecom-tile__hero" />`:""}
|
|
344
|
+
<div class="waykeecom-tile__body">
|
|
345
|
+
<div class="waykeecom-tile__header">
|
|
346
|
+
<div class="waykeecom-tile__title">${e}</div>
|
|
347
|
+
<div class="waykeecom-tile__image">
|
|
348
|
+
<div class="waykeecom-logo">
|
|
349
|
+
<img src="${s}" alt="" class="waykeecom-logo__image waykeecom-logo__image--right" />
|
|
350
|
+
</div>
|
|
351
|
+
</div>
|
|
352
|
+
</div>
|
|
353
|
+
${n?`<div class="waykeecom-tile__price">${n}</div>`:""}
|
|
354
|
+
${r?.length?`<div class="waykeecom-tile__price-disclaimer">+ ${r.map(h=>`${h.key} (${h.value})`).join(", ")}</div>`:""}
|
|
355
|
+
<div class="waykeecom-tile__description">
|
|
356
|
+
${o||""}
|
|
357
|
+
</div>
|
|
358
|
+
${d?`
|
|
359
|
+
<div class="waykeecom-tile__read-more" id="${d}"></div>`:""}
|
|
360
|
+
</div>
|
|
361
|
+
<div class="waykeecom-tile__footer" id="${p}"></div>
|
|
362
|
+
</div>
|
|
363
|
+
`,u&&new At(this.node.querySelector(`#${d}`),{title:a.t("glossary.readMore"),onClick:()=>u()}),new _s(this.node.querySelector(`#${p}`),{selected:c,onClick:()=>l()})}},Br=Yy,Yt=()=>{Ce();let t=document.getElementById("wayke-ecom-modal-body");t&&t.firstElementChild.setAttribute("hidden","");let e=document.createElement("div");return e.className="waykeecom-portal",t?.appendChild(e),e},Ce=()=>{let t=document.getElementById("wayke-ecom-modal-body");t&&t.firstElementChild.removeAttribute("hidden"),t?.childNodes.forEach((e,i)=>{i>0&&e.remove()})},zy=class extends S{constructor(t,e){super(t),this.props=e,this.render()}disabled(t){this.props.disabled=!t,this.render()}render(){let{title:t,id:e,disabled:i,onClick:s}=this.props;this.node.innerHTML=`
|
|
364
|
+
<button
|
|
365
|
+
${e?`id="${e}"`:""}
|
|
366
|
+
title="${t}"
|
|
367
|
+
class="waykeecom-link waykeecom-link--has-content"
|
|
368
|
+
${i&&'disabled=""'}
|
|
369
|
+
>
|
|
370
|
+
<span class="waykeecom-link__content">
|
|
371
|
+
<svg
|
|
372
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
373
|
+
viewBox="0 0 16 16"
|
|
374
|
+
class="waykeecom-icon"
|
|
375
|
+
data-icon="Arrow left"
|
|
376
|
+
>
|
|
377
|
+
<path d="m.8 7.2 4.8-4.8 1.7 1.7-2.7 2.7h10.2c.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2H4.6l2.7 2.7-1.7 1.7L.8 8.8 0 8l.8-.8z"/>
|
|
378
|
+
</svg>
|
|
379
|
+
</span>
|
|
380
|
+
<span class="waykeecom-link__content">${t}</span>
|
|
381
|
+
</button>
|
|
382
|
+
`,s&&this.node.querySelector("button")?.addEventListener("click",s)}},Ss=zy,Ky=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{title:t,id:e,onClick:i}=this.props;this.node.innerHTML=`
|
|
383
|
+
<button type="button" id="${e}" title="${t}" class="waykeecom-button waykeecom-button--full-width waykeecom-button--action-clear">
|
|
384
|
+
${t}
|
|
385
|
+
</button>
|
|
386
|
+
`,i&&this.node.querySelector("button")?.addEventListener("click",i)}},Ts=Ky,Jy=class extends S{constructor(t,e){super(t),this.props=e,this.render()}hide(t){this.props.hide!==t&&(this.props.hide=t,this.render())}render(){if(this.props.hide){this.node.innerHTML="";return}let{title:t,dataIcon:e,path:i}=this.props.direction==="left"?{title:a.t("glossary.showPreviousImage"),dataIcon:"Chevron left",path:'<path d="m5.4 7 5.2-5 1 1-5.2 5 5.2 5-1.1 1-5.2-5-1-1 1.1-1z" />'}:{title:a.t("glossary.showNextImage"),dataIcon:"Chevron right",path:'<path d="m10.5 9-5.2 5-1-1 5.2-5-5.2-5 1.1-1 5.2 5 1 1-1.1 1z" />'};this.node.innerHTML=`
|
|
387
|
+
<button type="button" title="${t}" class="waykeecom-icon-button">
|
|
388
|
+
<svg
|
|
389
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
390
|
+
viewBox="0 0 16 16"
|
|
391
|
+
class="waykeecom-icon"
|
|
392
|
+
data-icon="${e}"
|
|
393
|
+
>
|
|
394
|
+
${i}
|
|
395
|
+
</svg>
|
|
396
|
+
</button>
|
|
397
|
+
`,this.node.querySelector("button")?.addEventListener("click",()=>this.props.onClick())}},Kc=Jy,Jc=t=>{let e=t?.children?.[0]?.clientWidth||0,i=t?.scrollWidth||0,s=t?.scrollLeft||0,n=t?.offsetWidth||0,r=i-n;return{itemWidth:e,scrollWidth:i,scrollLeft:s,overflowElementWidth:n,overflowElementScrollWidth:r}},Qy=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-overflow-gallery"}),this.contexts={},this.props=e,this.render()}onPrev(){let t=this.contexts.overflowElement;if(t){let e=t?.clientWidth||0,i=t.scrollLeft||0;if(i>0){this.contexts.right?.hide(!1);let s=i-e;t.scroll({left:s,behavior:"smooth"}),s<=0&&this.contexts.left?.hide(!0),this.props.onGalleryImagePaging&&this.props.onGalleryImagePaging()}}}onNext(){let t=this.contexts.overflowElement;if(t){let{itemWidth:e,scrollLeft:i,overflowElementScrollWidth:s}=Jc(t);if(s!==i){this.contexts.left?.hide(!1);let n=i+e;t.scroll({left:n,behavior:"smooth"}),n>=s&&this.contexts.right?.hide(!0),this.props.onGalleryImagePaging&&this.props.onGalleryImagePaging()}}}scrollHandler(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{let t=this.contexts.overflowElement;if(t){let e=t.scrollWidth||0;if(e<=t.offsetWidth)return;let i=t.scrollLeft||0;this.contexts.left?.hide(i<=0);let s=t.offsetWidth||0,n=e-s;this.contexts.right?.hide(n===i)}},50)}render(){let t=`${this.props.id}-prev`,e=`${this.props.id}-next`;this.node.innerHTML=`
|
|
398
|
+
<div class="waykeecom-overflow-gallery__nav waykeecom-overflow-gallery__nav--prev" id="${t}"></div>
|
|
399
|
+
<div class="waykeecom-overflow-gallery__nav waykeecom-overflow-gallery__nav--next" id="${e}"></div>
|
|
400
|
+
<ul class="waykeecom-overflow-gallery__list" id="${this.props.id}">
|
|
401
|
+
${this.props.media.map(i=>`
|
|
402
|
+
<li class="waykeecom-overflow-gallery__item">
|
|
403
|
+
<img src="${i.url}" alt="${i.alt}" class="waykeecom-overflow-gallery__image" />
|
|
404
|
+
</li>
|
|
405
|
+
`).join("")}
|
|
406
|
+
</ul>
|
|
407
|
+
`,this.contexts.overflowElement=this.node.querySelector(`#${this.props.id}`)||void 0,this.contexts.overflowElement?.addEventListener("scroll",()=>this.scrollHandler()),this.contexts.left=new Kc(this.node.querySelector(`#${t}`),{direction:"left",hide:!0,onClick:()=>this.onPrev()}),this.contexts.right=new Kc(this.node.querySelector(`#${e}`),{direction:"right",hide:!0,onClick:()=>this.onNext()}),setTimeout(()=>{let{itemWidth:i,scrollLeft:s,overflowElementScrollWidth:n}=Jc(this.contexts.overflowElement),r=s+i,o=n===s&&r>=n;this.contexts.right?.hide(o)},50)}},Xy=Qy,xu=t=>(0,bt.default)(Zy.parse(t||"",{async:!1}),{allowedTags:[...bt.default.defaults.allowedTags,"img"],allowedAttributes:{...bt.default.defaults.allowedAttributes,a:[...bt.default.defaults.allowedAttributes.a||[],"rel"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:[...bt.default.defaults.selfClosing,"img"],transformTags:{a:bt.default.simpleTransform("a",{target:"_blank",rel:"noopener noreferrer"},!0)}}),Nt=()=>{let t=document.getElementById(Ns),e=document.getElementById(`${Ns}-dialog`);t&&(t.scrollTop=0),e&&(e.scrollTop=0)},Qc="accessory-button-top-left-node",Xc="accessory-button-bottom-left-node",Zc="accessory-add-remove-node",el="accessory-gallery-node",ev=class extends S{constructor(t,e){super(t),this.props=e,this.render()}onGalleryImagePaging(){let{accessory:t}=this.props;v("MAIN","ACCESSORY_INFORMATION_GALLERY_IMAGE_PAGING","ACCESSORY",{id:t.id,label:t.name})}render(){let{accessory:t,selected:e,onClick:i,onClose:s}=this.props,{name:n,media:r,logoUrl:o,price:c,shortDescription:l,longDescription:u,salePrice:d}=t;this.node.innerHTML=`
|
|
408
|
+
<div class="waykeecom-nav-banner" id="${Qc}"></div>
|
|
409
|
+
|
|
410
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
411
|
+
|
|
412
|
+
<div class="waykeecom-hstack waykeecom-hstack--align-center waykeecom-hstack--spacing-3">
|
|
413
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--grow">
|
|
414
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${n}</h3>
|
|
415
|
+
</div>
|
|
416
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink">
|
|
417
|
+
<div class="waykeecom-logo">
|
|
418
|
+
<img src="${o}" alt="${a.t("accessoryItemInfo.logoAlt")} ${n}" class="waykeecom-logo__image waykeecom-logo__image--right" />
|
|
419
|
+
</div>
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
|
|
423
|
+
</div>
|
|
424
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${el}"></div>
|
|
425
|
+
|
|
426
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
427
|
+
${d?`<div class="waykeecom-text waykeecom-text--font-bold">${B(d,{postfix:"kr"})}<span class="waykeecom-text waykeecom-text--tone-alt waykeecom-text--line-through"> (${B(c,{postfix:"kr"})})</span></div>`:`<div class="waykeecom-text waykeecom-text--font-bold">${B(c,{postfix:"kr"})}</div>`}
|
|
428
|
+
</div>
|
|
429
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
430
|
+
<div class="waykeecom-content waykeecom-text waykeecom-text--font-medium">
|
|
431
|
+
<p class="waykeecom-content__p">${l}</p>
|
|
432
|
+
</div>
|
|
433
|
+
</div>
|
|
434
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
435
|
+
<div class="waykeecom-content">
|
|
436
|
+
<p class="waykeecom-content__p">${xu(u)}</p>
|
|
437
|
+
</div>
|
|
438
|
+
</div>
|
|
439
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
440
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Zc}"></div>
|
|
441
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Xc}"></div>
|
|
442
|
+
</div>
|
|
443
|
+
`,new Xy(this.node.querySelector(`#${el}`),{id:`gallery-${t.id}`,media:r.map((p,h)=>({url:p.url,alt:`Bild ${h+1}`})),onGalleryImagePaging:()=>this.onGalleryImagePaging()}),new Ss(this.node.querySelector(`#${Qc}`),{title:a.t("accessoryItemInfo.backButton"),onClick:()=>s()}),new Ts(this.node.querySelector(`#${Xc}`),{title:a.t("accessoryItemInfo.backButton"),onClick:()=>s()}),new _s(this.node.querySelector(`#${Zc}`),{selected:e,fullSize:!0,onClick:()=>i()}),Nt()}},tv=ev,iv=class extends S{constructor(t,e){super(t),this.displayInfo=!1,this.exposureTracked=!1,this.props=e,we(this.props.store,"accessories",(i,s)=>{i.some(n=>n.id===this.props.accessory.id)!==s.some(n=>n.id===this.props.accessory.id)&&this.render()}),this.render()}onInfoOpen(){let{accessory:t}=this.props;v("MAIN","ACCESSORY_INFORMATION_OPEN","ACCESSORY",{id:t.id,label:t.name}),this.displayInfo=!0,this.render()}onInfoClose(){let{accessory:t}=this.props;v("MAIN","ACCESSORY_INFORMATION_CLOSE","ACCESSORY",{id:t.id,label:t.name}),this.displayInfo=!1,Ce(),this.render(),this.node.parentElement?.scrollIntoView()}onClick(){let{store:t,accessory:e}=this.props,i=t.getState().accessories.findIndex(s=>s.id===e.id)>-1;v("MAIN",i?"ACCESSORY_UNSELECTED":"ACCESSORY_SELECTED","ACCESSORY",{id:e.id,label:e.name}),sy(this.props.accessory)(this.props.store.dispatch)}trackExposure(){let{accessory:t}=this.props;this.exposureTracked=!0,v("MAIN","ACCESSORY_EXPOSURE","ACCESSORY",{id:t.id,label:t.name})}render(){let{store:t,accessory:e,key:i}=this.props,s=t.getState().accessories.findIndex(n=>n.id===e.id)>-1;this.displayInfo&&new tv(Yt(),{accessory:e,selected:s,onClick:()=>{this.onInfoClose(),this.onClick()},onClose:()=>this.onInfoClose()}),new Br(this.node,{id:e.id,title:e.name,description:e.shortDescription,logo:e.logoUrl,image:e.media?.[0]?.url,price:B(e.price,{postfix:"kr"}),selected:s,onClick:()=>this.onClick(),onInfo:()=>this.onInfoOpen(),inViewPort:this.exposureTracked?void 0:()=>this.trackExposure()},i)}},sv=iv,nv=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{accessories:t,store:e}=this.props,i=new Fr(this.node,{id:"accessories-list",onClick:()=>v("MAIN","ACCESSORY_ARROWS","ACCESSORY")}),{overflowElement:s}=i;s&&(s.innerHTML="",t.forEach((n,r)=>new sv(s,{store:e,accessory:n,key:`accessory-${n.id}-${r}`})))}},rv=nv,Iu="button-accessories-proceed",tl=`${Iu}-node`,av="button-accessories-skip",il=`${av}-node`,sl="accessory-grid-list-node",ov=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.render()}onProceed(){Ti(this.props.lastStage)(this.props.store.dispatch)}onEdit(){v("MAIN","ACCESSORY_EDIT","ACCESSORY"),Qe("main",this.props.index)(this.props.store.dispatch)}render(){let{store:t,index:e}=this.props,i=t.getState(),s=i.topNavigation.stage>e,n=i.navigation.stage===e;n&&v("MAIN","ACCESSORY_ACTIVE","ACCESSORY");let r=ft(this.node,{completed:s,title:a.t("accessories.title"),active:n,id:"accessories",index:e}),o=document.createElement("div");if(i.navigation.stage>e||s&&i.navigation.stage!==e)new Ri(r,{keyValueList:i.accessories.length?i.accessories.map(c=>({key:c.name,image:c.media[0]?{src:`${c.media[0].url}?w=32&h=32`,srcSet:`${c.media[0].url}?w=64&h=64 2x`,alt:c.name}:void 0,value:B(c.price,{postfix:"kr"})})):[{key:a.t("accessories.title"),value:a.t("accessories.noSelected")}],changeButtonTitle:a.t("accessories.changeButtonTitle"),onEdit:i.createdOrderId?void 0:()=>this.onEdit()});else if(i.navigation.stage===e){let c=i.order?.accessories||[];o.innerHTML=`
|
|
444
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
445
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
446
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("accessories.heading")}</h4>
|
|
447
|
+
<div class="waykeecom-content">
|
|
448
|
+
<p class="waykeecom-content__p">${a.t("accessories.description")}</p>
|
|
449
|
+
</div>
|
|
450
|
+
</div>
|
|
451
|
+
</div>
|
|
452
|
+
|
|
453
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${sl}"></div>
|
|
454
|
+
|
|
455
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
456
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${tl}"></div>
|
|
457
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${il}"></div>
|
|
458
|
+
</div>
|
|
459
|
+
`,new rv(o.querySelector(`#${sl}`),{store:t,accessories:c}),new xe(o.querySelector(`#${tl}`),{id:Iu,title:a.t("accessories.proceedButton"),onClick:()=>this.onProceed()}),new Wt(o.querySelector(`#${il}`),{title:a.t("accessories.skipButton"),onClick:()=>this.onProceed()})}r.appendChild(o),i.navigation.stage===e&&r.parentElement?.scrollIntoView()}},cv=ov,nl="waykeecom-input-error",lv=class extends S{constructor(t,e){super(t),this.props=e,this.render()}setError(t){this.props.error=t,this.render()}render(){let{error:t,errorMessage:e}=this.props,i=this.node.querySelector(`.${nl}`);if(i)t||i.remove();else if(t){let s=document.createElement("div");s.className=nl,s.setAttribute("aria-live","assertive"),s.innerHTML=e,this.node.appendChild(s),this.props.id&&(s.id=this.props.id)}}},Rs=lv,rl="waykeecom-input-label__help",al="waykeecom-input-label__foldout",dv=class extends S{constructor(t,e){super(t),this.open=!1,this.props=e,this.render()}onClick(){this.open=!this.open,this.props.onClickInformation&&this.props.onClickInformation(this.open),this.render()}render(){let{information:t}=this.props;if(t){let e=this.node.querySelector(`.${rl}`),i=this.node.querySelector(`.${al}`),s=e||document.createElement("div");if(e||(s.className=rl),this.open){s.innerHTML=`
|
|
460
|
+
<button class="waykeecom-input-label__help-btn" title="${a.t("glossary.whatDoesThisMean")}">
|
|
461
|
+
<span class="waykeecom-sr-only">${a.t("glossary.closeHelp")}</span>
|
|
462
|
+
<svg
|
|
463
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
464
|
+
viewBox="0 0 16 16"
|
|
465
|
+
class="waykeecom-icon"
|
|
466
|
+
aria-hidden="true"
|
|
467
|
+
data-icon="Close circle"
|
|
468
|
+
>
|
|
469
|
+
<path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zm3.5-8.1L9.4 8l2.1 2.1-1.4 1.4L8 9.4l-2.1 2.1-1.4-1.4L6.6 8 4.5 5.9l1.4-1.4L8 6.6l2.1-2.1 1.4 1.4z" />
|
|
470
|
+
</svg>
|
|
471
|
+
</button>
|
|
472
|
+
`;let n=document.createElement("div");n.className=al,n.innerHTML=t,s.parentNode?.appendChild(n)}else i?.remove(),s.innerHTML=`
|
|
473
|
+
<button class="waykeecom-input-label__help-btn" title="${a.t("glossary.whatDoesThisMean")}">
|
|
474
|
+
<span class="waykeecom-sr-only">${a.t("glossary.showHelp")}</span>
|
|
475
|
+
<svg
|
|
476
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
477
|
+
viewBox="0 0 16 16"
|
|
478
|
+
class="waykeecom-icon"
|
|
479
|
+
aria-hidden="true"
|
|
480
|
+
data-icon="Questionmark circle"
|
|
481
|
+
>
|
|
482
|
+
<path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zm-1.4-3.8h1.9V12H6.6v-1.8zm3.8-3.4c0 1-.5 1.5-1.4 2l-.4.3c-.3.1-.3.2-.3.4v.1H6.7v-.3c0-.6.1-.9.8-1.3l.7-.4c.3-.2.6-.4.6-.8s-.3-.7-.7-.7c-.5 0-.8.3-.8.8v.3H5.7v-.4c0-1.2.8-2 2.3-2 1.5 0 2.4.7 2.4 2z" />
|
|
483
|
+
</svg>
|
|
484
|
+
</button>
|
|
485
|
+
`;s.querySelector("button")?.addEventListener("click",()=>this.onClick()),e||this.node.appendChild(s)}}},Ds=dv,uv=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{id:t,title:e,value:i,name:s,checked:n,meta:r,description:o,disabled:c,onClick:l}=this.props;this.node.innerHTML=`
|
|
486
|
+
<div class="waykeecom-input-selection" role="radio">
|
|
487
|
+
<input
|
|
488
|
+
type="radio"
|
|
489
|
+
id="${t}"
|
|
490
|
+
value="${i}"
|
|
491
|
+
name="${s}"
|
|
492
|
+
${n?'checked="true"':""}
|
|
493
|
+
${c?'disabled=""':""}
|
|
494
|
+
class="waykeecom-input-selection__input"
|
|
495
|
+
/>
|
|
496
|
+
<div class="waykeecom-input-selection__header">
|
|
497
|
+
<label for="${t}" class="waykeecom-input-selection__label">${e}</label>
|
|
498
|
+
${r?`<div class="waykeecom-input-selection__meta">${r}</div>`:""}
|
|
499
|
+
</div>
|
|
500
|
+
${o?`
|
|
501
|
+
<label for="${t}" class="waykeecom-input-selection__description">
|
|
502
|
+
${o}
|
|
503
|
+
</label>
|
|
504
|
+
`:""}
|
|
505
|
+
</div>
|
|
506
|
+
`;let u=this.node.querySelector(`#${t}`);u&&l&&u.addEventListener("click",l)}},br=uv,hv=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.render()}updateBorder(){let t=this.node.querySelector(".waykeecom-input-text");t&&(this.props.error?t?.classList.add("waykeecom-input-text--has-error"):t?.classList.remove("waykeecom-input-text--has-error"))}setError(t){this.props.error=t,this.updateBorder(),this.contexts.error?.setError(t)}render(){let{title:t,options:e,name:i,checked:s,error:n,errorMessage:r,information:o,footer:c,onClick:l,onClickInformation:u}=this.props;this.node.innerHTML=`
|
|
507
|
+
<fieldset class="waykeecom-input-group" role="radiogroup" aria-required="true">
|
|
508
|
+
${t?`<legend class="waykeecom-input-label"><div class="waykeecom-input-label__label">${t}</div></legend>`:""}
|
|
509
|
+
${e.map(d=>`<div class="waykeecom-input-group__item" id="${d.id}-node"></div>`).join("")}
|
|
510
|
+
${c?`<div class="waykeecom-input-group__footer">${c}</div>`:""}
|
|
511
|
+
</fieldset>
|
|
512
|
+
`,this.updateBorder(),r&&(this.contexts.error=new Rs(this.node,{error:n,errorMessage:r})),e.forEach(d=>new br(this.node.querySelector(`#${d.id}-node`),{id:d.id,name:i,title:d.title||d.value,value:d.value,checked:s===d.value,description:d.description,meta:d.meta,onClick:p=>l(p)})),o&&new Ds(this.node.querySelector(".waykeecom-input-label"),{information:o,onClickInformation:u})}},Ct=hv,bu=(t,e)=>{let i=e?We.newOptionsRequest().forVehicle(t).forDealer(e):We.newOptionsRequest().forVehicle(t);return We.getOptions(i.build())},pv=({tone:t,children:e,polite:i})=>`
|
|
513
|
+
<div class="waykeecom-alert ${t?`waykeecom-alert--${t}`:""}" role="${i?"status":"alert"}" ${i?'aria-live="polite"':""}>
|
|
514
|
+
<div class="waykeecom-alert__icon">
|
|
515
|
+
<div class="waykeecom-alert__icon-badge">
|
|
516
|
+
<svg
|
|
517
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
518
|
+
viewBox="0 0 16 16"
|
|
519
|
+
class="waykeecom-icon"
|
|
520
|
+
data-icon="Info"
|
|
521
|
+
>
|
|
522
|
+
<path d="M7 6h2v8H7V6zm0-4v2h2V2H7z" />
|
|
523
|
+
</svg>
|
|
524
|
+
</div>
|
|
525
|
+
</div>
|
|
526
|
+
<div class="waykeecom-alert__content">
|
|
527
|
+
${e}
|
|
528
|
+
</div>
|
|
529
|
+
</div>
|
|
530
|
+
`,oe=pv,Su="button-central-storage-proceed",ol=`${Su}-node`,mv="central-storage-branch",cl=`${mv}-node`,fv=class extends S{constructor(t,e){super(t),this.requestError=!1,this.contexts={},this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.selectedDealer=this.props.store.getState().dealer,this.render()}async updateOrder(t){this.requestError&&(this.requestError=!1,this.render());let{id:e,vehicle:i}=this.props.store.getState();try{this.contexts.proceedButton?.loading(!0);let s=await bu(e,t),n=Yd(s);if(n.isReserved||n.isUnavailable){this.notOrderable=n.isReserved?"reserved":"unavailable",this.contexts.proceedButton?.loading(!1),this.render();return}this.notOrderable=void 0,v("MAIN","CENTRAL_STORAGE_SET","CENTRAL_STORAGE"),Jd(n,i),Kk(t,this.props.lastStage)(this.props.store.dispatch),this.contexts.proceedButton?.loading(!1)}catch{this.contexts.proceedButton?.loading(!1),this.requestError=!0,this.render()}}onChange(t){let e=t.currentTarget.value;this.selectedDealer=e,this.contexts.proceedButton?.disabled(!1),v("MAIN","CENTRAL_STORAGE_SELECTED","CENTRAL_STORAGE")}onEdit(){v("MAIN","CENTRAL_STORAGE_EDIT","CENTRAL_STORAGE"),Qe("main",this.props.index)(this.props.store.dispatch)}onProceed(){this.selectedDealer&&this.updateOrder(this.selectedDealer)}render(){let{order:t,navigation:e,topNavigation:i,createdOrderId:s}=this.props.store.getState(),{index:n}=this.props,r=t?.dealerSites||[],o=i.stage>n,c=e.stage===n;c&&v("MAIN","CENTRAL_STORAGE_ACTIVE","CENTRAL_STORAGE");let l=ft(this.node,{completed:o,active:c,title:a.t("centralStorage.title"),id:"central-storage",index:n});if((e.stage>n||o&&e.stage!==n)&&this.selectedDealer){let u=r.find(d=>d.id===this.selectedDealer);new Ri(l,{keyValueList:[{key:a.t("centralStorage.dealerSelection"),value:u?.name||""}],changeButtonTitle:a.t("centralStorage.changeButtonTitle"),onEdit:s?void 0:()=>this.onEdit()})}else if(e.stage===n){l.innerHTML=`
|
|
531
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
532
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("centralStorage.heading")}</h4>
|
|
533
|
+
<div class="waykeecom-content">
|
|
534
|
+
<p class="waykeecom-content__p">${a.t("centralStorage.description")}</p>
|
|
535
|
+
</div>
|
|
536
|
+
</div>
|
|
537
|
+
|
|
538
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${cl}"></div>
|
|
539
|
+
|
|
540
|
+
${this.requestError?`<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("centralStorage.errorMessage")})}</div>`:""}
|
|
541
|
+
|
|
542
|
+
${this.notOrderable?`<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"warning",children:a.t(this.notOrderable==="reserved"?"preview.reserved":"preview.unavailable")})}</div>`:""}
|
|
543
|
+
|
|
544
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${ol}"></div>
|
|
545
|
+
`;let u=r.map(d=>{let p=!d.location?.address||!d.location?.city?a.t("centralStorage.addressMissing"):`${d.location?.address}, ${d.location?.city}`;return{id:`central-storage-${d.id}`,value:d.id,title:d.name,description:`
|
|
546
|
+
<div class="waykeecom-box">
|
|
547
|
+
<div class="waykeecom-icon-content">
|
|
548
|
+
<div class="waykeecom-icon-content__icon">
|
|
549
|
+
<svg
|
|
550
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
551
|
+
viewBox="0 0 16 16"
|
|
552
|
+
class="waykeecom-icon"
|
|
553
|
+
data-icon="Location pin"
|
|
554
|
+
>
|
|
555
|
+
<path d="M12.2 2C11.1.9 9.6.3 8 .3S4.9.9 3.8 2C2.6 3.2 2 4.7 2 6.3 2 9 5.3 12.9 7.3 15l.7.7.7-.7c2-2.1 5.3-6 5.3-8.7 0-1.6-.6-3.1-1.8-4.3zM8 12.8C5.5 10 4 7.6 4 6.3c0-1.1.4-2.1 1.2-2.9.7-.7 1.7-1.1 2.8-1.1 1.1 0 2.1.4 2.8 1.2.8.7 1.2 1.7 1.2 2.8 0 1.3-1.5 3.7-4 6.5zm2-6.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z" />
|
|
556
|
+
</svg>
|
|
557
|
+
</div>
|
|
558
|
+
<div class="waykeecom-icon-content__content">
|
|
559
|
+
<div class="waykeecom-icon-content__meta">
|
|
560
|
+
${p}
|
|
561
|
+
</div>
|
|
562
|
+
</div>
|
|
563
|
+
</div>
|
|
564
|
+
</div>`}});new Ct(l.querySelector(`#${cl}`),{checked:this.selectedDealer,name:"dealer",options:u,onClick:d=>this.onChange(d)}),this.contexts.proceedButton=new xe(l.querySelector(`#${ol}`),{title:a.t("centralStorage.proceedButton"),id:Su,disabled:!this.selectedDealer,onClick:()=>this.onProceed()})}e.stage===n&&l.parentElement?.scrollIntoView()}},gv=fv,Cs=t=>t.length<2?t:t.length===2?`${t.substring(0,1)}***`:t.length===3?`${t.substring(0,2)}***`:`${t.substring(0,3)}***`,Cu=t=>`${t.substring(0,t.length-4)}****`,kv=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.render()}updateBorder(){let t=this.node.querySelector(".waykeecom-input-text");t&&(this.props.error?t?.classList.add("waykeecom-input-text--has-error"):t?.classList.remove("waykeecom-input-text--has-error"))}setError(t,e){this.props.error=t,e&&(this.props.errorMessage=e),this.updateBorder(),this.contexts.error?.setError(t);let{id:i}=this.props;t?(document.getElementById(i)?.setAttribute("aria-invalid","true"),document.getElementById(i)?.setAttribute("aria-describedby",`${i}-error`)):(document.getElementById(i)?.removeAttribute("aria-invalid"),document.getElementById(i)?.removeAttribute("aria-describedby"))}render(){let{id:t,title:e,type:i,name:s,min:n,value:r,autocomplete:o,placeholder:c,unit:l,error:u,errorMessage:d,information:p,pattern:h,inputmode:m,help:b,onChange:_,onBlur:f,onClickInformation:g}=this.props;this.node.innerHTML=`
|
|
565
|
+
<div class="waykeecom-input-label">
|
|
566
|
+
<label for="${t}" class="waykeecom-input-label__label">${e}</label>
|
|
567
|
+
</div>
|
|
568
|
+
<div class="waykeecom-input-text">
|
|
569
|
+
<input
|
|
570
|
+
${i?`type="${i}"`:'type="text"'}
|
|
571
|
+
${i==="number"?'pattern="[0-9]*" inputmode="numeric"':""}
|
|
572
|
+
id="${t}"
|
|
573
|
+
${h?`pattern="${h}"`:""}
|
|
574
|
+
${m?`inputmode="${m}"`:""}
|
|
575
|
+
value="${r}"
|
|
576
|
+
name="${s}"
|
|
577
|
+
${n!==void 0?`min="${n}"`:""}
|
|
578
|
+
${o?`autocomplete="${o}"`:""}
|
|
579
|
+
${c?`placeholder="${c}"`:""}
|
|
580
|
+
${b?`aria-describedby="${t}-help"`:""}
|
|
581
|
+
class="waykeecom-input-text__input"
|
|
582
|
+
/>
|
|
583
|
+
${l?`<div class="waykeecom-input-text__unit">${l}</div>`:""}
|
|
584
|
+
</div>
|
|
585
|
+
${b?`<div class="waykeecom-input-help" id="${t}-help">${b}</div>`:""}
|
|
586
|
+
`,this.updateBorder(),d&&(this.contexts.error=new Rs(this.node,{error:u,errorMessage:d,id:`${t}-error`})),p&&new Ds(this.node.querySelector(".waykeecom-input-label"),{information:p,onClickInformation:g});let y=this.node.querySelector("input");y&&(_&&y.addEventListener("input",_),f&&y.addEventListener("blur",f))}},ge=kv,yv=/\S+@\S+\.\S+/,vv=/^[0-9\-\+\(\)\ ]+$/,wv=/^[0-9\ \-]+$/,Ev=/^(19|20)(\d{6}(-|\s)\d{4}|(?!19|20)\d{10})$/,xv=/[a-zA-Z]{3}\d{2}(d||[a-zA-Z]){1}/,Iv=/^[A-Z]{2}\d{5}$/,Au=/\D/g,ne={requiredEmail:t=>yv.test(t),requiredTelephone:t=>vv.test(t),requiredSsn:t=>Ev.test(t),requiredSsnOver18:t=>{if(ne.requiredSsn(t)){let e=t.replace(Au,"").slice(0,8),i=`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}`;return new Date(new Date().valueOf()-new Date(i).valueOf()).getFullYear()-1970>17}return!1},requiredZip:t=>wv.test(t),requiredNumberOrStringNumberInRange:(t,e,i)=>{let s=parseInt(t.toString(),10);return isNaN(s)?!1:s>=e&&s<=i},requiredNumber:t=>t!=null&&!Number.isNaN(+t),requiredNumberGreaterOrEqualThanZero:t=>{if(t==null)return!1;let e=parseInt(t.toString(),10);return!Number.isNaN(e)&&e>=0},optionalNumberGreaterOrEqualThanZero:t=>{if(t==null||typeof t=="string"&&!t)return!0;let e=parseInt(t.toString(),10);return!Number.isNaN(e)&&e>=0},optionalNumber:t=>t==null||!Number.isNaN(+t),requiredRegistrationNumber:(t,e)=>{if(!t)return!1;let i=t.replace(" ",""),s=e==="SE"?i.length===6:i.length===7,n=e==="SE"?xv.test(i):Iv.test(i);return s&&n},requiredMileage:t=>ne.requiredNumberOrStringNumberInRange(t||"",0,8e4),optionalString:t=>!!t||!t,requiredCondition:t=>["VeryGood","Good","Ok"].includes(t||""),requiredAssessmentMaritalStatus:t=>["married","single","commonLaw"].includes(t||""),requiredAssessmentEmplyment:t=>["other","retired","fullTimeEmployed","student","temporarilyEmployed","selfEmployed"].includes(t||""),requiredHousingType:t=>["singleFamily","condominium","apartment"].includes(t||""),requiredName:t=>!!t,requiredCity:t=>!!t,requiredStreet:t=>!!t,requiredStreet2:t=>!0},ll="contact-email-node",bv="contact-email",dl="contact-phone-node",Sv="contact-phone",ul="contact-proceed-node",Cv="contact-proceed",As={email:ne.requiredEmail,phone:ne.requiredTelephone},Av=t=>{let e={email:t?.email||"",phone:t?.phone||""};return{value:e,validation:{email:As.email(e.email),phone:As.phone(e.phone)},interact:{email:!1,phone:!1}}},Nv=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.contexts={},this.props=e;let i=this.props.store.getState();this.state=Av(i.customer),this.render()}onChange(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=As[i](s),this.updateUiError(i),this.updateProceedButton()}onBlur(t){let e=t.currentTarget.name;this.state.interact[e]=!0,this.state.validation[e]=As[e](this.state.value[e]),this.updateUiError(e),this.updateProceedButton()}updateUiError(t){this.contexts[t]?.setError(this.state.interact[t]&&!this.state.validation[t])}updateProceedButton(){this.contexts.button?.disabled(!this.state.validation.email||!this.state.validation.phone)}onProceed(){v("MAIN","CUSTOMER_EMAIL_AND_PHONE_SET","CUSTOMER_EMAIL_AND_PHONE"),Gk({email:this.state.value.email.trim(),phone:this.state.value.phone.trim()})(this.props.store.dispatch)}onChangeContacts(){v("MAIN","CUSTOMER_EDIT","CUSTOMER_EMAIL_AND_PHONE"),Qe("main",1)(this.props.store.dispatch)}render(){let t=this.props.store.getState().navigation.subStage;if(t>1){let e=[{key:a.t("customer.email"),value:this.state.value.email},{key:a.t("customer.phone"),value:this.state.value.phone}];this.node.innerHTML=`
|
|
587
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
588
|
+
<ul class="waykeecom-key-value-list">
|
|
589
|
+
${e.map(i=>W(i)).join("")}
|
|
590
|
+
</ul>
|
|
591
|
+
</div>
|
|
592
|
+
`,t<=2&&(this.node.innerHTML+=`
|
|
593
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
594
|
+
<div class="waykeecom-align waykeecom-align--end">
|
|
595
|
+
<button type="button" title="${a.t("customer.changeContactsButton")}" class="waykeecom-link" id="change-contacts">${a.t("customer.changeContactsButton")}</button>
|
|
596
|
+
</div>
|
|
597
|
+
</div>
|
|
598
|
+
`)}else this.node.innerHTML=`
|
|
599
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
600
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("customer.contactInfoTitle")}</h4>
|
|
601
|
+
<div class="waykeecom-content">
|
|
602
|
+
<p class="waykeecom-content__p">${a.t("customer.contactInfoDescription")}</p>
|
|
603
|
+
</div>
|
|
604
|
+
</div>
|
|
605
|
+
|
|
606
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
607
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${ll}"></div>
|
|
608
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${dl}"></div>
|
|
609
|
+
</div>
|
|
610
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${ul}"></div>
|
|
611
|
+
`,this.contexts.email=new ge(this.node.querySelector(`#${ll}`),{title:a.t("customer.email"),value:this.state.value.email,id:bv,error:this.state.interact.email&&!this.state.validation.email,errorMessage:a.t("customer.emailErrorMessage"),name:"email",autocomplete:"email",placeholder:a.t("customer.emailPlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.phone=new ge(this.node.querySelector(`#${dl}`),{title:a.t("customer.phone"),value:this.state.value.phone,id:Sv,error:this.state.interact.phone&&!this.state.validation.phone,errorMessage:a.t("customer.phoneErrorMessage"),name:"phone",autocomplete:"tel",placeholder:a.t("customer.phonePlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.button=new xe(this.node.querySelector(`#${ul}`),{title:a.t("customer.proceedButton"),id:Cv,disabled:!(this.state.validation.email&&this.state.validation.phone),onClick:()=>this.onProceed()});this.node.querySelector("#change-contacts")?.addEventListener("click",()=>this.onChangeContacts())}},_v=Nv,Tv=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){this.node.innerHTML=`
|
|
612
|
+
<div class="waykeecom-disclaimer">
|
|
613
|
+
<div class="waykeecom-disclaimer__icon" aria-hidden="true">
|
|
614
|
+
<svg
|
|
615
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
616
|
+
viewBox="0 0 16 16"
|
|
617
|
+
class="waykeecom-icon"
|
|
618
|
+
data-icon="Padlock"
|
|
619
|
+
>
|
|
620
|
+
<path d="M13 6h-1V4c0-2.2-1.8-4-4-4S4 1.8 4 4v2H3c-1.1 0-2 .9-2 2v8h14V8c0-1.1-.9-2-2-2zM6 4c0-1.1.9-2 2-2s2 .9 2 2v2H6V4zm7 10H3V8h10v6z" />
|
|
621
|
+
</svg>
|
|
622
|
+
</div>
|
|
623
|
+
<span class="waykeecom-disclaimer__text">${this.props.text}</span>
|
|
624
|
+
</div>
|
|
625
|
+
`}},Pr=Tv,Rv=t=>{let e=Zt.newAddressLookupRequest().forCustomer(t).build();return Zt.lookupAddress(e)},Dv=(t,e)=>t?e:"",cr="contact-socialId-node",Os="contact-socialId",Ov="contact-social-id-info",Lv=`${Os}-proceed`,hl=`${Os}-proceed-node`,pl=`${Os}-disclaimer-node`,Sr={socialId:ne.requiredSsnOver18},Mv=t=>{let e={socialId:t?.socialId||""};return{value:e,validation:{socialId:Sr.socialId(e.socialId)},interact:{socialId:!1}}},$v=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.requestError=!1,this.contexts={},this.props=e;let i=this.props.store.getState();this.state=Mv(i.customer),this.render()}async onFetchAddress(){let{store:t,lastStage:e}=this.props;this.requestError=!1,this.render();try{v("MAIN","CUSTOMER_ADDRESS_BY_SSN_REQUESTED","CUSTOMER_ADDRESS"),this.contexts.buttonFetch?.loading(!0);let i=await Rv(this.state.value.socialId);v("MAIN","CUSTOMER_ADDRESS_BY_SSN_SUCCEEDED","CUSTOMER_ADDRESS");let s=i.getAddress();Wk(this.state.value.socialId.replace(Au,""),s,e)(t.dispatch),v("MAIN","CUSTOMER_ADDRESS_SET","CUSTOMER_ADDRESS")}catch{this.requestError=!0,v("MAIN","CUSTOMER_ADDRESS_BY_SSN_FAILED","CUSTOMER_ADDRESS")}finally{this.contexts.buttonFetch?.loading(!1),this.render()}}onChange(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=Sr[i](s),this.updateUiError(i),this.updateProceedButton()}onBlur(t){let e=t.currentTarget.name;this.state.interact[e]=!0,this.state.validation[e]=Sr[e](this.state.value[e]),this.updateUiError(e),this.updateProceedButton()}updateUiError(t){this.contexts[t]?.setError(this.state.interact[t]&&!this.state.validation[t])}updateProceedButton(){this.contexts.buttonFetch?.disabled(!this.state.validation.socialId)}render(){let t="https://www.wayke.se/trygghet-naer-det-kommer-till-dina-personuppgifter";this.node.innerHTML=`
|
|
626
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
627
|
+
<hr class="waykeecom-separator" />
|
|
628
|
+
</div>
|
|
629
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
630
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
631
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("customer.personalInfoTitle")}</h4>
|
|
632
|
+
<div class="waykeecom-content">
|
|
633
|
+
<p class="waykeecom-content__p">${a.t("customer.personalInfoDescription")}</p>
|
|
634
|
+
</div>
|
|
635
|
+
</div>
|
|
636
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${cr}"></div>
|
|
637
|
+
|
|
638
|
+
${Dv(this.requestError,`
|
|
639
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${cr}">
|
|
640
|
+
${oe({tone:"error",children:a.t("customer.fetchErrorMessage")})}
|
|
641
|
+
</div>`)}
|
|
642
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Ov}">
|
|
643
|
+
${oe({tone:"info",children:`
|
|
644
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
645
|
+
<p class="waykeecom-content__p">${a.t("customer.fetchInfoMessage")}</p>
|
|
646
|
+
<ul class="waykeecom-content__ul">
|
|
647
|
+
<li class="waykeecom-content__li">${a.t("customer.name")}</li>
|
|
648
|
+
<li class="waykeecom-content__li">${a.t("customer.registeredAddress")}</li>
|
|
649
|
+
</ul>
|
|
650
|
+
</div>
|
|
651
|
+
`})}
|
|
652
|
+
</div>
|
|
653
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
654
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${hl}"></div>
|
|
655
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${pl}"></div>
|
|
656
|
+
</div>
|
|
657
|
+
</div>
|
|
658
|
+
`,this.contexts.socialId=new ge(this.node.querySelector(`#${cr}`),{title:"Personnummer",value:this.state.value.socialId,id:Os,error:this.state.interact.socialId&&!this.state.validation.socialId,errorMessage:a.t("customer.socialIdErrorMessage"),name:"socialId",placeholder:a.t("customer.socialIdPlaceholder"),pattern:"[0-9]*",inputmode:"numeric",onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),Object.keys(this.state.value).forEach(e=>this.updateUiError(e)),this.contexts.buttonFetch=new xe(this.node.querySelector(`#${hl}`),{title:a.t("customer.fetchButton"),id:Lv,disabled:!this.state.validation.socialId,onClick:()=>this.onFetchAddress()}),new Pr(this.node.querySelector(`#${pl}`),{text:a.t("customer.policyText",{policy:t,link:`<a href="${t}" title="${a.t("confirmation.privacyPolicy")}" target="_blank" rel="noopener noreferrer" class="waykeecom-link">${a.t("confirmation.privacyPolicy")}</a>`,interpolation:{escapeValue:!1}})}),this.updateProceedButton()}},Fv=$v,ml="contact-givenname-node",Bv="contact-givenname",fl="contact-surname-node",Pv="contact-surname",gl="contact-street-node",Uv="contact-street",kl="contact-street2-node",qv="contact-street2",yl="contact-postalcode-node",jv="contact-postalcode",vl="contact-city-node",Vv="contact-city",wl="contact-proceed-node",Hv="contact-proceed",mt={givenName:ne.requiredName,surname:ne.requiredName,street:ne.requiredStreet,street2:ne.requiredStreet2,postalCode:ne.requiredZip,city:ne.requiredCity},Gv=t=>{let e={givenName:t?.givenName||"",surname:t?.surname||"",street:t?.street||"",street2:t?.street2||"",postalCode:t?.postalCode||"",city:t?.city||""};return{value:e,validation:{givenName:mt.givenName(e.givenName),surname:mt.surname(e.surname),street:mt.street(e.street),street2:mt.street2(e.street2),postalCode:mt.postalCode(e.postalCode),city:mt.city(e.city)},interact:{givenName:!1,surname:!1,street:!1,street2:!1,postalCode:!1,city:!1}}},Wv=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.contexts={},this.props=e;let i=this.props.store.getState();this.state=Gv(i.address),this.render()}onChange(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=mt[i](s),this.updateUiError(i),this.updateProceedButton()}onBlur(t){let e=t.currentTarget.name;this.state.interact[e]=!0,this.state.validation[e]=mt[e](this.state.value[e]),this.updateUiError(e),this.updateProceedButton()}updateUiError(t){this.contexts[t]?.setError(this.state.interact[t]&&!this.state.validation[t])}updateProceedButton(){this.contexts.button?.disabled(!this.state.validation.givenName||!this.state.validation.surname||!this.state.validation.street||!this.state.validation.street2||!this.state.validation.postalCode||!this.state.validation.city)}onProceed(){v("MAIN","CUSTOMER_ADDRESS_SET","CUSTOMER_ADDRESS"),Yk({givenName:this.state.value.givenName.trim(),surname:this.state.value.surname.trim(),name:`${this.state.value.givenName.trim()} ${this.state.value.surname.trim()}`,street:this.state.value.street.trim(),street2:this.state.value.street2.trim(),postalCode:this.state.value.postalCode.trim(),city:this.state.value.city.trim()},this.props.lastStage)(this.props.store.dispatch)}onChangeAddress(){v("MAIN","CUSTOMER_ADDRESS_EDIT","CUSTOMER_ADDRESS"),Qe("main",2)(this.props.store.dispatch)}render(){let t=this.props.store.getState().navigation.subStage;if(t>2){let e=[{key:a.t("customer.givenName"),value:this.state.value.givenName},{key:a.t("customer.surname"),value:this.state.value.surname},{key:a.t("customer.street"),value:this.state.value.street},{key:a.t("customer.street2"),value:this.state.value.street2},{key:a.t("customer.postalCode"),value:this.state.value.postalCode},{key:a.t("customer.city"),value:this.state.value.city}];this.node.innerHTML=`
|
|
659
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
660
|
+
<ul class="waykeecom-key-value-list">
|
|
661
|
+
${e.map(i=>W(i)).join("")}
|
|
662
|
+
</ul>
|
|
663
|
+
</div>
|
|
664
|
+
`,t<=2&&(this.node.innerHTML+=`
|
|
665
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
666
|
+
<div class="waykeecom-align waykeecom-align--end">
|
|
667
|
+
<button type="button" title="${a.t("customer.changeContactsButton")}" class="waykeecom-link" id="change-address">${a.t("customer.changeContactsButton")}</button>
|
|
668
|
+
</div>
|
|
669
|
+
</div>
|
|
670
|
+
`)}else this.node.innerHTML=`
|
|
671
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
672
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("customer.contactInfoTitle")}</h4>
|
|
673
|
+
<div class="waykeecom-content">
|
|
674
|
+
<p class="waykeecom-content__p">${a.t("customer.contactInfoDescription")}</p>
|
|
675
|
+
</div>
|
|
676
|
+
</div>
|
|
677
|
+
|
|
678
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
679
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${ml}"></div>
|
|
680
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${fl}"></div>
|
|
681
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${gl}"></div>
|
|
682
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${kl}"></div>
|
|
683
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${yl}"></div>
|
|
684
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${vl}"></div>
|
|
685
|
+
</div>
|
|
686
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${wl}"></div>
|
|
687
|
+
`,this.contexts.givenName=new ge(this.node.querySelector(`#${ml}`),{title:a.t("customer.givenName"),value:this.state.value.givenName,id:Bv,error:this.state.interact.givenName&&!this.state.validation.givenName,errorMessage:a.t("customer.givenNameErrorMessage"),name:"givenName",autocomplete:"text",placeholder:a.t("customer.givenNamePlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.surname=new ge(this.node.querySelector(`#${fl}`),{title:a.t("customer.surname"),value:this.state.value.surname,id:Pv,error:this.state.interact.surname&&!this.state.validation.surname,errorMessage:a.t("customer.surnameErrorMessage"),name:"surname",autocomplete:"text",placeholder:a.t("customer.surnamePlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.street=new ge(this.node.querySelector(`#${gl}`),{title:a.t("customer.street"),value:this.state.value.street,id:Uv,error:this.state.interact.street&&!this.state.validation.street,errorMessage:a.t("customer.streetErrorMessage"),name:"street",autocomplete:"text",placeholder:a.t("customer.streetPlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.street2=new ge(this.node.querySelector(`#${kl}`),{title:a.t("customer.street2"),value:this.state.value.street2,id:qv,error:this.state.interact.street2&&!this.state.validation.street2,errorMessage:a.t("customer.street2ErrorMessage"),name:"street2",autocomplete:"text",placeholder:a.t("customer.street2Placeholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.postalCode=new ge(this.node.querySelector(`#${yl}`),{title:a.t("customer.postalCode"),value:this.state.value.postalCode,id:jv,error:this.state.interact.postalCode&&!this.state.validation.postalCode,errorMessage:a.t("customer.postalCodeErrorMessage"),name:"postalCode",autocomplete:"text",placeholder:a.t("customer.postalCodePlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.city=new ge(this.node.querySelector(`#${vl}`),{title:a.t("customer.city"),value:this.state.value.city,id:Vv,error:this.state.interact.city&&!this.state.validation.city,errorMessage:a.t("customer.cityErrorMessage"),name:"city",autocomplete:"text",placeholder:a.t("customer.cityPlaceholder"),onChange:e=>this.onChange(e),onBlur:e=>this.onBlur(e)}),this.contexts.button=new xe(this.node.querySelector(`#${wl}`),{title:a.t("customer.proceedButton"),id:Hv,disabled:!(this.state.validation.givenName&&this.state.validation.surname&&this.state.validation.street&&this.state.validation.street2&&this.state.validation.postalCode&&this.state.validation.city),onClick:()=>this.onProceed()});this.node.querySelector("#change-address")?.addEventListener("click",()=>this.onChangeAddress())}},Yv=Wv,zv=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.props=e;let i=this.props.store.getState();this.state=i.customer,this.render()}render(){let{store:t,lastStage:e}=this.props;if(t.getState().navigation.subStage>2){let i=[{key:a.t("customer.socialId"),value:this.state.socialId}];this.node.innerHTML=`
|
|
688
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
689
|
+
<ul class="waykeecom-key-value-list">
|
|
690
|
+
${i.map(s=>W(s)).join("")}
|
|
691
|
+
</ul>
|
|
692
|
+
</div>
|
|
693
|
+
`}else this.props.marketCode==="SE"?(this.node.innerHTML="",new Fv(this.node,{store:t,lastStage:e})):(this.node.innerHTML="",new Yv(this.node,{store:t,lastStage:e}))}},Kv=zv,Jv=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.render()}onChange(){v("MAIN","CUSTOMER_EDIT","CUSTOMER_EMAIL_AND_PHONE"),Qe("main",this.props.index)(this.props.store.dispatch)}render(){let{store:t,index:e,lastStage:i}=this.props,s=this.props.store.getState(),n=s.topNavigation.stage>e,r=s.navigation.stage===e&&!s.createdOrderId;r&&v("MAIN","CUSTOMER_ACTIVE",s.navigation.subStage===1?"CUSTOMER_EMAIL_AND_PHONE":"CUSTOMER_ADDRESS");let o=ft(this.node,{completed:n,title:a.t("customer.title"),active:r,id:"customer",index:e});o.innerHTML="";let c=document.createElement("div");c.className="waykeecom-stack waykeecom-stack--2";let l=document.createElement("div");if(l.className="waykeecom-stack waykeecom-stack--2",s.navigation.stage>e||n&&s.navigation.stage!==e){let u=[{key:a.t("customer.email"),value:s.customer.email},{key:a.t("customer.phone"),value:s.customer.phone},...this.props.marketCode==="SE"?[{key:a.t("customer.socialId"),value:Cu(s.customer.socialId)}]:[],...s.address?[{key:a.t("customer.name"),value:this.props.marketCode==="SE"?`${Cs(s.address.givenName)} ${Cs(s.address.surname)}`:`${s.address.givenName} ${s.address.surname}`},{key:a.t("customer.address"),value:s.address.street},{key:a.t("customer.postalCode"),value:s.address.postalCode},{key:a.t("customer.city"),value:s.address.city}]:[]];new Ri(o,{keyValueList:u,changeButtonTitle:a.t("customer.changeButtonTitle"),onEdit:s.createdOrderId?void 0:()=>this.onChange()})}else s.navigation.stage===e&&(new _v(o,{store:t}),s.navigation.subStage>1&&new Kv(o,{store:t,lastStage:i,marketCode:this.props.marketCode}));s.navigation.stage===e&&o.parentElement?.scrollIntoView()}},Qv=Jv,Xv=(t,e)=>{if(t)return t.unit==="m"&&e.unit==="km"?Math.round(t.value/1e3):t.unit==="km"&&e.unit==="m"?t.value*1e3:t.value},Zv=(t,e)=>{let i=Xv(t,e);if(i&&e.unitPrice)return e.startupCost+e.unitPrice*i},Nu="radio-home-delivery-true",El=`${Nu}-node`,_u="radio-home-delivery-false",xl=`${_u}-node`,Tu="button-home-delivery-proceed",Il=`${Tu}-node`,ew=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{this.render()});let i=this.props.store.getState();this.homeDelivery=i.homeDelivery,this.render()}onChange(t){let e=t.currentTarget.value==="true";this.homeDelivery=e,v("MAIN",this.homeDelivery?"DELIVERY_HOME_SELECTED":"DELIVERY_DEALER_SELECTED","DELIVERY")}onProceed(){zk(this.homeDelivery,this.props.lastStage)(this.props.store.dispatch),v("MAIN",this.homeDelivery?"DELIVERY_HOME_SET":"DELIVERY_DEALER_SET","DELIVERY")}onEdit(){v("MAIN","DELIVERY_EDIT","DELIVERY"),Qe("main",this.props.index)(this.props.store.dispatch)}render(){let{store:t,index:e}=this.props,i=t.getState();if(!i.order)throw"Missing order...";let s=i.order.contactInformation;if(!s)throw"Missing dealer contact information";let n=i.topNavigation.stage>e,r=i.navigation.stage===e;r&&v("MAIN","DELIVERY_ACTIVE","DELIVERY");let o=ft(this.node,{completed:n,title:a.t("delivery.title"),active:r,id:"delivery",index:e});if(i.navigation.stage>e||n&&i.navigation.stage!==e)new Ri(o,{keyValueList:[{key:a.t("delivery.deliveryMethod"),value:i.homeDelivery?a.t("delivery.homeDelivery"):a.t("delivery.pickup")}],changeButtonTitle:a.t("delivery.changeDeliveryMethod"),onEdit:i.createdOrderId?void 0:()=>this.onEdit()});else if(i.navigation.stage===e){let c=document.createElement("div");c.innerHTML=`
|
|
694
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
695
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("delivery.heading")}</h4>
|
|
696
|
+
<div class="waykeecom-content">
|
|
697
|
+
<p class="waykeecom-content__p">${a.t("delivery.description",{name:s.name})}</p>
|
|
698
|
+
</div>
|
|
699
|
+
</div>
|
|
700
|
+
|
|
701
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
702
|
+
<fieldset class="waykeecom-input-group" role="radiogroup" aria-required="true" aria-label="${a.t("delivery.deliveryMethod")}">
|
|
703
|
+
<div class="waykeecom-input-group__item" id="${xl}"></div>
|
|
704
|
+
<div class="waykeecom-input-group__item" id="${El}"></div>
|
|
705
|
+
</fieldset>
|
|
706
|
+
</div>
|
|
707
|
+
|
|
708
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Il}"></div>
|
|
709
|
+
`,i.order.deliveryOptions.forEach(l=>{let u=i.address?.distance,d=Zv(u,l)||0;switch(l.type){case rt.Pickup:new br(c.querySelector(`#${xl}`),{id:Nu,name:"homeDelivery",title:a.t("delivery.pickup"),value:"false",description:`
|
|
710
|
+
<div class="waykeecom-box">
|
|
711
|
+
<div class="waykeecom-icon-content">
|
|
712
|
+
<div class="waykeecom-icon-content__icon">
|
|
713
|
+
<svg
|
|
714
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
715
|
+
viewBox="0 0 16 16"
|
|
716
|
+
class="waykeecom-icon"
|
|
717
|
+
data-icon="Location pin"
|
|
718
|
+
>
|
|
719
|
+
<path d="M12.2 2C11.1.9 9.6.3 8 .3S4.9.9 3.8 2C2.6 3.2 2 4.7 2 6.3 2 9 5.3 12.9 7.3 15l.7.7.7-.7c2-2.1 5.3-6 5.3-8.7 0-1.6-.6-3.1-1.8-4.3zM8 12.8C5.5 10 4 7.6 4 6.3c0-1.1.4-2.1 1.2-2.9.7-.7 1.7-1.1 2.8-1.1 1.1 0 2.1.4 2.8 1.2.8.7 1.2 1.7 1.2 2.8 0 1.3-1.5 3.7-4 6.5zm2-6.5c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z" />
|
|
720
|
+
</svg>
|
|
721
|
+
</div>
|
|
722
|
+
<div class="waykeecom-icon-content__content">
|
|
723
|
+
<div class="waykeecom-icon-content__label">${s.name}</div>
|
|
724
|
+
<div class="waykeecom-icon-content__meta">
|
|
725
|
+
${s.address}, ${s.city}
|
|
726
|
+
</div>
|
|
727
|
+
</div>
|
|
728
|
+
</div>
|
|
729
|
+
</div>
|
|
730
|
+
`,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${d===0?a.t("delivery.free"):B(d,{postfix:"kr"})}</div>`,checked:!this.homeDelivery,onClick:b=>this.onChange(b)});break;case rt.Delivery:let p=i.address?.distance?.value||0,h=l.unitPrice||0,m=p>h;new br(c.querySelector(`#${El}`),{id:_u,name:"homeDelivery",title:a.t("delivery.homeDelivery"),value:"true",disabled:m,description:`<div class="waykeecom-box">
|
|
731
|
+
<div class="waykeecom-stack waykeecom-stack--2">${a.t("delivery.toYourAddress")}</div>
|
|
732
|
+
${m?`<div class="waykeecom-stack waykeecom-stack--2">${oe({tone:"info",children:a.t("delivery.tooFarAway")})}</div>`:""}</div>`,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${m?"-":B(d,{postfix:"kr"})}</div>`,checked:this.homeDelivery,onClick:b=>this.onChange(b)});break;default:break}}),new xe(c.querySelector(`#${Il}`),{title:a.t("delivery.proceedButton"),id:Tu,onClick:()=>this.onProceed()}),o.appendChild(c),i.navigation.stage===e&&o.parentElement?.scrollIntoView()}}},tw=ew,Ur={bankid:"https://cdn.wayke.se/public-assets/bankid-logo.svg",illustrations:{payment:"https://cdn.wayke.se/public-assets/payment.svg"}},qr={VeryGood:"Mycket bra",Good:"Bra",Ok:"Ok"},St={[re.Between0And1000]:"0\u20131000 mil",[re.Between1000And1500]:"1000\u20131500 mil",[re.Between1500And2000]:"1500\u20132000 mil",[re.Between2000And2500]:"2000\u20132500 mil",[re.Over2500]:"2500+ mil"},iw=class extends S{constructor(t,e){super(t,e.append?{htmlTag:"div",className:"waykeecom-accordion"}:void 0),this.props=e,this.render()}render(){let{title:t,description:e,onClick:i}=this.props,s=`
|
|
733
|
+
<input
|
|
734
|
+
type="checkbox"
|
|
735
|
+
id="${this.props.id}"
|
|
736
|
+
class="waykeecom-accordion__checkbox"
|
|
737
|
+
/>
|
|
738
|
+
<label class="waykeecom-accordion__header" for="${this.props.id}">
|
|
739
|
+
<div class="waykeecom-accordion__header-title">${t}</div>
|
|
740
|
+
<div class="waykeecom-accordion__header-icon" aria-hidden="true">
|
|
741
|
+
<svg
|
|
742
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
743
|
+
viewBox="0 0 16 16"
|
|
744
|
+
class="waykeecom-icon"
|
|
745
|
+
data-icon="Chevron down"
|
|
746
|
+
>
|
|
747
|
+
<path d="M6.7 11.4 0 4.6l1.3-1.4L8 10.1l6.7-6.9L16 4.6l-6.7 6.9L8 12.8l-1.3-1.4z" />
|
|
748
|
+
</svg>
|
|
749
|
+
</div>
|
|
750
|
+
</label>
|
|
751
|
+
<div class="waykeecom-accordion__body">${e}</div>
|
|
752
|
+
`;this.props.append&&(this.node.innerHTML=s),this.node.innerHTML=`
|
|
753
|
+
${s}
|
|
754
|
+
`,i&&this.node.querySelector("input")?.addEventListener("click",()=>i())}},Ru=iw,jr=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),sw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{qrCode:t,errorMessage:e}=this.props;if(e){this.node.innerHTML=oe({tone:"error",children:e});return}this.node.innerHTML=`
|
|
755
|
+
${t?`
|
|
756
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
757
|
+
<div class="waykeecom-align waykeecom-align--center">
|
|
758
|
+
<img src="data:image/png;base64, ${t}" alt="BankID QR" class="waykeecom-qr" />
|
|
759
|
+
</div>
|
|
760
|
+
</div>`:""}
|
|
761
|
+
<div class="waykeecom-stack waykeecom-stack--4">${Ve()}</div>`}},nw=sw,rw=class extends S{constructor(t,e){super(t,e.htmlNodesettings),this.props=e,this.render()}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{title:t,id:e,disabled:i,loading:s,onClick:n}=this.props;this.node.innerHTML=`
|
|
762
|
+
<button
|
|
763
|
+
type="button"
|
|
764
|
+
${e?`id="${e}"`:""}
|
|
765
|
+
title="${t}"
|
|
766
|
+
${i&&'disabled=""'}
|
|
767
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--action"
|
|
768
|
+
>
|
|
769
|
+
<span class="waykeecom-button__content">
|
|
770
|
+
${s?Ve({type:"inline"}):`
|
|
771
|
+
<svg
|
|
772
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
773
|
+
viewBox="0 0 16 16"
|
|
774
|
+
class="waykeecom-icon"
|
|
775
|
+
data-icon="BankID"
|
|
776
|
+
>
|
|
777
|
+
<path d="M4.6 11.3h-4c.1-.5 1.1-6.8 1.1-7.2h.7c.5 0 .9-.2 1.1-.6.2-.3.1-.7-.2-.9 0-.1-.1-.2-.1-.3 0-.2.4-.5.9-.5.3 0 .5.1.7.2.1 0 .1.1.1.2s-.2.3-.3.4c-.6.4-.5.8-.5 1 .1.3.6.5.9.5h.7L5 8.3c-.2 1.6-.4 2.8-.4 3zm-2.3 2.8c.4.1.5.4.5.7-.1.5-.5.8-1 .8H0l.4-2.8H2c.7 0 .9.4.8.7 0 .2-.2.4-.5.6zm-.4.6c0-.2-.1-.4-.4-.4h-.3l-.2.9h.3c.4 0 .5-.2.6-.5zm.1-1.1c0-.2-.1-.4-.4-.4h-.3l-.1.7h.3c.3 0 .5-.1.5-.3zm9.2 2h1l.4-2.8h-1l-.4 2.8zm-1.1-2.2-.8.7.2-1.4h-.8l-.4 2.8h.8l.2-1 .6 1H11l-.8-1.2 1-.9h-1.1zM5.3 15l-.2.6c-.4 0-.6 0-.7-.2-.2.1-.5.2-.7.2-.5 0-.6-.2-.6-.5 0-.1.1-.3.2-.4.3-.2.9-.3 1.2-.4 0-.2-.1-.3-.3-.3-.3 0-.5.1-.9.4l.1-.6c.3-.2.7-.4 1.1-.4.5 0 .9.2.8.7l-.1.6c-.1.3-.1.3.1.3zm-1-.4c-.2.1-.6.1-.7.4 0 .1.1.2.2.2s.3-.1.4-.1v-.2l.1-.3zm11.4-.4c-.1.6-.6 1.3-1.5 1.3h-1.6l.4-2.8h1.4c1.1.1 1.4.9 1.3 1.5zm-1.5-.7h-.3l-.2 1.5h.3c.5 0 .7-.2.8-.7 0-.5-.1-.8-.6-.8zm-6.8-.1c-.3 0-.5.1-.7.3v-.3h-.8l-.3 2.1h.8l.2-1.3c.1-.2.2-.2.4-.2s.2.1.2.3L7 15.5h.8l.2-1.3c.1-.5-.1-.8-.6-.8zm2.9-13h-4l-.5 3.4h.7c.4 0 .7-.2.9-.4.1-.1.1-.2.1-.2 0-.1-.1-.2-.2-.3-.3-.2-.4-.5-.4-.6v-.1c.1-.3.6-.7 1.2-.7.4 0 .7.1.9.3.2.1.2.4.2.6-.1.2-.4.4-.5.5-.4.3-.4.5-.3.6 0 .2.3.3.6.3h1c1.4 0 2.2.7 1.9 2.2-.2 1.4-1.3 2-2.6 2l-.5 3.3h.8c3.2 0 5.8-2.1 6.3-5.3.6-4-1.9-5.6-5.6-5.6z"/>
|
|
778
|
+
</svg>`}
|
|
779
|
+
</span>
|
|
780
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
781
|
+
</button>
|
|
782
|
+
`,n&&this.node.querySelector("button")?.addEventListener("click",n)}},Vr=rw,aw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{autoLaunchUrl:t,errorMessage:e}=this.props;if(e){this.node.innerHTML=oe({tone:"error",children:e});return}this.node.innerHTML=`
|
|
783
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
784
|
+
<div class="waykeecom-align waykeecom-align--center">
|
|
785
|
+
<img src="${Ur.bankid}" alt="BankID logotyp" class="waykeecom-image" style="width: 130px" />
|
|
786
|
+
</div>
|
|
787
|
+
</div>
|
|
788
|
+
<div class="waykeecom-stack waykeecom-stack--4">${Ve()}</div>
|
|
789
|
+
`,new Vr(this.node,{title:"\xD6ppna BankID",disabled:!t,onClick:()=>{window.open(t,"_blank"),this.props.onClick&&this.props.onClick()},htmlNodesettings:{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--4"}})}},ow=aw,bl="bankid-start-node",cw="bankid-start",Du="bankid-abort",Sl=`${Du}-node`,lr="bankid-auth-method-node",lw=class extends S{constructor(t,e){super(t),this.props=e,setTimeout(()=>{jr()?this.props.onStart(V.SameDevice):this.props.onStart(V.QrCode)},1),this.render(),Nt()}update(t,e){switch(this.props.errorMessage=void 0,this.props.method=t,t){case V.QrCode:this.props.autoLaunchUrl=void 0,this.props.qrCode=e||this.props.qrCode;break;case V.SameDevice:this.props.qrCode=void 0,this.props.autoLaunchUrl=e||this.props.autoLaunchUrl;break;default:break}this.render()}setErrorMessage(t){this.props.errorMessage=t,this.render()}setInfo(t){t!==this.props.info&&(this.props.info=t,this.render())}setTitle(t){t!==this.props.title&&(this.props.title=t,this.render())}setDescription(t){t!==this.props.description&&(this.props.description=t,this.render())}setFinalizing(t){t!==this.props.finalizing&&(this.props.finalizing=t,this.render())}render(){let{qrCode:t,autoLaunchUrl:e,method:i,errorMessage:s,descriptionQrCode:n,descriptionSameDevice:r,info:o,title:c,description:l,finalizing:u,onStart:d,onAbort:p}=this.props,h=c||(i===V.QrCode?"\xD6ppna BankID och scanna QR-koden":"Skriv in din s\xE4kerhetskod i BankID-appen"),m=l||(i===V.QrCode?n:r);if(this.node.innerHTML=`
|
|
790
|
+
<div class="waykeecom-text waykeecom-text--align-center">
|
|
791
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="">
|
|
792
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${h}</h4>
|
|
793
|
+
<div class="waykeecom-content">
|
|
794
|
+
<p class="waykeecom-content__p">${m}</p>
|
|
795
|
+
</div>
|
|
796
|
+
</div>
|
|
797
|
+
${o?` <div class="waykeecom-stack waykeecom-stack--4">${o}</div>`:""}
|
|
798
|
+
|
|
799
|
+
${u?`<div class="waykeecom-stack waykeecom-stack--4">${Ve()}</div>`:`
|
|
800
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="${lr}"></div>
|
|
801
|
+
`}
|
|
802
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
803
|
+
${u?"":`
|
|
804
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${bl}"></div>
|
|
805
|
+
`}
|
|
806
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Sl}"></div>
|
|
807
|
+
</div>
|
|
808
|
+
</div>
|
|
809
|
+
`,!u){i===V.SameDevice?new ow(this.node.querySelector(`#${lr}`),{autoLaunchUrl:e,errorMessage:s,onClick:()=>this.props?.onSameDeviceClick?.()}):i===V.QrCode&&new nw(this.node.querySelector(`#${lr}`),{qrCode:t,errorMessage:s});let b=i===V.SameDevice?"Mitt BankID \xE4r p\xE5 en annan enhet":"\xD6ppna BankID p\xE5 den h\xE4r enheten";new At(this.node.querySelector(`#${bl}`),{title:b,id:cw,onClick:()=>d(i===V.SameDevice?V.QrCode:V.SameDevice)})}new At(this.node.querySelector(`#${Sl}`),{title:"Avbryt",id:Du,onClick:()=>p()})}},Ou=lw,dw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){this.node.innerHTML=`
|
|
810
|
+
<div class="waykeecom-disclaimer">
|
|
811
|
+
<div class="waykeecom-disclaimer__text">
|
|
812
|
+
${this.props.text}
|
|
813
|
+
</div>
|
|
814
|
+
</div>
|
|
815
|
+
`}},Hr=dw,uw=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.render()}updateBorder(){let t=this.node.querySelector(".waykeecom-input-text");t&&(this.props.error?t?.classList.add("waykeecom-input-text--has-error"):t?.classList.remove("waykeecom-input-text--has-error"))}setError(t,e){this.props.error=t,e&&(this.props.errorMessage=e),this.updateBorder(),this.contexts.error?.setError(t)}render(){let{id:t,options:e,value:i,name:s,title:n,error:r,errorMessage:o,onChange:c}=this.props;this.node.innerHTML=`
|
|
816
|
+
<div class="waykeecom-input-label">
|
|
817
|
+
<label for="wayke-estimated-mileage" class="waykeecom-input-label__label">${n}</label>
|
|
818
|
+
</div>
|
|
819
|
+
<select
|
|
820
|
+
class="waykeecom-select"
|
|
821
|
+
id="wayke-estimated-mileage"
|
|
822
|
+
${s?`name="${s}"`:""}
|
|
823
|
+
${t?`id="${t}"`:""}
|
|
824
|
+
>
|
|
825
|
+
${e.map(l=>`<option
|
|
826
|
+
value="${l.value}"
|
|
827
|
+
${l.disabled?"disabled":""}
|
|
828
|
+
${l.value===i?'selected="selected"':""}
|
|
829
|
+
>${l.title||l.value}</option>`).join("")}
|
|
830
|
+
</select>
|
|
831
|
+
`,this.updateBorder(),o&&(this.contexts.error=new Rs(this.node,{error:r,errorMessage:o})),this.node.querySelector("select")?.addEventListener("change",l=>c(l))}},Lu=uw,Cl=t=>Me.decline(t),hw=t=>Me.getStatus(t),pw=t=>Me.newCase(t),mw=t=>Me.signCase(t),fw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,decision:e}=this.props,i=t.getState(),{order:s}=i,n=s?.paymentOptions.find(o=>o.type===P.Loan),r=s?.contactInformation;e===ye.Approve?this.node.innerHTML=`
|
|
832
|
+
${oe({tone:"success",children:`
|
|
833
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
834
|
+
<p class="waykeecom-content__p"><strong>${a.t("stageCompletedFinancialCreditAssessment.approved",{loanName:n?.name})}</strong></p>
|
|
835
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancialCreditAssessment.approvedDescription",{contactName:r?.name,contactPhone:r?.phone})}</p>
|
|
836
|
+
</div>
|
|
837
|
+
`})}
|
|
838
|
+
`:e===ye.AssessManually?this.node.innerHTML=`
|
|
839
|
+
${oe({tone:"warning",children:`
|
|
840
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
841
|
+
<p class="waykeecom-content__p"><span class="waykeecom-text waykeecom-text--font-medium">${a.t("stageCompletedFinancialCreditAssessment.assessManually")}</span></p>
|
|
842
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancialCreditAssessment.assessManuallyDescription",{contactName:r?.name,contactPhone:r?.phone})}</p>
|
|
843
|
+
</div>
|
|
844
|
+
`})}
|
|
845
|
+
`:this.node.innerHTML=`
|
|
846
|
+
${oe({tone:"error",children:`
|
|
847
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
848
|
+
<p class="waykeecom-content__p"><span class="waykeecom-text waykeecom-text--font-medium">${a.t("stageCompletedFinancialCreditAssessment.declined")}</span></p>
|
|
849
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancialCreditAssessment.declinedDescription")}</p>
|
|
850
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancialCreditAssessment.declinedNextSteps")}</p>
|
|
851
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancialCreditAssessment.contactInfo",{contactName:r?.name,contactPhone:r?.phone})}</p>
|
|
852
|
+
</div>
|
|
853
|
+
`})}
|
|
854
|
+
`}},Ls=fw,gw="assessment-approved-result",Al=`${gw}-node`,Mu="assessment-approved-proceed",Nl=`${Mu}-node`,$u="assessment-approved-abort",_l=`${$u}-node`,kw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,onProceed:e,onGoBack:i}=this.props;this.node.innerHTML=`
|
|
855
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="${Al}"></div>
|
|
856
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
857
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Nl}"></div>
|
|
858
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${_l}"></div>
|
|
859
|
+
</div>
|
|
860
|
+
`,new Ls(this.node.querySelector(`#${Al}`),{store:t,decision:ye.Approve}),new xe(this.node.querySelector(`#${Nl}`),{title:a.t("creditAssessment.proceedButton"),id:Mu,onClick:()=>e()}),new At(this.node.querySelector(`#${_l}`),{title:a.t("creditAssessment.abortButton"),id:$u,onClick:()=>i()})}},yw=kw,vw="assessment-assess-manually-result",Tl=`${vw}-node`,Fu="assessment-assess-manually-proceed",Rl=`${Fu}-node`,Bu="assessment-assess-manually-abort",Dl=`${Bu}-node`,ww=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,onProceed:e,onGoBack:i}=this.props;this.node.innerHTML=`
|
|
861
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="${Tl}"></div>
|
|
862
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
863
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Rl}"></div>
|
|
864
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Dl}"></div>
|
|
865
|
+
</div>
|
|
866
|
+
`,new Ls(this.node.querySelector(`#${Tl}`),{store:t,decision:ye.AssessManually}),new xe(this.node.querySelector(`#${Rl}`),{title:a.t("creditAssessment.proceedButton"),id:Fu,onClick:()=>e()}),new Ts(this.node.querySelector(`#${Dl}`),{title:a.t("creditAssessment.abortButton"),id:Bu,onClick:()=>i()})}},Ew=ww,xw="assessment-rejected-result",Ol=`${xw}-node`,Pu="assessment-rejected-abort",Ll=`${Pu}-node`,Iw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,onGoBack:e}=this.props;this.node.innerHTML=`
|
|
867
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="${Ol}"></div>
|
|
868
|
+
<div class="waykeecom-stack waykeecom-stack--4" id="${Ll}"></div>
|
|
869
|
+
`,new Ls(this.node.querySelector(`#${Ol}`),{store:t,decision:ye.Reject}),new Mr(this.node.querySelector(`#${Ll}`),{title:a.t("creditAssessment.abortButton"),id:Pu,onClick:()=>e()})}},bw=Iw,Sw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,creditAssessmentResponse:e,onProceed:i,onGoBack:s}=this.props,n=e.recommendation;n===ye.Approve?new yw(this.node,{store:t,onProceed:()=>i(),onGoBack:()=>s()}):n===ye.AssessManually?new Ew(this.node,{store:t,onProceed:()=>i(),onGoBack:()=>s()}):new bw(this.node,{store:t,onGoBack:()=>s()})}},Cw=Sw,Aw=t=>{let e=t>0,i=t%12===0;if(!e||!i)throw new TypeError("Invalid months for creating creidt assessment term");return`${t}months`},Nw=Aw,Gt=t=>{if(!t)return;let e=t.indexOf("-");return e===-1?t:t.slice(0,e)},Uu=t=>{if(!t)return;let e=t.indexOf("-");return parseInt(t.slice(e+1),10)},_w="credit-assessment-martial-status",Ml=`${_w}-node`,Cr="credit-assessment-income",dr=`${Cr}-node`,Tw="credit-assessment-employment",$l=`${Tw}-node`,Rw="credit-assessment-household-children",Fl=`${Rw}-node`,qu="credit-assessment-housing-cost",Bl=`${qu}-node`,ju="credit-assessment-debt-specification-card-credit",Pl=`${ju}-node`,Vu="credit-assessment-debt-specification-car-loan",Ul=`${Vu}-node`,Hu="credit-assessment-debt-specification-collateral",ql=`${Hu}-node`,Gu="credit-assessment-debt-specification-leasing-fees",jl=`${Gu}-node`,Wu="credit-assessment-debt-specification-private-loan",Vl=`${Wu}-node`,Dw="credit-assessment-housing-type",Hl=`${Dw}-node`,Yu="credit-assessment-perform-application",ur=`${Yu}-node`,zu="credit-assessment-disclaimer",Gl="disclaimer-node",Wl="disclaimer-safe-node",Yl="why-description-node",Ee={maritalStatus:ne.requiredAssessmentMaritalStatus,income:ne.requiredNumberGreaterOrEqualThanZero,employment:ne.requiredAssessmentEmplyment,householdChildren:ne.requiredNumberGreaterOrEqualThanZero,housingCost:ne.requiredNumberGreaterOrEqualThanZero,"debtSpecification.cardCredits":ne.optionalNumberGreaterOrEqualThanZero,"debtSpecification.vehicleLoan":ne.optionalNumberGreaterOrEqualThanZero,"debtSpecification.collateral":ne.optionalNumberGreaterOrEqualThanZero,"debtSpecification.leasingFees":ne.optionalNumberGreaterOrEqualThanZero,"debtSpecification.privateLoan":ne.optionalNumberGreaterOrEqualThanZero,housingType:ne.requiredHousingType},Ow={maritalStatus:kt.Married,income:5e4,employment:Ge.FullTimeEmployed,householdChildren:-1,housingCost:2e3,debtSpecification:{cardCredits:0,vehicleLoan:0,collateral:0,leasingFees:0,privateLoan:0},housingType:Oe.Apartment},Lw=()=>location.hostname==="localhost"?{...Ow}:void 0,Mw=t=>{let e={maritalStatus:t?.maritalStatus||"",income:t?.income.toString()||"",employment:t?.employment.toString()||"",householdChildren:t?.householdChildren.toString()||"-1",housingCost:t?.housingCost.toString()||"","debtSpecification.cardCredits":t?.debtSpecification.cardCredits.toString()||"","debtSpecification.vehicleLoan":t?.debtSpecification.vehicleLoan.toString()||"","debtSpecification.collateral":t?.debtSpecification.collateral.toString()||"","debtSpecification.leasingFees":t?.debtSpecification.leasingFees.toString()||"","debtSpecification.privateLoan":t?.debtSpecification.privateLoan.toString()||"",housingType:t?.housingType.toString()||""};return{value:e,validation:{maritalStatus:Ee.maritalStatus(e.maritalStatus),income:Ee.income(e.income),employment:Ee.employment(e.employment),householdChildren:Ee.householdChildren(e.householdChildren),housingCost:Ee.housingCost(e.housingCost),"debtSpecification.cardCredits":Ee["debtSpecification.cardCredits"](e["debtSpecification.cardCredits"]),"debtSpecification.vehicleLoan":Ee["debtSpecification.vehicleLoan"](e["debtSpecification.vehicleLoan"]),"debtSpecification.collateral":Ee["debtSpecification.collateral"](e["debtSpecification.collateral"]),"debtSpecification.leasingFees":Ee["debtSpecification.leasingFees"](e["debtSpecification.leasingFees"]),"debtSpecification.privateLoan":Ee["debtSpecification.privateLoan"](e["debtSpecification.privateLoan"]),housingType:Ee.housingType(e.housingType)},interact:{maritalStatus:!1,income:!1,employment:!1,householdChildren:!1,housingCost:!1,"debtSpecification.cardCredits":!1,"debtSpecification.vehicleLoan":!1,"debtSpecification.collateral":!1,"debtSpecification.leasingFees":!1,"debtSpecification.privateLoan":!1,housingType:!1}}},$w=class extends S{constructor(t,e){super(t),this.view=1,this.contexts={},this.bankidError=!1,this.signed=!1,this.props=e,this.state=Mw(Lw()),this.render()}onChange(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=Ee[i](s),this.updateUiError(i),this.updateProceedButton()}onBlur(t){let e=t.currentTarget.name;this.state.interact[e]=!0,this.state.validation[e]=Ee[e](this.state.value[e]),this.updateUiError(e),this.updateProceedButton()}onChangeSelect(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=Ee[i](s),this.updateProceedButton()}onChangeRadio(t){let e=t.currentTarget,i=e.name,s=e.value;this.state.value[i]=s,this.state.validation[i]=Ee[i](s),i==="housingType"&&(e.value===Oe.SingleFamily?(this.state.value.housingCost="0",this.state.validation.housingCost=Ee.housingCost(this.state.value.housingCost)):(this.state.value.housingCost="",this.state.validation.housingCost=Ee.housingCost(this.state.value.housingCost)),this.render()),this.updateProceedButton()}updateUiError(t){this.contexts[t]?.setError(this.state.interact[t]&&!this.state.validation[t])}updateProceedButton(){this.contexts.performApplicationButton?.disabled(!this.state.validation.maritalStatus||!this.state.validation.income||!this.state.validation.employment||!this.state.validation.householdChildren||!this.state.validation.housingCost||!this.state.validation["debtSpecification.cardCredits"]||!this.state.validation["debtSpecification.vehicleLoan"]||!this.state.validation["debtSpecification.collateral"]||!this.state.validation["debtSpecification.leasingFees"]||!this.state.validation["debtSpecification.privateLoan"]||!this.state.validation.housingType)}async onAbort(){v("MAIN","FINANCIAL_CREDIT_SCORING_ABORTED","FINANCIAL_CREDIT_SCORING");let{store:t}=this.props;this.view=1,this.bankidStatusInterval&&clearInterval(this.bankidStatusInterval);let e=t.getState().caseId;e&&(await vr(e),await Cl(e),_i()(t.dispatch)),Ce(),this.creditAssessmentResponse=void 0,this.render(!0)}bankIdStatus(t,e,i=!1){i||v("MAIN",e===V.SameDevice?"FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_REQUESTED":"FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_REQUESTED","FINANCIAL_CREDIT_SCORING");let s=this.props.store.getState().order?.paymentOptions.find(n=>n.type===P.Loan);this.bankidStatusInterval=setInterval(async()=>{try{let n=await hw(t),r=n.getStatus();if(!this.signed&&r==="signed"&&(v("MAIN",e===V.SameDevice?"FINANCIAL_CREDIT_SCORING_BANKID_STATUS_SAME_DEVICE_SUCCEEDED":"FINANCIAL_CREDIT_SCORING_BANKID_STATUS_QR_SUCCEEDED","FINANCIAL_CREDIT_SCORING"),this.signed=!0,this.contexts.bankId?.setTitle(a.t("creditAssessment.waitingFor",{name:s?.name})),this.contexts.bankId?.setDescription(a.t("creditAssessment.fetchingInfo",{name:s?.name})),this.contexts.bankId?.setFinalizing(!0),v("MAIN","FINANCIAL_CREDIT_SCORING_SIGNING_SIGNED","FINANCIAL_CREDIT_SCORING")),r==="signingFailed"){clearInterval(this.bankidStatusInterval),this.contexts.bankId?.setFinalizing(!1),this.contexts.bankId?.setErrorMessage(a.t("creditAssessment.errorOccurred"));return}if(n.isScored()?(v("MAIN","FINANCIAL_CREDIT_SCORING_SIGNING_SCORED","FINANCIAL_CREDIT_SCORING"),this.bankidStatusInterval&&clearInterval(this.bankidStatusInterval),this.view=3,this.creditAssessmentResponse=qk(n),_i(t,this.creditAssessmentResponse)(this.props.store.dispatch),Ce(),this.render()):n.hasScoringError()&&(clearInterval(this.bankidStatusInterval),this.contexts.bankId?.setFinalizing(!1),this.contexts.bankId?.setErrorMessage(a.t("creditAssessment.errorOccurred"))),!this.signed&&e===V.QrCode){let o=n.getQrCode();this.contexts.bankId?.update(e,o)}}catch{clearInterval(this.bankidStatusInterval),this.contexts.bankId?.setFinalizing(!1),this.contexts.bankId?.setErrorMessage(a.t("creditAssessment.bankIdStatusError"))}},1e3),Ir("bankidStatusInterval-credit",this.bankidStatusInterval)}async onStartBankIdAuth(t,e=!1){let i=this.props.store.getState().caseId;if(!i)throw"Missing caseID";this.bankidStatusInterval&&clearInterval(this.bankidStatusInterval);try{e||v("MAIN","FINANCIAL_CREDIT_SCORING_BANKID_INIT_REQUESTED","FINANCIAL_CREDIT_SCORING"),this.contexts.bankId?.update(t);let s=await mw({caseId:i,method:t});if(e||v("MAIN","FINANCIAL_CREDIT_SCORING_BANKID_INIT_SUCCEEDED","FINANCIAL_CREDIT_SCORING"),this.bankIdStatus(i,t,e),t===V.SameDevice){let n=s.getAutoLaunchUrl();this.contexts.bankId?.update(t,n)}else{let n=s.getQrCode();this.contexts.bankId?.update(t,n)}}catch{v("MAIN","FINANCIAL_CREDIT_SCORING_BANKID_INIT_FAILED","FINANCIAL_CREDIT_SCORING"),this.bankidStatusInterval&&clearInterval(this.bankidStatusInterval),this.bankidError=!0,this.view=1,Ce(),this.render(!0)}}async startBankId(t){let{store:e}=this.props;this.caseError=void 0,this.bankidError=!1,this.signed=!1;let i=e.getState().caseId;if(this.bankidStatusInterval&&(clearInterval(this.bankidStatusInterval),i&&(await vr(i),await Cl(i),_i()(e.dispatch))),i){let s=await this.newCreditAssessmentCase();_i(s)(e.dispatch),this.onStartBankIdAuth(t)}else try{v("MAIN","FINANCIAL_CREDIT_SCORING_CREATE_CASE_REQUESTED","FINANCIAL_CREDIT_SCORING");let s=await this.newCreditAssessmentCase();v("MAIN","FINANCIAL_CREDIT_SCORING_CREATE_CASE_SUCCEEDED","FINANCIAL_CREDIT_SCORING"),s&&(_i(s)(e.dispatch),this.onStartBankIdAuth(t))}catch{v("MAIN","FINANCIAL_CREDIT_SCORING_CREATE_CASE_FAILED","FINANCIAL_CREDIT_SCORING")}}async newCreditAssessmentCase(){try{let{store:t,loan:e,paymentLookupResponse:i}=this.props;this.contexts.performApplicationButton?.disabled(!0);let{customer:s,paymentLookupResponse:n}=t.getState(),r=n||i,{monthlyCost:o}=r.costs,{interest:c}=r.interests,l=r.downPaymentSpec.current,u=r.durationSpec.current,d=r.creditAmount,p=r.price,h=r.financialProductCode,m={employment:this.state.value.employment,householdChildren:parseInt(this.state.value.householdChildren,10),housingCost:parseInt(this.state.value.housingCost||"0",10),housingType:this.state.value.housingType,income:parseInt(this.state.value.income||"0",10),maritalStatus:this.state.value.maritalStatus,debtSpecification:{cardCredits:parseInt(this.state.value["debtSpecification.cardCredits"]||"0",10),vehicleLoan:parseInt(this.state.value["debtSpecification.vehicleLoan"]||"0",10),collateral:parseInt(this.state.value["debtSpecification.collateral"]||"0",10),leasingFees:parseInt(this.state.value["debtSpecification.leasingFees"]||"0",10),privateLoan:parseInt(this.state.value["debtSpecification.privateLoan"]||"0",10)}},b={customer:{...s},householdEconomy:m,externalId:e.externalId,loan:{downPayment:l,interestRate:c,credit:d,financialProductId:h,monthlyCost:o,price:p,term:Nw(u)}};return(await pw(b)).caseId}catch(t){this.bankidStatusInterval&&clearInterval(this.bankidStatusInterval),this.caseError=t?.message||"",this.view=1,this.render(!0);return}finally{this.contexts.performApplicationButton?.disabled(!1)}}render(t){let{store:e,paymentLookupResponse:i,onProceed:s}=this.props,n=jr(),{order:r,paymentLookupResponse:o}=e.getState(),c=o||i,l=r?.paymentOptions.find(p=>p.type===P.Loan),u=c.creditAmount,d=r?.contactInformation?.name;if(this.view===3&&this.creditAssessmentResponse)new Cw(Yt(),{store:e,creditAssessmentResponse:this.creditAssessmentResponse,onProceed:()=>{Ce(),s()},onGoBack:()=>this.onAbort()});else if(this.view===2)this.contexts.bankId=new Ou(Yt(),{method:n?V.SameDevice:V.QrCode,descriptionQrCode:a.t("creditAssessment.descriptionQrCode"),descriptionSameDevice:a.t("creditAssessment.descriptionSameDevice"),onAbort:()=>this.onAbort(),onStart:p=>this.startBankId(p)}),Nt();else{this.node.innerHTML=`
|
|
870
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
871
|
+
<h5 class="waykeecom-heading waykeecom-heading--4">${a.t("creditAssessment.loanApplication")}</h5>
|
|
872
|
+
<div class="waykeecom-content">
|
|
873
|
+
<p class="waykeecom-content__p">${a.t("creditAssessment.loanApplicationDescription",{name:l?.name})}</p>
|
|
874
|
+
</div>
|
|
875
|
+
</div>
|
|
876
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
877
|
+
<div class="waykeecom-balloon waykeecom-balloon--info" id="${Yl}"></div>
|
|
878
|
+
</div>
|
|
879
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
880
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
881
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.maritalStatus")}</h5>
|
|
882
|
+
</div>
|
|
883
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Ml}"></div>
|
|
884
|
+
</div>
|
|
885
|
+
|
|
886
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
887
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
888
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.employment")}</h5>
|
|
889
|
+
</div>
|
|
890
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${$l}"></div>
|
|
891
|
+
</div>
|
|
892
|
+
|
|
893
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
894
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
895
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.children")}</h5>
|
|
896
|
+
</div>
|
|
897
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Fl}"></div>
|
|
898
|
+
</div>
|
|
899
|
+
|
|
900
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
901
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
902
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.income")}</h5>
|
|
903
|
+
</div>
|
|
904
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${dr}"></div>
|
|
905
|
+
</div>
|
|
906
|
+
|
|
907
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
908
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
909
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.housingType")}</h5>
|
|
910
|
+
<div class="waykeecom-content">
|
|
911
|
+
<p class="waykeecom-content__p">${a.t("creditAssessment.housingTypeDescription")}</p>
|
|
912
|
+
</div>
|
|
913
|
+
</div>
|
|
914
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Hl}"></div>
|
|
915
|
+
</div>
|
|
916
|
+
|
|
917
|
+
${this.state.value.housingType!==Oe.SingleFamily?`
|
|
918
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
919
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
920
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.housingCost")}</h5>
|
|
921
|
+
</div>
|
|
922
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Bl}"></div>
|
|
923
|
+
</div>
|
|
924
|
+
`:""}
|
|
925
|
+
|
|
926
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
927
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
928
|
+
<h5 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("creditAssessment.debtsAndLiabilities")}</h5>
|
|
929
|
+
<div class="waykeecom-content">
|
|
930
|
+
<p class="waykeecom-content__p">${a.t("creditAssessment.debtsAndLiabilitiesDescription")}</p>
|
|
931
|
+
</div>
|
|
932
|
+
</div>
|
|
933
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Vl}"></div>
|
|
934
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Ul}"></div>
|
|
935
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${jl}"></div>
|
|
936
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Pl}"></div>
|
|
937
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${ql}"></div>
|
|
938
|
+
</div>
|
|
939
|
+
|
|
940
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
941
|
+
<hr class="waykeecom-separator" />
|
|
942
|
+
</div>
|
|
943
|
+
|
|
944
|
+
<dl class="waykeecom-stack waykeecom-stack--3 waykeecom-text waykeecom-text--align-center">
|
|
945
|
+
<dt class="waykeecom-stack waykeecom-stack--1 waykeecom-text waykeecom-text--tone-alt waykeecom-text--size-small">${a.t("creditAssessment.totalLoanAmount")}</dt>
|
|
946
|
+
<dd class="waykeecom-stack waykeecom-stack--1 waykeecom-heading waykeecom-heading--2 waykeecom-no-margin">${B(u,{postfix:"kr"})}</dd>
|
|
947
|
+
</dl>
|
|
948
|
+
|
|
949
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
950
|
+
${oe({tone:"info",polite:!0,children:a.t("creditAssessment.noPaymentInfo",{name:d})})}
|
|
951
|
+
</div>
|
|
952
|
+
|
|
953
|
+
${this.caseError?`
|
|
954
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
955
|
+
${oe({tone:"error",children:a.t("creditAssessment.caseError",{caseError:this.caseError})})}
|
|
956
|
+
</div>
|
|
957
|
+
`:""}
|
|
958
|
+
|
|
959
|
+
${this.bankidError?`
|
|
960
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
961
|
+
${oe({tone:"error",children:a.t("creditAssessment.bankIdError")})}
|
|
962
|
+
</div>
|
|
963
|
+
`:""}
|
|
964
|
+
|
|
965
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
966
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${ur}"></div>
|
|
967
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${zu}">
|
|
968
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Gl}"></div>
|
|
969
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Wl}"></div>
|
|
970
|
+
</div>
|
|
971
|
+
</div>
|
|
972
|
+
`,this.contexts.maritalStatus=new Ct(this.node.querySelector(`#${Ml}`),{checked:this.state.value.maritalStatus,name:"maritalStatus",options:[{id:"maritalStatus-1",value:kt.Married,title:a.t("creditAssessment.married")},{id:"maritalStatus-2",value:kt.CommonLaw,title:a.t("creditAssessment.commonLaw")},{id:"maritalStatus-3",value:kt.Single,title:a.t("creditAssessment.single")}],onClick:h=>this.onChangeRadio(h)}),this.contexts.income=new ge(this.node.querySelector(`#${dr}`),{title:a.t("creditAssessment.incomePerMonth"),value:this.state.value.income,id:Cr,error:this.state.interact.income&&!this.state.validation.income,errorMessage:a.t("creditAssessment.incomeError"),name:"income",autocomplete:"off",unit:"kr",placeholder:"",type:"number",onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h)}),this.contexts.employment=new Ct(this.node.querySelector(`#${$l}`),{checked:this.state.value.employment,name:"employment",options:[{id:"employment-1",value:Ge.FullTimeEmployed,title:a.t("creditAssessment.fullTimeEmployed")},{id:"employment-2",value:Ge.TemporarilyEmployed,title:a.t("creditAssessment.temporarilyEmployed")},{id:"employment-3",value:Ge.SelfEmployed,title:a.t("creditAssessment.selfEmployed")},{id:"employment-4",value:Ge.Retired,title:a.t("creditAssessment.retired")},{id:"employment-5",value:Ge.Student,title:a.t("creditAssessment.student")},{id:"employment-6",value:Ge.Other,title:a.t("creditAssessment.other")}],onClick:h=>this.onChangeRadio(h)}),this.contexts.housingType=new Ct(this.node.querySelector(`#${Hl}`),{title:a.t("creditAssessment.housingType"),checked:this.state.value.housingType,name:"housingType",options:[{id:"housingType-1",value:Oe.SingleFamily,title:a.t("creditAssessment.singleFamily")},{id:"housingType-2",value:Oe.Condominium,title:a.t("creditAssessment.condominium")},{id:"housingType-3",value:Oe.Apartment,title:a.t("creditAssessment.apartment")}],onClick:h=>this.onChangeRadio(h)}),this.contexts.income=new ge(this.node.querySelector(`#${dr}`),{title:a.t("creditAssessment.incomePerMonth"),value:this.state.value.income,id:Cr,error:this.state.interact.income&&!this.state.validation.income,errorMessage:a.t("creditAssessment.incomeError"),name:"income",autocomplete:"off",placeholder:"",unit:"kr",type:"number",help:a.t("creditAssessment.incomeDescription"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h)}),this.contexts.householdChildren=new Lu(this.node.querySelector(`#${Fl}`),{title:a.t("creditAssessment.childrenUnder18"),value:this.state.value.householdChildren,name:"householdChildren",error:this.state.interact.householdChildren&&!this.state.validation.householdChildren,errorMessage:a.t("creditAssessment.childrenError"),options:[{value:"-1",title:a.t("creditAssessment.selectChildren"),disabled:!0},{value:"0"},{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10",title:a.t("creditAssessment.tenOrMore")}],onChange:h=>this.onChangeSelect(h)});let p=this.node.querySelector(`#${Bl}`);p&&(this.contexts.housingCost=new ge(p,{title:this.state.value.housingType===Oe.Condominium?a.t("creditAssessment.myPartOfMonthlyFee"):this.state.value.housingType===Oe.Apartment?a.t("creditAssessment.myPartOfMonthlyRent"):a.t("creditAssessment.housingCost"),value:this.state.value.housingCost,id:qu,error:this.state.interact.housingCost&&!this.state.validation.housingCost,errorMessage:a.t("creditAssessment.housingCostError"),name:"housingCost",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.excludingInterest"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_HOUSEHOLD_DEBT_INFORMATION_TOGGLE","FINANCIAL")}})),this.contexts["debtSpecification.cardCredits"]=new ge(this.node.querySelector(`#${Pl}`),{title:a.t("creditAssessment.cardCredits"),value:this.state.value["debtSpecification.cardCredits"],id:ju,error:this.state.interact["debtSpecification.cardCredits"]&&!this.state.validation["debtSpecification.cardCredits"],errorMessage:a.t("creditAssessment.cardCreditsError"),name:"debtSpecification.cardCredits",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.totalDebt"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DEBT_SPECIFICATION_CARD_CREDIT_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts["debtSpecification.vehicleLoan"]=new ge(this.node.querySelector(`#${Ul}`),{title:a.t("creditAssessment.vehicleLoan"),value:this.state.value["debtSpecification.vehicleLoan"],id:Vu,error:this.state.interact["debtSpecification.vehicleLoan"]&&!this.state.validation["debtSpecification.vehicleLoan"],errorMessage:a.t("creditAssessment.vehicleLoanError"),name:"debtSpecification.vehicleLoan",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.totalDebt"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DEBT_SPECIFICATION_CAR_LOAN_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts["debtSpecification.collateral"]=new ge(this.node.querySelector(`#${ql}`),{title:a.t("creditAssessment.collateral"),value:this.state.value["debtSpecification.collateral"],id:Hu,error:this.state.interact["debtSpecification.collateral"]&&!this.state.validation["debtSpecification.collateral"],errorMessage:a.t("creditAssessment.collateralError"),name:"debtSpecification.collateral",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.totalAmount"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DEBT_SPECIFICATION_COLLATERAL_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts["debtSpecification.leasingFees"]=new ge(this.node.querySelector(`#${jl}`),{title:a.t("creditAssessment.leasingFees"),value:this.state.value["debtSpecification.leasingFees"],id:Gu,error:this.state.interact["debtSpecification.leasingFees"]&&!this.state.validation["debtSpecification.leasingFees"],errorMessage:a.t("creditAssessment.leasingFeesError"),name:"debtSpecification.leasingFees",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.totalAmount"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DEBT_SPECIFICATION_LEASING_FEES_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts["debtSpecification.privateLoan"]=new ge(this.node.querySelector(`#${Vl}`),{title:a.t("creditAssessment.privateLoan"),value:this.state.value["debtSpecification.privateLoan"],id:Wu,error:this.state.interact["debtSpecification.privateLoan"]&&!this.state.validation["debtSpecification.privateLoan"],errorMessage:a.t("creditAssessment.privateLoanError"),name:"debtSpecification.privateLoan",autocomplete:"off",placeholder:"",unit:"kr",type:"number",min:0,help:a.t("creditAssessment.totalDebt"),onChange:h=>this.onChange(h),onBlur:h=>this.onBlur(h),onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DEBT_SPECIFICATION_PRIVATE_LOAN_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts.performApplicationButton=new Vr(this.node.querySelector(`#${ur}`),{title:a.t("creditAssessment.performLoanApplication"),id:Yu,disabled:!(this.state.validation.maritalStatus&&this.state.validation.income&&this.state.validation.employment&&this.state.validation.householdChildren&&this.state.validation.housingCost),onClick:()=>{this.view=2,this.render()}}),new Hr(this.node.querySelector(`#${Gl}`),{text:a.t("creditAssessment.disclaimer",{name:l?.name,privacyPolicyUrl:l?.loanDetails?.privacyPolicyUrl,link:`<a href="${l?.loanDetails?.privacyPolicyUrl}" title="" target="_blank" rel="noopener noreferrer" class="waykeecom-link">${a.t("creditAssessment.dataProtectionPolicy")}</a>`,interpolation:{escapeValue:!1}})}),new Pr(this.node.querySelector(`#${Wl}`),{text:a.t("creditAssessment.disclaimerSafe")}),new Ru(this.node.querySelector(`#${Yl}`),{id:"accordion-why-description",title:`
|
|
973
|
+
<div class="waykeecom-hstack waykeecom-hstack--align-center waykeecom-hstack--spacing-1">
|
|
974
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink" aria-hidden="true">
|
|
975
|
+
<div class="waykeecom-icon-backdrop waykeecom-icon-backdrop--info-alt">
|
|
976
|
+
<svg
|
|
977
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
978
|
+
viewBox="0 0 16 16"
|
|
979
|
+
class="waykeecom-icon"
|
|
980
|
+
data-icon="Info"
|
|
981
|
+
>
|
|
982
|
+
<path d="M7 6h2v8H7V6zm0-4v2h2V2H7z" />
|
|
983
|
+
</svg>
|
|
984
|
+
</div>
|
|
985
|
+
</div>
|
|
986
|
+
<div class="waykeecom-hstack__item">${a.t("creditAssessment.whyAnswer")}</div>
|
|
987
|
+
</div>`,description:`<div class="waykeecom-content">
|
|
988
|
+
<p class="waykeecom-content__p">${a.t("creditAssessment.whyAnswerDescription",{name:l?.name,link:`<a href="${l?.loanDetails?.moneyLaunderingInformationURL}" title="" target="_blank" rel="noopener norefferer" class="waykeecom-link">${a.t("creditAssessment.readMore")}</a>`})}</p>
|
|
989
|
+
</div>`,onClick:()=>{v("MAIN","FINANCIAL_LOAN_KYC_INFORMATION_TOGGLE","FINANCIAL")}}),(t||this.caseError||this.bankidError)&&this.node.querySelector(`#${ur}`)?.scrollIntoView()}}},Fw=$w,Bw=class extends S{constructor(t,e){super(t),this.props=e,this.error=e.error,this.render()}update(t){this.error=t,this.render()}render(){if(!this.error){this.node.innerHTML="";return}this.node.innerHTML=oe({tone:"error",children:this.error})}},Pw=Bw,Uw=(t,e)=>e?Math.round(t/e)*e:t,qw=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.value=e.value,this.min=e.min,this.max=e.max,this.isDisabled=e.disabled,this.inputFieldValue=this.value,this.rangeSpan=this.max-this.min,this.currentValueInPercentage=parseInt((100*((this.value-this.min)/this.rangeSpan)).toString(),10),this.render()}update(t,e,i){this.value=t,this.inputFieldValue=t,this.min=e,this.max=i,this.rangeSpan=i-e,this.isDisabled=!this.rangeSpan;let s=parseInt((100*((this.value-e)/this.rangeSpan)).toString(),10);this.currentValueInPercentage=isNaN(s)?0:s,this.render()}disabled(t){this.isDisabled!==t&&(this.isDisabled=t,this.render())}onOpenInformation(){let t=this.node.querySelector(".input-label__foldout");t&&(t.style.display="")}onChange(t){let e=t.currentTarget;this.inputFieldValue=e.valueAsNumber}onBlur(t){let e=this.inputFieldValue;if(!isNaN(e)&&e>=this.min&&e<=this.max){let i=Uw(e,this.props.step);this.value=i,this.props.onChange&&t.currentTarget&&(t.currentTarget.value=i.toString(),this.props.onChange(t)),this.inputFieldValue=this.value,this.currentValueInPercentage=parseInt((100*((this.value-this.min)/this.rangeSpan)).toString(),10),this.render()}else this.inputFieldValue=this.value,this.updateInputField()}onFocus(t){let e=t.currentTarget;e.value=this.value.toString()}onInput(t){let e=t.currentTarget;this.value=parseInt(e.value,10),this.inputFieldValue=this.value,this.currentValueInPercentage=parseInt((100*((this.value-this.min)/this.rangeSpan)).toString(),10),this.updateInputField(),this.updateRangeSliderColor(e)}updateRangeSliderColor(t){let e=t||this.node.querySelector(`#${this.props.id}`);e&&e.style.setProperty("--percentage",`${this.currentValueInPercentage}%`)}updateInputField(){let t=this.node.querySelector(`#${this.props.id}-input`);t&&(t.value=this.inputFieldValue.toString())}render(){let{title:t,step:e,name:i,id:s,information:n,unit:r,onChange:o,onClickInformation:c}=this.props,l=this.min!==this.max;if(this.node.innerHTML=`
|
|
990
|
+
<div class="waykeecom-input-label">
|
|
991
|
+
<label for="${s}" class="waykeecom-input-label__label">${t}</label>
|
|
992
|
+
</div>
|
|
993
|
+
<div role="range">
|
|
994
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
995
|
+
<div class="waykeecom-input-text">
|
|
996
|
+
<input
|
|
997
|
+
type="number"
|
|
998
|
+
pattern="[0-9]*"
|
|
999
|
+
id="${s}-input"
|
|
1000
|
+
value="${this.inputFieldValue}"
|
|
1001
|
+
name="${i}"
|
|
1002
|
+
autocomplete="off"
|
|
1003
|
+
class="waykeecom-input-text__input"
|
|
1004
|
+
${(e===0||this.isDisabled||!l)&&'disabled=""'}
|
|
1005
|
+
min="${this.min}"
|
|
1006
|
+
max="${this.max}"
|
|
1007
|
+
${e!==void 0&&`step="${e}"`}
|
|
1008
|
+
/>
|
|
1009
|
+
${r?`<div class="waykeecom-input-text__unit">${r}</div>`:""}
|
|
1010
|
+
</div>
|
|
1011
|
+
</div>
|
|
1012
|
+
${l?`
|
|
1013
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1014
|
+
<div class="waykeecom-input-range">
|
|
1015
|
+
<input
|
|
1016
|
+
type="range"
|
|
1017
|
+
id="${s}"
|
|
1018
|
+
min="${this.min}"
|
|
1019
|
+
max="${this.max}"
|
|
1020
|
+
${e!==void 0&&`step="${e}"`}
|
|
1021
|
+
value="${this.value}"
|
|
1022
|
+
name="${i}"
|
|
1023
|
+
class="waykeecom-input-range__input"
|
|
1024
|
+
${this.isDisabled&&'disabled=""'}
|
|
1025
|
+
/>
|
|
1026
|
+
</div>
|
|
1027
|
+
</div>
|
|
1028
|
+
`:""}
|
|
1029
|
+
</div>
|
|
1030
|
+
`,n&&new Ds(this.node.querySelector(".waykeecom-input-label"),{information:n,onClickInformation:c}),l){this.contexts.rangeSlider=this.node.querySelector(`#${s}`)||void 0,this.contexts.rangeSlider&&(o&&this.contexts.rangeSlider.addEventListener("change",o),this.contexts.rangeSlider.addEventListener("input",d=>this.onInput(d)),this.updateRangeSliderColor(this.contexts.rangeSlider));let u=this.node.querySelector(`#${s}-input`);u&&(u.addEventListener("change",d=>this.onChange(d)),u.addEventListener("blur",d=>this.onBlur(d)))}}},hr=qw,jw=({vehicleId:t,dealerId:e,downPayment:i,duration:s,residual:n,financialOptionId:r})=>{let o=Zs.newLookupRequest().forVehicle(t).withDownPayment(i).withDuration(s);return r&&o.withFinancialOptionId(r),n!==void 0&&o.withResidualValue(n),e!==void 0&&o.forDealer(e),Zs.lookupPayment(o.build())},Vw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}update(t){this.props=t,this.node.querySelector(".waykeecom-pie-chart__chart-data")?.setAttribute("stroke-dasharray",`calc(${this.props.percentage} * 31.4 / 100) 31.4`)}render(){let{percentage:t}=this.props;this.node.innerHTML=`
|
|
1031
|
+
<div class="waykeecom-pie-chart">
|
|
1032
|
+
<svg height="20" width="20" viewBox="0 0 20 20" class="waykeecom-pie-chart__chart">
|
|
1033
|
+
<circle r="10" cx="10" cy="10" class="waykeecom-pie-chart__chart-data-base" />
|
|
1034
|
+
<circle r="5" cx="10" cy="10" fill="transparent"
|
|
1035
|
+
stroke-width="10"
|
|
1036
|
+
stroke-dasharray="calc(${t} * 31.4 / 100) 31.4"
|
|
1037
|
+
transform="rotate(-90) translate(-20)"
|
|
1038
|
+
class="waykeecom-pie-chart__chart-data waykeecom-pie-chart__chart-data--1"
|
|
1039
|
+
id="loan-details-circle"
|
|
1040
|
+
/>
|
|
1041
|
+
</svg>
|
|
1042
|
+
<div class="waykeecom-pie-chart__overlay">
|
|
1043
|
+
<img src="${Ur.illustrations.payment}" alt="Illustration av betalning" class="waykeecom-pie-chart__illustration" />
|
|
1044
|
+
</div>
|
|
1045
|
+
</div>
|
|
1046
|
+
`}},Hw=Vw,Gw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}update(t){this.props=t,this.render()}render(){let{downPayment:t,creditAmount:e,downPaymentPercentage:i,creditAmountPercentage:s}=this.props;this.node.innerHTML=`
|
|
1047
|
+
<ul class="waykeecom-key-value-list">
|
|
1048
|
+
${W({key:`
|
|
1049
|
+
<div class="waykeecom-hstack waykeecom-hstack--spacing-1 waykeecom-hstack--align-center">
|
|
1050
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink" aria-hidden="true">
|
|
1051
|
+
<div class="waykeecom-chart-indicator waykeecom-chart-indicator--secondary"></div>
|
|
1052
|
+
</div>
|
|
1053
|
+
<div class="waykeecom-hstack__item">
|
|
1054
|
+
Kontantinsats (${i} %)
|
|
1055
|
+
</div>
|
|
1056
|
+
</div>
|
|
1057
|
+
`,value:B(t,{postfix:"kr"})})}
|
|
1058
|
+
${W({key:`
|
|
1059
|
+
<div class="waykeecom-hstack waykeecom-hstack--spacing-1 waykeecom-hstack--align-center">
|
|
1060
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink" aria-hidden="true">
|
|
1061
|
+
<div class="waykeecom-chart-indicator waykeecom-chart-indicator--primary"></div>
|
|
1062
|
+
</div>
|
|
1063
|
+
<div class="waykeecom-hstack__item">
|
|
1064
|
+
L\xE5n (${s} %)
|
|
1065
|
+
</div>
|
|
1066
|
+
</div>
|
|
1067
|
+
`,value:B(e,{postfix:"kr"})})}
|
|
1068
|
+
</ul>
|
|
1069
|
+
`}},Ww=Gw,zl=!1,Yw=class extends S{constructor(t,e){super(t),this.showDetails=zl,this.props=e,this.render()}onDetails(t){let e=t.currentTarget.checked;zl=e,this.showDetails=e}update(t){this.props=t,this.render()}render(){let{duration:t,administrationFee:e,setupFee:i,totalCreditCost:s,interest:n,effectiveInterest:r,publicUrl:o,loanOrgName:c}=this.props;this.node.innerHTML=`
|
|
1070
|
+
<div class="waykeecom-accordion">
|
|
1071
|
+
<input
|
|
1072
|
+
type="checkbox"
|
|
1073
|
+
id="finance-details-accordion"
|
|
1074
|
+
class="waykeecom-accordion__checkbox"
|
|
1075
|
+
${this.showDetails?'checked="true"':""}
|
|
1076
|
+
/>
|
|
1077
|
+
<label class="waykeecom-accordion__header" for="finance-details-accordion" tabindex="0" aria-label="${a.t("loanDetails.showDetails")}">
|
|
1078
|
+
<div class="waykeecom-accordion__header-title">${a.t("loanDetails.details")}</div>
|
|
1079
|
+
<div class="waykeecom-accordion__header-icon" aria-hidden="true">
|
|
1080
|
+
<svg
|
|
1081
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
1082
|
+
viewBox="0 0 16 16"
|
|
1083
|
+
class="waykeecom-icon"
|
|
1084
|
+
data-icon="Chevron down"
|
|
1085
|
+
>
|
|
1086
|
+
<path d="M6.7 11.4 0 4.6l1.3-1.4L8 10.1l6.7-6.9L16 4.6l-6.7 6.9L8 12.8l-1.3-1.4z" />
|
|
1087
|
+
</svg>
|
|
1088
|
+
</div>
|
|
1089
|
+
</label>
|
|
1090
|
+
<div class="waykeecom-accordion__body">
|
|
1091
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1092
|
+
<ul class="waykeecom-key-value-list">
|
|
1093
|
+
${W({key:a.t("loanDetails.repaymentPeriod"),value:`${t} ${a.t("loanDetails.months")}`})}
|
|
1094
|
+
|
|
1095
|
+
${W({key:a.t("loanDetails.interest"),value:B(n*100,{postfix:"%",decimals:2})})}
|
|
1096
|
+
|
|
1097
|
+
${W({key:a.t("loanDetails.effectiveInterest"),value:B(r*100,{postfix:"%",decimals:2})})}
|
|
1098
|
+
|
|
1099
|
+
${i!==void 0&&W({key:a.t("loanDetails.setupFee"),value:B(i,{postfix:"kr"})})}
|
|
1100
|
+
|
|
1101
|
+
${e!==void 0&&W({key:a.t("loanDetails.administrationFee"),value:B(e,{postfix:"kr"})})}
|
|
1102
|
+
${W({key:a.t("loanDetails.totalCreditCost"),value:B(s,{postfix:"kr"})})}
|
|
1103
|
+
</ul>
|
|
1104
|
+
</div>
|
|
1105
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1106
|
+
<div class="waykeecom-disclaimer-text">
|
|
1107
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1108
|
+
<p class="waykeecom-content__p">${a.t("loanDetails.disclaimerText1")}</p>
|
|
1109
|
+
<p class="waykeecom-content__p">${a.t("loanDetails.disclaimerText2")}</p>
|
|
1110
|
+
</div>
|
|
1111
|
+
</div>
|
|
1112
|
+
</div>
|
|
1113
|
+
${o?`
|
|
1114
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1115
|
+
<a
|
|
1116
|
+
href="${o}"
|
|
1117
|
+
title="${a.t("loanDetails.moreInfo",{loanOrgName:c})}"
|
|
1118
|
+
rel="noopener noreferrer"
|
|
1119
|
+
target="_blank"
|
|
1120
|
+
class="waykeecom-link"
|
|
1121
|
+
>
|
|
1122
|
+
${a.t("loanDetails.moreInfo",{loanOrgName:c})}
|
|
1123
|
+
</a>
|
|
1124
|
+
</div>
|
|
1125
|
+
`:""}
|
|
1126
|
+
</div>
|
|
1127
|
+
</div>
|
|
1128
|
+
</div>
|
|
1129
|
+
`,this.node.querySelector("input")?.addEventListener("click",l=>this.onDetails(l))}},zw=Yw,Kw=class extends S{constructor(t,e){super(t),this.props=e,this.render()}update(t){this.props=t,this.render()}render(){let{monthlyCost:t}=this.props;this.node.innerHTML=`
|
|
1130
|
+
<ul class="waykeecom-key-value-list waykeecom-key-value-list--large-value">
|
|
1131
|
+
${W({key:a.t("loanDetailsMonthlyCost.monthlyCost"),value:B(t,{postfix:a.t("loanDetailsMonthlyCost.perMonth")})})}
|
|
1132
|
+
</ul>
|
|
1133
|
+
`}},Jw=Kw,Kl="finance-details-monthly-cost",Jl="finance-details-pie-chart-node",Ql="finance-details-basic",Xl="finance-details-detailed",Qw=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.render()}extractProps(){let{loan:t,paymentLookupResponse:e}=this.props,{monthlyCost:i,totalCreditCost:s}=e.costs,{interest:n,effectiveInterest:r}=e.interests,o=e.downPaymentSpec.current,c=e.durationSpec.current,{administrationFee:l,setupFee:u}=e.fees,d=e.creditAmount,p=e.publicURL,h=o+d,m=Math.round(o/h*100),b=Math.round(d/h*100);return{duration:c,downPayment:o,administrationFee:l,setupFee:u,totalCreditCost:s,interest:n,effectiveInterest:r,creditAmount:d,total:h,publicUrl:p,monthlyCost:i,loanOrgName:t.name,loanOrgLogo:t.logo,downPaymentPercentage:m,creditAmountPercentage:b}}update(t){this.props=t;let{duration:e,downPayment:i,administrationFee:s,setupFee:n,monthlyCost:r,totalCreditCost:o,interest:c,effectiveInterest:l,creditAmount:u,publicUrl:d,loanOrgName:p,downPaymentPercentage:h,creditAmountPercentage:m}=this.extractProps();this.contexts.loanDetailsMontlyCost?.update({monthlyCost:r}),this.contexts.pieChart?.update({percentage:m}),this.contexts.loanDetailsBasic?.update({downPayment:i,creditAmount:u,downPaymentPercentage:h,creditAmountPercentage:m}),this.contexts.loanDetailsDetailed?.update({duration:e,administrationFee:s,setupFee:n,totalCreditCost:o,interest:c,effectiveInterest:l,publicUrl:d,loanOrgName:p})}render(){let{duration:t,downPayment:e,administrationFee:i,setupFee:s,totalCreditCost:n,interest:r,effectiveInterest:o,creditAmount:c,publicUrl:l,loanOrgName:u,loanOrgLogo:d,monthlyCost:p,downPaymentPercentage:h,creditAmountPercentage:m}=this.extractProps(),b=a.t("loanDetails.disclaimerText",{interest:B(r*100,{decimals:2}),effectiveInterest:B(o*100,{decimals:2})});this.node.innerHTML=`
|
|
1134
|
+
<div class="waykeecom-stepper__break">
|
|
1135
|
+
<div class="waykeecom-shadow-box">
|
|
1136
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1137
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1138
|
+
<img src="${d}" alt="${u} logotyp" class="waykeecom-image waykeecom-image--loan-logo" />
|
|
1139
|
+
</div>
|
|
1140
|
+
</div>
|
|
1141
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1142
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Kl}"></div>
|
|
1143
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1144
|
+
<div class="waykeecom-disclaimer-text">${b}</div>
|
|
1145
|
+
</div>
|
|
1146
|
+
</div>
|
|
1147
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Jl}"></div>
|
|
1148
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1149
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Ql}"></div>
|
|
1150
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1151
|
+
<hr class="waykeecom-separator" />
|
|
1152
|
+
</div>
|
|
1153
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Xl}"></div>
|
|
1154
|
+
</div>
|
|
1155
|
+
</div>
|
|
1156
|
+
</div>
|
|
1157
|
+
`,this.contexts.loanDetailsMontlyCost=new Jw(this.node.querySelector(`#${Kl}`),{monthlyCost:p}),this.contexts.pieChart=new Hw(this.node.querySelector(`#${Jl}`),{percentage:m}),this.contexts.loanDetailsBasic=new Ww(this.node.querySelector(`#${Ql}`),{downPayment:e,creditAmount:c,downPaymentPercentage:h,creditAmountPercentage:m}),this.contexts.loanDetailsDetailed=new zw(this.node.querySelector(`#${Xl}`),{duration:t,administrationFee:i,setupFee:s,totalCreditCost:n,interest:r,effectiveInterest:o,publicUrl:l,loanOrgName:u})}},Xw=Qw,Zl="downpayment-range-node",Zw="downpayment-range",ed="duration-range-node",eE="duration-range",td="residual-range-node",tE="residual-range",iE="loan-details",id=`${iE}-node`,sd="credit-assessment-node",Ku="credit-assessment-proceed",nd=`${Ku}-node`,rd="loan-error-node",sE=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e;let i=this.props.loan.loanDetails;if(!i)throw"err";this.paymentLookupResponse=this.props.paymentLookupResponse||i,this.paymentState={vehicleId:this.props.vehicleId,dealerId:"",downPayment:this.paymentLookupResponse.downPaymentSpec,duration:this.paymentLookupResponse.durationSpec,residual:this.paymentLookupResponse.residualValueSpec,financialOptionId:this.paymentLookupResponse.financialOptionId},this.previousState=JSON.parse(JSON.stringify(this.paymentState)),this.render()}async payment(){this.contexts.downPayment?.disabled(!0),this.contexts.duration?.disabled(!0),this.contexts.residual?.disabled(!0),this.contexts.proceedButton?.disabled(!0);try{let t=await jw({vehicleId:this.paymentState.vehicleId,downPayment:this.paymentState.downPayment.current,duration:this.paymentState.duration.current,residual:this.paymentState.residual?.current,financialOptionId:this.paymentState.financialOptionId});this.previousState=JSON.parse(JSON.stringify(this.paymentState)),this.paymentLookupResponse=Or(t),this.paymentState={...this.paymentState,downPayment:this.paymentLookupResponse.downPaymentSpec,duration:this.paymentLookupResponse.durationSpec,residual:this.paymentLookupResponse.residualValueSpec,financialOptionId:this.paymentLookupResponse.financialOptionId},Xk(t)(this.props.store.dispatch),this.update(),this.contexts.errorAlert?.update(void 0),this.contexts.downPayment?.update(this.paymentState.downPayment.current,this.paymentState.downPayment.min,this.paymentState.downPayment.max),this.contexts.residual?.update(parseInt(`${this.paymentState.residual.current*100}`,10),parseInt(`${this.paymentState.residual.min*100}`,10),parseInt(`${this.paymentState.residual.max*100}`,10)),this.contexts.duration?.update(this.paymentState.duration.current,this.paymentState.duration.min,this.paymentState.duration.max)}catch{this.contexts.errorAlert?.update(a.t("loan.errorOccurred")),this.contexts.downPayment?.disabled(!1),this.contexts.duration?.disabled(!1),this.contexts.residual?.disabled(!1),this.contexts.downPayment?.update(this.previousState.downPayment.current,this.previousState.downPayment.min,this.previousState.downPayment.max),this.contexts.residual?.update(parseInt(`${this.previousState.residual.current*100}`,10),parseInt(`${this.previousState.residual.min*100}`,10),parseInt(`${this.previousState.residual.max*100}`,10)),this.contexts.duration?.update(this.previousState.duration.current,this.previousState.duration.min,this.previousState.duration.max)}finally{this.contexts.downPayment?.disabled(!1),this.contexts.duration?.disabled(!1),this.contexts.residual?.disabled(!1),this.contexts.proceedButton?.disabled(!1)}}onChange(t){let e=t.currentTarget,i=e.name,s=e.value;e.value=s,this.paymentState[i].current=i==="residual"?parseInt(s,10)/100:parseInt(s,10),this.payment()}update(){this.contexts.loanDetails?.update({loan:this.props.loan,paymentLookupResponse:this.paymentLookupResponse})}render(){let{store:t,loan:e,onProceed:i}=this.props,{order:s}=t.getState(),n=s?.contactInformation?.name,r=e.loanDetails?.shouldUseCreditScoring;this.node.innerHTML=`
|
|
1158
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1159
|
+
<hr class="waykeecom-separator" />
|
|
1160
|
+
</div>
|
|
1161
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1162
|
+
<h5 class="waykeecom-heading waykeecom-heading--4">${a.t("loan.title")}</h5>
|
|
1163
|
+
<div class="waykeecom-content">
|
|
1164
|
+
<p class="waykeecom-content__p">${a.t("loan.description",{name:e?.name})}${r?` ${a.t("loan.creditScoringInfo",{name:n})}`:""}</p>
|
|
1165
|
+
<p class="waykeecom-content__p">${a.t("loan.instruction")}</p>
|
|
1166
|
+
</div>
|
|
1167
|
+
</div>
|
|
1168
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1169
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Zl}"></div>
|
|
1170
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${ed}"></div>
|
|
1171
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${td}"></div>
|
|
1172
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${rd}"></div>
|
|
1173
|
+
|
|
1174
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${id}"></div>
|
|
1175
|
+
</div>
|
|
1176
|
+
${r?`
|
|
1177
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${sd}"></div>
|
|
1178
|
+
`:`<div class="waykeecom-stack waykeecom-stack--3" id="${nd}"></div>`}
|
|
1179
|
+
`,this.contexts.downPayment=new hr(this.node.querySelector(`#${Zl}`),{title:a.t("loan.downPaymentTitle"),value:this.paymentState.downPayment.current,id:Zw,name:"downPayment",onChange:o=>this.onChange(o),min:this.paymentState.downPayment.min,max:this.paymentState.downPayment.max,unit:"kr",information:`
|
|
1180
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1181
|
+
<p class="waykeecom-content__p"><span class="waykeecom-text waykeecom-text--font-medium">${a.t("loan.downPaymentInfoTitle")}</span></p>
|
|
1182
|
+
<p class="waykeecom-content__p">${a.t("loan.downPaymentInfoDescription",{name:n})}</p>
|
|
1183
|
+
</div>
|
|
1184
|
+
`,onClickInformation:()=>{v("MAIN","FINANCIAL_LOAN_DOWNPAYMENT_INFORMATION_TOGGLE","FINANCIAL")}}),this.contexts.duration=new hr(this.node.querySelector(`#${ed}`),{title:a.t("loan.durationTitle"),value:this.paymentState.duration.current,id:eE,name:"duration",onChange:o=>this.onChange(o),min:this.paymentState.duration.min,max:this.paymentState.duration.max,step:this.paymentState.duration.step,unit:"m\xE5n"}),this.paymentState.residual&&(this.contexts.residual=new hr(this.node.querySelector(`#${td}`),{title:a.t("loan.residualTitle"),value:parseInt(`${this.paymentState.residual.current*100}`,10),id:tE,name:"residual",onChange:o=>this.onChange(o),min:parseInt(`${this.paymentState.residual.min*100}`,10),max:parseInt(`${this.paymentState.residual.max*100}`,10),step:parseInt(`${this.paymentState.residual.step*100}`,10),unit:"%"})),this.contexts.errorAlert=new Pw(this.node.querySelector(`#${rd}`),{}),this.contexts.loanDetails=new Xw(this.node.querySelector(`#${id}`),{loan:e,paymentLookupResponse:this.paymentLookupResponse}),r?new Fw(this.node.querySelector(`#${sd}`),{store:t,loan:e,paymentLookupResponse:this.paymentLookupResponse,onProceed:()=>i()}):this.contexts.proceedButton=new xe(this.node.querySelector(`#${nd}`),{title:a.t("loan.proceedButton"),id:Ku,onClick:()=>i()})}},nE=sE,rE="credit-assessment-result",ad=`${rE}-node`,aE=class extends S{constructor(t,e){super(t,{htmlTag:"div"}),this.props=e,this.render()}render(){let{store:t,paymentType:e,loan:i,paymentLookupResponse:s,onEdit:n}=this.props,r=i?.loanDetails;if(e===P.Loan){let o=this.props.store.getState(),c=s||r;if(!r||!c)throw"Missing loan";let l=c.downPaymentSpec.current,u=c.creditAmount,d=c.durationSpec.current,{interest:p,effectiveInterest:h}=c.interests,{monthlyCost:m}=c.costs,b=[{key:a.t("stageCompletedFinancial.downPayment"),value:B(l,{postfix:"kr"})},{key:a.t("stageCompletedFinancial.loanAmount"),value:B(u,{postfix:"kr"})},{key:a.t("stageCompletedFinancial.repaymentPeriod"),value:`${d} ${a.t("stageCompletedFinancial.months")}`},{key:a.t("stageCompletedFinancial.monthlyCost"),value:B(m,{postfix:"kr*"})}],_=o.creditAssessmentResponse?.recommendation,f=a.t("stageCompletedFinancial.disclaimerText",{interest:B(p*100,{decimals:2}),effectiveInterest:B(h*100,{decimals:2})});this.node.innerHTML=`
|
|
1185
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1186
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${i.name}</h4>
|
|
1187
|
+
<div class="waykeecom-content">
|
|
1188
|
+
<p class="waykeecom-content__p">${a.t("stageCompletedFinancial.orderAlmostReady")}</p>
|
|
1189
|
+
</div>
|
|
1190
|
+
</div>
|
|
1191
|
+
${_?`<div class="waykeecom-stack waykeecom-stack--2" id="${ad}"></div>`:""}
|
|
1192
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1193
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1194
|
+
<ul class="waykeecom-key-value-list">
|
|
1195
|
+
${b.map(g=>W(g)).join("")}
|
|
1196
|
+
</ul>
|
|
1197
|
+
</div>
|
|
1198
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1199
|
+
<div class="waykeecom-disclaimer-text">${f}</div>
|
|
1200
|
+
</div>
|
|
1201
|
+
</div>
|
|
1202
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1203
|
+
<div class="waykeecom-align waykeecom-align--end">
|
|
1204
|
+
<button type="button" title="${a.t("stageCompletedFinancial.changeFinancing")}" class="waykeecom-link">${a.t("stageCompletedFinancial.changeFinancing")}</button>
|
|
1205
|
+
</div>
|
|
1206
|
+
</div>
|
|
1207
|
+
`,_&&new Ls(this.node.querySelector(`#${ad}`),{store:t,decision:_})}else this.node.innerHTML=`
|
|
1208
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1209
|
+
<ul class="waykeecom-key-value-list">
|
|
1210
|
+
${W({key:a.t("stageCompletedFinancial.financing"),value:e===P.Cash?a.t("stageCompletedFinancial.cash"):a.t("stageCompletedFinancial.lease")})}
|
|
1211
|
+
</ul>
|
|
1212
|
+
</div>
|
|
1213
|
+
${n?`
|
|
1214
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1215
|
+
<div class="waykeecom-align waykeecom-align--end">
|
|
1216
|
+
<button type="button" title="${a.t("stageCompletedFinancial.changeFinancing")}" class="waykeecom-link">${a.t("stageCompletedFinancial.changeFinancing")}</button>
|
|
1217
|
+
</div>
|
|
1218
|
+
</div>
|
|
1219
|
+
`:""}
|
|
1220
|
+
`;n&&this.node.querySelector("button")?.addEventListener("click",()=>n())}},oE=aE,Ju="button-financial-proceed",od=`${Ju}-node`,cE="financial-option",cd=`${cE}-node`,lE="financial-option-second",ld=`${lE}-node`,dE="radio-financial-cash",uE="radio-financial-loan",hE="radio-financial-lease",dd="payment-node",pE=zu,mE=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{let n=this.props.store.getState();this.paymentType=n.paymentType,this.render()});let i=this.props.store.getState(),{paymentType:s}=i;this.paymentType=s,this.render()}onChange(t){Zk()(this.props.store.dispatch);let e=t.currentTarget.value;switch(this.paymentType=e,this.render(!0),Gt(this.paymentType)){case P.Cash:v("MAIN","FINANCIAL_CASH_SELECTED","FINANCIAL");break;case P.Lease:v("MAIN","FINANCIAL_LEASE_SELECTED","FINANCIAL");break;case P.Loan:v("MAIN","FINANCIAL_LOAN_SELECTED","FINANCIAL");default:break}}onProceed(){let t=Gt(this.paymentType);if(this.paymentType&&t){switch(t){case P.Cash:v("MAIN","FINANCIAL_CASH_SET","FINANCIAL");break;case P.Lease:v("MAIN","FINANCIAL_LEASE_SET","FINANCIAL");break;case P.Loan:v("MAIN","FINANCIAL_LOAN_SET","FINANCIAL");default:break}Qk(this.paymentType,this.props.lastStage)(this.props.store.dispatch)}}onEdit(){v("MAIN","FINANCIAL_EDIT","FINANCIAL"),Qe("main",this.props.index)(this.props.store.dispatch)}render(t){let e=this.props.store.getState(),{id:i,order:s,paymentLookupResponse:n}=e;if(!s)throw"No order available";let r=s.paymentOptions,o=e.topNavigation.stage>this.props.index,c=ft(this.node,{completed:o,title:a.t("financial.heading"),active:e.navigation.stage===this.props.index,id:"financial",index:this.props.index}),l=document.createElement("div"),u=Gt(this.paymentType);if((e.navigation.stage>this.props.index||o&&e.navigation.stage!==this.props.index)&&u){let d=r.find(p=>p.type===P.Loan);new oE(c,{store:this.props.store,loan:d,paymentType:u,paymentLookupResponse:n||d?.loanDetails,onEdit:e.createdOrderId?void 0:()=>this.onEdit()})}else if(e.navigation.stage===this.props.index){let d=e.order?.orderVehicle,p=r.find(y=>y.type===P.Cash),h=r.filter(y=>this.props.marketCode==="NO"?y.type===P.Loan&&!y.loanDetails?.shouldUseCreditScoring:y.type===P.Loan),m=r.find(y=>y.type===P.Lease);l.innerHTML=`
|
|
1221
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1222
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("financial.howToFinance",{vehicleTitle:d?.title,vehicleDescription:$r(d)})}</h4>
|
|
1223
|
+
</div>
|
|
1224
|
+
|
|
1225
|
+
${p||h.length?`<div class="waykeecom-stack waykeecom-stack--3" id="${cd}"></div>`:""}
|
|
1226
|
+
${m?`<div class="waykeecom-stack waykeecom-stack--3" id="${ld}"></div>`:""}
|
|
1227
|
+
|
|
1228
|
+
<div class="waykeecom-stack waykeecom-stack--3" role="form" id="${dd}" aria-describedby="${pE}"></div>
|
|
1229
|
+
${u!==P.Loan?`<div class="waykeecom-stack waykeecom-stack--3" id="${od}"></div>`:""}
|
|
1230
|
+
|
|
1231
|
+
`,c.appendChild(l);let b=s.contactInformation,_=[];p&&_.push({id:dE,value:P.Cash,title:a.t("financial.cash"),description:`
|
|
1232
|
+
<div class="waykeecom-box">
|
|
1233
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1234
|
+
<ul class="waykeecom-content__ul">
|
|
1235
|
+
<li class="waykeecom-content__li">${a.t("financial.cashDescription",{contactName:b?.name})}</li>
|
|
1236
|
+
</ul>
|
|
1237
|
+
</div>
|
|
1238
|
+
</div>`,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${B(p.price,{postfix:p.unit})}</div>`}),h.forEach((y,I)=>{let $=y.price,Y=y.loanDetails?.durationSpec.default,ce=y.loanDetails?.interests.interest||NaN,pe=y.loanDetails?.creditAmount||NaN,z=y.loanDetails?.shouldUseCreditScoring;_.push({id:`${uE}-${I}`,value:`${P.Loan}-${I}`,title:y.name,description:`
|
|
1239
|
+
<div class="waykeecom-box">
|
|
1240
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1241
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1242
|
+
<ul class="waykeecom-content__ul">
|
|
1243
|
+
${z?`
|
|
1244
|
+
<li class="waykeecom-content__li">
|
|
1245
|
+
<div>
|
|
1246
|
+
<span class="waykeecom-text waykeecom-text--valign-middle">${a.t("financial.loanApplicationOnline")} </span>
|
|
1247
|
+
<img src="${Ur.bankid}" alt="BankID logotyp" class="waykeecom-image waykeecom-image--inline" aria-hidden="true" />
|
|
1248
|
+
<span class="waykeecom-text waykeecom-text--valign-middle">${a.t("financial.loanApplicationResponse")}</span>
|
|
1249
|
+
</div>
|
|
1250
|
+
</li>
|
|
1251
|
+
`:""}
|
|
1252
|
+
<li class="waykeecom-content__li">${a.t("financial.paymentAtContract",{contactName:b?.name})}</li>
|
|
1253
|
+
<li class="waykeecom-content__li">${a.t("financial.calculatedOn",{creditAmount:B(pe,{postfix:"kr"}),duration:Y,interest:B(ce*100,{decimals:2})})}</li>
|
|
1254
|
+
</ul>
|
|
1255
|
+
</div>
|
|
1256
|
+
</div>
|
|
1257
|
+
${y.logo?`<div class="waykeecom-stack waykeecom-stack--2">
|
|
1258
|
+
<div class="waykeecom-align waykeecom-align--center">
|
|
1259
|
+
<img src="${y.logo}" alt="${y.name} logotyp" class="waykeecom-image waykeecom-image--loan-logo" />
|
|
1260
|
+
</div>
|
|
1261
|
+
</div>`:""}
|
|
1262
|
+
</div>
|
|
1263
|
+
`,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${B($,{postfix:y.unit})}</div>`})}),(p||h.length)&&new Ct(l.querySelector(`#${cd}`),{title:a.t("financial.buyCar"),checked:this.paymentType,name:"paymentType",information:`
|
|
1264
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1265
|
+
<p class="waykeecom-content__p">${a.t("financial.buyCarDescription")}</p>
|
|
1266
|
+
</div>
|
|
1267
|
+
`,footer:this.props.marketCode==="SE"?`
|
|
1268
|
+
<div class="waykeecom-box" role="status" aria-live="polite">
|
|
1269
|
+
<div class="waykeecom-creditor-disclaimer">
|
|
1270
|
+
<div class="waykeecom-creditor-disclaimer__icon" aria-hidden="true">
|
|
1271
|
+
<svg
|
|
1272
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
1273
|
+
width="59"
|
|
1274
|
+
height="53"
|
|
1275
|
+
viewBox="0 0 59 53"
|
|
1276
|
+
fill="none"
|
|
1277
|
+
>
|
|
1278
|
+
<title>Varning</title>
|
|
1279
|
+
<path
|
|
1280
|
+
d="M29.5255 20.3569V30.5712M29.5255 40.7855H29.551M54.3173 43.3391L33.9335 7.58906C33.4891 6.80308 32.8445 6.14932 32.0657 5.69448C31.2868 5.23964 30.4015 5 29.5001 5C28.5986 5 27.7133 5.23964 26.9344 5.69448C26.1556 6.14932 25.5111 6.80308 25.0666 7.58906L4.68285 43.3391C4.23359 44.1188 3.99802 45.0038 4.00001 45.9042C4.002 46.8046 4.24148 47.6884 4.69417 48.4662C5.14687 49.244 5.79668 49.8879 6.57776 50.3329C7.35883 50.7778 8.2434 51.0079 9.14179 50.9998H49.9093C50.8034 50.9989 51.6815 50.7622 52.4554 50.3136C53.2294 49.865 53.8719 49.2202 54.3186 48.444C54.7652 47.6677 55.0002 46.7874 55 45.8913C54.9998 44.9953 54.7643 44.1151 54.3173 43.3391Z"
|
|
1281
|
+
stroke="#A43333"
|
|
1282
|
+
stroke-width="4"
|
|
1283
|
+
stroke-linecap="round"
|
|
1284
|
+
stroke-linejoin="round"
|
|
1285
|
+
/>
|
|
1286
|
+
</svg>
|
|
1287
|
+
</div>
|
|
1288
|
+
<div class="waykeecom-creditor-disclaimer__body">
|
|
1289
|
+
<div class="waykeecom-creditor-disclaimer__heading">Att l\xE5na kostar pengar!</div>
|
|
1290
|
+
<p>
|
|
1291
|
+
Om du inte kan betala tillbaka skulden i tid riskerar du en betalningsanm\xE4rkning. Det kan
|
|
1292
|
+
leda till sv\xE5righeter att f\xE5 hyra bostad, teckna abonnemang och f\xE5 nya l\xE5n. F\xF6r st\xF6d, v\xE4nd
|
|
1293
|
+
dig till budget- och skuldr\xE5dgivningen i din kommun. Kontaktuppgifter finns p\xE5
|
|
1294
|
+
<a
|
|
1295
|
+
href="https://www.konsumentverket.se/"
|
|
1296
|
+
title="Konsumentverket"
|
|
1297
|
+
target="_blank"
|
|
1298
|
+
rel="noopener noreferrer nofollow"
|
|
1299
|
+
class="waykeecom-link waykeecom-link--no-external-icon"
|
|
1300
|
+
>
|
|
1301
|
+
konsumentverket.se
|
|
1302
|
+
</a>.
|
|
1303
|
+
</p>
|
|
1304
|
+
</div>
|
|
1305
|
+
</div>
|
|
1306
|
+
</div>
|
|
1307
|
+
`:"",options:_,onClick:y=>this.onChange(y),onClickInformation:()=>{v("MAIN","FINANCIAL_INFORMATION_TOGGLE","FINANCIAL")}});let f=[];m&&(f.push({id:hE,title:a.t("financial.privateLeasing"),value:P.Lease,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${a.t("financial.from")} ${B(m?.price,{postfix:m.unit})}</div>`}),new Ct(l.querySelector(`#${ld}`),{title:a.t("financial.leaseCar"),checked:this.paymentType,name:"paymentType",information:`
|
|
1308
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1309
|
+
<p class="waykeecom-content__p">${a.t("financial.leaseCarDescription")}</p>
|
|
1310
|
+
</div>
|
|
1311
|
+
`,options:f,onClick:y=>this.onChange(y)}));let g=l.querySelector(`#${dd}`);if(g){let y=Gt(this.paymentType),I=Uu(this.paymentType);h.length&&y===P.Loan&&I!==void 0?new nE(g,{store:this.props.store,loan:JSON.parse(JSON.stringify(h[I])),vehicleId:i,paymentLookupResponse:n,onProceed:()=>this.onProceed()}):new xe(l.querySelector(`#${od}`),{title:a.t("financial.proceed"),id:Ju,disabled:!this.paymentType,onClick:()=>this.onProceed()})}}!t&&e.navigation.stage===this.props.index&&c.parentElement?.scrollIntoView()}},fE=mE,ud="insurance-button-top-left-node",hd="insurance-button-bottom-left-node",pd="insurance-add-remove-node",gE=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{freeInsurance:t,selected:e,onClose:i,onClick:s}=this.props,{title:n,description:r,logo:o,longDescription:c}=t;this.node.innerHTML=`
|
|
1312
|
+
<div class="waykeecom-nav-banner" id="${ud}"></div>
|
|
1313
|
+
|
|
1314
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1315
|
+
<div class="waykeecom-hstack waykeecom-hstack--align-center waykeecom-hstack--spacing-3">
|
|
1316
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--grow">
|
|
1317
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${n}</h3>
|
|
1318
|
+
</div>
|
|
1319
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--no-shrink">
|
|
1320
|
+
<div class="waykeecom-logo">
|
|
1321
|
+
<img src="${o}" alt="${a.t("insurance.logoAlt",{title:n})}" class="waykeecom-logo__image waykeecom-logo__image--right" />
|
|
1322
|
+
</div>
|
|
1323
|
+
</div>
|
|
1324
|
+
</div>
|
|
1325
|
+
</div>
|
|
1326
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1327
|
+
<div class="waykeecom-content waykeecom-text waykeecom-text--font-medium">
|
|
1328
|
+
<p class="waykeecom-content__p">${r}</p>
|
|
1329
|
+
</div>
|
|
1330
|
+
</div>
|
|
1331
|
+
${c?`
|
|
1332
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1333
|
+
<div class="waykeecom-content">
|
|
1334
|
+
<p class="waykeecom-content__p">${xu(c)}</p>
|
|
1335
|
+
</div>
|
|
1336
|
+
</div>
|
|
1337
|
+
`:""}
|
|
1338
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1339
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${pd}"></div>
|
|
1340
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${hd}"></div>
|
|
1341
|
+
</div>
|
|
1342
|
+
`,new Ss(this.node.querySelector(`#${ud}`),{title:a.t("insurance.backButton"),onClick:()=>i()}),new Ts(this.node.querySelector(`#${hd}`),{title:a.t("insurance.backButton"),onClick:()=>i()}),new _s(this.node.querySelector(`#${pd}`),{selected:e,fullSize:!0,onClick:()=>s()}),Nt()}},kE=gE,yE=class extends S{constructor(t,e){super(t),this.displayInfo=!1,this.props=e,we(this.props.store,"freeInsurance",()=>{this.render()}),this.render()}onInfoOpen(){v("MAIN","INSURANCE_INFORMATION_TOGGLE","INSURANCE"),this.displayInfo=!0,this.render()}onInfoClose(){v("MAIN","INSURANCE_INFORMATION_TOGGLE","INSURANCE"),this.displayInfo=!1,Ce(),this.render(),this.node.parentElement?.scrollIntoView()}onClick(){let{freeInsurance:t}=this.props.store.getState();t&&this.props.freeInsurance!==t?v("MAIN","INSURANCE_SELECTED","INSURANCE"):v("MAIN","INSURANCE_UNSELECTED","INSURANCE"),iy(this.props.freeInsurance)(this.props.store.dispatch)}render(){let{store:t,freeInsurance:e,key:i}=this.props,s=t.getState(),n=s.order?.insuranceOption?.logo,r=s.freeInsurance?JSON.stringify(s.freeInsurance).localeCompare(JSON.stringify(this.props.freeInsurance))===0:!1;this.displayInfo&&new kE(Yt(),{freeInsurance:e,selected:r,onClick:()=>{this.onInfoClose(),this.onClick()},onClose:()=>this.onInfoClose()}),new Br(this.node,{logo:n,id:i,title:e.title,description:e.description,selected:r,onClick:()=>this.onClick(),onInfo:()=>this.onInfoOpen()},i)}},vE=yE,wE=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,insurances:e}=this.props,i=new Fr(this.node,{id:"insurance-list",onClick:()=>v("MAIN","INSURANCE_ARROW","INSURANCE")}),{overflowElement:s}=i;s&&(s.innerHTML="",e.forEach((n,r)=>new vE(s,{store:t,freeInsurance:n,key:`insurance-${r}`})))}},EE=wE,Ar="insurance-grid-list-node",xE="button-insurances-proceed",md=`${Ar}-node`,IE="button-insurances-skip",bE=`${IE}-node`,SE=class extends S{constructor(t,e){super(t),this.props=e,this.render()}onProceed(){let{freeInsurance:t}=this.props.store.getState();Ti(this.props.lastStage)(this.props.store.dispatch),v("MAIN",t?"INSURANCE_SET":"INSURANCE_SKIPPED","INSURANCE")}render(){let{store:t,insurance:e}=this.props;this.node.innerHTML=`
|
|
1343
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1344
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("insurance.heading")}</h4>
|
|
1345
|
+
<div class="waykeecom-content">
|
|
1346
|
+
<p class="waykeecom-content__p">${a.t("insurance.description")}</p>
|
|
1347
|
+
</div>
|
|
1348
|
+
</div>
|
|
1349
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Ar}"></div>
|
|
1350
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1351
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${md}"></div>
|
|
1352
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${bE}"></div>
|
|
1353
|
+
</div>
|
|
1354
|
+
`,new EE(this.node.querySelector(`#${Ar}`),{store:t,insurances:[e]}),new xe(this.node.querySelector(`#${md}`),{id:xE,title:a.t("insurance.proceedButton"),onClick:()=>this.onProceed()})}},CE=SE,AE=(t,e)=>{let i=t.getState();if(!i.id)throw"No id";let s=Xs.newInsuranceOptionsRequest().forCustomer(i.customer.socialId).forVehicle(i.id).withDrivingDistance(e);return Xs.getOptions(s.build())},NE=class extends S{constructor(t,e){super(t),this.props=e,this.render()}isDisabled(){return this.props.disabled}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}loading(t){this.props.loading!==t&&(this.props.loading=t,this.props.disabled=t,this.render())}render(){let{title:t,id:e,disabled:i,loading:s,onClick:n}=this.props;this.node.innerHTML=`
|
|
1355
|
+
<button
|
|
1356
|
+
type="button"
|
|
1357
|
+
${e?`id="${e}"`:""}
|
|
1358
|
+
title="${t}"
|
|
1359
|
+
${i&&'disabled=""'}
|
|
1360
|
+
class="waykeecom-button waykeecom-button--full-width waykeecom-button--success"
|
|
1361
|
+
>
|
|
1362
|
+
<span class="waykeecom-button__content">${t}</span>
|
|
1363
|
+
${s?`
|
|
1364
|
+
<span class="waykeecom-button__content">
|
|
1365
|
+
${Ve({type:"inline"})}
|
|
1366
|
+
</span>`:""}
|
|
1367
|
+
</button>
|
|
1368
|
+
`,n&&this.node.querySelector("button")?.addEventListener("click",n)}},_E=NE,TE=class extends S{constructor(t,e){super(t,e.append?{htmlTag:"div",className:"waykeecom-input-selection",attributes:[{key:"role",value:"checkbox"}]}:void 0),this.props=e,this.render()}checked(t){this.props.checked!==t&&(this.props.checked=t,this.render())}disabled(t){this.props.disabled!==t&&(this.props.disabled=t,this.render())}render(){let{id:t,title:e,value:i,name:s,checked:n,meta:r,description:o,append:c,disabled:l,onClick:u}=this.props,d=`
|
|
1369
|
+
<input
|
|
1370
|
+
type="checkbox"
|
|
1371
|
+
id="${t}"
|
|
1372
|
+
value="${i}"
|
|
1373
|
+
name="${s}"
|
|
1374
|
+
${l?'disabled=""':""}
|
|
1375
|
+
${n?'checked="true"':""}
|
|
1376
|
+
class="waykeecom-input-selection__input"
|
|
1377
|
+
/>
|
|
1378
|
+
<div class="waykeecom-input-selection__header">
|
|
1379
|
+
<label for="${t}" class="waykeecom-input-selection__label">${e}</label>
|
|
1380
|
+
${r?`<div class="waykeecom-input-selection__meta">${r}</div>`:""}
|
|
1381
|
+
</div>
|
|
1382
|
+
${o?`
|
|
1383
|
+
<label for="${t}" class="waykeecom-input-selection__description">
|
|
1384
|
+
${o}
|
|
1385
|
+
</label>
|
|
1386
|
+
`:""}
|
|
1387
|
+
`;c&&(this.node.innerHTML=d),this.node.innerHTML=`
|
|
1388
|
+
<div class="waykeecom-input-selection" role="checkbox">
|
|
1389
|
+
${d}
|
|
1390
|
+
</div>
|
|
1391
|
+
`;let p=this.node.querySelector(`#${t}`);p&&u&&p.addEventListener("click",u)}},Gr=TE,RE=class extends S{constructor(t){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--1"}),this.render()}render(){return this.node.innerHTML='<div class="waykeecom-box"></div>',this.node.querySelector(".waykeecom-box")}},DE=RE,pr="insurance-button-top-left-node",fd="insurance-button-bottom-left-node",mr="insurance-add-remove-node",gd="insurance-addons-node",kd="insurance-accordion-node",OE=t=>t.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),LE=class Nr extends S{constructor(e,i){super(e),this.initialAddons=[],this.addons=[],this.contexts={checkboxes:{}},this.props=i;let{insuranceAddOns:s}=this.props.store.getState();s?.insurance&&s.insurance===this.props.insurance.name&&(this.addons=[...s.addOns]),this.initialAddons=[...this.addons],this.render()}static containChanges(e,i){let s=[...e].sort(),n=[...i].sort();return s.join().localeCompare(n.join())!==0}onClick(e){let i=e.currentTarget,{name:s,checked:n}=i,r=this.props.insurance.addOns.find(c=>c.name===s);if(r){if(Object.keys(this.contexts.checkboxes).forEach(c=>{this.contexts.checkboxes[c]?.disabled(!1)}),n)v("MAIN","INSURANCE_ADDON_SELECTED","INSURANCE_IF"),this.addons.push(r);else{v("MAIN","INSURANCE_ADDON_UNSELECTED","INSURANCE_IF");let c=this.addons.findIndex(l=>l.name===r.name);c>-1&&this.addons.splice(c,1)}this.contexts.checkboxes[s]?.checked(n),[...new Set(this.addons.map(c=>c.exclude).flat())].forEach(c=>this.contexts.checkboxes[c]?.disabled(!0))}let o=Nr.containChanges(this.initialAddons,this.addons);this.contexts.updateButton?.disabled(this.props.selected?!o:!1),this.render()}onUpdate(){let{insurance:e}=this.props.store.getState();!e||e&&this.props.insurance.name!==e.name?v("MAIN","INSURANCE_SELECTED","INSURANCE_IF"):v("MAIN","INSURANCE_UNSELECTED","INSURANCE_IF"),ty(this.props.insurance,this.addons)(this.props.store.dispatch),this.props.onClose()}render(){let{insurance:e,selected:i,onClose:s}=this.props,{name:n,description:r,legalDescription:o,legalUrl:c,insuranceItems:l}=e,u=e.addOns,d=Nr.containChanges(this.initialAddons,this.addons),p=this.addons.reduce((h,m)=>h+m.monthlyPrice,e.price);if(this.node.innerHTML=`
|
|
1392
|
+
<div class="waykeecom-nav-banner" id="${pr}"></div>
|
|
1393
|
+
|
|
1394
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1395
|
+
<div class="waykeecom-hstack waykeecom-hstack--align-center waykeecom-hstack--spacing-3">
|
|
1396
|
+
<div class="waykeecom-hstack__item waykeecom-hstack__item--grow">
|
|
1397
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${n}</h3>
|
|
1398
|
+
</div>
|
|
1399
|
+
|
|
1400
|
+
</div>
|
|
1401
|
+
</div>
|
|
1402
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1403
|
+
<div class="waykeecom-text waykeecom-text--font-bold">${B(p,{postfix:a.t("insurance.perMonth")})}</div>
|
|
1404
|
+
</div>
|
|
1405
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1406
|
+
<div class="waykeecom-content waykeecom-text waykeecom-text--font-medium">
|
|
1407
|
+
<p class="waykeecom-content__p">${r}</p>
|
|
1408
|
+
</div>
|
|
1409
|
+
</div>
|
|
1410
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1411
|
+
<a
|
|
1412
|
+
href="${c}"
|
|
1413
|
+
rel="noopener noreferrer"
|
|
1414
|
+
target="_blank"
|
|
1415
|
+
class="waykeecom-link"
|
|
1416
|
+
>${o}</a>
|
|
1417
|
+
</div>
|
|
1418
|
+
${u?.length?`<div class="waykeecom-stack waykeecom-stack--3">
|
|
1419
|
+
<fieldset class="waykeecom-input-group">
|
|
1420
|
+
<legend class="waykeecom-input-label"><div class="waykeecom-input-label__label">${a.t("insurance.addons")}</div></legend>
|
|
1421
|
+
<div id="${gd}"></div>
|
|
1422
|
+
</fieldset>
|
|
1423
|
+
</div>`:""}
|
|
1424
|
+
${l?.length?`
|
|
1425
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1426
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("insurance.includes")}</h4>
|
|
1427
|
+
</div>
|
|
1428
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${kd}"></div>
|
|
1429
|
+
`:""}
|
|
1430
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1431
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${mr}"></div>
|
|
1432
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${fd}"></div>
|
|
1433
|
+
</div>
|
|
1434
|
+
`,new Ss(this.node.querySelector(`#${pr}`),{title:a.t("insurance.backButton"),onClick:()=>s()}),u?.length){let h=this.node.querySelector(`#${gd}`);u.forEach(m=>{let b=new DE(h);this.contexts.checkboxes[m.name]=new Gr(b.render(),{id:OE(m.name),name:m.name,title:m.title,meta:`<div class="waykeecom-text waykeecom-text--font-bold">${B(m.monthlyPrice,{postfix:a.t("insurance.perMonth")})}</div>`,description:`<div class="waykeecom-text waykeecom-text--tone-alt">${m.description}</div>`,append:!0,value:m.name,checked:this.addons.findIndex(_=>_.name===m.name)>-1,onClick:_=>this.onClick(_)})})}if(l?.length){let h=this.node.querySelector(`#${kd}`);l.forEach(m=>new Ru(h,{id:m.name,title:m.name,description:m.description,append:!0}))}new Ss(this.node.querySelector(`#${pr}`),{title:a.t("insurance.backButton"),onClick:()=>s()}),new Ts(this.node.querySelector(`#${fd}`),{title:a.t("insurance.backButton"),onClick:()=>s()}),i?this.contexts.updateButton=new _E(this.node.querySelector(`#${mr}`),{title:i?a.t("insurance.update"):a.t("insurance.select"),disabled:i?!d:void 0,onClick:()=>this.onUpdate()}):this.contexts.updateButton=new _s(this.node.querySelector(`#${mr}`),{selected:!1,fullSize:!0,disabled:i?!d:void 0,onClick:()=>this.onUpdate()}),Nt()}},ME=LE,$E=class extends S{constructor(t,e){super(t),this.displayInfo=!1,this.props=e,we(this.props.store,"insurance",()=>{this.render()}),this.render()}onInfoOpen(){v("MAIN","INSURANCE_INFORMATION_TOGGLE","INSURANCE_IF"),this.displayInfo=!0,this.render()}onInfoClose(){v("MAIN","INSURANCE_INFORMATION_TOGGLE","INSURANCE_IF"),this.displayInfo=!1,Ce(),this.render(),this.node.parentElement?.scrollIntoView()}onClick(){let{insurance:t}=this.props.store.getState();!t||t&&this.props.insurance.name!==t.name?v("MAIN","INSURANCE_SELECTED","INSURANCE_IF"):v("MAIN","INSURANCE_UNSELECTED","INSURANCE_IF"),Lr(this.props.insurance)(this.props.store.dispatch)}render(){let{store:t,insurance:e,key:i}=this.props,s=t.getState(),n=s.order?.insuranceOption?.logo,r=s.insuranceAddOns?.insurance===e.name?s.insuranceAddOns.addOns.map(c=>({key:c?.title,value:B(c?.monthlyPrice,{postfix:a.t("insurance.perMonth")})})):void 0,o=s.insurance?JSON.stringify(s.insurance).localeCompare(JSON.stringify(e))===0:!1;this.displayInfo&&new ME(Yt(),{store:this.props.store,insurance:e,selected:o,onClose:()=>this.onInfoClose()}),new Br(this.node,{logo:n,selected:o,id:i,title:e.name,description:e.description,price:B(e.price,{postfix:a.t("insurance.perMonth")}),priceDetails:r,onClick:()=>this.onClick(),onInfo:()=>this.onInfoOpen()},i)}},FE=$E,BE=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,insurances:e}=this.props,i=new Fr(this.node,{id:"insurance-list",onClick:()=>v("MAIN","INSURANCE_ARROW","INSURANCE_IF")}),{overflowElement:s}=i;s&&(s.innerHTML="",e.forEach((n,r)=>new FE(s,{store:t,insurance:n,key:`insurance-${r}`})))}},PE=BE,_r="insurance-grid-list-node",UE="button-insurances-proceed",yd=`${_r}-node`,Qu="button-insurances-skip",vd=`${Qu}-node`,Xu="button-insurance-edit-driving-distance",wd=`${Xu}-node`,Ed={},qE=class extends S{constructor(t,e){super(t),this.requestError=!1,this.contexts={listners:[]},this.props=e;let i=we(this.props.store,"drivingDistance",()=>{this.fetchInsurance()});this.contexts.listners.push(i);let s=we(this.props.store,"customer.socialId",()=>{this.fetchInsurance()});this.contexts.listners.push(s);let n=we(this.props.store,"insurance",()=>{this.contexts.buttonProceed?.disabled(!this.props.store.getState().insurance)});this.contexts.listners.push(n),this.fetchInsurance(),this.render()}fetchInsurance(){this.props.store.getState().customer.socialId&&this.getInsurances()}async getInsurances(){let t=this.props.store.getState();this.requestError=!1,this.render();let e=`${t.customer.socialId}-${t.id}-${t.drivingDistance}`,i=Ed[e];if(v("MAIN","INSURANCE_GET_INSURANCES_REQUESTED","INSURANCE_IF"),i){this.insurances=i,v("MAIN","INSURANCE_GET_INSURANCES_SUCCEEDED","INSURANCE_IF"),this.render();return}try{let s=await AE(this.props.store,t.drivingDistance);v("MAIN","INSURANCE_GET_INSURANCES_SUCCEEDED","INSURANCE_IF"),this.insurances=s.getInsuranceOptions(),Ed[e]=this.insurances}catch{v("MAIN","INSURANCE_GET_INSURANCES_FAILED","INSURANCE_IF"),this.requestError=!0}finally{this.render()}}onEditDrivingDistance(){this.contexts.listners.forEach(t=>t?.()),this.props.onEdit()}onProceed(){Ti(this.props.lastStage)(this.props.store.dispatch)}onSkipInsurances(){v("MAIN","INSURANCE_SKIPPED","INSURANCE_IF"),Lr()(this.props.store.dispatch),Ti(this.props.lastStage)(this.props.store.dispatch)}render(){let{store:t}=this.props,e=t.getState(),{insurance:i,drivingDistance:s}=e;this.node.innerHTML=`
|
|
1435
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1436
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("insurance.heading")}</h4>
|
|
1437
|
+
<div class="waykeecom-content">
|
|
1438
|
+
<p class="waykeecom-content__p">${a.t("insurance.ifDescription")}</p>
|
|
1439
|
+
</div>
|
|
1440
|
+
</div>
|
|
1441
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1442
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1443
|
+
<ul class="waykeecom-key-value-list">
|
|
1444
|
+
${W({key:a.t("insurance.estimatedMileage"),value:St[s]})}
|
|
1445
|
+
</ul>
|
|
1446
|
+
</div>
|
|
1447
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1448
|
+
<div class="waykeecom-align waykeecom-align--end" id="${wd}">
|
|
1449
|
+
<button type="button" title="${a.t("insurance.edit")}" class="waykeecom-link" >${a.t("insurance.edit")}</button>
|
|
1450
|
+
</div>
|
|
1451
|
+
</div>
|
|
1452
|
+
</div>
|
|
1453
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${_r}"></div>
|
|
1454
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1455
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${yd}"></div>
|
|
1456
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${vd}"></div>
|
|
1457
|
+
</div>
|
|
1458
|
+
`;let n=this.node.querySelector(`#${_r}`);if(n)if(this.requestError)n.innerHTML=oe({tone:"error",children:`${a.t("insurance.fetchError")} <button type="button" title="${a.t("insurance.retry")}" class="waykeecom-link waykeecom-link--align-baseline waykeecom-link--current-color">${a.t("insurance.retry")}</button>.`}),n.querySelector("button")?.addEventListener("click",()=>this.getInsurances());else{let r=this.insurances;r?.length?new PE(n,{store:t,insurances:r}):n.innerHTML=Ve()}new At(this.node.querySelector(`#${wd}`),{id:Xu,title:a.t("insurance.edit"),onClick:()=>this.onEditDrivingDistance()}),this.contexts.buttonProceed=new xe(this.node.querySelector(`#${yd}`),{id:UE,disabled:!i,title:a.t("insurance.proceedButton"),onClick:()=>this.onProceed()}),new Wt(this.node.querySelector(`#${vd}`),{id:Qu,title:a.t("insurance.skipButton"),onClick:()=>this.onSkipInsurances()})}},jE=qE,Zu="select-insurance-distance",xd=`${Zu}-node`,Id="insurance-info-node",Wr="button-insurances-show",bd=`${Wr}-node`,Sd=`${Wr}-disclaimer-node`,eh="button-insurances-skip",Cd=`${eh}-node`,VE=class extends S{constructor(t,e){super(t),this.showInsurances=!1,this.props=e,this.showInsurances=!!this.props.store.getState().insurance,this.render()}onChangeDistance(t){this.showInsurances=!1;let e=t.currentTarget.value;switch(ey(e)(this.props.store.dispatch),e){case re.Between0And1000:v("MAIN","INSURANCE_MILEAGE_BETWEEN_0_AND_1000_SELECTED","INSURANCE_IF");break;case re.Between1000And1500:v("MAIN","INSURANCE_MILEAGE_BETWEEN_1000_AND_1500_SELECTED","INSURANCE_IF");break;case re.Between1500And2000:v("MAIN","INSURANCE_MILEAGE_BETWEEN_1500_AND_2000_SELECTED","INSURANCE_IF");break;case re.Between2000And2500:v("MAIN","INSURANCE_MILEAGE_BETWEEN_2000_AND_2500_SELECTED","INSURANCE_IF");break;case re.Over2500:v("MAIN","INSURANCE_MILEAGE_OVER_2500_SELECTED","INSURANCE_IF");break;default:break}}onShowInsurances(){this.showInsurances=!0,v("MAIN","INSURANCE_SHOW","INSURANCE_IF"),this.render()}onEdit(){this.showInsurances=!1,v("MAIN","INSURANCE_EDIT_MILEAGE","INSURANCE_IF"),this.render()}render(){let{store:t,lastStage:e,onSkip:i}=this.props,s=t.getState(),n=s.order?.insuranceOption?.title||"[Ok\xE4nt f\xF6rs\xE4kringsbolag]";if(this.showInsurances)new jE(this.node,{store:t,lastStage:e,onEdit:()=>this.onEdit()});else{this.node.innerHTML=`
|
|
1459
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1460
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("insurance.heading")}</h4>
|
|
1461
|
+
<div class="waykeecom-content">
|
|
1462
|
+
<p class="waykeecom-content__p">${a.t("insurance.ifDescription")}</p>
|
|
1463
|
+
</div>
|
|
1464
|
+
</div>
|
|
1465
|
+
|
|
1466
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Id}"></div>
|
|
1467
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${xd}"></div>
|
|
1468
|
+
|
|
1469
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1470
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${bd}"></div>
|
|
1471
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Cd}"></div>
|
|
1472
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Sd}"></div>
|
|
1473
|
+
</div>
|
|
1474
|
+
`,new Lu(this.node.querySelector(`#${xd}`),{id:Zu,title:a.t("insurance.showInsurances"),name:"distance",value:s.drivingDistance,options:[{value:re.Between0And1000,title:St[re.Between0And1000]},{value:re.Between1000And1500,title:St[re.Between1000And1500]},{value:re.Between1500And2000,title:St[re.Between1500And2000]},{value:re.Between2000And2500,title:St[re.Between2000And2500]},{value:re.Over2500,title:St[re.Over2500]}],onChange:o=>this.onChangeDistance(o)}),new xe(this.node.querySelector(`#${bd}`),{id:Wr,title:a.t("insurance.showInsurances"),onClick:()=>this.onShowInsurances()});let r=this.node.querySelector(`#${Id}`);r&&(r.innerHTML=oe({tone:"info",polite:!0,children:a.t("insurance.ifAlert",{insuranceDisclaimerTitle:n})})),new Hr(this.node.querySelector(`#${Sd}`),{text:a.t("insurance.ifDisclaimer",{insuranceDisclaimerTitle:n})}),new Wt(this.node.querySelector(`#${Cd}`),{id:eh,title:a.t("insurance.skipButton"),onClick:()=>i()})}}},HE=VE,GE=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.render()}getStep(){let{order:t}=this.props.store.getState();return t?.insuranceOption?.institute==="IF"?"INSURANCE_IF":"INSURANCE"}onSkipInsurances(){Lr()(this.props.store.dispatch),Ti(this.props.lastStage)(this.props.store.dispatch),v("MAIN","INSURANCE_SKIPPED",this.getStep())}onEdit(){v("MAIN","INSURANCE_EDIT",this.getStep()),Qe("main",this.props.index)(this.props.store.dispatch)}render(){let{store:t,index:e,lastStage:i}=this.props,s=t.getState(),n=s.topNavigation.stage>e,r=s.navigation.stage===e;r&&v("MAIN","INSURANCE_ACTIVE",this.getStep());let o=ft(this.node,{completed:n,title:a.t("insurance.title"),active:r,id:"insurance",index:e});if(s.navigation.stage>e||n&&s.navigation.stage!==e){let c=[];s.insurance?(c.push({key:a.t("insurance.estimatedMileage"),value:St[s.drivingDistance]}),c.push({key:s.insurance.name,value:B(s.insurance.price,{postfix:a.t("insurance.perMonth")})}),s.insuranceAddOns?.insurance===s.insurance.name&&s.insuranceAddOns.addOns.forEach(l=>c.push({key:l.title,value:B(l.monthlyPrice,{postfix:a.t("insurance.perMonth")})}))):s.freeInsurance?c.push({key:a.t("insurance.title"),value:s.freeInsurance.title}):c.push({key:a.t("insurance.title"),value:a.t("insurance.none")}),new Ri(o,{keyValueList:c,changeButtonTitle:a.t("insurance.changeButtonTitle"),onEdit:s.createdOrderId?void 0:()=>this.onEdit()})}else if(s.navigation.stage===e){let c=s.order?.insuranceOption;if(!c)throw"Missing insurance";(this.props.marketCode==="SE"&&c?.institute)==="IF"?new HE(o,{store:t,lastStage:i,onSkip:()=>this.onSkipInsurances()}):new CE(o,{store:t,lastStage:i,insurance:c})}s.navigation.stage===e&&o.parentElement?.scrollIntoView()}},WE=GE,YE=class extends S{constructor(t,e){super(t),this.contexts={},this.props=e,this.render()}setError(t){this.contexts.error?.setError(t)}render(){let{title:t,value:e,name:i,id:s,error:n,errorMessage:r,placeholder:o,information:c,autocomplete:l,onChange:u,onBlur:d}=this.props;this.node.innerHTML=`
|
|
1475
|
+
<div class="waykeecom-input-label">
|
|
1476
|
+
<label for="${s}" class="waykeecom-input-label__label">${t}</label>
|
|
1477
|
+
</div>
|
|
1478
|
+
<textarea
|
|
1479
|
+
id="${s}"
|
|
1480
|
+
name="${i}"
|
|
1481
|
+
${l?`autocomplete="${l}"`:""}
|
|
1482
|
+
${o?`placeholder="${o}"`:""}
|
|
1483
|
+
class="waykeecom-textarea"
|
|
1484
|
+
>${e}</textarea>
|
|
1485
|
+
`,r&&(this.contexts.error=new Rs(this.node,{error:n,errorMessage:r})),c&&new Ds(this.node.querySelector(".waykeecom-input-label"),{information:c});let p=this.node.querySelector("textarea");p&&(u&&p.addEventListener("input",u),d&&p.addEventListener("blur",d))}},zE=YE,KE=t=>{let e=ei.newLookupRequest().withRegistrationNumber(t.registrationNumber).withMileage(parseInt(t.mileage,10)).withCondition(t.condition);return ei.lookupVehicle(e.build())},th="trade-in-registrationNumber",Ad=`${th}-node`,ih="trade-in-mileage",Nd=`${ih}-node`,sh="trade-in-description",_d=`${sh}-node`,JE="trade-in-condition",Td=`${JE}-node`,nh="trade-in-fetch",Rd=`${nh}-node`,QE="trade-in-proceed",Dd=`${QE}-node`,Tr="button-trade-in-no",xs=`${Tr}-node`,rh="button-trade-in-change",Od=`${rh}-node`,it={registrationNumber:ne.requiredRegistrationNumber,mileage:ne.requiredMileage,description:ne.optionalString,condition:ne.requiredCondition},XE=(t,e)=>{let i={registrationNumber:e==="SE"&&t?.registrationNumber||"",mileage:t?.mileage||"",description:t?.description||"",condition:t?.condition};return{value:i,validation:{registrationNumber:it.registrationNumber(i.registrationNumber,e),mileage:it.mileage(i.mileage),description:it.description(i.description),condition:it.condition(i.condition)},interact:{registrationNumber:!1,mileage:!1,description:!1,condition:!1}}},ZE=class extends S{constructor(t,e){super(t),this.contexts={},this.requestError=!1,this.props=e;let i=this.props.store.getState();this.state=XE(i.tradeIn,e.marketCode),this.render()}async onFetchVehicle(){this.requestError=!1,this.render();try{if(v("MAIN","TRADE_IN_VALUATION_REQUESTED","TRADE_IN_DETAILS"),this.contexts.buttonFetch?.loading(!0),this.state.validation.registrationNumber&&this.state.validation.mileage&&this.state.validation.description&&this.state.validation.condition){let t=this.state.value,e=this.props.marketCode==="SE"?t.mileage:String(Number(t.mileage)/10),i=await KE({...t,mileage:e}),s=jk(i);this.response=s,this.render(),v("MAIN","TRADE_IN_VALUATION_SUCCEEDED","TRADE_IN_DETAILS")}}catch{this.requestError=!0,this.render(),v("MAIN","TRADE_IN_VALUATION_FAILED","TRADE_IN_DETAILS")}finally{this.contexts.buttonFetch?.loading(!1)}}onEdit(){this.response=void 0,this.render(),v("MAIN","TRADE_IN_SKIPPED","TRADE_IN_DETAILS")}onProceed(){if(this.response){let t=this.response.vehicle,e=this.state.value;wr(this.props.lastStage,e,t)(this.props.store.dispatch),v("MAIN","TRADE_IN_SET","TRADE_IN_DETAILS")}}onChangeRadio(t){let e=t.currentTarget,i=e.name,s=e.value;switch(this.state.value[i]=s,this.state.validation[i]=it[i](s),this.updateProceedButton(),s){case"VeryGood":v("MAIN","TRADE_IN_CONDITION_VERY_GOOD_SELECTED","TRADE_IN_DETAILS");break;case"Good":v("MAIN","TRADE_IN_CONDITION_GOOD_SELECTED","TRADE_IN_DETAILS");break;case"Ok":v("MAIN","TRADE_IN_CONDITION_OK_SELECTED","TRADE_IN_DETAILS");break;default:break}}onChange(t){let e=t.currentTarget,i=e.name;i==="registrationNumber"&&(e.value=e.value.toUpperCase());let s=e.value;this.state.value[i]=s,this.state.validation[i]=i==="registrationNumber"?it[i](s,this.props.marketCode):it[i](s),this.updateUiError(i),this.updateProceedButton()}onBlur(t){let e=t.currentTarget.name;this.state.interact[e]=!0,this.state.validation[e]=e==="registrationNumber"?it[e](this.state.value[e],this.props.marketCode):it[e](this.state.value[e]),this.updateUiError(e),this.updateProceedButton()}updateUiError(t){this.contexts[t]?.setError(this.state.interact[t]&&!this.state.validation[t])}updateProceedButton(){this.contexts.buttonFetch?.disabled(!(this.state.validation.registrationNumber&&this.state.validation.mileage&&this.state.validation.description&&this.state.validation.condition))}onNoTradeIn(){wr(this.props.lastStage)(this.props.store.dispatch),v("MAIN","TRADE_IN_SELECTED","TRADE_IN_DETAILS")}render(){if(this.response){let t=[],e=this.response.vehicle;t.push({key:a.t("tradeIn.mileage"),value:`${this.state.value.mileage} ${this.props.marketCode==="SE"?"mil":"km"}`}),this.state.value.description&&t.push({key:a.t("tradeIn.description"),value:`${this.state.value.description}`}),this.state.value.condition&&t.push({key:a.t("tradeIn.condition"),value:qr[this.state.value.condition]}),this.node.innerHTML=`
|
|
1486
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1487
|
+
<div class="waykeecom-balloon">
|
|
1488
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1489
|
+
<div class="waykeecom-label">${this.state.value.registrationNumber}</div>
|
|
1490
|
+
</div>
|
|
1491
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1492
|
+
<span class="waykeecom-text waykeecom-text--font-medium">${e.manufacturer} ${e.modelSeries}</span>
|
|
1493
|
+
${e.modelName}, ${e.modelYear}
|
|
1494
|
+
</div>
|
|
1495
|
+
</div>
|
|
1496
|
+
</div>
|
|
1497
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1498
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1499
|
+
<ul class="waykeecom-key-value-list">
|
|
1500
|
+
${t.map(i=>W(i)).join("")}
|
|
1501
|
+
</ul>
|
|
1502
|
+
</div>
|
|
1503
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1504
|
+
<div class="waykeecom-align waykeecom-align--end" id="${Od}"></div>
|
|
1505
|
+
</div>
|
|
1506
|
+
</div>
|
|
1507
|
+
<div class="waykeecom-stack waykeecom-stack--3 waykeecom-text waykeecom-text--align-center">
|
|
1508
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1509
|
+
<div class="waykeecom-text waykeecom-text--tone-alt waykeecom-text--size-small">${a.t("tradeIn.estimatedValue")}</div>
|
|
1510
|
+
</div>
|
|
1511
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1512
|
+
<div class="waykeecom-heading waykeecom-heading--2 waykeecom-no-margin">
|
|
1513
|
+
${B(e.valuation,{postfix:"kr"})}
|
|
1514
|
+
</div>
|
|
1515
|
+
</div>
|
|
1516
|
+
</div>
|
|
1517
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1518
|
+
${oe({tone:"info",children:`<span class="waykeecom-text waykeecom-text--font-medium">${a.t("tradeIn.infoText")}</span> ${a.t("tradeIn.infoDisclaimer")}`})}
|
|
1519
|
+
</div>
|
|
1520
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1521
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Dd}"></div>
|
|
1522
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${xs}"></div>
|
|
1523
|
+
</div>
|
|
1524
|
+
`,new At(this.node.querySelector(`#${Od}`),{id:rh,title:a.t("tradeIn.changeButtonTitle"),onClick:()=>this.onEdit()}),new xe(this.node.querySelector(`#${Dd}`),{title:a.t("tradeIn.proceedButton"),onClick:()=>this.onProceed()}),new Wt(this.node.querySelector(`#${xs}`),{id:Tr,title:a.t("tradeIn.skipButton"),onClick:()=>this.onNoTradeIn()}),this.node.parentElement?.parentElement?.scrollIntoView()}else this.node.innerHTML=`
|
|
1525
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1526
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("tradeIn.detailsHeading")}</h4>
|
|
1527
|
+
<div class="waykeecom-content">
|
|
1528
|
+
<p class="waykeecom-content__p">${a.t("tradeIn.detailsDescription")}</p>
|
|
1529
|
+
</div>
|
|
1530
|
+
</div>
|
|
1531
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1532
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Ad}"></div>
|
|
1533
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Nd}"></div>
|
|
1534
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${_d}"></div>
|
|
1535
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Td}"></div>
|
|
1536
|
+
</div>
|
|
1537
|
+
${this.requestError?`<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("tradeIn.fetchError")})}</div>`:""}
|
|
1538
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1539
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Rd}"></div>
|
|
1540
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${xs}"></div>
|
|
1541
|
+
</div>
|
|
1542
|
+
`,this.contexts.registrationNumber=new ge(this.node.querySelector(`#${Ad}`),{title:a.t("tradeIn.registrationNumber"),value:this.state.value.registrationNumber,id:th,error:this.state.interact.registrationNumber&&!this.state.validation.registrationNumber,errorMessage:a.t("tradeIn.registrationNumberError"),name:"registrationNumber",autocomplete:"off",placeholder:a.t("tradeIn.registrationNumberPlaceholder"),unit:this.props.marketCode==="SE"?`
|
|
1543
|
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 34" class="waykeecom-input-text__unit-regnr-icon" aria-hidden="true">
|
|
1544
|
+
<rect width="22" height="34" rx="1" fill="#458BDD"/>
|
|
1545
|
+
<circle cx="11" cy="10" r="5.5" stroke="#FFF500" stroke-linejoin="round" stroke-dasharray="1 2"/>
|
|
1546
|
+
<path d="M10.6707 21.692c1.392 0 2.04.564 2.28.996h1.644c-.264-1.08-1.248-2.364-3.924-2.364-2.028 0-3.408.912-3.408 2.436 0 1.536 1.2 2.34 2.904 2.508l1.512.156c.876.108 1.476.372 1.476 1.188 0 .684-.684 1.176-1.98 1.176-1.56 0-2.244-.72-2.472-1.26h-1.716c.336 1.224 1.404 2.628 4.188 2.628 2.412 0 3.624-1.116 3.624-2.652 0-1.8-1.308-2.448-3.012-2.616-.576-.06-.972-.108-1.5-.156-.888-.108-1.392-.444-1.392-1.02 0-.624.612-1.02 1.776-1.02Z" fill="#fff"/>
|
|
1547
|
+
</svg>
|
|
1548
|
+
`:`
|
|
1549
|
+
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 34" class="waykeecom-input-text__unit-regnr-icon" aria-hidden="true">
|
|
1550
|
+
<rect width="22" height="34" rx="1" fill="#003399"/>
|
|
1551
|
+
<rect x="4" y="5" width="14" height="10" fill="#ef2b2d"/>
|
|
1552
|
+
<rect x="7.5" y="5" width="2.5" height="10" fill="#ffffff"/>
|
|
1553
|
+
<rect x="4" y="8.75" width="14" height="2.5" fill="#ffffff"/>
|
|
1554
|
+
<rect x="8.25" y="5" width="1" height="10" fill="#002868"/>
|
|
1555
|
+
<rect x="4" y="9.5" width="14" height="1" fill="#002868"/>
|
|
1556
|
+
<path d="M7.75 21.692v6h1.5v-4.5l3 4.5h1.5v-6h-1.5v4.5l-3-4.5h-1.5Z" fill="#fff"/>
|
|
1557
|
+
</svg>`,onChange:t=>this.onChange(t),onBlur:t=>this.onBlur(t)}),this.contexts.mileage=new ge(this.node.querySelector(`#${Nd}`),{title:a.t("tradeIn.mileage"),value:this.state.value.mileage,id:ih,error:this.state.interact.mileage&&!this.state.validation.mileage,errorMessage:a.t("tradeIn.mileageError"),name:"mileage",autocomplete:"off",placeholder:a.t("tradeIn.mileagePlaceholder"),unit:this.props.marketCode==="SE"?"mil":"km",pattern:"[0-9]*",inputmode:"numeric",onChange:t=>this.onChange(t),onBlur:t=>this.onBlur(t)}),this.contexts.description=new zE(this.node.querySelector(`#${_d}`),{title:a.t("tradeIn.descriptionOptional"),value:this.state.value.description,id:sh,error:this.state.interact.description&&!this.state.validation.description,errorMessage:a.t("tradeIn.descriptionError"),name:"description",autocomplete:"off",placeholder:a.t("tradeIn.descriptionPlaceholder"),onChange:t=>this.onChange(t),onBlur:t=>this.onBlur(t)}),new Ct(this.node.querySelector(`#${Td}`),{title:a.t("tradeIn.condition"),checked:this.state.value.condition,name:"condition",options:[{id:"radio-VeryGood",value:"VeryGood",title:a.t("tradeIn.veryGoodCondition"),description:`
|
|
1558
|
+
<div class="waykeecom-box">
|
|
1559
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1560
|
+
<ul class="waykeecom-content__ul">
|
|
1561
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.noScratches")}</li>
|
|
1562
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.serviced")}</li>
|
|
1563
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.goodTires")}</li>
|
|
1564
|
+
</ul>
|
|
1565
|
+
</div>
|
|
1566
|
+
</div>`},{id:"radio-Good",value:"Good",title:a.t("tradeIn.goodCondition"),description:`
|
|
1567
|
+
<div class="waykeecom-box">
|
|
1568
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1569
|
+
<ul class="waykeecom-content__ul">
|
|
1570
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.someScratches")}</li>
|
|
1571
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.serviced")}</li>
|
|
1572
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.okTires")}</li>
|
|
1573
|
+
</ul>
|
|
1574
|
+
</div>
|
|
1575
|
+
</div>`},{id:"radio-Ok",value:"Ok",title:a.t("tradeIn.okCondition"),description:`
|
|
1576
|
+
<div class="waykeecom-box">
|
|
1577
|
+
<div class="waykeecom-content waykeecom-content--inherit-size">
|
|
1578
|
+
<ul class="waykeecom-content__ul">
|
|
1579
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.manyScratches")}</li>
|
|
1580
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.notServiced")}</li>
|
|
1581
|
+
<li class="waykeecom-content__li">${a.t("tradeIn.badTires")}</li>
|
|
1582
|
+
</ul>
|
|
1583
|
+
</div>
|
|
1584
|
+
</div>`}],onClick:t=>this.onChangeRadio(t)}),this.contexts.buttonFetch=new xe(this.node.querySelector(`#${Rd}`),{title:a.t("tradeIn.fetchValue"),id:nh,disabled:!(this.state.validation.registrationNumber&&this.state.validation.mileage&&this.state.validation.condition),onClick:()=>this.onFetchVehicle()}),new Wt(this.node.querySelector(`#${xs}`),{id:Tr,title:a.t("tradeIn.skipButton"),onClick:()=>this.onNoTradeIn()})}},ex=ZE,ah="button-trade-in-yes",Ld=`${ah}-node`,oh="button-trade-in-no",Md=`${oh}-node`,Rr="button-trade-in-change",fr=`${Rr}-node`,tx=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.render()}onEdit(){v("MAIN","TRADE_IN_EDIT","TRADE_IN"),Qe("main",this.props.index)(this.props.store.dispatch)}onYesTradeIn(){v("MAIN","TRADE_IN_SELECTED","TRADE_IN"),Jk(this.props.lastStage)(this.props.store.dispatch)}onNoTradeIn(){v("MAIN","TRADE_IN_SKIPPED","TRADE_IN"),wr(this.props.lastStage)(this.props.store.dispatch)}render(){let{store:t,index:e,lastStage:i}=this.props,s=this.props.store.getState();if(!s.order?.allowsTradeIn)return;let n=s.topNavigation.stage>e,r=s.navigation.stage===e;r&&v("MAIN","TRADE_IN_ACTIVE",s.navigation.subStage===1?"TRADE_IN":"TRADE_IN_DETAILS");let o=ft(this.node,{title:a.t("tradeIn.title"),active:r,completed:n,id:"trade-in",index:e});o.innerHTML="";let c=document.createElement("div");if(s.navigation.stage>e||n&&s.navigation.stage!==e){let l=[];s.tradeIn&&s.tradeInVehicle?(l.push({key:a.t("tradeIn.mileage"),value:`${s.tradeIn.mileage} ${this.props.marketCode==="SE"?"mil":"km"}`}),s.tradeIn.description&&l.push({key:a.t("tradeIn.description"),value:`${s.tradeIn.description}`}),s.tradeIn.condition&&l.push({key:a.t("tradeIn.condition"),value:qr[s.tradeIn.condition]}),c.innerHTML=`
|
|
1585
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1586
|
+
<div class="waykeecom-balloon">
|
|
1587
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1588
|
+
<div class="waykeecom-label">${s.tradeIn.registrationNumber}</div>
|
|
1589
|
+
</div>
|
|
1590
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1591
|
+
<span class="waykeecom-text waykeecom-text--font-medium">${s.tradeInVehicle.manufacturer} ${s.tradeInVehicle.modelSeries}</span>
|
|
1592
|
+
${s.tradeInVehicle.modelName}, ${s.tradeInVehicle.modelYear}
|
|
1593
|
+
</div>
|
|
1594
|
+
</div>
|
|
1595
|
+
</div>
|
|
1596
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1597
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1598
|
+
<ul class="waykeecom-key-value-list">
|
|
1599
|
+
${l.map(u=>W(u)).join("")}
|
|
1600
|
+
</ul>
|
|
1601
|
+
</div>
|
|
1602
|
+
${s.createdOrderId?"":`
|
|
1603
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1604
|
+
<div class="waykeecom-align waykeecom-align--end" id="${fr}"></div>
|
|
1605
|
+
</div>
|
|
1606
|
+
`}
|
|
1607
|
+
</div>
|
|
1608
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1609
|
+
<div class="waykeecom-shadow-box">
|
|
1610
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1611
|
+
<ul class="waykeecom-key-value-list waykeecom-key-value-list--large-value">
|
|
1612
|
+
${W({key:a.t("tradeIn.estimatedValue"),value:`~ ${B(s.tradeInVehicle.valuation,{postfix:"kr"})}`})}
|
|
1613
|
+
</ul>
|
|
1614
|
+
</div>
|
|
1615
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1616
|
+
${oe({tone:"info",children:`<span class="waykeecom-text waykeecom-text--font-medium">${a.t("tradeIn.infoText")}</span> ${a.t("tradeIn.infoDisclaimer")}`})}
|
|
1617
|
+
</div>
|
|
1618
|
+
</div>
|
|
1619
|
+
</div>
|
|
1620
|
+
`,c.querySelector(`#${Rr}`)?.addEventListener("click",()=>this.onEdit())):(l.push({key:a.t("tradeIn.title"),value:a.t("tradeIn.no")}),c.innerHTML=`
|
|
1621
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1622
|
+
<ul class="waykeecom-key-value-list">
|
|
1623
|
+
${l.map(u=>W(u)).join("")}
|
|
1624
|
+
</ul>
|
|
1625
|
+
</div>
|
|
1626
|
+
${s.createdOrderId?"":`
|
|
1627
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1628
|
+
<div class="waykeecom-align waykeecom-align--end" id="${fr}"></div>
|
|
1629
|
+
</div>
|
|
1630
|
+
`}
|
|
1631
|
+
`),s.createdOrderId||new At(c.querySelector(`#${fr}`),{id:Rr,title:a.t("tradeIn.changeButtonTitle"),onClick:()=>this.onEdit()})}else s.navigation.stage===e&&(s.wantTradeIn&&s.tradeIn?new ex(c,{store:t,lastStage:i,marketCode:this.props.marketCode}):(c.innerHTML=`
|
|
1632
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1633
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("tradeIn.heading")}</h4>
|
|
1634
|
+
<div class="waykeecom-content">
|
|
1635
|
+
<p class="waykeecom-content__p">${a.t("tradeIn.tradeInDescription")}</p>
|
|
1636
|
+
</div>
|
|
1637
|
+
</div>
|
|
1638
|
+
|
|
1639
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1640
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Ld}"></div>
|
|
1641
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${Md}"></div>
|
|
1642
|
+
</div>
|
|
1643
|
+
`,new xe(c.querySelector(`#${Ld}`),{id:ah,title:a.t("tradeIn.yesButton"),onClick:()=>this.onYesTradeIn()}),new Wt(c.querySelector(`#${Md}`),{id:oh,title:a.t("tradeIn.skipButton"),onClick:()=>this.onNoTradeIn()})));o.appendChild(c),s.navigation.stage===e&&o.parentElement?.scrollIntoView()}},ix=tx,ch={customer:{component:Qv,name:"customer"},centralStorage:{component:gv,name:"centralStorage"},delivery:{component:tw,name:"delivery"},tradeIn:{component:ix,name:"tradeIn"},financial:{component:fE,name:"financial"},insurance:{component:WE,name:"insurance"},accessories:{component:cv,name:"accessories"}},lh=t=>{let e=t.getState();if(!e.address)throw"Missing address";if(!e.paymentType)throw"Missing paymentType";if(!e.vehicle)throw"Missing vehicle";let i=Zt.newCustomer().withAddress(e.address).withPersonalNumber(e.customer.socialId).withEmail(e.customer.email).withPhoneNumber(e.customer.phone).build(),s=Gt(e.paymentType),n=We.newPayment().withType(s);if(s===P.Loan){let d=Uu(e.paymentType),p=e.order?.paymentOptions.filter(g=>g.type===P.Loan)?.[d],h=e.paymentLookupResponse||p?.loanDetails,m=h?.durationSpec.current,b=h?.downPaymentSpec.current,_=h?.residualValueSpec?.current,f=e.order?.paymentOptions.find(g=>g.type===P.Loan)?.externalId;if(n.withDuration(m).withDownPayment(Math.round(b)),_&&n.withResidualValue(_),f&&n.withExternalId(f),e.creditAssessmentResponse){let g=e.creditAssessmentResponse.scoringId,y=e.creditAssessmentResponse.recommendation,I=e.creditAssessmentResponse.decision,$=h?.financialProductCode;if(!g||!y||!I||!$)throw"Missing credit assessment data";let Y=We.newCreditAssessment().withScoreId(g).withFinancialProductCode($).withRecommendation(y).withDecision(I).build();n.withCreditAssessment(Y)}}let r=n.build(),o=new URLSearchParams(window.location.search);o.set("wayke-ecom-web-id",e.id);let c=`${window.location.origin}${window.location.pathname}?${o.toString()}${window.location.hash}`;o.set("wayke-ecom-web-payment","true");let l=`${window.location.origin}${window.location.pathname}?${o.toString()}${window.location.hash}`,u=We.newCreateRequest().forVehicle(e.id).withCustomer(i).withPayment(r).withUrls(c,l).withDeliveryType(e.homeDelivery?rt.Delivery:rt.Pickup);if(e.insurance){let d=We.newInsurance().withDrivingDistance(e.drivingDistance);e.insuranceAddOns?.addOns.length&&e.insuranceAddOns.insurance===e.insurance.name&&d.withAddOns(e.insuranceAddOns.addOns.map(h=>h.name));let p=d.build();u.withInsurance(p)}else e.freeInsurance&&u.withInsurance({});if(e.accessories.length&&u.withAccessories(e.accessories),e.tradeIn&&e.tradeInVehicle&&e.tradeIn.condition){let d=ei.newVehicleTrade().forVehicle(e.tradeIn.registrationNumber).withMileage(parseInt(e.tradeIn.mileage,10)).withCondition(e.tradeIn.condition).withComment(e.tradeIn.description).build();u.withTradeIn(d)}return We.create(u.build())},dh="confirm-conditions",$d=`${dh}-node`,Fd="confirm-button-node",sx="confirm-button",nx=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.requestError=!1,this.notAvailable=!1,this.view=1,this.contexts={},this.acceptConditions=!1,this.props=e,this.render()}async onCreateOrder(){let{store:t}=this.props;this.notAvailable=!1,this.requestError=!1;try{v("MAIN","CONFIRMATION_CREATE_ORDER_REQUESTED","CONFIRMATION");let{order:e}=t.getState(),i=await lh(t);v("MAIN","CONFIRMATION_CREATE_ORDER_SUCCEEDED","CONFIRMATION"),e?.isPaymentRequired&&Ce();let s=i.getPayment();ku(i.getOrderNumber(),s)(t.dispatch)}catch(e){let i=e;this.view=1,v("MAIN","CONFIRMATION_CREATE_ORDER_FAILED","CONFIRMATION"),i.message==="The vehicle is not available for purchase"?(this.requestError=!1,this.notAvailable=!0):(this.notAvailable=!1,this.requestError=!0),Ce(),this.render()}}onCheckbox(t){let e=t.currentTarget;this.acceptConditions=e.checked,this.contexts.acceptConditions?.checked(this.acceptConditions),this.render()}render(){let{order:t,insurance:e}=this.props.store.getState(),i=t?.contactInformation?.name;this.node.innerHTML=`
|
|
1644
|
+
<div class="confirmation">
|
|
1645
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("confirmation.heading")}</h4>
|
|
1646
|
+
<p class="waykeecom-content__p">${a.t("confirmation.description2",{name:i})}</p>
|
|
1647
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${$d}"></div>
|
|
1648
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Fd}"></div>
|
|
1649
|
+
</div>
|
|
1650
|
+
`;let s=t?.conditionsPdfUri;this.contexts.acceptConditions=new Gr(this.node.querySelector(`#${$d}`),{checked:this.acceptConditions,id:dh,disabled:this.notAvailable,name:"acceptConditions",title:`<div>${a.t("confirmation.confirmConditionsTitle",{conditionsPdfUri:s,link:`<a href="${s}" title="${a.t("confirmation.purchaseTermsAndCancellationPolicy")}" target="_blank" rel="noopener noreferrer" class="waykeecom-link">${a.t("confirmation.purchaseTermsAndCancellationPolicy")}</a>`,interpolation:{escapeValue:!1}})}${e?` <span class="waykeecom-text waykeecom-text--margin-left">${a.t("confirmation.insuranceText")}</span>`:""}.</div>`,value:"acceptConditions",onClick:n=>this.onCheckbox(n)}),this.contexts.confirmButton=new Mr(this.node.querySelector(`#${Fd}`),{title:a.t("confirmation.title"),id:sx,disabled:!this.acceptConditions,onClick:()=>this.onCreateOrder()})}},rx=nx,ax=t=>{let e=document.createElement("script");e.setAttribute("src",t),e.onload=()=>{window.payex?.hostedView.paymentMenu({container:"payment-menu",culture:"sv-SE"}).open()},document.getElementsByTagName("head")[0].appendChild(e)},ox=class extends S{constructor(t,e){super(t),this.props=e,this.render(),this.init()}init(){let{payment:t}=this.props.store.getState(),e=t;sessionStorage.setItem("wayke-ecom-state",JSON.stringify(this.props.store.getState())),e.type==="swedbank"&&ax(e.url)}render(){let{order:t}=this.props.store.getState(),e=t?.contactInformation?.name;this.node.innerHTML=`
|
|
1651
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1652
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("confirmation.paymentHeading")}</h4>
|
|
1653
|
+
<div class="waykeecom-content">
|
|
1654
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentDescription")}</p>
|
|
1655
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentDescription2",{name:e})}</p>
|
|
1656
|
+
|
|
1657
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentCardType")} <span class="waykeecom-text waykeecom-text--font-medium">${a.t("confirmation.paymentCardTypeValue")}</span></p>
|
|
1658
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentCardNo3DSecure")} <span class="waykeecom-text waykeecom-text--font-medium">${a.t("confirmation.paymentCardNo3DSecureValue")}</span></p>
|
|
1659
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentCard3DSecure")} <span class="waykeecom-text waykeecom-text--font-medium">${a.t("confirmation.paymentCard3DSecureValue")}</span></p>
|
|
1660
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentExpiry")} <span class="waykeecom-text waykeecom-text--font-medium">${a.t("confirmation.paymentExpiryValue")}</span></p>
|
|
1661
|
+
<p class="waykeecom-content__p">${a.t("confirmation.paymentCVC")} <span class="waykeecom-text waykeecom-text--font-medium">${a.t("confirmation.paymentCVCValue")}</span></p>
|
|
1662
|
+
</div>
|
|
1663
|
+
</div>
|
|
1664
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1665
|
+
<div id="payment-menu" style="padding: 24px;border: 1px solid #ececeb;"></div>
|
|
1666
|
+
</div>
|
|
1667
|
+
`}},cx=ox,lx=t=>Me.accept(t),dx=t=>{let e=Ze.newAuthRequest().withMethod(t).build();return Ze.auth(e)},ux=t=>{let e=Ze.newQrCodeRequest().withOrderRef(t).build();return Ze.qrcode(e)},Bd=t=>{let e=Ze.newCollectRequest().withOrderRef(t).build();return Ze.collect(e)},uh="confirm-conditions",Pd=`${uh}-node`,Ud="bankid-start-node",hx="bankid-start",qd="address-disclaimer-policy-node",jd="address-disclaimer-reservation-node",px=class extends S{constructor(t,e){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--2"}),this.view=1,this.contexts={},this.ageError=!1,this.requestError=!1,this.socialIdNotMatchingError=!1,this.notAvailable=!1,this.confirmConditions=!1,this.bankidRequestRef=void 0,this.bankidStatus=async i=>{try{let s=await Bd(i);this.handleBankidStatusResponse(s,V.QrCode)}catch{this.clearIntervals(),this.contexts.bankId?.setErrorMessage(a.t("confirmation.bankIdStatusError"))}},this.qrCode=async i=>{try{let s=(await ux(i)).getQrCode();this.contexts.bankId?.update(V.QrCode,s)}catch{this.clearIntervals(),this.contexts.bankId?.setErrorMessage(a.t("confirmation.bankIdQrCodeErrorMessage"))}},this.props=e,this.ageError=!1,this.render()}addWindowEvents(){this.removeWindowEvents(),window.addEventListener("focus",()=>this.onFocus())}removeWindowEvents(){window.removeEventListener("focus",()=>this.onFocus())}clearIntervals(){clearInterval(this.bankidQrCodeInterval),clearInterval(this.bankidStatusInterval)}async onFocus(){clearTimeout(this.focusTimeout),this.focusTimeout=setTimeout(async()=>{if(this.bankidRequestRef?.method===V.SameDevice)try{let t=await Bd(this.bankidRequestRef.reference);this.handleBankidStatusResponse(t,this.bankidRequestRef.method)}catch{this.clearIntervals(),this.contexts.bankId?.setErrorMessage(a.t("confirmation.bankIdStatusError"))}},500)}onSameDeviceClick(){this.addWindowEvents()}setBankidRequestRef(t,e){this.bankidRequestRef={reference:t,method:e}}clearBankidRequestRef(){this.bankidRequestRef=void 0}async acceptCreditAssessment(){let{caseId:t}=this.props.store.getState();if(t)try{v("MAIN","CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_REQUEST","CONFIRMATION"),await lx(t),v("MAIN","CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_SUCCEEDED","CONFIRMATION")}catch{v("MAIN","CONFIRMATION_ACCEPT_CREDIT_ASSESSMENT_FAILED","CONFIRMATION")}}async onCreateOrder(){let{store:t}=this.props;this.notAvailable=!1,this.requestError=!1;try{v("MAIN","CONFIRMATION_CREATE_ORDER_REQUESTED","CONFIRMATION");let{order:e}=t.getState(),i=await lh(t);v("MAIN","CONFIRMATION_CREATE_ORDER_SUCCEEDED","CONFIRMATION"),e?.isPaymentRequired&&Ce();let s=i.getPayment();ku(i.getOrderNumber(),s)(t.dispatch),this.acceptCreditAssessment()}catch(e){let i=e;this.view=1,v("MAIN","CONFIRMATION_CREATE_ORDER_FAILED","CONFIRMATION"),i.message==="The vehicle is not available for purchase"?(this.requestError=!1,this.notAvailable=!0):(this.notAvailable=!1,this.requestError=!0),Ce(),this.render()}}async handleBankidStatusResponse(t,e){if(t.isCompleted()){this.removeWindowEvents(),this.clearBankidRequestRef(),this.clearIntervals();let i=t.getAddress(),s=t.getPersonalNumber();if(i&&s){let n=this.props.store.getState();if(!ne.requiredSsnOver18(s)){v("MAIN",e===V.SameDevice?"CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_NOT_OVER_18":"CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_NOT_OVER_18","CONFIRMATION"),this.view=1,this.ageError=!0,Ce(),this.render();return}if(n.customer.socialId!==s){v("MAIN",e===V.SameDevice?"CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED_SSN_MISSMATCH":"CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED_SSN_MISSMATCH","CONFIRMATION"),this.view=1,this.socialIdNotMatchingError=!0,Ce(),this.render();return}v("MAIN",e===V.SameDevice?"CONFIRMATION_BANKID_STATUS_SAME_DEVICE_SUCCEEDED":"CONFIRMATION_BANKID_STATUS_QR_SUCCEEDED","CONFIRMATION"),this.contexts.bankId?.setDescription(a.t("confirmation.bankIdCompletedMessage")),await this.onCreateOrder()}}}async startBankidSameDevice(t,e,i=!1){i||v("MAIN","CONFIRMATION_BANKID_STATUS_SAME_DEVICE_REQUESTED","CONFIRMATION");try{this.setBankidRequestRef(e,V.SameDevice);let s=t.getAutoLaunchUrl();this.contexts.bankId?.update(V.SameDevice,s)}catch(s){this.removeWindowEvents(),this.clearBankidRequestRef();let n=s;this.contexts.bankId?.setErrorMessage(`Error: ${n.message}`)}}async startBankidWithQr(t,e=!1){e||v("MAIN","CONFIRMATION_BANKID_STATUS_QR_REQUESTED","CONFIRMATION"),this.bankidStatusInterval=setInterval(()=>{this.bankidStatus(t)},2e3),Ir("bankidStatusInterval",this.bankidStatusInterval),this.qrCode(t),this.bankidQrCodeInterval=setInterval(async()=>{this.qrCode(t)},1e3),Ir("bankidQrCodeInterval",this.bankidQrCodeInterval)}async onStartBankIdAuth(t,e=!1){this.clearIntervals();try{e||v("MAIN","CONFIRMATION_BANKID_INIT_REQUESTED","CONFIRMATION"),this.contexts.bankId?.update(t),this.contexts.buttonLinkToggle?.disabled(!0);let i=await dx(t);e||v("MAIN","CONFIRMATION_BANKID_INIT_SUCCEEDED","CONFIRMATION");let s=i.getOrderRef();t===V.QrCode?this.startBankidWithQr(s,e):this.startBankidSameDevice(i,s,e)}catch{v("MAIN","CONFIRMATION_BANKID_INIT_FAILED","CONFIRMATION"),this.contexts.bankId?.setErrorMessage(a.t("confirmation.bankIdInitErrorMessage"))}finally{this.contexts.buttonLinkToggle?.disabled(!1)}}onAbort(){this.clearBankidRequestRef(),this.removeWindowEvents(),this.clearIntervals(),v("MAIN","CONFIRMATION_BANKID_ABORTED","CONFIRMATION"),this.view=1,Ce(),this.render()}onCheckbox(t){let e=t.currentTarget;this.confirmConditions=e.checked,this.contexts.confirmConditions?.checked(this.confirmConditions),this.contexts.startBankid?.disabled(!this.confirmConditions)}render(){let t=jr(),{navigation:e,order:i,insurance:s}=this.props.store.getState();if(this.view===2)this.contexts.bankId=new Ou(Yt(),{method:t?V.SameDevice:V.QrCode,descriptionQrCode:a.t("confirmation.bankIdDescriptionQrCode"),descriptionSameDevice:a.t("confirmation.bankIdDescriptionSameDevice"),onAbort:()=>this.onAbort(),onStart:n=>this.onStartBankIdAuth(n),onSameDeviceClick:()=>this.onSameDeviceClick()});else{let n=i?.contactInformation?.name,r=i?.conditionsPdfUri,o="https://www.wayke.se/trygghet-naer-det-kommer-till-dina-personuppgifter";this.node.innerHTML=`
|
|
1668
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1669
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("confirmation.heading")}</h4>
|
|
1670
|
+
<div class="waykeecom-content">
|
|
1671
|
+
<p class="waykeecom-content__p">${a.t("confirmation.description",{name:n})}</p>
|
|
1672
|
+
<p class="waykeecom-content__p">${a.t("confirmation.description2",{name:n})}</p>
|
|
1673
|
+
</div>
|
|
1674
|
+
</div>
|
|
1675
|
+
${this.ageError?`
|
|
1676
|
+
<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("confirmation.ageError")})}</div>
|
|
1677
|
+
`:""}
|
|
1678
|
+
|
|
1679
|
+
${this.requestError?`
|
|
1680
|
+
<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("confirmation.requestError")})}</div>
|
|
1681
|
+
`:""}
|
|
1682
|
+
|
|
1683
|
+
${this.notAvailable?`
|
|
1684
|
+
<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("confirmation.notAvailable")})}</div>
|
|
1685
|
+
`:""}
|
|
1686
|
+
|
|
1687
|
+
${this.socialIdNotMatchingError?`
|
|
1688
|
+
<div class="waykeecom-stack waykeecom-stack--3">${oe({tone:"error",children:a.t("confirmation.socialIdNotMatchingError")})}</div>
|
|
1689
|
+
`:""}
|
|
1690
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1691
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Pd}"></div>
|
|
1692
|
+
<div class="waykeecom-stack waykeecom-stack--2" id="${Ud}"></div>
|
|
1693
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1694
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${qd}"></div>
|
|
1695
|
+
<div class="waykeecom-stack waykeecom-stack--1" id="${jd}"></div>
|
|
1696
|
+
</div>
|
|
1697
|
+
</div>
|
|
1698
|
+
`,this.contexts.confirmConditions=new Gr(this.node.querySelector(`#${Pd}`),{checked:this.confirmConditions,id:uh,disabled:this.notAvailable,name:"confirmConditions",title:`<div>${a.t("confirmation.confirmConditionsTitle",{conditionsPdfUri:r,link:`<a href="${r}" title="${a.t("confirmation.purchaseTermsAndCancellationPolicy")}" target="_blank" rel="noopener noreferrer" class="waykeecom-link">${a.t("confirmation.purchaseTermsAndCancellationPolicy")}</a>`,interpolation:{escapeValue:!1}})}${s?` <span class="waykeecom-text waykeecom-text--margin-left">${a.t("confirmation.insuranceText")}</span>`:""}.</div>`,value:"confirmConditions",onClick:c=>this.onCheckbox(c)}),this.contexts.startBankid=new Vr(this.node.querySelector(`#${Ud}`),{title:a.t("confirmation.reserveButton"),id:hx,disabled:!this.confirmConditions||this.notAvailable,onClick:()=>{this.view=2,this.render()}}),new Pr(this.node.querySelector(`#${qd}`),{text:a.t("confirmation.policyText",{link:`<a href="${o}" title=${a.t("confirmation.privacyPolicy")} target="_blank" rel="noopener noreferrer" class="waykeecom-link">${a.t("confirmation.privacyPolicy")}</a>`,interpolation:{escapeValue:!1}})}),new Hr(this.node.querySelector(`#${jd}`),{text:a.t("confirmation.reservationDisclaimer")}),e.stage===this.props.index&&this.node.parentElement?.scrollIntoView()}}},mx=px,fx=class extends S{constructor(t,e){super(t),this.view=1,this.props=e,we(this.props.store,"navigation",()=>{this.render()}),this.render()}render(){let{store:t,index:e,bypassBankId:i}=this.props,{topNavigation:s,navigation:n,order:r}=t.getState(),o=s.stage>e,c=ft(this.node,{completed:o,title:r?.isPaymentRequired?a.t("confirmation.paymentTitle"):a.t("confirmation.title"),id:"confirmation",active:n.stage===e,index:e});n.stage===e&&(n.subStage===2?new cx(c,{store:t}):i?new rx(c,{store:t}):new mx(c,{lastStage:!0,index:e,store:this.props.store}),c.parentElement?.scrollIntoView())}},gx=fx,kx=class extends S{constructor(t,e){super(t),this.props=e,we(this.props.store,"navigation.view",i=>{i===2&&this.render()}),this.render(),this.node.scrollTop=0}render(){let{store:t,cdnMedia:e}=this.props,i=t.getState(),{order:s,stages:n}=i;if(!s)throw"No order available";this.node.innerHTML="";let r=document.createElement("div");this.node.appendChild(r);let o=document.createElement("aside");o.className="waykeecom-cart",o.setAttribute("aria-label",a.t("vehicleInfo")),o.innerHTML=Oy({vehicle:i.vehicle,order:i.order,cdnMedia:e}),r.appendChild(o);let c=document.createElement("ol");c.className="waykeecom-stepper",r.appendChild(c);let l=n?.length;n?.forEach((u,d)=>new ch[u.name].component(c,{store:t,index:d+1,lastStage:!1,marketCode:this.props.marketCode})),new gx(c,{store:t,index:(l||0)+1,lastStage:!0,bypassBankId:this.props.marketCode==="NO"})}},yx=kx,vx=class extends S{constructor(t,e){super(t),this.orderFetchFailed=!1,this.props=e,sessionStorage.removeItem("wayke-ecom-state"),this.render()}async loadOrder(){this.orderFetchFailed=!1,this.render();try{let t=await fetch(this.props.callbackOrder.orderUrl);this.order=await t.json()}catch{this.orderFetchFailed=!0}finally{this.render()}}render(){let{callbackOrder:t}=this.props;this.node.innerHTML=`
|
|
1699
|
+
<div class="waykeecom-content">
|
|
1700
|
+
<p class="waykeecom-content__p">${a.t("orderCallback.thankYou")}</p>
|
|
1701
|
+
<p class="waykeecom-content__p">${a.t("orderCallback.orderId")}: ${t.orderUrl}</p>
|
|
1702
|
+
<p class="waykeecom-content__p">${a.t("orderCallback.waykeId")}: ${t.id}</p>
|
|
1703
|
+
</div>
|
|
1704
|
+
`}},wx=vx,Ex=class extends S{constructor(t,e){super(t),this.props=e,this.render()}render(){this.node.innerHTML=`
|
|
1705
|
+
<h3 class="waykeecom-heading waykeecom-heading--4">${a.t("glossary.buyOnline")}</h3>
|
|
1706
|
+
<ul class="waykeecom-checklist" aria-label="${a.t("glossary.ourAdvantages")}">
|
|
1707
|
+
${this.props.checklistItems.map(t=>` <li class="waykeecom-checklist__item">${t}</li>`).join("")}
|
|
1708
|
+
</ul>
|
|
1709
|
+
`}},xx=Ex,Ix=({vehicle:t,order:e,meta:i,cdnMedia:s})=>{let n=t?.imageUrls,r=t?.title,o=B(t?.price||NaN),c=e?.contactInformation?.name;return`
|
|
1710
|
+
<div class="waykeecom-product-card">
|
|
1711
|
+
${n?.length?`
|
|
1712
|
+
<div class="waykeecom-product-card__media">
|
|
1713
|
+
${n.slice(0,3).map(l=>`
|
|
1714
|
+
<div class="waykeecom-product-card__media-item">
|
|
1715
|
+
<img src="${Eu(l,s)}?spec=800x&format=webp" alt="" class="waykeecom-product-card__image" />
|
|
1716
|
+
</div>
|
|
1717
|
+
`).join("")}
|
|
1718
|
+
</div>
|
|
1719
|
+
`:""}
|
|
1720
|
+
<dl class="waykeecom-product-card__body">
|
|
1721
|
+
<dt class="waykeecom-sr-only">S\xE4ljare</dt>
|
|
1722
|
+
<dd class="waykeecom-product-card__seller">${c}</dd>
|
|
1723
|
+
<dt class="waykeecom-sr-only">Modell</dt>
|
|
1724
|
+
<dd class="waykeecom-product-card__heading">
|
|
1725
|
+
<span class="waykeecom-product-card__title">${r}</span> ${$r(t)}
|
|
1726
|
+
</dd>
|
|
1727
|
+
<dt class="waykeecom-sr-only">Pris</dt>
|
|
1728
|
+
<dd class="waykeecom-product-card__price">${o} kr</dd>
|
|
1729
|
+
${i?`
|
|
1730
|
+
<div class="waykeecom-product-card__meta">
|
|
1731
|
+
${i}
|
|
1732
|
+
</div>
|
|
1733
|
+
`:""}
|
|
1734
|
+
</dl>
|
|
1735
|
+
</div>
|
|
1736
|
+
`},Dr=Ix,bx=({heading:t,description:e,final:i})=>`
|
|
1737
|
+
<li class="waykeecom-timeline__item${i?" waykeecom-timeline__item--final":""}">
|
|
1738
|
+
<div class="waykeecom-timeline__stage">
|
|
1739
|
+
<div class="waykeecom-timeline__badge"></div>
|
|
1740
|
+
</div>
|
|
1741
|
+
<div class="waykeecom-timeline__content">
|
|
1742
|
+
${t?`<div class="waykeecom-timeline__heading">${t}</div>`:""}
|
|
1743
|
+
${e?`<div class="waykeecom-timeline__description">${e}</div>`:""}
|
|
1744
|
+
</div>
|
|
1745
|
+
</li>
|
|
1746
|
+
`,gr=bx,Sx=t=>{let e=t?.map(r=>r.type)||[],i=e.find(r=>r===P.Cash),s=e.find(r=>r===P.Lease),n=e.find(r=>r===P.Loan);return i&&n&&s?a.t("howTo.financialDescriptionAll"):i&&s?a.t("howTo.financialDescriptionCashLease"):i&&n?a.t("howTo.financialDescriptionCashLoan"):n&&s?a.t("howTo.financialDescriptionLoanLease"):i?a.t("howTo.financialDescriptionCash"):n?a.t("howTo.financialDescriptionLoan"):s?a.t("howTo.financialDescriptionLease"):"???"},Cx=t=>{let e=t?.find(s=>s.type==="Pickup"),i=t?.find(s=>s.type==="Delivery");return e&&i?a.t("howTo.deliveryDescriptionBoth"):e?a.t("howTo.deliveryDescriptionPickup"):i?a.t("howTo.deliveryDescriptionHome"):"???"},Ax=({order:t,stageOrderList:e})=>{let i={customer:{heading:a.t("howTo.customerHeading")},centralStorage:{heading:a.t("howTo.centralStorageHeading"),description:a.t("howTo.centralStorageDescription")},delivery:{heading:a.t("howTo.deliveryHeading"),description:""},tradeIn:{heading:a.t("howTo.tradeInHeading"),description:a.t("howTo.tradeInDescription")},financial:{heading:a.t("howTo.financialHeading"),description:""},insurance:{heading:a.t("howTo.insuranceHeading"),description:a.t("howTo.insuranceDescription")},accessories:{heading:a.t("howTo.accessoriesHeading"),description:a.t("howTo.accessoriesDescription")}};return i.financial.description=Sx(t?.paymentOptions),i.delivery.description=Cx(t?.deliveryOptions),`
|
|
1747
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1748
|
+
<h4 class="waykeecom-heading waykeecom-heading--4">${a.t("howTo.heading")}</h4>
|
|
1749
|
+
<div class="waykeecom-content">
|
|
1750
|
+
<p class="waykeecom-content__p">${a.t("howTo.description")}</p>
|
|
1751
|
+
</div>
|
|
1752
|
+
</div>
|
|
1753
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1754
|
+
<div class="waykeecom-p--2">
|
|
1755
|
+
<ol class="waykeecom-timeline" aria-label="${a.t("howTo.timelineAriaLabel")}">
|
|
1756
|
+
${e?.map(s=>gr(i[s.name])).join("")}
|
|
1757
|
+
${t?.isPaymentRequired?gr({heading:a.t("howTo.paymentHeading"),description:a.t("howTo.paymentDescription")}):""}
|
|
1758
|
+
${gr({heading:a.t("howTo.finalHeading"),final:!0})}
|
|
1759
|
+
</ol>
|
|
1760
|
+
</div>
|
|
1761
|
+
</div>
|
|
1762
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1763
|
+
<div class="waykeecom-content">
|
|
1764
|
+
<p class="waykeecom-content__p">${a.t("howTo.finalDescription",{contactName:t?.contactInformation?.name})}</p>
|
|
1765
|
+
</div>
|
|
1766
|
+
</div>
|
|
1767
|
+
`},Nx=Ax,hh="preview-proceed",Vd=`${hh}-node`,_x="preview-checklist",Hd=`${_x}-node`,Tx=class extends S{constructor(t,e){super(t),this.contexts={},this.requestError=!1,this.props=e,this.init(),this.render()}async init(){this.requestError=!1,this.render();let t=this.props.store.getState();try{this.contexts.buttonProceed?.disabled(!0);let e=await bu(t.id),i=Yd(e),s=[];this.props.stageOrderList.forEach(n=>{n==="centralStorage"&&!i.requiresDealerSelection||n==="tradeIn"&&!i.allowsTradeIn||n==="insurance"&&!i.insuranceOption||n==="accessories"&&!i.accessories.length||s.push(ch[n])}),ny(s)(this.props.store.dispatch),Jd(i,this.props.vehicle)(this.props.store.dispatch),this.render()}catch(e){throw this.requestError=!0,this.render(),e}}onProceed(){v("PREVIEW","PREVIEW_PROCEED"),Qe("main")(this.props.store.dispatch)}render(){let{store:t,cdnMedia:e}=this.props,i=t.getState();if(!i.order){this.node.innerHTML=`
|
|
1768
|
+
${this.requestError?oe({tone:"error",children:a.t("preview.error")}):Ve()}
|
|
1769
|
+
`;return}if(i.order.isReserved||i.order.isUnavailable){this.node.innerHTML=`
|
|
1770
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1771
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${a.t("preview.heading")}</h3>
|
|
1772
|
+
</div>
|
|
1773
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1774
|
+
${Dr({vehicle:i.vehicle,order:i.order,cdnMedia:e})}
|
|
1775
|
+
</div>
|
|
1776
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1777
|
+
${oe({tone:"warning",children:a.t(i.order.isReserved?"preview.reserved":"preview.unavailable")})}
|
|
1778
|
+
</div>
|
|
1779
|
+
`;return}this.node.innerHTML=`
|
|
1780
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1781
|
+
<h3 class="waykeecom-heading waykeecom-heading--3 waykeecom-no-margin">${a.t("preview.heading")}</h3>
|
|
1782
|
+
</div>
|
|
1783
|
+
<div class="waykeecom-stack waykeecom-stack--3">
|
|
1784
|
+
${Dr({vehicle:i.vehicle,order:i.order,cdnMedia:e})}
|
|
1785
|
+
</div>
|
|
1786
|
+
${Nx({order:i.order,stageOrderList:i.stages})}
|
|
1787
|
+
<div class="waykeecom-stack waykeecom-stack--3" id="${Vd}"></div>
|
|
1788
|
+
<footer class="waykeecom-footer" id="${Hd}"></footer>
|
|
1789
|
+
`,this.contexts.buttonProceed=new xe(document.querySelector(`#${Vd}`),{id:hh,title:a.t("preview.proceedButton"),onClick:()=>this.onProceed()}),new xx(document.querySelector(`#${Hd}`),{title:a.t("preview.checklistTitle"),ariaLabel:a.t("preview.checklistAriaLabel"),checklistItems:[a.t("preview.checklistItem1"),a.t("preview.checklistItem2"),a.t("preview.checklistItem3"),a.t("preview.checklistItem4")]})}},Rx=Tx,Dx=class extends S{constructor(t){super(t,{htmlTag:"div",className:"waykeecom-stack waykeecom-stack--4"})}},zt=Dx,Ox=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t}=this.props,{dealer:e,order:i}=t.getState(),s=i?.dealerSites.find(n=>n.id===e)?.name;this.node.innerHTML=`
|
|
1790
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1791
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("summary.centralStorageTitle")}</h4>
|
|
1792
|
+
</div>
|
|
1793
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1794
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1795
|
+
<ul class="waykeecom-key-value-list">
|
|
1796
|
+
${W({key:a.t("summary.dealerSelection"),value:s||""})}
|
|
1797
|
+
</ul>
|
|
1798
|
+
</div>
|
|
1799
|
+
</div>
|
|
1800
|
+
`}},Lx=Ox,Mx=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t}=this.props,e=t.getState(),i=this.props.marketCode==="SE"?`${Cs(e.address?.givenName||"")} ${Cs(e.address?.surname||"")}`:`${e.address?.givenName} ${e.address?.surname||""}`;this.node.innerHTML=`
|
|
1801
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1802
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("summary.customerTitle")}</h4>
|
|
1803
|
+
</div>
|
|
1804
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1805
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1806
|
+
<ul class="waykeecom-key-value-list">
|
|
1807
|
+
${W({key:a.t("summary.customerName"),value:i})}
|
|
1808
|
+
${this.props.marketCode==="SE"?W({key:a.t("summary.customerSSN"),value:Cu(e.customer.socialId)}):""}
|
|
1809
|
+
${W({key:a.t("summary.customerAddress"),value:`
|
|
1810
|
+
${i}<br />${e.address?.street}<br />${e.address?.postalCode} ${e.address?.city}
|
|
1811
|
+
`})}
|
|
1812
|
+
${W({key:a.t("summary.customerEmail"),value:e.customer.email})}
|
|
1813
|
+
${W({key:a.t("summary.customerPhone"),value:e.customer.phone})}
|
|
1814
|
+
</ul>
|
|
1815
|
+
</div>
|
|
1816
|
+
</div>
|
|
1817
|
+
`}},$x=Mx,Fx=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t}=this.props,e=t.getState();this.node.innerHTML=`
|
|
1818
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1819
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("summary.deliveryTitle")}</h4>
|
|
1820
|
+
</div>
|
|
1821
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1822
|
+
<div class="waykeecom-stack waykeecom-stack--1">
|
|
1823
|
+
<ul class="waykeecom-key-value-list">
|
|
1824
|
+
${W({key:a.t("summary.deliveryMethod"),value:e.homeDelivery?a.t("summary.homeDelivery"):a.t("summary.pickup")})}
|
|
1825
|
+
</ul>
|
|
1826
|
+
</div>
|
|
1827
|
+
</div>
|
|
1828
|
+
`}},Bx=Fx,Px=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t}=this.props,{customer:e,order:i,createdOrderId:s}=t.getState(),n=e.email,r=i?.contactInformation;s&&(this.node.innerHTML=`
|
|
1829
|
+
<h3 class="waykeecom-heading waykeecom-heading--3">${a.t("summary.thankYou")}</h3>
|
|
1830
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1831
|
+
<div class="waykeecom-content">
|
|
1832
|
+
<p class="waykeecom-content__p">
|
|
1833
|
+
<span class="waykeecom-text waykeecom-text--font-medium">${a.t("summary.whatHappensNext")}</span>
|
|
1834
|
+
</p>
|
|
1835
|
+
<ol class="waykeecom-content__ol">
|
|
1836
|
+
<li class="waykeecom-content__li">${a.t("summary.orderConfirmation",{email:n})}</li>
|
|
1837
|
+
<li class="waykeecom-content__li">${a.t("summary.contactFromDealer",{contactName:r?.name})}</li>
|
|
1838
|
+
<li class="waykeecom-content__li">${a.t("summary.driveSafely")}</li>
|
|
1839
|
+
</ol>
|
|
1840
|
+
</div>
|
|
1841
|
+
</div>
|
|
1842
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1843
|
+
<div class="waykeecom-disclaimer-text">${a.t("summary.orderConfirmationDisclaimer")}</div>
|
|
1844
|
+
</div>
|
|
1845
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1846
|
+
<div class="waykeecom-heading waykeecom-heading--4">${a.t("summary.orderNumber",{createdOrderId:s})}</div>
|
|
1847
|
+
</div>
|
|
1848
|
+
`)}},Ux=Px,qx=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t,cdnMedia:e}=this.props,i=t.getState(),s=i.order?.paymentOptions.find(c=>c.type===P.Loan),n=i.paymentLookupResponse||s?.loanDetails,r=i.order?.paymentOptions.find(c=>c.type===P.Lease),o=Gt(i.paymentType);this.node.innerHTML=`
|
|
1849
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1850
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("summary.orderTitle")}</h4>
|
|
1851
|
+
</div>
|
|
1852
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1853
|
+
${Dr({vehicle:i.vehicle,order:i.order,cdnMedia:e,meta:`
|
|
1854
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1855
|
+
${o===P.Loan&&s?`
|
|
1856
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1857
|
+
<div class="waykeecom-label">${a.t("summary.paymentMethod")}</div>
|
|
1858
|
+
</div>
|
|
1859
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1860
|
+
<ul class="waykeecom-key-value-list">
|
|
1861
|
+
${n?W({key:s.name||"???",value:B(n.costs.monthlyCost,{postfix:a.t("summary.perMonth")})}):""}
|
|
1862
|
+
</ul>
|
|
1863
|
+
</div>
|
|
1864
|
+
`:o===P.Cash?`
|
|
1865
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1866
|
+
<div class="waykeecom-label">${a.t("summary.paymentMethod")}</div>
|
|
1867
|
+
</div>
|
|
1868
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1869
|
+
<ul class="waykeecom-key-value-list">
|
|
1870
|
+
${W({key:a.t("summary.cash"),value:B(i.vehicle?.price,{postfix:"kr"})})}
|
|
1871
|
+
</ul>
|
|
1872
|
+
</div>
|
|
1873
|
+
`:o===P.Lease?`
|
|
1874
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1875
|
+
<div class="waykeecom-label">${a.t("summary.paymentMethod")}</div>
|
|
1876
|
+
</div>
|
|
1877
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1878
|
+
<ul class="waykeecom-key-value-list">
|
|
1879
|
+
${W({key:a.t("summary.lease"),value:`${a.t("summary.from")} ${B(r?.price,{postfix:r?.unit})}`})}
|
|
1880
|
+
</ul>
|
|
1881
|
+
</div>
|
|
1882
|
+
`:""}
|
|
1883
|
+
</div>
|
|
1884
|
+
${i.accessories.length?`
|
|
1885
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1886
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1887
|
+
<div class="waykeecom-label">${a.t("summary.accessories")}</div>
|
|
1888
|
+
</div>
|
|
1889
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1890
|
+
<ul class="waykeecom-key-value-list">
|
|
1891
|
+
${i.accessories.map(c=>W({key:c.name,value:B(c.price,{postfix:"kr"})})).join("")}
|
|
1892
|
+
</ul>
|
|
1893
|
+
</div>
|
|
1894
|
+
</div>`:""}
|
|
1895
|
+
${i.insurance||i.freeInsurance?`
|
|
1896
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1897
|
+
${i.insurance?`
|
|
1898
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1899
|
+
<div class="waykeecom-label">${a.t("summary.insurance")}</div>
|
|
1900
|
+
</div>
|
|
1901
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1902
|
+
<ul class="waykeecom-key-value-list">
|
|
1903
|
+
${W({key:i.insurance.name,value:B(i.insurance.price,{postfix:a.t("summary.perMonth")})})}
|
|
1904
|
+
${i.insuranceAddOns?.addOns.length&&i.insuranceAddOns.insurance===i.insurance.name?i.insuranceAddOns.addOns.map(c=>W({key:c.title,value:B(c.monthlyPrice,{postfix:a.t("summary.perMonth")})})).join(""):""}
|
|
1905
|
+
</ul>
|
|
1906
|
+
</div>
|
|
1907
|
+
`:""}
|
|
1908
|
+
${i.freeInsurance?`
|
|
1909
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1910
|
+
<div class="waykeecom-label">${a.t("summary.insurance")}</div>
|
|
1911
|
+
</div>
|
|
1912
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1913
|
+
<ul class="waykeecom-key-value-list">
|
|
1914
|
+
${W({key:i.freeInsurance.title,value:a.t("summary.free")})}
|
|
1915
|
+
</ul>
|
|
1916
|
+
</div>
|
|
1917
|
+
`:""}
|
|
1918
|
+
</div>`:""}
|
|
1919
|
+
|
|
1920
|
+
`})}
|
|
1921
|
+
</div>
|
|
1922
|
+
`}},jx=qx,Vx=class extends zt{constructor(t,e){super(t),this.props=e,this.render()}render(){let{store:t}=this.props,e=t.getState(),{order:i,tradeIn:s,tradeInVehicle:n}=e;i?.allowsTradeIn&&(this.node.innerHTML=`
|
|
1923
|
+
<div class="waykeecom-stack waykeecom-stack--4">
|
|
1924
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1925
|
+
<h4 class="waykeecom-heading waykeecom-heading--4 waykeecom-no-margin">${a.t("summary.tradeInTitle")}</h4>
|
|
1926
|
+
</div>
|
|
1927
|
+
|
|
1928
|
+
${s&&s.condition&&n?`<div class="waykeecom-stack waykeecom-stack--2">
|
|
1929
|
+
<div class="waykeecom-balloon">
|
|
1930
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1931
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1932
|
+
<div class="waykeecom-label">${s.registrationNumber}</div>
|
|
1933
|
+
</div>
|
|
1934
|
+
<div class="waykeecom-stack waykeecom-stack--05">
|
|
1935
|
+
<span class="waykeecom-text waykeecom-text--font-medium">${n.manufacturer} ${n.modelSeries}</span> ${n.modelName} ${n.modelYear}
|
|
1936
|
+
</div>
|
|
1937
|
+
</div>
|
|
1938
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1939
|
+
<hr class="waykeecom-separator" />
|
|
1940
|
+
</div>
|
|
1941
|
+
<div class="waykeecom-stack waykeecom-stack--2">
|
|
1942
|
+
<ul class="waykeecom-key-value-list">
|
|
1943
|
+
${W({key:a.t("summary.mileage"),value:`${s.mileage} ${this.props.marketCode==="SE"?"mil":"km"}`})}
|
|
1944
|
+
${W({key:a.t("summary.description"),value:`${s.description}`})}
|
|
1945
|
+
${W({key:a.t("summary.condition"),value:qr[s.condition]})}
|
|
1946
|
+
${W({key:a.t("summary.estimatedValue"),value:`~ ${B(n.valuation,{postfix:"kr"})}`})}
|
|
1947
|
+
</ul>
|
|
1948
|
+
</div>
|
|
1949
|
+
</div>
|
|
1950
|
+
</div>`:`<div class="waykeecom-stack waykeecom-stack--2">
|
|
1951
|
+
<ul class="waykeecom-key-value-list">
|
|
1952
|
+
${W({key:a.t("summary.tradeInTitle"),value:a.t("summary.no")})}
|
|
1953
|
+
</ul>
|
|
1954
|
+
</div>`}
|
|
1955
|
+
</div>
|
|
1956
|
+
`)}},Hx=Vx,Gd="summary-node",Gx=class extends S{constructor(t,e){super(t),this.props=e,v("SUMMARY","SUMMARY_ACTIVE"),we(this.props.store,"navigation.view",i=>{i===3&&(this.render(),Nt())}),we(this.props.store,"createdOrderId",()=>{this.render()}),this.render(),Nt()}render(){let{store:t,cdnMedia:e}=this.props,{stages:i}=t.getState();this.node.innerHTML=`
|
|
1957
|
+
<div id="${Gd}"></div>
|
|
1958
|
+
`;let s=this.node.querySelector(`#${Gd}`);s&&(new Ux(s,{store:t}),new jx(s,{store:t,cdnMedia:e}),i?.find(n=>n.name==="tradeIn")&&new Hx(s,{store:t,marketCode:this.props.marketCode}),i?.find(n=>n.name==="centralStorage")&&new Lx(s,{store:t}),new Bx(s,{store:t}),new $x(s,{store:t,marketCode:this.props.marketCode}))}},Wx=Gx,kr="order",Yx="wayke-ecom-web-payment",yr="wayke-ecom-web-id",Ns="wayke-ecom-modal",zx="ecom.wayketech.se",Kx="ecom.wayke.se",Jx=t=>{switch(new URL(t).host){case Kx:return"https://cdn.wayke.se";case zx:return"https://test-cdn.wayketech.se";default:return}},Qx=class{constructor(t){if(this.contexts={store:ly()},!t.id)throw"Missing id";this.props=t,this.marketCode=t.marketCode||"SE",yk(this.marketCode),window.process||(window.process={...window.process||{},env:{}}),he.bind(t.ecomSdkConfig),this.cdnMedia=Jx(t.ecomSdkConfig.api.address);let e=document.createElement("div");if(e.className="waykeecom-root",this.marketCode==="NO"&&e.setAttribute("data-theme","drive"),this.root=e,this.props.rootId){let o=document.getElementById(this.props.rootId);if(!o)throw"Missing element with id wayke-ecom";o.appendChild(e)}else document.body.appendChild(this.root);this.root.dataset.version=vk.version,this.stageOrderList=["centralStorage","customer","financial","tradeIn","accessories","insurance","delivery"],Hk(t.id)(this.contexts.store.dispatch),this.view=this.contexts.store.getState().navigation.view,we(this.contexts.store,"navigation.view",o=>{this.view=o,o!=="preview"&&this.render()},!0);let i=new URLSearchParams(location.search),s=i.get(kr)||void 0,n=!!i.get(Yx),r=i.get(yr);if(r&&r===this.props.id&&(s||n))if(n){let o=sessionStorage.getItem("wayke-ecom-state");sessionStorage.removeItem("wayke-ecom-state");let c=o?JSON.parse(o):void 0;c&&(this.view=c.navigation.view,ry({...c,stateLoadedFromSession:!0})(this.contexts.store.dispatch))}else s&&this.render({orderUrl:s,id:r})}close(){let t=Es();t&&v(t.view,"CLOSE",t.currentStep);let{caseId:e}=this.contexts.store.getState(),i=new URLSearchParams(location.search),s=i.get(kr),n=i.get(yr),r=!1;s&&(i.delete(kr),r=!0,location.search=i.toString()),n&&(i.delete(yr),r=!0),r&&(location.search=i.toString()),this.root.innerHTML="",this.contexts?.unsubribeVwListner?.(),Hc(),py(),e&&vr(e),sessionStorage.removeItem("wayke-ecom-state"),Vk(this.props.id)(this.contexts.store.dispatch),this.props.onEvent&&vy(this.props.onEvent),this.contexts.lastTrigger&&(this.contexts.lastTrigger.focus(),this.contexts.lastTrigger=void 0)}destroy(){this.close(),this.root.remove()}closeWithConfirm(){let{navigation:t,createdOrderId:e}=this.contexts.store.getState(),i=t.view==="preview";if(Hc(),i||e){this.close();return}this.contexts.modal=new Uc(this.root,{title:a.t("glossary.modalTitle"),id:Ns,logo:this.props.logo,logoX2:this.props.logoX2,marketCode:this.marketCode});let s=Es();s&&v(s.view,"CONFIRM_CLOSE_ACTIVE"),new Ny(this.contexts.modal.content,{onConfirmClose:()=>{let n=Es();v(n.view,"CONFIRM_CLOSE_CONFIRMED",n.currentStep),this.close()},onAbortClose:()=>{let n=Es();v(n.view,"CONFIRM_CLOSE_ABORTED",n.currentStep),this.render()}})}start(){this.props.onEvent&&yy(this.props.onEvent),v("PREVIEW","START"),this.render()}focusModal(){this.contexts.modal?.content&&(this.contexts.modal.content.setAttribute("tabindex","-1"),this.contexts.modal.content.focus())}render(t){if(this.contexts.lastTrigger||(this.contexts.lastTrigger=document.activeElement),this.contexts.unsubribeVwListner||(this.contexts.unsubribeVwListner=Ey()),this.contexts.modal=new Uc(this.root,{title:a.t("glossary.modalTitle"),id:Ns,logo:this.props.logo,logoX2:this.props.logoX2,onClose:()=>this.closeWithConfirm(),marketCode:this.marketCode}),this.contexts.modal.content){if(this.contexts.modal.content.innerHTML="",t){new wx(this.contexts.modal.content,{store:this.contexts.store,callbackOrder:t,onClose:()=>this.close()}),this.focusModal();return}switch(this.view){case"preview":new Rx(this.contexts.modal.content,{store:this.contexts.store,stageOrderList:this.stageOrderList,vehicle:this.props.vehicle,cdnMedia:this.cdnMedia});break;case"main":new yx(this.contexts.modal.content,{store:this.contexts.store,cdnMedia:this.cdnMedia,marketCode:this.marketCode});break;case"summary":new Wx(this.contexts.modal.content,{store:this.contexts.store,cdnMedia:this.cdnMedia,onClose:()=>this.close(),marketCode:this.marketCode});break;default:throw"Unknown view..."}this.focusModal()}}},Xx=Qx,$S=Xx;export{fy as EcomEvent,gy as EcomStep,ky as EcomView,$S as default};
|
|
1959
|
+
/*! Bundled license information:
|
|
1960
|
+
|
|
1961
|
+
is-plain-object/dist/is-plain-object.js:
|
|
1962
|
+
(*!
|
|
1963
|
+
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
|
1964
|
+
*
|
|
1965
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
1966
|
+
* Released under the MIT License.
|
|
1967
|
+
*)
|
|
1968
|
+
*/
|
|
1969
|
+
//# sourceMappingURL=dist-3TYBTGV5.js.map
|