{"version":3,"file":"AlfaleasingCalculatorDesktop.badec563.es5.js","mappings":"4NAOaA,GAA0BC,EAAAA,EAAAA,GAAuC,CAAEC,OCNhF,CAAgB,OAAS,QAAQ,iBAAiB,QAAQ,cAAgB,QAAQ,SAAW,QAAQ,mBAAmB,QAAQ,gBAAkB,QAAQ,sBAAsB,QAAQ,kBAAoB,QAAQ,eAAe,QAAQ,YAAc,QAAQ,SAAW,QAAQ,wBAAwB,QAAQ,mBAAqB,QAAQ,uBAAuB,QAAQ,kBAAoB,QAAQ,uBAAuB,QAAQ,kBAAoB,QAAQ,uBAAuB,QAAQ,kBAAoB,QAAQ,wBAAwB,QAAQ,mBAAqB,QAAQ,yBAAyB,QAAQ,oBAAsB,QAAQ,yBAAyB,QAAQ,oBAAsB,QAAQ,yBAAyB,QAAQ,oBAAsB,QAAQ,yBAAyB,QAAQ,oBAAsB,QAAQ,yBAAyB,QAAQ,oBAAsB,QAAQ,qBAAqB,QAAQ,iBAAmB,QAAQ,oBAAoB,QAAQ,gBAAkB,QAAQ,oBAAoB,QAAQ,gBAAkB,QAAQ,oBAAoB,QAAQ,gBAAkB,UDMriCD,CACnCE,EAAAA,G,qDEAEC,EAAgB,SAAC,GAAuC,IAArCC,EAAqC,EAArCA,IAAKC,EAAgC,EAAhCA,IAAKC,EAA2B,EAA3BA,KAG/B,OAFiCF,EAAMC,GAAOC,GAAS,EAG5CA,EANM,GCARC,GAAgBP,EAAAA,EAAAA,GAA6B,CAAEC,OCL5D,CAAgB,kCAAkC,QAAQ,gCAAgC,QAAQ,OAAS,QAAQ,SAAW,QAAQ,eAAiB,QAAQ,aAAe,QAAQ,MAAQ,UDKjKD,ED6BM,SAAC,GAW9B,MAVFI,EAUE,EAVFA,IACAC,EASE,EATFA,IACAG,EAQE,EARFA,KACAC,EAOE,EAPFA,SAOE,IANFC,UAAAA,OAME,MANU,aAMV,MALFC,mBAAAA,OAKE,SAJFL,EAIE,EAJFA,KACAL,EAGE,EAHFA,OAGE,IAFFW,MAAAA,OAEE,MAFM,GAEN,EADFC,EACE,EADFA,UAEMC,EA7Ba,SAAC,GAAD,IAAGV,EAAH,EAAGA,IAAKC,EAAR,EAAQA,IAAKG,EAAb,EAAaA,KAAMF,EAAnB,EAAmBA,KAAMM,EAAzB,EAAyBA,MAAzB,MAAuD,CAC1EP,IAAKA,EAAMD,EAAMA,EAAMC,EACvBO,MAAOA,EAAQR,EAAMA,EAAMQ,EAC3BR,IAAKA,EAAMC,EAAMA,EAAMD,EACvBE,KAAMH,EAAc,CAAEC,IAAAA,EAAKC,IAAAA,EAAKO,MAAAA,EAAON,KAAAA,IACvCE,KAAAA,GAwBmBO,CAAe,CAAEP,KAAAA,EAAMI,MAAAA,EAAOP,IAAAA,EAAKD,IAAAA,EAAKE,KAAAA,IACrDU,EAtBgB,SAAC,GAA4C,IAA1CZ,EAA0C,EAA1CA,IAAKC,EAAqC,EAArCA,IAAKO,EAAgC,EAAhCA,MAGnC,MAAO,CACHR,IAAKA,EAAMC,EACXO,WAJ8B,IAAVA,EAAwBP,GAAOO,EAAQP,GAqBzCY,CAAkBH,GAClCI,EAAgBC,IAAGlB,EAAOmB,WAAR,MACnBnB,EAAOoB,gBAAiBV,EADL,IAIlBW,EAA2B,KAAVV,EAAeP,EAAMO,EAE5C,OACI,uBAAKC,UAAWM,IAAGlB,EAAOsB,OAAQV,IAC9B,uBAAKA,UAAWZ,EAAOuB,cACnB,mCACQV,EADR,CAEID,UAAWZ,EAAOwB,MAClBhB,SAAUA,EACVC,UAAWA,EACXgB,KAAK,QACLd,MAAOU,MAGf,oCAAUT,UAAWK,GAAmBF,Q,4CG7C9CW,EAAc,CAChBC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,IAAK,IACLC,IAAK,KAgCIC,EAAS,CAClBC,OAjDW,CACXC,YAAa,IACbC,kBAAmB,MACnBC,aAAc,IACdC,mBAAoB,QA8CpBC,OA/BW,CACXC,MAAOjB,EACPkB,aAAclB,EAEdmB,UAAW,CACPC,OAAQ,KAGZC,KAAM,CACFC,MAAO,MACPC,MAAO,OACPC,MAAO,OAEXC,SAAU,CACNH,MAAO,MACPC,MAAO,OACPC,MAAO,OAEXE,MAAO,CACHC,MAAO,OAEXC,SAAU,CACND,MAAO,MAEXE,QAAS,CACLF,MAAO,MAOXG,WA9De,CACfC,UAAW,OACXC,eAAgB,WAChBC,WAAY,QACZC,gBAAiB,YACjBC,mBAAoB,eACpBC,WAAY,QACZC,aAAc,UACdC,cAAe,aCDNC,EAAb,YAWI,WAAYC,GAAe,aACvB,cAAMA,IAAN,MAXJC,cAU2B,EAGvB,EAAKC,cAAgB,EAAKA,cAAcC,MAAnB,WACrB,EAAKC,YAAc,EAAKA,YAAYD,MAAjB,WACnB,EAAKE,aAAe,EAAKA,aAAaF,MAAlB,WACpB,EAAKG,eAAiB,EAAKA,eAAeH,MAApB,WACtB,EAAKF,UAAW,EAPO,GAX/B,uCAqBII,aAAA,WACIE,KAAKN,UAAW,GAtBxB,EAyBIG,YAAA,YAAoC,IAAtBI,EAAsB,EAAtBA,MACVD,KAAKN,UAAW,EAEhB,MAAyBM,KAAKP,MAAtB3D,EAAR,EAAQA,KAAMoE,EAAd,EAAcA,OACNhE,EAAU+D,EAAME,OAAhBjE,MAGRgE,EAAO,CAAEhE,MAFM8D,KAAKI,mBAAmBlE,GAEfJ,KAAAA,KAhChC,EAmCI6D,cAAA,YAAuC,IAAvBM,EAAuB,EAAvBA,MACZ,EAAgCD,KAAKP,MAA7B3D,EAAR,EAAQA,KAAMuE,EAAd,EAAcA,cACNnE,EAAU+D,EAAME,OAAhBjE,MAERmE,EAAc,CAAEnE,MAAO8D,KAAKM,mBAAmBpE,GAAQJ,KAAAA,KAvC/D,EA0CIiE,eAAA,SAAeE,GACX,MAAiCD,KAAKP,MAA9B3D,EAAR,EAAQA,KAAMyE,EAAd,EAAcA,eACNrE,EAAU+D,EAAME,OAAhBjE,MAGRqE,EAAe,CAAErE,MAFF8D,KAAKM,mBAAmBpE,GAEPJ,KAAAA,KA/CxC,EAkDIwE,mBAAA,SAAmBpE,GACf,IAAMsE,EAASC,SAASvE,EAAO,IAC/B,EAAsB8D,KAAKP,MAAnB/D,EAAR,EAAQA,IAAKE,EAAb,EAAaA,KAEb,GAAc,KAAVM,GAAgBwE,OAAOC,MAAMH,GAC7B,MAAO,GAGX,IAAKE,OAAOE,UAAUhF,IAAS8E,OAAOG,SAASC,WAAW5E,IAAS,CAC/D,IAAM6E,EAAgB7E,EAAM8E,OAAOC,QAAQ,IAAK,KAEhD,OAAIH,WAAWC,GAAiBrF,EACrBA,ECnEY,SAACQ,GAChC,IAEMU,EAAiBV,EAAM+E,QAAQ,gBAAiB,MAEtD,MAJyB,aAIDC,KAAKtE,GAAkBA,EAAiBkE,WAAWlE,GDiE5DuE,CAAoBJ,GAG/B,OAAIP,EAAS9E,EACFA,EAGJ0F,KAAKC,IAAIb,IAxExB,EA2EIJ,mBAAA,SAAmBlE,GACf,MAA2B8D,KAAKP,MAAxB/D,EAAR,EAAQA,IAAKC,EAAb,EAAaA,IAAKC,EAAlB,EAAkBA,KACZ4E,EAASM,WAAW5E,IAAUP,EAEpC,OAAI6E,EAAS9E,EACFA,EAGP8E,EAAS7E,EACFA,GAGN+E,OAAOE,UAAUhF,IAAS8E,OAAOG,SAASC,WAAW5E,IE5F9B,SAACA,GACjC,GAAqB,KAAjBA,EAAM8E,QAAiBN,OAAOC,MAAMzE,GACpC,MAAO,GAEX,IAAMoF,EAAcR,WAAW5E,GAEzBqF,EAAeH,KAAKI,MAAMF,GAE1BG,EAAkBF,EAAe,EAEjCG,EAAmBH,EAAe,GAExC,OAAID,EAAcC,EAAeG,EAAmBJ,EACzCC,EAEPE,EAAkBH,EAAcA,EAAcI,EACvCD,EAGJC,EF0EQC,CAAqBzF,GAGzBkF,KAAKC,IAAIb,IA3FxB,EA8FIoB,cAAA,WAAgB,MACZ,EAA+E5B,KAAKP,MAA5EoC,EAAR,EAAQA,QAAR,IAAiBC,SAAAA,OAAjB,MAA4B,MAA5B,EAAmCC,EAAnC,EAAmCA,SAAUC,EAA7C,EAA6CA,iBAAkBhF,EAA/D,EAA+DA,KAAMd,EAArE,EAAqEA,MACrE,IAAI6F,EAAJ,CAEA,IAAQ9D,EAAuB4D,EAAvB5D,OAAQc,EAAe8C,EAAf9C,WACVkD,EAAWvB,OAAOxE,GAaxB,QAXe,MACV6C,EAAWC,WAAYgD,EAAiBC,EAAUhE,EAAOK,MAD/C,EAEVS,EAAWE,gBAAiB+C,EAAiBC,EAAUhE,EAAOS,UAFpD,EAGVK,EAAWM,YAAapB,EAAOU,MAAMC,MAH3B,EAIVG,EAAWG,YAAajB,EAAOC,MAAM4D,GAJ3B,EAKV/C,EAAWK,oBAAqBnB,EAAOC,MAAM4D,GALnC,EAMV/C,EAAWI,iBAAkBlB,EAAOG,UAAUC,OANpC,EAOVU,EAAWO,cAAerB,EAAOa,QAAQF,MAP/B,EAQVG,EAAWQ,eAAgBtB,EAAOY,SAASD,MARjC,GAWE5B,KAhHzB,EAmHIkF,kBAAA,WACI,MAAsClC,KAAKP,MAAnCsC,EAAR,EAAQA,SAAUrG,EAAlB,EAAkBA,IAAKC,EAAvB,EAAuBA,IAAKO,EAA5B,EAA4BA,MAE5B,IAAI6F,EAEJ,OAAI/B,KAAKN,SACExD,EAGPA,EAAQR,EACDA,EAGPQ,EAAQP,EACDA,EAGJO,GApIf,EAuIIiG,OAAA,WACI,MAwBInC,KAAKP,MAvBL2C,EADJ,EACIA,UACAC,EAFJ,EAEIA,OACAC,EAHJ,EAGIA,MACAC,EAJJ,EAIIA,QACAC,EALJ,EAKIA,SACArG,EANJ,EAMIA,UACA0F,EAPJ,EAOIA,QACAY,EARJ,EAQIA,WACAV,EATJ,EASIA,SACAW,EAVJ,EAUIA,aACAC,EAXJ,EAWIA,GACAC,EAZJ,EAYIA,KACAhE,EAbJ,EAaIA,MACAlD,EAdJ,EAcIA,IACAC,EAfJ,EAeIA,IACAG,EAhBJ,EAgBIA,KACA+G,EAjBJ,EAiBIA,UACAC,EAlBJ,EAkBIA,KACAlH,EAnBJ,EAmBIA,KACAmH,EApBJ,EAoBIA,aACAxH,EArBJ,EAqBIA,OACAyB,EAtBJ,EAsBIA,KACAd,EAvBJ,EAuBIA,MAGI8G,GAAeC,EAAAA,EAAAA,IAAmBT,GAAlCQ,WAER,OACI,uBAAK7G,UAAWM,IAAGlB,EAAO2H,YAAa/G,IACnC,uBAAKA,UAAWZ,EAAO4H,eACnB,gBAACf,EAAD,CACIgB,aAAa,MACbC,WAAY,CACRC,MAAO7G,IAAGlB,EAAOgI,SAAUhI,GAAUuH,GDnL9B,KCmL0B,SACjCU,KAAM/G,IAAGlB,EAAOgI,SAAUhI,EAAOkI,kBAErChB,WAAYA,EACZV,SAAUA,EACVW,aAAcA,EACdC,GAAIA,EACJe,WAAY1D,KAAK4B,gBACjB9F,KAAMA,EACNoE,OAAQF,KAAKH,YACb9D,SAAUiE,KAAKL,cACfgE,QAAS3D,KAAKF,aACd8D,YAAahF,EACb1C,MAAO8D,KAAKkC,uBAGdU,GAAQI,IACN,uBAAK7G,UAAWZ,EAAOsI,eAClBjB,IAASb,GACN,wBAAM5F,UAAWZ,EAAOqH,KAAMD,GAAOA,EAAL,SAC3BC,GAIRI,GAAc,uBAAK7G,UAAWZ,EAAOyH,YAAaA,KAIzDjB,GACE,uBAAK5F,UAAWZ,EAAOsB,QACnB,gBAACwF,EAAD,CACI3G,IAAKA,EACLC,IAAKA,EACLG,KAAMA,EACNC,SAAUiE,KAAKD,eACfnE,KAAMA,EACNM,MAAOA,GAASP,MAM/BkH,IAAcd,GACX,gBAACO,EAAD,CACIT,QAASA,EACTnG,IAAKA,EACLC,IAAKA,EACLoH,aAAcA,EACdxH,OAAQA,EACRyB,KAAMA,IAIb+E,GACG,sBAAI5F,UAAWM,IAAGlB,EAAOuI,aACrB,sBAAI3H,UAAWM,IAAGlB,EAAOwI,WAAYxB,MAjO7D,GAAiC/G,EAAAA,WAApBgE,EAGFwE,aAAe,CAClBlB,KDb2B,ICc3B5G,MAAO,GACP0G,KAAM,GACNC,WAAW,EACX1G,UAAW,IGlBnB,I,+CCmCa8H,EAAa,SAAC,GAAmD,IAAjDC,EAAiD,EAAjDA,OAAQxI,EAAyC,EAAzCA,IAAKC,EAAoC,EAApCA,IAAKJ,EAA+B,EAA/BA,OAC3C,OAAII,GAAOD,EACAe,IAAGlB,EAAOuI,WAAYvI,EAAO4I,WAGzB,IAAXD,EACOzH,IAAGlB,EAAOuI,WAAYvI,EAAO6I,aAGzB,IAAXF,EACOzH,IAAGlB,EAAOuI,WAAYvI,EAAO8I,aAGjC5H,IAAGlB,EAAOuI,aA6BRQ,EAAoB,SAAC,GAMX,QALnB1D,UAAAA,OAKmB,SAJnB2D,EAImB,EAJnBA,IACAC,EAGmB,EAHnBA,MACA5G,EAEmB,EAFnBA,OACA1B,EACmB,EADnBA,MAEMuI,EAAavI,GAAS0B,EAAOC,YAC7B6G,EAAOD,EAAa7G,EAAOE,kBAAoBF,EAAOI,mBACtD2G,EAnCgB,SAAC,GAAkE,IAAhEF,EAAgE,EAAhEA,WAAgE,IAApD7D,UAAAA,OAAoD,SAAjChD,EAAiC,EAAjCA,OAElDgH,EAFmF,EAAzB1I,OAChDuI,EAAa7G,EAAOC,YAAcD,EAAOG,cAGzD,OAAI6G,EAAM,GAAM,EACLA,EAGJhE,EAAYgE,EAAIC,QAAQ,GAAKD,EAAIC,QAAQ,GA2BnCC,CAAW,CAAEL,WAAAA,EAAYvI,MAAAA,EAAO0B,OAAAA,EAAQgD,UAAAA,IAErD,MAAO,CAAE+D,KAAAA,EAAMD,KAAAA,EAAMH,IAAAA,EAAKC,MAAAA,IAGjBO,EAAwB,SAAC,GAA8C,IAA5CR,EAA4C,EAA5CA,IAAKC,EAAuC,EAAvCA,MAAOvG,EAAgC,EAAhCA,OAC1C0G,ECtFuB,SAC7BK,EACAC,QAGC,IAHDA,IAAAA,EAAoC,CAChCC,sBAAuB,KAG3B,IAAMhJ,GAAS8I,QAAAA,EAAY,IACtBG,WACAlE,QAAQ,IAAK,KACbA,QAAQ,UAAW,IAExB,OAAK/E,GAASwE,OAAOC,MAAMD,OAAOxE,IAAgB,GAE3CwE,OAAOxE,GAAOkJ,eAAe,QAASH,GDyEhCI,CADmE,EAAxBnJ,OAGxD,MAAO,CACHyI,KAAAA,EACAD,KAAOzG,EAAmCI,OAC1CkG,IAAAA,EACAC,MAAAA,IAgBKc,EAAc,SAAC,GAAoC,MAAlCzD,EAAkC,EAAlCA,QAAS7E,EAAyB,EAAzBA,KAC3BY,EAA+BiE,EAA/BjE,OAAQK,EAAuB4D,EAAvB5D,OAAQc,EAAe8C,EAAf9C,WAEpBE,EAQAF,EARAE,eACAC,EAOAH,EAPAG,WACAE,EAMAL,EANAK,mBACAD,EAKAJ,EALAI,gBACAE,EAIAN,EAJAM,WACAC,EAGAP,EAHAO,aACAC,EAEAR,EAFAQ,cACAP,EACAD,EADAC,UAgDJ,QA7Cc,MACTE,GAAa,gBAAGqF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAOtI,EAAf,EAAeA,MAAf,OACVoI,EAAkB,CACdpI,MAAAA,EACAqI,IAAAA,EACA3G,OAAAA,EACA4G,MAAAA,KANE,EAQTpF,GAAqB,gBAAGmF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAOtI,EAAf,EAAeA,MAAf,OAClBoI,EAAkB,CACdpI,MAAAA,EACAqI,IAAAA,EACA3G,OAAAA,EACA4G,MAAAA,EACA5D,WAAW,KAdT,EAgBTzB,GAAkB,gBAAGoF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAOtI,EAAf,EAAeA,MAAf,OACf6I,EAAsB,CAClB7I,MAAAA,EACAqI,IAAAA,EACAC,MAAAA,EACAvG,OAAQA,EAAOjB,MArBb,EAuBTgC,GAAY,gBAAGuF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAR,OAhDW,SAAC,GAA8C,IAA5CD,EAA4C,EAA5CA,IAAKC,EAAuC,EAAvCA,MAAOvG,EAAgC,EAAhCA,OAAQ/B,EAAwB,EAAxBA,MAC7CwI,GAAO1C,EAAAA,EAAAA,GAAiB9F,EAAO+B,GAErC,MAAO,CAAE0G,KAAMvD,KAAKI,MAAMtF,GAAQwI,KAAAA,EAAMH,IAAAA,EAAKC,MAAAA,GA8CrCe,CAAiB,CACbrJ,MAFK,EAAeA,MAGpBqI,IAAAA,EACAC,MAAAA,EACAvG,OAAQA,EAAOjB,MA5Bb,EA8BTiC,GAAiB,gBAAGsF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAR,OAjDU,SAAC,GAA8C,IAA5CD,EAA4C,EAA5CA,IAAKC,EAAuC,EAAvCA,MAAOvG,EAAgC,EAAhCA,OAAQ/B,EAAwB,EAAxBA,MAGvD,MAAO,CAAEyI,KAAMzI,EAAOwI,MAFT1C,EAAAA,EAAAA,GAAiB9F,EAAO+B,GAETsG,IAAAA,EAAKC,MAAAA,GA+CzBgB,CAAqB,CACjBtJ,MAFU,EAAeA,MAGzBqI,IAAAA,EACAC,MAAAA,EACAvG,OAAQA,EAAOjB,MAnCb,EAqCTqC,GAAa,gBAAGkF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAR,OAtGW,SAAC,GAAD,IAAGtI,EAAH,EAAGA,MAAUuJ,GAAb,kCAC7Bd,KAAMzI,GACHuJ,GAqGKC,CAAkB,CAAExJ,MADV,EAAeA,MACEqI,IAAAA,EAAKC,MAAAA,EAAOE,KAAMzG,EAAOU,MAAMC,SAtCpD,EAuCTW,GAAgB,gBAAGgF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAR,OAnGW,SAAC,GAAD,IAAGtI,EAAH,EAAGA,MAAUuJ,GAAb,kCAChCd,KAAMzI,GACHuJ,GAkGKE,CAAqB,CAAEzJ,MADV,EAAeA,MACEqI,IAAAA,EAAKC,MAAAA,EAAOE,KAAMzG,EAAOY,SAASD,SAxC1D,EAyCTU,GAAe,gBAAGiF,EAAH,EAAGA,IAAKC,EAAR,EAAQA,MAAR,OAhGW,SAAC,GAAD,IAAGtI,EAAH,EAAGA,MAAUuJ,GAAb,kCAC/Bd,KAAMzI,GACHuJ,GA+FKG,CAAoB,CAAE1J,MADV,EAAeA,MACEqI,IAAAA,EAAKC,MAAAA,EAAOE,KAAMzG,EAAOa,QAAQF,SA1CxD,GA6CE5B,IElKP6I,GAAqBvK,EAAAA,EAAAA,GAA4B,CAC1DuG,QAAAA,EACAtG,OHZJ,CAAgB,kCAAkC,QAAQ,gCAAgC,QAAQ,SAAW,QAAQ,MAAQ,QAAQ,MAAQ,QAAQ,YAAc,QAAQ,gBAAkB,QAAQ,cAAgB,QAAQ,OAAS,QAAQ,WAAa,QAAQ,SAAW,QAAQ,UAAY,QAAQ,aAAe,QAAQ,UAAY,QAAQ,YAAc,QAAQ,YAAc,QAAQ,eAAiB,QAAQ,oBAAsB,QAAQ,mBAAqB,QAAQ,MAAQ,QAAQ,YAAc,QAAQ,KAAO,QAAQ,cAAgB,QAAQ,WAAa,SGa3iB6G,UAAAA,EAAAA,EACAJ,iBAAAA,EAAAA,EACAM,MCRuC,SAAC,GAAD,IACvCT,EADuC,EACvCA,QADuC,IAEvCiE,OAAAA,OAFuC,aAGvCC,MAAAA,OAHuC,MAG/B,GAH+B,EAIvCrK,EAJuC,EAIvCA,IACAC,EALuC,EAKvCA,IALuC,IAMvCoH,aAAAA,OANuC,MAMxB,GANwB,MAOvCxH,OAAAA,OAPuC,MAO9B,GAP8B,EAQvCyB,EARuC,EAQvCA,KARuC,OAUvC,sBAAIb,UAAW8H,EAAW,CAAEtI,IAAAA,EAAKD,IAAAA,EAAKH,OAAAA,KH8Jb,SAAC,GAA+D,IAA7DsG,EAA6D,EAA7DA,QAASiE,EAAoD,EAApDA,OAAQC,EAA4C,EAA5CA,MAAOrK,EAAqC,EAArCA,IAAKC,EAAgC,EAAhCA,IAAKqB,EAA2B,EAA3BA,KACxDgJ,EAAaV,EAAY,CAAEzD,QAAAA,EAAS7E,KAAAA,IACpCiJ,GAAevK,EAAMC,GAAO,EAAIA,EAChCuK,EAAWxK,EAEXyK,EAAUH,EAAW,CAAE9J,MAAOkF,KAAKgF,MAAMzK,GAAM4I,IAAK,IACpD8B,EAAaL,EAAW,CAAE9J,MAAO+J,EAAa1B,IAAK,IACnD+B,EAAUN,EAAW,CAAE9J,MAAOgK,EAAU3B,IAAK,IAEnD,OAAIuB,EACQC,EAAkBQ,QACtB,SAACC,EAAD,EAAmDC,GAAkB,IAAlDC,EAAkD,EAAlDA,QAASlC,EAAyC,EAAzCA,MAAOtI,EAAkC,EAAlCA,MAC/B,IAAgB,IAAZwK,EAAmB,CACnB,IAAM9K,EAAOoK,EAAW,CAAE9J,MAAAA,EAAOqI,IAAKkC,EAAOjC,MAAAA,IAC7CgC,EAAMG,KAAK/K,GAGf,OAAO4K,IAEX,KAIHV,GAAUC,EAAM7B,OACT6B,EAAmBa,KAAI,SAAC1K,EAAeuK,GAAhB,OAC3BT,EAAW,CAAE9J,MAAAA,EAAOqI,IAAKkC,OAI1B,CAACN,EAASE,EAAYC,GG1LxBO,CAAc,CAAElL,IAAAA,EAAKD,IAAAA,EAAKqK,MAAAA,EAAOD,OAAAA,EAAQjE,QAAAA,EAAS7E,KAAAA,IAAQ4J,KACvD,WAA6BH,GAAU,MAApClC,EAAoC,EAApCA,IAAKC,EAA+B,EAA/BA,MAAOG,EAAwB,EAAxBA,KAAMD,EAAkB,EAAlBA,KACXjF,EAAQ,CACVtD,UAAWM,KAAE,OACRlB,EAAOwI,WAAY+B,EADX,EAERvK,EAAOuL,gBAAiBhB,EAFhB,EAGRvK,EAAOwL,qBAAgC,IAAVvC,EAHrB,EAIRjJ,EAAOyL,oBAA+B,IAAVxC,EAJpB,IAMbyC,MAAO,IAOX,YAJqB,IAAVzC,IACP/E,EAAMwH,MAAQ,CAAEC,KAAiB,IAAR1C,EAAL,MAIpB,gCAAQ/E,EAAR,CAAe8E,IAAKA,IACfxB,EAAa0D,GADlB,IAC2B9B,EAD3B,IACkCD,QDpBlDrC,OAAQxG,GANsBP,CAO/BE,G,uDEVU2L,GAAoB7L,EAAAA,EAAAA,GAA4B,CACzD8L,OAAAA,EAAAA,EACAC,KAAAA,EAAAA,EACA9L,OCVJ,CAAgB,mBAAmB,QAAQ,gBAAkB,QAAQ,mBAAmB,QAAQ,gBAAkB,UDOjFD,CAI9BE,EAAAA,G,iCEFU8L,GAA4BhM,EAAAA,EAAAA,GAA4B,CACjE8L,OAAAA,EACAG,KAAAA,EAAAA,EACAC,KAAAA,EAAAA,EACAjM,OCbJ,CAAgB,oBAAoB,QAAQ,iBAAmB,QAAQ,SAAW,QAAQ,mBAAmB,QAAQ,gBAAkB,QAAQ,iBAAiB,QAAQ,cAAgB,QAAQ,wBAAwB,QAAQ,oBAAsB,UDS7MD,CAKtCE,EAAAA,G,WETUiM,GAAsBnM,EAAAA,EAAAA,GAA4B,CAC3DC,OCNJ,CAAgB,MAAQ,QAAQ,KAAO,UDKJD,CAEhCE,EAAAA,G,sBEAUkM,GAAsBpM,EAAAA,EAAAA,GAA4B,CAC3DqM,MAAAA,EAAAA,EACApM,OCTJ,CAAgB,UAAY,QAAQ,MAAQ,QAAQ,aAAa,QAAQ,UAAY,UDOlDD,CAGhCE,EAAAA,G,2EESUoM,GAA+BtM,EAAAA,EAAAA,GAG1C,CACEuM,QAAAA,EAAAA,EACAC,iBAAAA,EACAzF,OAAAA,EACA0F,YAAAA,EAAAA,EACAC,mBAAoBC,EAAAA,EACpBC,WAAAA,EACAC,mBAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,YAAAA,EAAAA,EACAjD,kBAAAA,EAAAA,EACA9J,OClCJ,CAAgB,kCAAkC,QAAQ,gCAAgC,QAAQ,SAAW,QAAQ,SAAW,QAAQ,YAAc,QAAQ,oBAAsB,QAAQ,WAAa,UDmB7JD,EEL4B,SAAAmE,GACpE,IACIqI,EAsBArI,EAtBAqI,iBACAD,EAqBApI,EArBAoI,QACAK,EAoBAzI,EApBAyI,WACAF,EAmBAvI,EAnBAuI,mBACAI,EAkBA3I,EAlBA2I,aACAD,EAiBA1I,EAjBA0I,mBACAE,EAgBA5I,EAhBA4I,aACAhG,EAeA5C,EAfA4C,OACA0F,EAcAtI,EAdAsI,YACAO,EAaA7I,EAbA6I,YACAC,EAYA9I,EAZA8I,oBAXJ,EAuBI9I,EAXA+I,WAAAA,OAZJ,MAYiB,GAZjB,EAaIC,EAUAhJ,EAVAgJ,UAbJ,EAuBIhJ,EATAiJ,QAAAA,OAdJ,MAcc,KAdd,EAeIC,EAQAlJ,EARAkJ,OACAC,EAOAnJ,EAPAmJ,OACAvD,EAMA5F,EANA4F,kBACA9J,EAKAkE,EALAlE,OAlBJ,EAuBIkE,EAJAoJ,WAAAA,OAnBJ,MAmBiB,MAnBjB,IAuBIpJ,EAHAqJ,eAAAA,OApBJ,MAoBqB,EApBrB,IAuBIrJ,EAFAsJ,eAAAA,OArBJ,MAqBqB,KArBrB,IAuBItJ,EADAuJ,QAAAA,OAtBJ,MAsBc,GAtBd,EAyBgBC,EAUZN,EAVAO,WADJ,EAWIP,EATAO,WACSC,EAHb,EAGQzN,IACK0N,EAJb,EAIQzN,IACO0N,EALf,EAKQnN,MAEMoN,EAIVX,EAJAY,SACmBC,EAGnBb,EAHAY,SAAYrN,MACDuN,EAEXd,EAFAe,UATJ,EAWIf,EADAe,UAAkBC,EAVtB,EAUiBjO,IAAwBkO,EAVzC,EAUoCjO,IAA0BkO,EAV9D,EAUuD3N,MAEvD,EAOI0M,EANAkB,iBAA0BC,EAD9B,EACwBC,KAAkCC,EAD1D,EACoDtF,KAChDuF,EAKAtB,EALAsB,WAFJ,EAOItB,EAJAuB,WAAoBC,EAHxB,EAGkBJ,KAA4BK,GAH9C,EAGwC1F,KACpB2F,GAGhB1B,EAHA2B,eAJJ,GAOI3B,EAFA4B,WAAoBC,GALxB,GAKkBT,KAA4BU,GAL9C,GAKwC/F,KAC7BgG,GACP/B,EADAgC,MAGJ,SAASC,GAAmBC,EAAkBvB,GAC1C,IAAMwB,EAAqB,QAAbD,EAAqB1B,EAAuBD,EAE1D,OAAO/H,KAAK4J,MAAOzB,EAAW,IAAOwB,GAGzC,IAAME,GAAiC,CACnC1B,SAAUC,EACVE,UAAWG,EACXX,WAAY9H,KAAK4J,MAAOxB,EAAkB,IAAOH,IAgCrD,QAA0B6B,EAAAA,EAAAA,aA7B1B,SAAiBC,EAAyBC,GACtC,IAAQpO,EAAgBoO,EAAhBpO,KAAMd,EAAUkP,EAAVlP,MACd,OAAQc,GACJ,IAAK,WACD,IAAMkM,EAAeiC,EAAfjC,WACAmC,EAAgBR,GAAmB,MAAO3O,GAC1CoP,EAAgBT,GAAmB,MAAO3O,GAShD,OAPIgN,EAAaoC,IACbpC,EAAaoC,GAEbpC,EAAamC,IACbnC,EAAamC,GAGV,OAAP,UACOF,EADP,CAEI5B,SAAUrN,EACVgN,WAAAA,IAGR,IAAK,YACD,OAAO,OAAP,UAAYiC,EAAZ,CAAmBzB,UAAWxN,IAClC,IAAK,aACD,OAAO,OAAP,UAAYiP,EAAZ,CAAmBjC,WAAYhN,IACnC,QACI,MAAM,IAAIqP,MAAM,yBAGkBN,IAAvCE,GAAP,MAAcK,GAAd,MACA,IAAsEC,EAAAA,EAAAA,GAAU,OAAD,UACxEN,GADwE,CAE3E5C,oBAAAA,EACAO,eAAAA,EACAJ,QAAAA,EACAF,WAAAA,EACAO,eAAAA,EACAC,QAAAA,EACAH,WAAAA,KARIiB,GAAR,GAAQA,iBAAkB4B,GAA1B,GAA0BA,YAAanB,GAAvC,GAAuCA,eAAgBC,GAAvD,GAAuDA,WAU/CtB,GAAoCiC,GAApCjC,WAAYK,GAAwB4B,GAAxB5B,SAAUG,GAAcyB,GAAdzB,UAGxBiC,GAAkBjC,IAAaC,EAC/BiC,GAAkBlC,IAAaE,EAYrC,SAASiC,GAAkB7O,EAAcpB,GACrC,IAXkCkQ,EAWfC,EAAgBZ,GAA3BzB,UAKR8B,GAAS,CAAExO,KAAM,YAAad,MAFP,QAATc,EAAiB+O,EAAcnQ,EAAOmQ,EAAcnQ,IAdhCkQ,EAiBI,QAAT9O,EAAiB,IAAM,KAhBpDgP,EAAAA,EAAAA,GAAU,CACN/L,MAAO,8BACPgM,KAAMC,OAAOC,SAASvB,MACtBwB,IAAKF,OAAOG,SAASC,KACrBxQ,KAAM,uBAAuBgQ,EAAzB,IACJS,QAAShC,KAuBjB,IAAMiC,IAAoBC,EAAAA,EAAAA,aACtB,KAAS,SAAC3Q,EAA0BI,IAChC8P,EAAAA,EAAAA,GAAU,CACN/L,MAAO,uBACPgM,KAAMC,OAAOC,SAASvB,MACtBwB,IAAKF,OAAOG,SAASC,KACrBxQ,KAAM4Q,EAAAA,EAAW5Q,GACjByQ,SAAUrQ,MAEf,KACH,IAGEyQ,GAAqB,SAAC,GAAyD,IAAvD7Q,EAAuD,EAAvDA,KAAMI,EAAiD,EAAjDA,MAChCsQ,GAAkB1Q,EAAMI,GACxBsP,GAAS,CAAExO,KAAMlB,EAAMI,MAAOwE,OAAOxE,MAqFzC,OACI,gBAAC4L,EAAD,CACI8E,WAAW,KACXC,iBAAkB,aAClBC,iBAZiB,kBACrB,gBAACjF,EAAD,CAAS1L,UAAWM,IAAGlB,EAAOwR,WAAYxR,EAAOgI,UAAWT,KAAK,IAAIkK,MAAM,SAEnE,6HAUJC,iBAvDiB,kBACrB,gBAAC9E,EAAD,CAAoB+E,YAAY,EAAOtC,MAAOD,IAC1C,gBAACtC,EAAD,CAAc8E,WAAS,EAACvC,MAAON,IAC3B,gBAACtC,EAAD,CACIoF,aAAc7C,GACd8C,UAAWzB,GACX0B,UAAW3B,GACX4B,WAAY,WA7DxB1B,GAAkB,MA6DuBpC,EA9DvB7N,OA+DN4R,WAAY,WAlExB3B,GAAkB,MAkEuBpC,EAnEvB7N,OAoENkH,KAAM,KAGd,gBAACsF,EAAD,CAAcqF,MAAM,GAChB,gBAACpF,EAAD,CAAc2B,KAAMI,EAAgBQ,MAAOP,IACvC,gBAAC/B,EAAD,KAAcjD,EAAkBqG,MAEpC,gBAACrD,EAAD,CAAc2B,KAAMS,GAAgBG,MAAOF,IACvC,gBAACpC,EAAD,KAAcjD,EAAkBmF,MAEpC,gBAACnC,EAAD,CAAc2B,KAAMD,EAAsBa,MAAOX,GAC7C,gBAAC3B,EAAD,KAAcjD,EAAkByE,OAGxC,gBAAC5B,EAAD,CACIgC,WAAYA,EACZ7G,WAAY,CACRqK,UAAWjR,IAAGlB,EAAOoS,oBAAqBpS,EAAOgI,WAErDqK,QAAS,YACL5B,EAAAA,EAAAA,GAAU,CACN/L,MAAO,uBACPgM,KAAMC,OAAOC,SAASvB,MACtBwB,IAAKF,OAAOG,SAASC,KACrBuB,MAAO,aACP/R,KAAMoO,KAGdkC,IAAK3D,MAmBTqF,cAxFc,kBAClB,gBAAC/F,EAAD,CAAa5L,UAAWM,IAAGlB,EAAOwS,YAAaxS,EAAOgI,WAClD,gBAAClB,GAAD,QACIP,SAAS,MACT9E,KAAK,SACDsM,EAHR,CAIIpJ,OAAQyM,GACRtM,cAAesM,GACfpM,eAAgBoM,GAChBzQ,MAAOqN,MAEX,gBAAClH,GAAD,QACIP,SAAS,MACT9E,KAAK,SACDiM,EAHR,CAIIvN,IAAKmP,GAAmB,MAAOtB,IAC/B5N,IAAKkP,GAAmB,MAAOtB,IAC/BrJ,OAAQyM,GACRtM,cAAesM,GACfpM,eAAgBoM,GAChBzQ,MAAOgN,MAEX,gBAAC7G,GAAD,QACIrF,KAAK,SACDyM,EAFR,CAGIvJ,OAAQyM,GACRtM,cAAesM,GACfpM,eAAgBoM,GAChBzQ,MAAOwN,QA6DXsE,cAAc,IACdC,gBAAgB,W,mLCnPrB,SAASC,EAAiBC,GAC7B,OAAOC,QACa,iBAATD,GACM,OAATA,GACoC,mBAAnCA,EAAsB1O,MAAM4O,IAC5BF,EAAsB1O,MAAM3D,MAQlC,SAASwS,EAA+B9L,GAC3C,OAAO+L,EAAAA,SAAAA,QAAuB/L,GAAU+D,QACpC,SAACiI,EAAqCL,GAClC,GAAKD,EAAiBC,IAEf,GAAwB,aAApBA,EAAK1O,MAAM3D,KAAqB,OACvC,OAAO,OAAP,UACO0S,IADP,MAEKL,EAAK1O,MAAM3D,MAAOqS,EAAK1O,MAAM+C,SAFlC,UAFAgM,EAAMhM,SAASmE,KAAKwH,GAQxB,OAAOK,IAEX,CAAEhM,SAAU,KAQb,SAASS,EAAmBT,GAC/B,OAAO+L,EAAAA,SAAAA,QAAuB/L,GAAU+D,QAAO,SAACiI,EAAyBL,GACzC,MAA5B,OAAID,EAAiBC,GACV,OAAP,UACOK,IADP,MAEKL,EAAK1O,MAAM3D,MAAOqS,EAAK1O,MAAM+C,SAFlC,IAMGgM,IACR,IAGA,SAASC,EAA+BjM,GAC3C,OAAOkM,EAAAA,EAAAA,UAAQ,kBAAMJ,EAA+B9L,KAAW,CAACA,IAG7D,SAASmM,EAAmBnM,GAC/B,OAAOkM,EAAAA,EAAAA,UAAQ,kBAAMzL,EAAmBT,KAAW,CAACA,M,kFCzD3ClH,EACT,SAAiBsT,GAAjB,OACA,SAACC,GAAD,OACIC,EAAAA,EAAAA,KAAMC,EAAAA,EAAAA,IAAcF,EAAQD,GAAeC,M,wKCXnD,GAAgB,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,eAAiB,QAAQ,WAAa,QAAQ,WAAa,QAAQ,WAAa,QAAQ,WAAa,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,YAAc,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,aAAe,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,cAAgB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,YAAc,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,eAAiB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,gBAAkB,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,aAAe,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,SAAS,cAAgB,U,m0BCMx7H,IAAMG,EAA+C,CACjD,CAAC,eAAgB,gBACjB,CAAC,YAAa,UACd,CAAC,cAAe,UAChB,CAAC,eAAgB,UACjB,CAAC,aAAc,UACf,CAAC,aAAc,WACf,CAAC,eAAgB,WACjB,CAAC,gBAAiB,WAClB,CAAC,cAAe,Y,yBCPPC,EAAiB,SAAeC,GAAf,MAAmD,CAC7EC,YAAaD,EAAaC,aAAeD,EAAapT,MAAQ,kBAMrDiT,EACT,SAAiBF,EAA0BD,GAA3C,OACA,gBAAGzS,EAAH,EAAGA,UAAWiT,EAAd,EAAcA,OAAW3P,GAAzB,mBACI,gBAACoP,GAAD,UAAYD,EAAmBnP,EDAV,SACzB2P,EACAC,QACoC,IAFpCD,IAAAA,EAAkB,IAGlB,IAAM/L,EAAuB,GAE7B,GAAIiM,IAAQF,GACR,OAAOC,EAAoB,CAAElT,UAAWkT,QAAsBE,EAGlE,IAAK,IAAL,MAA+BP,KAA/B,aAAsC,eAA1BQ,EAA0B,KAApBC,EAAoB,UACbF,IAAjBH,EAAOI,GACPnM,EAAWsD,KAAKpL,EAAO,GAAGiU,EAAOJ,EAAOI,UACZD,IAArBH,EAAOK,IACdpM,EAAWsD,KAAKpL,EAAO,GAAGiU,EAAOJ,EAAOK,KAQhD,OAJIJ,GACAhM,EAAWsD,KAAK0I,GAGhBhM,EAAWa,OAAe,CAAE/H,UAAWkH,EAAWqM,KAAK,WAA3D,ECtBoDC,CAAcP,EAAQjT,OAKjE2S,EAAQ,SACjBc,EACAf,GAFiB,2BAGdpJ,EAHc,iCAGdA,EAHc,yBAKjBoK,OAAOC,OAAP,MAAAD,OAAM,CAAQE,IAAaH,EAASf,GAASI,EAAeJ,IAAtD,OAAkEpJ,M,oBC7B5E,OAOC,WACA,aAEA,IAAIuK,EAAS,GAAGC,eAEhB,SAAS5M,IAGR,IAFA,IAAI6M,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUlM,OAAQiM,IAAK,CAC1C,IAAIE,EAAMD,UAAUD,GACpB,GAAKE,EAAL,CAEA,IAAIC,SAAiBD,EAErB,GAAgB,WAAZC,GAAoC,WAAZA,EAC3BJ,EAAQvJ,KAAK0J,QACP,GAAIE,MAAMC,QAAQH,IACxB,GAAIA,EAAInM,OAAQ,CACf,IAAIuM,EAAQpN,EAAWqN,MAAM,KAAML,GAC/BI,GACHP,EAAQvJ,KAAK8J,SAGT,GAAgB,WAAZH,EACV,GAAID,EAAIlL,WAAa0K,OAAOc,UAAUxL,SACrC,IAAK,IAAIZ,KAAO8L,EACXL,EAAOY,KAAKP,EAAK9L,IAAQ8L,EAAI9L,IAChC2L,EAAQvJ,KAAKpC,QAIf2L,EAAQvJ,KAAK0J,EAAIlL,aAKpB,OAAO+K,EAAQR,KAAK,KAGgBmB,EAAOC,SAC3CzN,EAAW0N,QAAU1N,EACrBwN,EAAOC,QAAUzN,QAKhB,KAFwB,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aA9CH,I,kBCOA,SAAS2N,EAASC,EAAMC,EAAMC,GAC5B,IAAIC,EAASC,EAAMC,EAASC,EAAWC,EAGvC,SAASC,IACP,IAAIC,EAAOC,KAAKC,MAAQL,EAEpBG,EAAOR,GAAQQ,GAAQ,EACzBN,EAAUS,WAAWJ,EAAOP,EAAOQ,IAEnCN,EAAU,KACLD,IACHK,EAASP,EAAKP,MAAMY,EAASD,GAC7BC,EAAUD,EAAO,OAXnB,MAAQH,IAAMA,EAAO,KAgBzB,IAAIY,EAAY,WACdR,EAAUtR,KACVqR,EAAOjB,UACPmB,EAAYI,KAAKC,MACjB,IAAIG,EAAUZ,IAAcC,EAO5B,OANKA,IAASA,EAAUS,WAAWJ,EAAOP,IACtCa,IACFP,EAASP,EAAKP,MAAMY,EAASD,GAC7BC,EAAUD,EAAO,MAGZG,GAoBT,OAjBAM,EAAUE,MAAQ,WACZZ,IACFa,aAAab,GACbA,EAAU,OAIdU,EAAUI,MAAQ,WACZd,IACFI,EAASP,EAAKP,MAAMY,EAASD,GAC7BC,EAAUD,EAAO,KAEjBY,aAAab,GACbA,EAAU,OAIPU,EAITd,EAASA,SAAWA,EAEpBH,EAAOC,QAAUE,G,sBCrEjB,OAOC,WACA,aAEA,IAAImB,IACe,oBAAXjG,SACPA,OAAOC,WACPD,OAAOC,SAASiG,eAGbC,EAAuB,CAE1BF,UAAWA,EAEXG,cAAiC,oBAAXC,OAEtBC,qBACCL,MAAgBjG,OAAOuG,mBAAoBvG,OAAOwG,aAEnDC,eAAgBR,KAAejG,OAAO0G,aAOrC,KAFD,aACC,OAAOP,GACP,8BAzBH,I,kBCaAxB,EAAOC,QAXP,SAAkB+B,EAAOC,GAKvB,IAJA,IAAIrM,GAAS,EACTvC,EAAkB,MAAT2O,EAAgB,EAAIA,EAAM3O,OACnCsN,EAASjB,MAAMrM,KAEVuC,EAAQvC,GACfsN,EAAO/K,GAASqM,EAASD,EAAMpM,GAAQA,EAAOoM,GAEhD,OAAOrB,I,sBCjBT,IAAIuB,EAAS,EAAQ,OACjBC,EAAW,EAAQ,OACnBxC,EAAU,EAAQ,MAClByC,EAAW,EAAQ,OAMnBC,EAAcH,EAASA,EAAOpC,eAAYpB,EAC1C4D,EAAiBD,EAAcA,EAAY/N,cAAWoK,EA0B1DsB,EAAOC,QAhBP,SAASsC,EAAalX,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIsU,EAAQtU,GAEV,OAAO8W,EAAS9W,EAAOkX,GAAgB,GAEzC,GAAIH,EAAS/W,GACX,OAAOiX,EAAiBA,EAAevC,KAAK1U,GAAS,GAEvD,IAAIsV,EAAUtV,EAAQ,GACtB,MAAkB,KAAVsV,GAAkB,EAAItV,IA3BjB,SA2BwC,KAAOsV,I,sBCjC9D,IAAI6B,EAAa,EAAQ,OACrBC,EAAe,EAAQ,OA2B3BzC,EAAOC,QALP,SAAkB5U,GAChB,MAAuB,iBAATA,GACXoX,EAAapX,IArBF,mBAqBYmX,EAAWnX,K,sBCzBvC,IAAIkX,EAAe,EAAQ,OA2B3BvC,EAAOC,QAJP,SAAkB5U,GAChB,OAAgB,MAATA,EAAgB,GAAKkX,EAAalX","sources":["webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/desktop/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/desktop/desktop.css?7df0","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider/src/slider.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider/src/desktop/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider/src/styles/styles.css?5b63","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/config.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/slider-field.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/node_modules/@alfa-bank/site-helpers-transform/src/strings/get-correct-form-value.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/node_modules/@alfa-bank/site-helpers-transform/src/strings/get-valid-rounded-value.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/styles/styles.css?88c2","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/steps/helpers.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/node_modules/@alfa-bank/site-helpers-transform/src/numbers/separate-thousands.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/desktop.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-slider-field/src/steps/index.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/fill-button/desktop.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/fill-button/styles/desktop.css?aa99","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-card-content/desktop.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-card-content/styles/desktop.css?f719","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-block/desktop.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-block/styles/desktop.css","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-group/desktop.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-calculator-layout/src/components/results-group/styles/desktop.css?8a24","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-alfaleasing-calculator/src/desktop/index.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-alfaleasing-calculator/src/desktop/desktop.css?d042","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-alfaleasing-calculator/src/layout/desktop.tsx","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-named-container/src/named-container/utils.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/create-widget.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/styles/common.css","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/generate-style.ts","webpack://assr-alfaleasing/./node_modules/@alfa-bank/site-util-create-widget/src/helpers.tsx","webpack://assr-alfaleasing/./node_modules/classnames/index.js","webpack://assr-alfaleasing/./node_modules/debounce/index.js","webpack://assr-alfaleasing/./node_modules/exenv/index.js","webpack://assr-alfaleasing/./node_modules/lodash/_arrayMap.js","webpack://assr-alfaleasing/./node_modules/lodash/_baseToString.js","webpack://assr-alfaleasing/./node_modules/lodash/isSymbol.js","webpack://assr-alfaleasing/./node_modules/lodash/toString.js"],"sourcesContent":["import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { CalculatorLayout as Component } from '../calculator-layout';\nimport type { IDeps, TCalculatorLayout } from '../models';\n\nimport styles from './desktop.css';\n\nexport const CalculatorLayoutDesktop = createWidget({ styles })(\n Component\n);\n","// extracted by mini-css-extract-plugin\nexport default {\"layout\":\"a3Jy6\",\"layout-reverse\":\"b3Jy6\",\"layoutReverse\":\"b3Jy6\",\"controls\":\"c3Jy6\",\"controls-reverse\":\"d3Jy6\",\"controlsReverse\":\"d3Jy6\",\"results-card-header\":\"e3Jy6\",\"resultsCardHeader\":\"e3Jy6\",\"results-card\":\"f3Jy6\",\"resultsCard\":\"f3Jy6\",\"selector\":\"g3Jy6\",\"results-card-width-xs\":\"h3Jy6\",\"resultsCardWidthXs\":\"h3Jy6\",\"results-card-width-s\":\"i3Jy6\",\"resultsCardWidthS\":\"i3Jy6\",\"results-card-width-m\":\"j3Jy6\",\"resultsCardWidthM\":\"j3Jy6\",\"results-card-width-l\":\"k3Jy6\",\"resultsCardWidthL\":\"k3Jy6\",\"results-card-width-xl\":\"l3Jy6\",\"resultsCardWidthXl\":\"l3Jy6\",\"results-card-width-2xl\":\"m3Jy6\",\"resultsCardWidth2Xl\":\"m3Jy6\",\"results-card-width-3xl\":\"n3Jy6\",\"resultsCardWidth3Xl\":\"n3Jy6\",\"results-card-padding-s\":\"o3Jy6\",\"resultsCardPaddingS\":\"o3Jy6\",\"results-card-padding-m\":\"p3Jy6\",\"resultsCardPaddingM\":\"p3Jy6\",\"results-card-padding-l\":\"q3Jy6\",\"resultsCardPaddingL\":\"q3Jy6\",\"controls-indent-xs\":\"r3Jy6\",\"controlsIndentXs\":\"r3Jy6\",\"controls-indent-s\":\"s3Jy6\",\"controlsIndentS\":\"s3Jy6\",\"controls-indent-m\":\"t3Jy6\",\"controlsIndentM\":\"t3Jy6\",\"controls-indent-l\":\"u3Jy6\",\"controlsIndentL\":\"u3Jy6\"};","import type { FC } from 'react';\nimport React from 'react';\nimport cn from 'classnames';\n\nimport type { ICorrectedStep, ICorrectedInput, ICorrectedProgress, TSlider } from './models';\n\nconst DEFAULT_STEP = 1;\n\nconst correctedStep = ({ max, min, step }: ICorrectedStep) => {\n const dividedWithoutRemainder = (max - min) % step === 0;\n\n if (dividedWithoutRemainder) {\n return step;\n }\n\n return DEFAULT_STEP;\n};\n\nconst correctedInput = ({ max, min, name, step, value }: ICorrectedInput) => ({\n min: min > max ? max : min,\n value: value > max ? max : value,\n max: max < min ? min : max,\n step: correctedStep({ max, min, value, step }),\n name,\n});\n\nconst correctedProgress = ({ max, min, value }: ICorrectedProgress) => {\n const newValue = typeof value === 'undefined' ? min : +value - min;\n\n return {\n max: max - min,\n value: newValue,\n };\n};\n\nexport const Slider: FC = ({\n max,\n min,\n name,\n onChange,\n onMouseUp = () => {},\n progressBackground = false,\n step,\n styles,\n value = '',\n className,\n}) => {\n const inputProps = correctedInput({ name, value, min, max, step });\n const progressProps = correctedProgress(inputProps);\n const progressClass = cn(styles.progress, {\n [styles.greyBackground]: progressBackground,\n });\n\n const correctedValue = value === '' ? min : value;\n\n return (\n
\n
\n \n
\n \n
\n );\n};\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport type { TSlider, IDeps } from '../models';\nimport { Slider as Component } from '../slider';\nimport styles from '../styles/styles.css';\n\nexport const SliderDesktop = createWidget({ styles })(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"a3vmJ\",\"background-$(backgroundColor)\":\"b3vmJ\",\"slider\":\"c3vmJ\",\"progress\":\"d3vmJ\",\"greyBackground\":\"e3vmJ\",\"rangeWrapper\":\"f3vmJ\",\"range\":\"g3vmJ\"};","import type { TSize } from './models';\n\nexport const DEFAULT_SIZE: TSize = 'l';\n\nconst suffixType = {\n TYPE_YEAR: 'year',\n TYPE_HALF_YEAR: 'halfYear',\n TYPE_MONEY: 'money',\n TYPE_MONEY_LONG: 'moneyLong',\n TYPE_MONEY_INTEGER: 'moneyInteger',\n TYPE_MONTH: 'month',\n TYPE_PERCENT: 'percent',\n TYPE_QUANTITY: 'quantity',\n};\n\nconst points = {\n ONE_MILLION: 1000000,\n ONE_MILLION_LABEL: 'млн',\n ONE_THOUSAND: 1000,\n ONE_THOUSAND_LABEL: 'тыс.',\n};\n\nconst moneySuffix = {\n rub: '₽',\n usd: '$',\n eur: '€',\n gbp: '£',\n cny: '¥',\n chf: '₣',\n hkd: 'HK$',\n try: '₺',\n jpy: '¥',\n};\n\nconst suffix = {\n money: moneySuffix,\n moneyInteger: moneySuffix,\n // тип шкалы под инпутом для показа значений в разрядах со знаком рубля\n moneyLong: {\n symbol: '₽',\n },\n\n year: {\n form1: 'год',\n form2: 'года',\n form3: 'лет',\n },\n halfYear: {\n form1: 'год',\n form2: 'года',\n form3: 'лет',\n },\n month: {\n label: 'мес',\n },\n quantity: {\n label: 'шт',\n },\n percent: {\n label: '%',\n },\n};\n\nexport const config = {\n points,\n suffix,\n suffixType,\n};\n","import type { ChangeEvent } from 'react';\nimport React, { Component } from 'react';\nimport cn from 'classnames';\nimport { getValidRoundedValue } from '@alfa-bank/site-helpers-transform/strings/get-valid-rounded-value';\nimport { getCorrectFormValue } from '@alfa-bank/site-helpers-transform/strings/get-correct-form-value';\nimport { getNamedContainers } from '@alfa-bank/site-named-container/utils';\nimport type { TFocusEvent, TChangeEvent } from '@alfa-bank/site-input/models';\n\nimport { DEFAULT_SIZE } from './config';\nimport type { TProps } from './models';\n\nexport class SliderField extends Component {\n isActive: boolean;\n\n static defaultProps = {\n size: DEFAULT_SIZE,\n value: '',\n info: '',\n showSteps: true,\n className: '',\n };\n\n constructor(props: TProps) {\n super(props);\n\n this.onChangeInput = this.onChangeInput.bind(this);\n this.onBlurInput = this.onBlurInput.bind(this);\n this.onFocusInput = this.onFocusInput.bind(this);\n this.onChangeSlider = this.onChangeSlider.bind(this);\n this.isActive = false;\n }\n\n onFocusInput() {\n this.isActive = true;\n }\n\n onBlurInput({ event }: TFocusEvent) {\n this.isActive = false;\n\n const { name, onBlur } = this.props;\n const { value } = event.target;\n const number = this.getValidRangeValue(value);\n\n onBlur({ value: number, name });\n }\n\n onChangeInput({ event }: TChangeEvent) {\n const { name, onInputChange } = this.props;\n const { value } = event.target;\n\n onInputChange({ value: this.getValidInputValue(value), name });\n }\n\n onChangeSlider(event: ChangeEvent) {\n const { name, onSliderChange } = this.props;\n const { value } = event.target;\n const number = this.getValidInputValue(value);\n\n onSliderChange({ value: number, name });\n }\n\n getValidInputValue(value: string) {\n const number = parseInt(value, 10);\n const { max, step } = this.props;\n\n if (value === '' || Number.isNaN(number)) {\n return '';\n }\n\n if (!Number.isInteger(step) && Number.isFinite(parseFloat(value))) {\n const modifiedValue = value.trim().replace(',', '.');\n\n if (parseFloat(modifiedValue) > max) {\n return max;\n }\n\n return getCorrectFormValue(modifiedValue);\n }\n\n if (number > max) {\n return max;\n }\n\n return Math.abs(number);\n }\n\n getValidRangeValue(value: string) {\n const { max, min, step } = this.props;\n const number = parseFloat(value) || min;\n\n if (number > max) {\n return max;\n }\n\n if (number < min) {\n return min;\n }\n\n if (!Number.isInteger(step) && Number.isFinite(parseFloat(value))) {\n return getValidRoundedValue(value);\n }\n\n return Math.abs(number);\n }\n\n correctSuffix() {\n const { configs, currency = 'rub', disabled, getCorrectSuffix, type, value } = this.props;\n if (disabled) return undefined;\n\n const { suffix, suffixType } = configs;\n const newValue = Number(value);\n\n const suffixMap = {\n [suffixType.TYPE_YEAR]: getCorrectSuffix(newValue, suffix.year),\n [suffixType.TYPE_HALF_YEAR]: getCorrectSuffix(newValue, suffix.halfYear),\n [suffixType.TYPE_MONTH]: suffix.month.label,\n [suffixType.TYPE_MONEY]: suffix.money[currency],\n [suffixType.TYPE_MONEY_INTEGER]: suffix.money[currency],\n [suffixType.TYPE_MONEY_LONG]: suffix.moneyLong.symbol,\n [suffixType.TYPE_PERCENT]: suffix.percent.label,\n [suffixType.TYPE_QUANTITY]: suffix.quantity.label,\n };\n\n return suffixMap[type];\n }\n\n correctInputValue() {\n const { disabled, max, min, value } = this.props;\n\n if (disabled) return undefined;\n\n if (this.isActive) {\n return value;\n }\n\n if (value > max) {\n return max;\n }\n\n if (value < min) {\n return min;\n }\n\n return value;\n }\n\n render() {\n const {\n MaskInput,\n Slider,\n Steps,\n caption,\n children,\n className,\n configs,\n dataTestId,\n disabled,\n forwardedRef,\n id,\n info,\n label,\n max,\n min,\n name,\n showSteps,\n size,\n step,\n stepPrefixes,\n styles,\n type,\n value,\n } = this.props;\n\n const { rightAddon } = getNamedContainers(children);\n\n return (\n
\n
\n \n\n {(info || rightAddon) && (\n
\n {info && !disabled && (\n \n {info}\n \n )}\n\n {rightAddon &&
{rightAddon}
}\n
\n )}\n\n {!disabled && (\n
\n \n
\n )}\n
\n\n {showSteps && !disabled && (\n \n )}\n\n {disabled && (\n
    \n
  • {caption}
  • \n
\n )}\n
\n );\n }\n}\n","/**\n * Возвращает числовое представление введённой строки с ограничением до сотых,\n * а также проверяет на соответствие форме дробного числа '6[,.]...'\n * Используется в компонентах SliderField и IncreaseDecreaseField с type=halfYear\n * @example getCorrectFormValue('6.,'); // 6\n * */\nexport const getCorrectFormValue = (value: string) => {\n const correctFormValue = /^\\d*[,.]?$/;\n /** Ограничение на ввод только 2-х знаков после запятой/точки */\n const correctedValue = value.replace(/(\\.\\d{2})\\d+/g, '$1');\n\n return correctFormValue.test(correctedValue) ? correctedValue : parseFloat(correctedValue);\n};\n","/**\n * Возвращает числовое представление введённой строки с ограничением до сотых.\n * С округлением по ближайшим верхней, нижней границам и середине.\n * Используется в компонентах SliderField и IncreaseDecreaseField с type=halfYear\n * @example getValidRoundedValue('6.23'); // 6, т.к разности от 6.5 и 7 больше, чем 6.23 - 6\n * */\nexport const getValidRoundedValue = (value: string) => {\n if (value.trim() === '' || Number.isNaN(value)) {\n return '';\n }\n const numberValue = parseFloat(value);\n /* Округляем вниз (6.23 --> 6) */\n const roundedValue = Math.floor(numberValue);\n /* Уст. верхнюю границу (7) */\n const upperLimitValue = roundedValue + 1;\n /* Середина (6.5) */\n const middleLimitValue = roundedValue + 0.5;\n\n if (numberValue - roundedValue < middleLimitValue - numberValue) {\n return roundedValue;\n }\n if (upperLimitValue - numberValue < numberValue - middleLimitValue) {\n return upperLimitValue;\n }\n\n return middleLimitValue;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"a1JU4\",\"background-$(backgroundColor)\":\"b1JU4\",\"external\":\"c1JU4\",\"lSize\":\"d1JU4\",\"mSize\":\"e1JU4\",\"sliderField\":\"f1JU4\",\"sliderFieldMask\":\"g1JU4\",\"sliderWrapper\":\"h1JU4\",\"slider\":\"i1JU4\",\"stepLabels\":\"j1JU4\",\"stepText\":\"k1JU4\",\"pureValue\":\"l1JU4\",\"inputWrapper\":\"m1JU4\",\"oneLabels\":\"n1JU4\",\"stepLabels4\":\"o1JU4\",\"stepLabels5\":\"p1JU4\",\"stepTextCustom\":\"q1JU4\",\"stepTextCustomFirst\":\"r1JU4\",\"stepTextCustomLast\":\"s1JU4\",\"offer\":\"t1JU4\",\"offerAmount\":\"u1JU4\",\"info\":\"v1JU4\",\"addonsWrapper\":\"w1JU4\",\"rightAddon\":\"x1JU4\"};","import cn from 'classnames';\nimport { getCorrectSuffix } from '@alfa-bank/site-form-helpers/text/get-correct-suffix';\nimport { separateThousands } from '@alfa-bank/site-helpers-transform/numbers/separate-thousands';\n\nimport type {\n IShortValue,\n ISliderFieldConfig,\n IStepsClassNames,\n TMarks,\n TSuffixType,\n IStepLabel,\n IMonthLabelStep,\n IMoneyLongSuffixOptions,\n IQuantityLabelStep,\n IPercentLabelStep,\n IYearSuffixOptions,\n IMark,\n IStepsTypeCallback,\n IStepMoneyLabel,\n IStep,\n} from '../models';\n\ninterface ICreateSteps {\n configs: ISliderFieldConfig;\n type: TSuffixType;\n}\n\ninterface IGenerateSteps {\n configs: ISliderFieldConfig;\n custom: boolean;\n marks: TMarks;\n max: number;\n min: number;\n type: TSuffixType;\n}\n\nexport const stepsClass = ({ length, max, min, styles }: IStepsClassNames) => {\n if (min >= max) {\n return cn(styles.stepLabels, styles.oneLabels);\n }\n\n if (length === 4) {\n return cn(styles.stepLabels, styles.stepLabels4);\n }\n\n if (length === 5) {\n return cn(styles.stepLabels, styles.stepLabels5);\n }\n\n return cn(styles.stepLabels);\n};\n\nexport const shortValue = ({ hasMillion, isInteger = false, points, value }: IShortValue) => {\n const divider = hasMillion ? points.ONE_MILLION : points.ONE_THOUSAND;\n const res = value / divider;\n\n if (res % 1 === 0) {\n return res;\n }\n\n return isInteger ? res.toFixed(0) : res.toFixed(1);\n};\n\nexport const stepLabelForMonth = ({ value, ...rest }: IMonthLabelStep): IStep => ({\n text: value,\n ...rest,\n});\n\nexport const stepLabelForQuantity = ({ value, ...rest }: IQuantityLabelStep): IStep => ({\n text: value,\n ...rest,\n});\n\nexport const stepLabelForPercent = ({ value, ...rest }: IPercentLabelStep): IStep => ({\n text: value,\n ...rest,\n});\n\nexport const stepLabelForMoney = ({\n isInteger = false,\n key,\n point,\n points,\n value,\n}: IStepMoneyLabel) => {\n const hasMillion = value >= points.ONE_MILLION;\n const unit = hasMillion ? points.ONE_MILLION_LABEL : points.ONE_THOUSAND_LABEL;\n const text = shortValue({ hasMillion, value, points, isInteger });\n\n return { text, unit, key, point };\n};\n\nexport const stepLabelForMoneyLong = ({ key, point, suffix, value }: IStepLabel) => {\n const text = separateThousands(value);\n\n return {\n text,\n unit: (suffix as IMoneyLongSuffixOptions).symbol,\n key,\n point,\n };\n};\n\nexport const stepLabelForYear = ({ key, point, suffix, value }: IStepLabel) => {\n const unit = getCorrectSuffix(value, suffix as IYearSuffixOptions);\n\n return { text: Math.floor(value), unit, key, point };\n};\n\nexport const stepLabelForHalfYear = ({ key, point, suffix, value }: IStepLabel) => {\n const unit = getCorrectSuffix(value, suffix as IYearSuffixOptions);\n\n return { text: value, unit, key, point };\n};\n\nexport const createSteps = ({ configs, type }: ICreateSteps) => {\n const { points, suffix, suffixType } = configs;\n const {\n TYPE_HALF_YEAR,\n TYPE_MONEY,\n TYPE_MONEY_INTEGER,\n TYPE_MONEY_LONG,\n TYPE_MONTH,\n TYPE_PERCENT,\n TYPE_QUANTITY,\n TYPE_YEAR,\n } = suffixType;\n\n const TYPE_MAP = {\n [TYPE_MONEY]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForMoney({\n value,\n key,\n points,\n point,\n }),\n [TYPE_MONEY_INTEGER]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForMoney({\n value,\n key,\n points,\n point,\n isInteger: true,\n }),\n [TYPE_MONEY_LONG]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForMoneyLong({\n value,\n key,\n point,\n suffix: suffix[type],\n }),\n [TYPE_YEAR]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForYear({\n value,\n key,\n point,\n suffix: suffix[type],\n }),\n [TYPE_HALF_YEAR]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForHalfYear({\n value,\n key,\n point,\n suffix: suffix[type],\n }),\n [TYPE_MONTH]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForMonth({ value, key, point, unit: suffix.month.label }),\n [TYPE_QUANTITY]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForQuantity({ value, key, point, unit: suffix.quantity.label }),\n [TYPE_PERCENT]: ({ key, point, value }: IStepsTypeCallback) =>\n stepLabelForPercent({ value, key, point, unit: suffix.percent.label }),\n };\n\n return TYPE_MAP[type];\n};\n\nexport const generateSteps = ({ configs, custom, marks, max, min, type }: IGenerateSteps) => {\n const createStep = createSteps({ configs, type });\n const middleValue = (max - min) / 2 + min;\n const maxValue = max;\n\n const minStep = createStep({ value: Math.round(min), key: 1 });\n const middleStep = createStep({ value: middleValue, key: 2 });\n const maxStep = createStep({ value: maxValue, key: 3 });\n\n if (custom) {\n return (marks as IMark[]).reduce(\n (steps: IStep[], { isShown, point, value }: IMark, index: number) => {\n if (isShown !== false) {\n const step = createStep({ value, key: index, point });\n steps.push(step);\n }\n\n return steps;\n },\n []\n );\n }\n\n if (!custom && marks.length) {\n return (marks as number[]).map((value: number, index: number) =>\n createStep({ value, key: index })\n );\n }\n\n return [minStep, middleStep, maxStep];\n};\n","import type { TUnionType } from './models';\n\n/**\n * Разбивает числа на тысячи (1000000.01 -> 1 000 000,01), приводя их к стандарту ru-RU\n * @param value - Значение для форматирования\n * @param options - Опции для функции `toLocaleString`\n */\nexport const separateThousands = (\n rawValue: TUnionType,\n options: Intl.NumberFormatOptions = {\n maximumFractionDigits: 10,\n }\n) => {\n const value = (rawValue ?? '')\n .toString()\n .replace(',', '.')\n .replace(/\\u00a0/g, '');\n\n if (!value || Number.isNaN(Number(value))) return '';\n\n return Number(value).toLocaleString('ru-RU', options);\n};\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { getCorrectSuffix } from '@alfa-bank/site-form-helpers/text/get-correct-suffix';\nimport { SliderDesktop } from '@alfa-bank/site-slider/desktop';\nimport { MaskInput } from '@alfa-bank/site-mask-input';\n\nimport type { TProps, IDeps } from './models';\nimport { SliderField as Component } from './slider-field';\nimport { config as configs } from './config';\nimport styles from './styles/styles.css';\nimport { StepLabels as Steps } from './steps';\n\nexport const SliderFieldDesktop = createWidget({\n configs,\n styles,\n MaskInput,\n getCorrectSuffix,\n Steps,\n Slider: SliderDesktop,\n})(Component);\n","import type { FC } from 'react';\nimport React from 'react';\nimport cn from 'classnames';\n\nimport type { IStepsProps } from '../models';\n\nimport { stepsClass, generateSteps } from './helpers';\n\nexport const StepLabels: FC = ({\n configs,\n custom = false,\n marks = [],\n max,\n min,\n stepPrefixes = {},\n styles = {},\n type,\n}) => (\n
    \n {generateSteps({ min, max, marks, custom, configs, type }).map(\n ({ key, point, text, unit }, index) => {\n const props = {\n className: cn({\n [styles.stepText]: !custom,\n [styles.stepTextCustom]: custom,\n [styles.stepTextCustomFirst]: point === 0,\n [styles.stepTextCustomLast]: point === 1,\n }),\n style: {},\n };\n\n if (typeof point !== 'undefined') {\n props.style = { left: `${point * 100}%` };\n }\n\n return (\n
  • \n {stepPrefixes[index]} {text} {unit}\n
  • \n );\n }\n )}\n
\n);\n","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { Button } from '@alfa-bank/site-button';\nimport { LinkPid as Link } from '@alfa-bank/site-link/link-pid';\n\nimport type { IDeps, IProps } from './models';\nimport { FillButton as Component } from './fill-button';\nimport stylesDesktop from './styles/desktop.css';\n\nexport const FillButtonDesktop = createWidget({\n Button,\n Link,\n styles: stylesDesktop,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"button-container\":\"aj2KI\",\"buttonContainer\":\"aj2KI\",\"container-margin\":\"bj2KI\",\"containerMargin\":\"bj2KI\"};","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { TextDesktop as Text } from '@alfa-bank/site-deprecated-text/desktop';\nimport { Grid } from '@alfa-bank/site-grid-universal';\n\nimport { FillButtonDesktop as Button } from '../fill-button/desktop';\n\nimport { ResultsCardContent as Component } from './results-card-content';\nimport type { IDeps, IProps } from './models';\nimport styles from './styles/desktop.css';\n\nexport const ResultsCardContentDesktop = createWidget({\n Button,\n Grid,\n Text,\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"results-container\":\"atnWY\",\"resultsContainer\":\"atnWY\",\"external\":\"btnWY\",\"button-container\":\"ctnWY\",\"buttonContainer\":\"ctnWY\",\"results-header\":\"dtnWY\",\"resultsHeader\":\"dtnWY\",\"results-header-margin\":\"etnWY\",\"resultsHeaderMargin\":\"etnWY\"};","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { ResultsBlock as Component } from './results-block';\nimport type { IDeps, IProps } from './models';\nimport styles from './styles/desktop.css';\n\nexport const ResultsBlockDesktop = createWidget({\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"block\":\"a3ilC\",\"wrap\":\"b3ilC\"};","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\n\nimport { TitleDesktop as Title } from '../title';\n\nimport { ResultsGroup as Component } from './results-group';\nimport type { IDeps, IProps } from './models';\nimport styles from './styles/desktop.css';\n\nexport const ResultsGroupDesktop = createWidget({\n Title,\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"a3-lA\",\"group\":\"b3-lA\",\"full-width\":\"c3-lA\",\"fullWidth\":\"c3-lA\"};","import { createWidget } from '@alfa-bank/site-util-create-widget/create-widget';\nimport { separateThousands } from '@alfa-bank/site-helpers-transform/numbers/separate-thousands';\nimport { CalculatorLayoutDesktop as CalculatorLayout } from '@alfa-bank/site-calculator-layout/desktop';\nimport { SliderFieldDesktop as Slider } from '@alfa-bank/site-slider-field/desktop';\nimport { IncrementDecrementDesktop } from '@alfa-bank/site-increment-decrement/desktop';\nimport {\n SliderGroup,\n SymbolLabel,\n ResultsGroupDesktop as ResultsGroup,\n ResultsCardContentDesktop as ResultsCardContent,\n ResultsBlockDesktop as ResultsBlock,\n FillButtonDesktop as FillButton,\n} from '@alfa-bank/site-calculator-layout/components';\nimport { Caption } from '@alfa-bank/site-caption';\n\nimport type { IDepsDesktop, TAlfaleasingCalculatorDesktop } from '../models';\nimport { AlfaleasingCalculator as Component } from '../layout/desktop';\n\nimport styles from './desktop.css';\n\nexport const AlfaleasingCalculatorDesktop = createWidget<\n IDepsDesktop,\n TAlfaleasingCalculatorDesktop\n>({\n Caption,\n CalculatorLayout,\n Slider,\n SliderGroup,\n IncrementDecrement: IncrementDecrementDesktop,\n FillButton,\n ResultsCardContent,\n ResultsBlock,\n ResultsGroup,\n SymbolLabel,\n separateThousands,\n styles,\n})(Component);\n","// extracted by mini-css-extract-plugin\nexport default {\"background-$(backgroundColorBg)\":\"auwCI\",\"background-$(backgroundColor)\":\"buwCI\",\"selector\":\"cuwCI\",\"external\":\"duwCI\",\"sliderGroup\":\"euwCI\",\"fillButtonContainer\":\"fuwCI\",\"disclaimer\":\"guwCI\"};","import type { FC, ReactText } from 'react';\nimport React, { useCallback, useReducer } from 'react';\nimport cn from 'classnames';\nimport { debounce } from 'lodash';\nimport { sendEvent } from '@alfa-bank/site-helpers-common/browser/send-event';\n\nimport type {\n TAlfaleasingCalculatorDesktop,\n ICalculatorState,\n ICalculatorAction,\n TCalculatorActionTypes,\n} from '../models';\nimport { calcLease } from '../calculator-func';\nimport { FieldNames } from '../models/const';\n\nexport const AlfaleasingCalculator: FC = props => {\n const {\n CalculatorLayout,\n Caption,\n FillButton,\n IncrementDecrement,\n ResultsBlock,\n ResultsCardContent,\n ResultsGroup,\n Slider,\n SliderGroup,\n SymbolLabel,\n advertisingCampaign,\n annualRate = 12,\n buttonUrl,\n buyBack = 1200,\n fields,\n labels,\n separateThousands,\n styles,\n subsidyMax = 625000,\n subsidyPercent = 0,\n trackingSystem = 12000,\n vatRate = 20,\n } = props;\n const {\n initialFee: initialFeeField,\n initialFee: {\n max: initialFeePercentMax,\n min: initialFeePercentMin,\n value: initialFeePercent,\n },\n itemCost: itemCostField,\n itemCost: { value: defaultItemCost },\n leaseTerm: leaseTermField,\n leaseTerm: { max: leaseTermMax, min: leaseTermMin, value: defaultLeaseTerm },\n } = fields;\n const {\n acquisitionCosts: { hint: acquisitionCostsHint, text: acquisitionCostsTitle },\n buttonText,\n dealAmount: { hint: dealAmountHint, text: dealAmountTitle },\n monthlyPayment: monthlyPaymentTitle,\n taxSavings: { hint: taxSavingsHint, text: taxSavingsTitle },\n title: calculatorTitle,\n } = labels;\n\n function getInitialFeeLimit(modifier: string, itemCost: number) {\n const limit = modifier === 'min' ? initialFeePercentMin : initialFeePercentMax;\n\n return Math.trunc((itemCost / 100) * limit);\n }\n\n const initialState: ICalculatorState = {\n itemCost: defaultItemCost,\n leaseTerm: defaultLeaseTerm,\n initialFee: Math.trunc((defaultItemCost / 100) * initialFeePercent),\n };\n\n function reducer(state: ICalculatorState, action: ICalculatorAction) {\n const { type, value } = action;\n switch (type) {\n case 'itemCost': {\n let { initialFee } = state;\n const initialFeeMin = getInitialFeeLimit('min', value);\n const initialFeeMax = getInitialFeeLimit('max', value);\n\n if (initialFee > initialFeeMax) {\n initialFee = initialFeeMax;\n }\n if (initialFee < initialFeeMin) {\n initialFee = initialFeeMin;\n }\n\n return {\n ...state,\n itemCost: value,\n initialFee,\n };\n }\n case 'leaseTerm':\n return { ...state, leaseTerm: value };\n case 'initialFee':\n return { ...state, initialFee: value };\n default:\n throw new Error('Не верное имя поля');\n }\n }\n const [state, dispatch] = useReducer(reducer, initialState);\n const { acquisitionCosts, leaseAmount, monthlyPayment, taxSavings } = calcLease({\n ...state,\n advertisingCampaign,\n subsidyPercent,\n buyBack,\n annualRate,\n trackingSystem,\n vatRate,\n subsidyMax,\n });\n const { initialFee, itemCost, leaseTerm } = state;\n\n // Ограничения для кнопок IncrementDecrement'а\n const disabledMinimum = leaseTerm >= leaseTermMax;\n const disabledMaximum = leaseTerm <= leaseTermMin;\n\n const doSendEventOnLeaseTermChange = (sign: string) => {\n sendEvent({\n event: 'site_calculatorButton_click',\n page: window.document.title,\n url: window.location.href,\n name: `Ежемесячный платёж (${sign})`,\n content: monthlyPayment,\n });\n };\n\n function onLeaseTermChange(type: string, step: number) {\n const { leaseTerm: currentTerm } = state;\n\n // Здесь обратная зависимость: увеличивая ежемесячный платёж уменьшается срок кредитования\n const value = type === 'inc' ? currentTerm - step : currentTerm + step;\n\n dispatch({ type: 'leaseTerm', value });\n doSendEventOnLeaseTermChange(type === 'inc' ? '+' : '-');\n }\n\n function onIncrease({ step }: { step: number }) {\n onLeaseTermChange('inc', step);\n }\n\n function onDecrease({ step }: { step: number }) {\n onLeaseTermChange('dec', step);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const doSendEventOnBlur = useCallback(\n debounce((name: string | undefined, value: ReactText) => {\n sendEvent({\n event: 'site_calculatorRange',\n page: window.document.title,\n url: window.location.href,\n name: FieldNames[name as TCalculatorActionTypes],\n content: +value,\n });\n }, 300),\n []\n );\n\n const handleSliderChange = ({ name, value }: { name?: string; value: ReactText }) => {\n doSendEventOnBlur(name, value);\n dispatch({ type: name, value: Number(value) });\n };\n\n const renderSliders = () => (\n \n \n \n \n \n );\n const renderResultCard = () => (\n \n \n onDecrease(leaseTermField)}\n onIncrease={() => onIncrease(leaseTermField)}\n size={3}\n />\n \n \n \n {separateThousands(leaseAmount)}\n \n \n {separateThousands(taxSavings)}\n \n \n {separateThousands(acquisitionCosts)}\n \n \n {\n sendEvent({\n event: 'site_ctaButton_click',\n page: window.document.title,\n url: window.location.href,\n place: 'calculator',\n name: buttonText,\n });\n }}\n url={buttonUrl}\n />\n \n );\n\n const renderDisclaimer = () => (\n \n {\n 'Расчёты носят ознакомительный характер и не являются офертой. \\nОбсудим комфортные для вас условия после отправки заявки'\n }\n \n );\n\n return (\n {}}\n renderDisclaimer={renderDisclaimer}\n renderResultCard={renderResultCard}\n renderSliders={renderSliders}\n resultCardPad=\"s\"\n resultCardWidth=\"xl\"\n />\n );\n};\n","import type { ReactElement, ReactNode } from 'react';\nimport React, { useMemo } from 'react';\n\nimport type { INamedContainerProps } from '../models';\n\nexport interface INamedContainers {\n [key: string]: ReactNode;\n}\n\ninterface INamedContainersWithChildren extends INamedContainers {\n children: ReactNode[];\n}\n\nexport function isNamedContainer(node: ReactNode): node is ReactElement {\n return Boolean(\n typeof node === 'object' &&\n node !== null &&\n (node as ReactElement).props.is === 'NamedContainer' &&\n (node as ReactElement).props.name\n );\n}\n\n/**\n * Функция собирает из children слоты и оставляет отфильтрованный список детей\n * @param children\n */\nexport function getNamedContainersWithChildren(children: ReactNode) {\n return React.Children.toArray(children).reduce(\n (nodes: INamedContainersWithChildren, node) => {\n if (!isNamedContainer(node)) {\n nodes.children.push(node);\n } else if (node.props.name !== 'children') {\n return {\n ...nodes,\n [node.props.name]: node.props.children,\n };\n }\n\n return nodes;\n },\n { children: [] }\n );\n}\n\n/**\n * Функция собирает из children только слоты\n * @param children\n */\nexport function getNamedContainers(children: ReactNode) {\n return React.Children.toArray(children).reduce((nodes: INamedContainers, node) => {\n if (isNamedContainer(node)) {\n return {\n ...nodes,\n [node.props.name]: node.props.children,\n };\n }\n\n return nodes;\n }, {});\n}\n\nexport function useNamedContainersWithChildren(children: ReactNode): INamedContainersWithChildren {\n return useMemo(() => getNamedContainersWithChildren(children), [children]);\n}\n\nexport function useNamedContainers(children: ReactNode) {\n return useMemo(() => getNamedContainers(children), [children]);\n}\n","import { ComponentType } from 'react';\n\nimport { ICreateWidget } from './models';\nimport { hoist, createWrapper } from './helpers';\n\n/**\n * Функция hoc, для создания виджета, принимает объект зависимостей\n * и возвращает компонент с внедренными зависимостями\n */\nexport const createWidget: ICreateWidget =\n (dependencies?: T) =>\n (Widget: ComponentType) =>\n hoist(createWrapper(Widget, dependencies), Widget);\n","// extracted by mini-css-extract-plugin\nexport default {\"borderRadius0\":\"aG2mw\",\"borderRadius4\":\"bG2mw\",\"borderRadius8\":\"cG2mw\",\"borderRadius12\":\"dG2mw\",\"marginTop0\":\"eG2mw\",\"marginTop2\":\"fG2mw\",\"marginTop4\":\"gG2mw\",\"marginTop8\":\"hG2mw\",\"marginTop12\":\"iG2mw\",\"marginTop16\":\"jG2mw\",\"marginTop20\":\"kG2mw\",\"marginTop24\":\"lG2mw\",\"marginTop28\":\"mG2mw\",\"marginTop32\":\"nG2mw\",\"marginTop36\":\"oG2mw\",\"marginTop40\":\"pG2mw\",\"marginTop44\":\"qG2mw\",\"marginTop48\":\"rG2mw\",\"marginTop52\":\"sG2mw\",\"marginTop56\":\"tG2mw\",\"marginTop60\":\"uG2mw\",\"marginTop64\":\"vG2mw\",\"marginTop68\":\"wG2mw\",\"marginTop72\":\"xG2mw\",\"marginRight0\":\"yG2mw\",\"marginRight2\":\"zG2mw\",\"marginRight4\":\"AG2mw\",\"marginRight8\":\"BG2mw\",\"marginRight12\":\"CG2mw\",\"marginRight16\":\"DG2mw\",\"marginRight20\":\"EG2mw\",\"marginRight24\":\"FG2mw\",\"marginRight28\":\"GG2mw\",\"marginRight32\":\"HG2mw\",\"marginRight36\":\"IG2mw\",\"marginRight40\":\"JG2mw\",\"marginRight44\":\"KG2mw\",\"marginRight48\":\"LG2mw\",\"marginRight52\":\"MG2mw\",\"marginRight56\":\"NG2mw\",\"marginRight60\":\"OG2mw\",\"marginRight64\":\"PG2mw\",\"marginRight68\":\"QG2mw\",\"marginRight72\":\"RG2mw\",\"marginBottom0\":\"SG2mw\",\"marginBottom2\":\"TG2mw\",\"marginBottom4\":\"UG2mw\",\"marginBottom8\":\"VG2mw\",\"marginBottom12\":\"WG2mw\",\"marginBottom16\":\"XG2mw\",\"marginBottom20\":\"YG2mw\",\"marginBottom24\":\"ZG2mw\",\"marginBottom28\":\"__G2mw\",\"marginBottom32\":\"_0G2mw\",\"marginBottom36\":\"_1G2mw\",\"marginBottom40\":\"_2G2mw\",\"marginBottom44\":\"_3G2mw\",\"marginBottom48\":\"_4G2mw\",\"marginBottom52\":\"_5G2mw\",\"marginBottom56\":\"_6G2mw\",\"marginBottom60\":\"_7G2mw\",\"marginBottom64\":\"_8G2mw\",\"marginBottom68\":\"_9G2mw\",\"marginBottom72\":\"_-G2mw\",\"marginLeft0\":\"aaG2mw\",\"marginLeft2\":\"abG2mw\",\"marginLeft4\":\"acG2mw\",\"marginLeft8\":\"adG2mw\",\"marginLeft12\":\"aeG2mw\",\"marginLeft16\":\"afG2mw\",\"marginLeft20\":\"agG2mw\",\"marginLeft24\":\"ahG2mw\",\"marginLeft28\":\"aiG2mw\",\"marginLeft32\":\"ajG2mw\",\"marginLeft36\":\"akG2mw\",\"marginLeft40\":\"alG2mw\",\"marginLeft44\":\"amG2mw\",\"marginLeft48\":\"anG2mw\",\"marginLeft52\":\"aoG2mw\",\"marginLeft56\":\"apG2mw\",\"marginLeft60\":\"aqG2mw\",\"marginLeft64\":\"arG2mw\",\"marginLeft68\":\"asG2mw\",\"marginLeft72\":\"atG2mw\",\"paddingTop0\":\"auG2mw\",\"paddingTop2\":\"avG2mw\",\"paddingTop4\":\"awG2mw\",\"paddingTop8\":\"axG2mw\",\"paddingTop12\":\"ayG2mw\",\"paddingTop16\":\"azG2mw\",\"paddingTop20\":\"aAG2mw\",\"paddingTop24\":\"aBG2mw\",\"paddingTop28\":\"aCG2mw\",\"paddingTop32\":\"aDG2mw\",\"paddingTop36\":\"aEG2mw\",\"paddingTop40\":\"aFG2mw\",\"paddingTop44\":\"aGG2mw\",\"paddingTop48\":\"aHG2mw\",\"paddingTop52\":\"aIG2mw\",\"paddingTop56\":\"aJG2mw\",\"paddingTop60\":\"aKG2mw\",\"paddingTop64\":\"aLG2mw\",\"paddingTop68\":\"aMG2mw\",\"paddingTop72\":\"aNG2mw\",\"paddingRight0\":\"aOG2mw\",\"paddingRight2\":\"aPG2mw\",\"paddingRight4\":\"aQG2mw\",\"paddingRight8\":\"aRG2mw\",\"paddingRight12\":\"aSG2mw\",\"paddingRight16\":\"aTG2mw\",\"paddingRight20\":\"aUG2mw\",\"paddingRight24\":\"aVG2mw\",\"paddingRight28\":\"aWG2mw\",\"paddingRight32\":\"aXG2mw\",\"paddingRight36\":\"aYG2mw\",\"paddingRight40\":\"aZG2mw\",\"paddingRight44\":\"a_G2mw\",\"paddingRight48\":\"a0G2mw\",\"paddingRight52\":\"a1G2mw\",\"paddingRight56\":\"a2G2mw\",\"paddingRight60\":\"a3G2mw\",\"paddingRight64\":\"a4G2mw\",\"paddingRight68\":\"a5G2mw\",\"paddingRight72\":\"a6G2mw\",\"paddingBottom0\":\"a7G2mw\",\"paddingBottom2\":\"a8G2mw\",\"paddingBottom4\":\"a9G2mw\",\"paddingBottom8\":\"a-G2mw\",\"paddingBottom12\":\"baG2mw\",\"paddingBottom16\":\"bbG2mw\",\"paddingBottom20\":\"bcG2mw\",\"paddingBottom24\":\"bdG2mw\",\"paddingBottom28\":\"beG2mw\",\"paddingBottom32\":\"bfG2mw\",\"paddingBottom36\":\"bgG2mw\",\"paddingBottom40\":\"bhG2mw\",\"paddingBottom44\":\"biG2mw\",\"paddingBottom48\":\"bjG2mw\",\"paddingBottom52\":\"bkG2mw\",\"paddingBottom56\":\"blG2mw\",\"paddingBottom60\":\"bmG2mw\",\"paddingBottom64\":\"bnG2mw\",\"paddingBottom68\":\"boG2mw\",\"paddingBottom72\":\"bpG2mw\",\"paddingLeft0\":\"bqG2mw\",\"paddingLeft2\":\"brG2mw\",\"paddingLeft4\":\"bsG2mw\",\"paddingLeft8\":\"btG2mw\",\"paddingLeft12\":\"buG2mw\",\"paddingLeft16\":\"bvG2mw\",\"paddingLeft20\":\"bwG2mw\",\"paddingLeft24\":\"bxG2mw\",\"paddingLeft28\":\"byG2mw\",\"paddingLeft32\":\"bzG2mw\",\"paddingLeft36\":\"bAG2mw\",\"paddingLeft40\":\"bBG2mw\",\"paddingLeft44\":\"bCG2mw\",\"paddingLeft48\":\"bDG2mw\",\"paddingLeft52\":\"bEG2mw\",\"paddingLeft56\":\"bFG2mw\",\"paddingLeft60\":\"bGG2mw\",\"paddingLeft64\":\"bHG2mw\",\"paddingLeft68\":\"bIG2mw\",\"paddingLeft72\":\"bJG2mw\"};","import isEmpty from 'lodash/isEmpty';\n\nimport styles from './styles/common.css';\nimport { IStyler } from './models';\n\ntype TStyle = keyof typeof styles;\n\nconst RULES: Array<[keyof IStyler, keyof IStyler]> = [\n ['borderRadius', 'borderRadius'],\n ['marginTop', 'margin'],\n ['marginRight', 'margin'],\n ['marginBottom', 'margin'],\n ['marginLeft', 'margin'],\n ['paddingTop', 'padding'],\n ['paddingRight', 'padding'],\n ['paddingBottom', 'padding'],\n ['paddingLeft', 'padding'],\n];\n\nexport const generateStyle = (\n styler: IStyler = {},\n injectedClassName?: string\n): { className: string } | undefined => {\n const classNames: string[] = [];\n\n if (isEmpty(styler)) {\n return injectedClassName ? { className: injectedClassName } : undefined;\n }\n\n for (const [rule, fallback] of RULES) {\n if (styler[rule] !== undefined) {\n classNames.push(styles[`${rule}${styler[rule]}` as TStyle]);\n } else if (styler[fallback] !== undefined) {\n classNames.push(styles[`${rule}${styler[fallback]}` as TStyle]);\n }\n }\n\n if (injectedClassName) {\n classNames.push(injectedClassName);\n }\n\n if (classNames.length) return { className: classNames.join(' ') };\n\n return undefined;\n};\n","import React, { ComponentType } from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\n\nimport { generateStyle } from './generate-style';\nimport { TWrapper } from './models';\n\n/**\n * Вернуть объект с названием виджета\n */\nexport const getDisplayName = (TargetWidget: ComponentType) => ({\n displayName: TargetWidget.displayName || TargetWidget.name || 'UnnamedWidget',\n});\n\n/**\n * Создать обертку, добавляющую стайлер и зависимости\n */\nexport const createWrapper =\n (Widget: ComponentType, dependencies?: T): ComponentType> =>\n ({ className, styler, ...props }) =>\n ;\n\n/**\n * Добавить изначальные свойства виджета, displayName и любые дополнительные\n */\nexport const hoist = (\n Wrapper: ComponentType,\n Widget: ComponentType,\n ...rest: any[]\n): ComponentType =>\n Object.assign(hoistStatics(Wrapper, Widget), getDisplayName(Widget), ...rest);\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n"],"names":["CalculatorLayoutDesktop","createWidget","styles","Component","correctedStep","max","min","step","SliderDesktop","name","onChange","onMouseUp","progressBackground","value","className","inputProps","correctedInput","progressProps","correctedProgress","progressClass","cn","progress","greyBackground","correctedValue","slider","rangeWrapper","range","type","moneySuffix","rub","usd","eur","gbp","cny","chf","hkd","try","jpy","config","points","ONE_MILLION","ONE_MILLION_LABEL","ONE_THOUSAND","ONE_THOUSAND_LABEL","suffix","money","moneyInteger","moneyLong","symbol","year","form1","form2","form3","halfYear","month","label","quantity","percent","suffixType","TYPE_YEAR","TYPE_HALF_YEAR","TYPE_MONEY","TYPE_MONEY_LONG","TYPE_MONEY_INTEGER","TYPE_MONTH","TYPE_PERCENT","TYPE_QUANTITY","SliderField","props","isActive","onChangeInput","bind","onBlurInput","onFocusInput","onChangeSlider","this","event","onBlur","target","getValidRangeValue","onInputChange","getValidInputValue","onSliderChange","number","parseInt","Number","isNaN","isInteger","isFinite","parseFloat","modifiedValue","trim","replace","test","getCorrectFormValue","Math","abs","numberValue","roundedValue","floor","upperLimitValue","middleLimitValue","getValidRoundedValue","correctSuffix","configs","currency","disabled","getCorrectSuffix","newValue","correctInputValue","render","MaskInput","Slider","Steps","caption","children","dataTestId","forwardedRef","id","info","showSteps","size","stepPrefixes","rightAddon","getNamedContainers","sliderField","sliderWrapper","autoComplete","classNames","input","external","mask","sliderFieldMask","maskSuffix","onFocus","placeholder","addonsWrapper","stepLabels","stepText","defaultProps","stepsClass","length","oneLabels","stepLabels4","stepLabels5","stepLabelForMoney","key","point","hasMillion","unit","text","res","toFixed","shortValue","stepLabelForMoneyLong","rawValue","options","maximumFractionDigits","toString","toLocaleString","separateThousands","createSteps","stepLabelForYear","stepLabelForHalfYear","rest","stepLabelForMonth","stepLabelForQuantity","stepLabelForPercent","SliderFieldDesktop","custom","marks","createStep","middleValue","maxValue","minStep","round","middleStep","maxStep","reduce","steps","index","isShown","push","map","generateSteps","stepTextCustom","stepTextCustomFirst","stepTextCustomLast","style","left","FillButtonDesktop","Button","Link","ResultsCardContentDesktop","Grid","Text","ResultsBlockDesktop","ResultsGroupDesktop","Title","AlfaleasingCalculatorDesktop","Caption","CalculatorLayout","SliderGroup","IncrementDecrement","IncrementDecrementDesktop","FillButton","ResultsCardContent","ResultsBlock","ResultsGroup","SymbolLabel","advertisingCampaign","annualRate","buttonUrl","buyBack","fields","labels","subsidyMax","subsidyPercent","trackingSystem","vatRate","initialFeeField","initialFee","initialFeePercentMax","initialFeePercentMin","initialFeePercent","itemCostField","itemCost","defaultItemCost","leaseTermField","leaseTerm","leaseTermMax","leaseTermMin","defaultLeaseTerm","acquisitionCosts","acquisitionCostsHint","hint","acquisitionCostsTitle","buttonText","dealAmount","dealAmountHint","dealAmountTitle","monthlyPaymentTitle","monthlyPayment","taxSavings","taxSavingsHint","taxSavingsTitle","calculatorTitle","title","getInitialFeeLimit","modifier","limit","trunc","initialState","useReducer","state","action","initialFeeMin","initialFeeMax","Error","dispatch","calcLease","leaseAmount","disabledMinimum","disabledMaximum","onLeaseTermChange","sign","currentTerm","sendEvent","page","window","document","url","location","href","content","doSendEventOnBlur","useCallback","FieldNames","handleSliderChange","indentSize","renderCheckboxes","renderDisclaimer","disclaimer","theme","renderResultCard","showButton","fullWidth","initialValue","isMaximum","isMinimum","onDecrease","onIncrease","wrap","container","fillButtonContainer","onClick","place","renderSliders","sliderGroup","resultCardPad","resultCardWidth","isNamedContainer","node","Boolean","is","getNamedContainersWithChildren","React","nodes","useNamedContainersWithChildren","useMemo","useNamedContainers","dependencies","Widget","hoist","createWrapper","RULES","getDisplayName","TargetWidget","displayName","styler","injectedClassName","isEmpty","undefined","rule","fallback","join","generateStyle","Wrapper","Object","assign","hoistStatics","hasOwn","hasOwnProperty","classes","i","arguments","arg","argType","Array","isArray","inner","apply","prototype","call","module","exports","default","debounce","func","wait","immediate","timeout","args","context","timestamp","result","later","last","Date","now","setTimeout","debounced","callNow","clear","clearTimeout","flush","canUseDOM","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","array","iteratee","Symbol","arrayMap","isSymbol","symbolProto","symbolToString","baseToString","baseGetTag","isObjectLike"],"sourceRoot":""}