{"version":3,"sources":["webpack:///./src/scripts/components/decimal-seperator.js","webpack:///./src/scripts/components/norm-messages.js","webpack:///./src/scripts/components/parseDecimalNumber.js","webpack:///./src/scripts/components/readmore.js","webpack:///./src/scripts/index.js","webpack:///./src/scripts/loanCalculator/calculatedValues.js","webpack:///./src/scripts/loanCalculator/cookies.js","webpack:///./src/scripts/loanCalculator/currencyConverter.js","webpack:///./src/scripts/loanCalculator/loadData.js","webpack:///./src/scripts/loanCalculator/rangeslider.js","webpack:///./src/scripts/loanCalculator/setPayment.js","webpack:///./src/scripts/loanCalculator/updateSliderPos.js","webpack:///./src/scripts/vendor/rangeslider-pure/range-slider.js","webpack:///./src/scripts/vendor/rangeslider-pure/utils/dom.js","webpack:///./src/scripts/vendor/rangeslider-pure/utils/functions.js","webpack:///./src/styles/styles.scss","webpack:///./src/styles/tailwind/tailwind_utils.scss"],"names":["form","document","submitBtn","numberInputs","i","thisValue","formattedNumber","parseDecimalNumber","localeNumber","useGrouping","numberValue","normMessages","bankData","JSON","sessionStorage","axios","response","elm","specialMessage","normMessageText","normData","normMin","parseInt","normMax","parent","input","regNumber","val","warningIcon","checkmarkIcon","isNaN","regValue","bankdataReg","bankName","bankInfo","bank","patterns","options","module","enforceGroupSize","inOptions","name","message","thousands","decimal","Array","patternIndex","pattern","groupMinSize","result","value","integerPart","fractionPart","number","parseFloat","newOptions","readmore","init","openButton","r","closeButton","closeReadmore","closeContent","setClosedClass","openReadmore","openContent","content","setClasses","element","setOpenClass","classes","classList","func","objectFitImages","objectFitVideos","cAmount","cMonth","cMonthlyPay","cDebitRent","cCreditTotal","cAOP","cTotalCreditCost","cCreditCost","cInsurancePrice","cSetupFeeLoan","getCookie","oCrumbles","oPair","sKey","decodeURIComponent","sValue","setCookie","sCookie","encodeURIComponent","expires","removeCookie","currencyCode","textvalue","amount","currency","loaddata","siteID","siteLegacy","loanPageID","siteLang","langOption","insuranceChecbox","loaddataString","legacyID","console","calcInsurance","e","t","j","setCalculatedValues","calculator","slider","inputAmount","inputMonth","monthName","currencyName","sliderAmountCounterMin","sliderAmountCounterMax","sliderAmount","sliderAmountMin","sliderAmountMax","sliderAmountCurrent","sliderMonth","sliderMonthMin","sliderMonthMax","sliderMonthCurrent","interestFreeMonths","cookieAmount","loadData","amountMin","amountMinInner","amountMax","amountMaxInner","displayAmount","sliderAmountMinVal","sliderAmountMaxVal","rangeSlider","polyfill","onInit","onSlideStart","onSlide","sliderAmountCounter","sliderMonthCounter","position","onSlideEnd","updateSliderPosition","cookiePath","path","cookieMonth","inner","cHiddenMonthsPayment","sliderInterestRee","cookieValAmount","cookieValMonth","cookieValInterestDays","maxAmount","maxMonth","monthlySteps","amountSteps","max","step","newLineAndTabRegexp","MAX_SET_BY_DEFAULT","HANDLE_RESIZE_DELAY","HANDLE_RESIZE_DEBOUNCE","pluginName","inputrange","dom","defaults","root","rangeClass","disabledClass","fillClass","bufferClass","handleClass","startEvent","moveEvent","endEvent","min","buffer","stick","borderRadius","vertical","verticalSlidingFixRegistered","RangeSlider","minSetByDefault","maxSetByDefault","stepSetByDefault","stickAttribute","stickValues","directionClass","elementTitle","window","obj","triggerEvents","plugin","ev","data","el","isEventOnSlider","pos","triggerEvent","sizeProperty","origin","identifier","passive","boundingClientRect","posX","rangeX","handleX","stickTo","stickRadius","restFromValue","Math","isPercent","isFinite","bufferSize","paddingSize","bufferSizeWithPadding","node","rangeSize","pageOffset","pagePositionProperty","percentage","Number","force","createInstance","event","EVENT_LISTENER_LIST","detectIE","ua","msie","trident","rv","edge","ieVersion","eventCaptureParams","isHidden","getHiddenParentNodes","parents","getDimension","hiddenParentNodes","hiddenParentNodesLength","hiddenParentNodesStyle","dimension","toggleOpenProperty","display","height","overflow","visibility","setCss","cssObj","hasClass","elem","addClass","removeClass","newClass","forEachAncestors","callback","insertAfter","referenceNode","addEventListeners","events","removeEventListeners","index","removeAllListenersFromEl","listener","instance","eventName","supportsRange","uuid","s4","delay","args","setTimeout","fn","debounce","debounceDuration","clearTimeout","isString","isArray","Object","isNumberLike","getFirsNumberLike","len","isObject","simpleExtend","opt","defaultOpt","between"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAEA,IAAIA,IAAI,GAAGC,QAAQ,CAARA,cAAX,MAAWA,CAAX;;AAEA,UAAU;AACN,MAAIC,SAAS,GAAGF,IAAI,CAAJA,cAAhB,QAAgBA,CAAhB;AACA,MAAIG,YAAY,GAAGH,IAAI,CAAJA,iBAAnB,kCAAmBA,CAAnB;;AAEA,MAAIG,YAAY,CAAZA,SAAJ,GAA6B;AACzB,SAAK,IAAIC,CAAC,GAAV,GAAgBA,CAAC,GAAGD,YAAY,CAAhC,QAAyCC,CAAzC,IAA8C;AAE1CD,kBAAY,CAAZA,CAAY,CAAZA,2BAA0C,YAAY;AAClD,YAAIE,SAAS,GAAG,wBAAhB,EAAgB,CAAhB;AACA,YAAIC,eAAe,GAAGC,0DAAkB,YAAxC,IAAwC,CAAxC;AAEA,YAAIC,YAAY,GAAG,eAAe,CAAf,wBAAwC;AAAEC,qBAAW,EAAE;AAAf,SAAxC,CAAnB;;AAEA,YAAID,YAAY,KAAhB,OAA4B;AACxB;AACH;AARLL;AAUH;;AAEDD,aAAS,CAATA,0BAAoC,aAAa;AAC7C,WAAK,IAAIE,EAAC,GAAV,GAAgBA,EAAC,GAAGD,YAAY,CAAhC,QAAyCC,EAAzC,IAA8C;AAC1C,YAAIM,WAAW,GAAGP,YAAY,CAAZA,EAAY,CAAZA,CAAlB;AACA,YAAIG,eAAe,GAAGI,WAAW,CAAXA,gBAAtB,EAAsBA,CAAtB;AAEAP,oBAAY,CAAZA,EAAY,CAAZA;AACH;AANLD;AASH;AAEJ,C;;;;;;;;;;;;AClCD;AAAA;AAAA;AAAA;AAEA,IAAIF,IAAI,GAAGC,QAAQ,CAARA,cAAX,MAAWA,CAAX;;AAEA,UAAU;AAAA;AACN,QAAIU,YAAY,GAAGX,IAAI,CAAJA,iBADb,eACaA,CAAnB,CADM,CAEN;;AACA,QAAIY,QAAQ,GAAGC,IAAI,CAAJA,MAAWC,cAAc,CAAdA,QAA1B,UAA0BA,CAAXD,CAAf;AAEA;AACA;AACA;;AAEA,QAAI,CAAJ,UAAe;AACXE,kDAAK,CAALA,kCAAwC,oBAAc;AAClDH,gBAAQ,GAAGI,QAAQ,CAAnBJ;AACAE,sBAAc,CAAdA,oBAAmCD,IAAI,CAAJA,UAAeG,QAAQ,CAA1DF,IAAmCD,CAAnCC;AAFJC;AAIH;;AAED,sBAAkB;AAAA;AAEV,YAAIE,GAAG,GAAGN,YAAY,CAAtB,CAAsB,CAAtB;AAAA,YACIO,cAAc,GAAGD,GAAG,CAAHA,iBADrB,iBACqBA,CADrB;AAAA,YAEIE,eAAe,GAAGF,GAAG,CAAHA,cAFtB,oBAEsBA,CAFtB;AAAA,YAGIG,QAAQ,GAAGH,GAAG,CAHlB;AAAA,YAIII,OAAO,GAAGC,QAAQ,CAACF,QAAQ,CAJ/B,OAIsB,CAJtB;AAAA,YAKIG,OAAO,GAAGD,QAAQ,CAACF,QAAQ,CAL/B,OAKsB,CALtB;AAAA,YAMII,MAAM,GAAGP,GAAG,CAAHA,QANb,cAMaA,CANb;AAAA,YAOIQ,KAAK,GAAGD,MAAM,CAANA,cAPZ,OAOYA,CAPZ;AAAA,YAQIE,SAAS,GAAG1B,IAAI,CAAJA,cARhB,YAQgBA,CARhB;AAUAyB,aAAK,CAALA,yBAA+B,YAAY;AACvC,cAAIE,GAAG,GAAGL,QAAQ,CAAC,yCAAnB,EAAmB,CAAD,CAAlB;AACA,cAAIE,MAAM,GAAGP,GAAG,CAAHA,QAAb,cAAaA,CAAb;AACA,cAAIW,WAAW,GAAGJ,MAAM,CAANA,cAAlB,qBAAkBA,CAAlB;AACA,cAAIK,aAAa,GAAGL,MAAM,CAANA,cAApB,uBAAoBA,CAApB;;AAEA,cAAI,CAACM,KAAK,CAAV,GAAU,CAAV,EAAiB;AACb,gBAAI,YAAJ,aAA6B;AACzB,mBAAK,IAAI1B,EAAC,GAAV,GAAgBA,EAAC,GAAGQ,QAAQ,CAARA,OAApB,QAA4CR,EAA5C,IAAiD;AAC7C,oBAAI2B,SAAQ,GAAG,KAAf;AACA,oBAAIC,YAAW,GAAGpB,QAAQ,CAARA,WAAlB;AACA,oBAAIqB,QAAQ,QAAZ;;AAEA,oBAAIC,SAAQ,GAAGlC,IAAI,CAAJA,cAAf,YAAeA,CAAf;;AACA,oBAAImC,IAAI,GAAGnC,IAAI,CAAJA,cAAX,OAAWA,CAAX;;AAEA,oBAAI+B,SAAQ,KAAZ,cAA8B;AAC1BZ,iCAAe,CAAfA;AACAc,0BAAQ,GAAGrB,QAAQ,CAARA,WAAXqB;AACAC,2BAAQ,CAARA;AACAC,sBAAI,CAAJA;AACA;AALJ,uBAMO;AACHD,2BAAQ,CAARA;AACH;;AAED,oBAAIH,SAAQ,KAAZ,cAA8B;AAC1BZ,iCAAe,CAAfA;AACH;AACJ;AACJ;;AAED,gBAAIQ,GAAG,IAAHA,WAAkBA,GAAG,IAAzB,SAAsC;AAClC;AACAC,yBAAW,CAAXA;;AACA,kBAAI,wBAAJ,OAAI,CAAJ,EAAsC;AAClCC,6BAAa,CAAbA;AACH;;AACDZ,iBAAG,CAAHA;AACAE,6BAAe,CAAfA;AAPJ,mBAQO;AACH;AACAS,yBAAW,CAAXA;AACAC,2BAAa,CAAbA;AACAZ,iBAAG,CAAHA;AACAE,6BAAe,CAAfA;;AAGA,mBAAK,IAAIf,GAAC,GAAV,GAAgBA,GAAC,GAAGc,cAAc,CAAlC,QAA2Cd,GAA3C,IAAgD;AAC5Cc,8BAAc,CAAdA,GAAc,CAAdA;AACH;AACJ;AACJ;AApDLO;AAZU;;AACd,WAAK,IAAIrB,CAAC,GAAV,GAAgBA,CAAC,GAAGO,YAAY,CAAhC,QAAyCP,CAAzC,IAA8C;AAAA,cAArCA,CAAqC;AAkE7C;AACJ;AApFK;AAqFT,C;;;;;;;;;;;ACzFD,CAAC,YAAY;AACT;AAEAgC,UAAQ,GAARA;AAEAC,SAAO,GAAPA;;AAEAC,QAAM,CAANA,UAAiB/B,kBAAkB,GAAG,gEAA8C;AAChF;;AACA,QAAIgC,gBAAgB,IAApB,MAA8B;AAC1BA,sBAAgB,GAAhBA;AACH;;AACD,QAAI,qBAAJ,UAAmC;AAC/B,UAAIC,SAAS,CAATA,WAAJ,GAA4B;AACxB,cAAM;AACFC,cAAI,EADF;AAEFC,iBAAO,EAAE;AAFP,SAAN;AAIH;;AACDC,eAAS,GAAGH,SAAS,CAArBG,CAAqB,CAArBA,EAA0BC,OAAO,GAAGJ,SAAS,CAA7CG,CAA6C,CAA7CA;AAPJ,WAQO,IAAIE,KAAK,CAALA,QAAJ,SAAIA,CAAJ,EAA8B;AACjC,UAAIL,SAAS,CAATA,WAAJ,GAA4B;AACxB,cAAM;AACFC,cAAI,EADF;AAEFC,iBAAO,EAAE;AAFP,SAAN;AAIH;;AACDC,eAAS,GAAGH,SAAS,CAArBG,CAAqB,CAArBA,EAA0BC,OAAO,GAAGJ,SAAS,CAA7CG,CAA6C,CAA7CA;AAPG,WAQA;AACHA,eAAS,GAAG,CAACH,SAAS,IAATA,OAAoBA,SAAS,CAA7BA,YAA0C,KAA3C,OAAuDA,SAAS,IAATA,OAAoBA,SAAS,CAA7BA,QAAsC,KAA7F,MAAwGH,OAAO,CAA3HM;AACAC,aAAO,GAAG,CAACJ,SAAS,IAATA,OAAoBA,SAAS,CAA7BA,UAAwC,KAAzC,MAAoDH,OAAO,CAArEO;AACH;;AACDE,gBAAY,GAAG,2BAAfA;AACAC,WAAO,GAAGX,QAAQ,CAAlBW,YAAkB,CAAlBA;;AACA,QAAIA,OAAO,IAAX,MAAqB;AACjBC,kBAAY,GAAGT,gBAAgB,OAA/BS;AACAD,aAAO,GAAGX,QAAQ,CAARA,YAAQ,CAARA,GAAyB,WAAW,yGAA9CW,eAAmC,CAAnCA;AACH;;AACDE,UAAM,GAAGC,KAAK,CAALA,MAATD,OAASC,CAATD;;AACA,QAAI,EAAGA,MAAM,IAAP,IAACA,IAAmBA,MAAM,CAANA,WAA1B,CAAI,CAAJ,EAAgD;AAC5C;AACH;;AACDE,eAAW,GAAGF,MAAM,CAANA,CAAM,CAANA,SAAkB,WAAW,OAAX,WAAlBA,GAAkB,CAAlBA,EAAdE,EAAcF,CAAdE;AACAC,gBAAY,GAAGH,MAAM,CAArBG,CAAqB,CAArBA;AACAC,UAAM,GAAGC,UAAU,CAACH,WAAW,GAAXA,MAApBE,YAAmB,CAAnBA;AACA;AAtCJf;;AAyCAA,QAAM,CAANA,qBAA4B,sBAAsB;AAC9C;;AACA,4BAAwB;AACpBY,WAAK,GAAGK,UAAU,CAAlBL,GAAkB,CAAlBA;AACAb,aAAO,CAAPA,GAAO,CAAPA;AACH;AALLC;;AAQAA,QAAM,CAANA,uBAA8B,YAAY;AACtCD,WAAO,GAAG;AACNM,eAAS,EADH;AAENC,aAAO,EAAE;AAFH,KAAVP;AADJC;;AAOAA,QAAM,CAANA,sBAA6B,qCAAqC;AAC9D,QAAIC,gBAAgB,IAApB,MAA8B;AAC1BA,sBAAgB,GAAhBA;AACH;;AACD,WAAO,iBAAiB;AACpB,aAAOhC,kBAAkB,iBAAzB,gBAAyB,CAAzB;AADJ;AAJJ+B;;AASAA,QAAM,CAANA;AAxEJ,c;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,IAAMkB,QAAQ,GAAG;AACbC,MAAI,EAAE,gBAAY;AAAA;;AAEd,wCAAqBxD,QAAQ,CAARA,iBAArB,iCAAqBA,CAArB;AAEA,uBAAmB,aAAK;AACpB,UAAIyD,UAAU,GAAGC,CAAC,CAADA,cAAjB,wBAAiBA,CAAjB;AACA,UAAIC,WAAW,GAAGD,CAAC,CAADA,cAFE,yBAEFA,CAAlB,CAFoB,CAIpB;;AACA,sBAAgB;AACZD,kBAAU,CAAVA,0BAAqC;AAAA,iBAAM,KAAI,CAAJ,aAAN,CAAM,CAAN;AAArCA;AANgB,QAQpB;AACA;AACA;;;AACAC,OAAC,CAADA;AAXJ;AALS;AAqBbE,eAAa,EAAE,iCAAoB;AAC/B,QAAI,CAAJ,UAAe;AACfC,gBAAY,CAACN,QAAQ,CAARA,cAAbM,oBAAaN,CAAD,CAAZM;AACAC,kBAAc,CAACP,QAAQ,CAARA,cAAfO,wBAAeP,CAAD,CAAdO;AACAA,kBAAc,CAACP,QAAQ,CAARA,cAAfO,yBAAeP,CAAD,CAAdO;AAzBS;AA4BbC,cAAY,EAAE,gCAAoB;AAC9B,QAAI,CAAJ,UAAe;AACfR,YAAQ,CAARA;AACA,qBAAiBA,QAAQ,CAARA,cAAjB,oBAAiBA,CAAjB;AACA,sBAAkBA,QAAQ,CAARA,cAAlB,wBAAkBA,CAAlB;AACA,sBAAkBA,QAAQ,CAARA,cAAlB,yBAAkBA,CAAlB;AAjCS;AAoCbS,aAAW,EAAE,8BAAmB;AAC5B,QAAI,CAAJ,SAAc;AACd;AAtCS;AAyCbH,cAAY,EAAE,+BAAmB;AAC7B,QAAI,CAAJ,SAAc;AACdC,kBAAc,CAAdA,OAAc,CAAdA;AACAG,WAAO,CAAPA;AA5CS;AA+CbH,gBAAc,EAAE,iCAAmB;AAC/B,QAAI,CAAJ,SAAc;AAEdI,cAAU,UAAUC,OAAO,CAAPA,aAAV,qBAAUA,CAAV,EAAVD,QAAU,CAAVA;AACAA,cAAU,UAAUC,OAAO,CAAPA,aAAV,uBAAUA,CAAV,EAAVD,KAAU,CAAVA;AAnDS;AAsDbE,cAAY,EAAE,+BAAmB;AAC7B,QAAI,CAAJ,SAD6B,QAG7B;;AACA,6BAAyBD,OAAO,CAAPA,aAAzB,qBAAyBA,CAAzB;AA1DS;AA6DbD,YAAU,EAAE,8CAAoC;AAC5C,QAAI,YAAY,CAAhB,WAA4B;AAC5B,QAAIG,OAAO,GAAGC,SAAS,CAATA,MAAd,GAAcA,CAAd;;AACA,QAAIC,IAAI,KAAR,UAAuB;AACnBF,aAAO,CAAPA,IAAY,aAAC;AAAA,eAAIF,OAAO,CAAPA,iBAAJ,CAAIA,CAAJ;AAAbE;AADJ,WAGK;AACDA,aAAO,CAAPA,IAAY,aAAC;AAAA,eAAIF,OAAO,CAAPA,cAAJ,CAAIA,CAAJ;AAAbE;AACH;AACJ;AAtEY,CAAjB;AAyEed,uEAAQ,CAAvB,IAAeA,EAAf,E;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA;AAEA;AACA;AACA;AAEAiB,wDAAe;AACfC,wDAAe;AAEf;AACA;AAEA;AAGA;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAEe,2DAA2D;AACtE,MACIC,OAAO,GAAG1E,QAAQ,CAARA,cADd,cACcA,CADd;AAAA,MAEI2E,MAAM,GAAG3E,QAAQ,CAARA,cAFb,aAEaA,CAFb;AAAA,MAGI4E,WAAW,GAAG5E,QAAQ,CAARA,iBAHlB,kBAGkBA,CAHlB;AAAA,MAII6E,UAAU,GAAG7E,QAAQ,CAARA,cAJjB,kBAIiBA,CAJjB;AAAA,MAKI8E,YAAY,GAAG9E,QAAQ,CAARA,cALnB,mBAKmBA,CALnB;AAAA,MAMI+E,IAAI,GAAG/E,QAAQ,CAARA,iBANX,WAMWA,CANX;AAAA,MAOIgF,gBAAgB,GAAGhF,QAAQ,CAARA,iBAPvB,uBAOuBA,CAPvB;AAAA,MAQIiF,WAAW,GAAGjF,QAAQ,CAARA,iBARlB,kBAQkBA,CARlB;AAAA,MASIkF,eAAe,GAAGlF,QAAQ,CAARA,iBATtB,sBASsBA,CATtB;AAAA,MAUImF,aAAa,GAAGnF,QAAQ,CAARA,iBAVpB,oBAUoBA,CAVpB;;AAYA,eAAa;AACT0E,WAAO,CAAPA;AACH;;AACD,cAAY;AACRC,UAAM,CAANA;AACH;;AACD,mBAAiB;AACb,SAAK,IAAIxE,CAAC,GAAV,GAAgBA,CAAC,GAAGyE,WAAW,CAA/B,QAAwCzE,CAAxC,IAA6C;AACzCyE,iBAAW,CAAXA,CAAW,CAAXA;AACH;AACJ;;AACD,kBAAgB;AACZC,cAAU,CAAVA;AACH;;AACD,oBAAkB;AACdC,gBAAY,CAAZA;AACH;;AACD,YAAU;AACN,SAAK,IAAI3E,EAAC,GAAV,GAAgBA,EAAC,GAAG4E,IAAI,CAAxB,QAAiC5E,EAAjC,IAAsC;AAClC4E,UAAI,CAAJA,EAAI,CAAJA;AACH;AACJ;;AACD,wBAAsB;AAClB,SAAK,IAAI5E,GAAC,GAAV,GAAgBA,GAAC,GAAG6E,gBAAgB,CAApC,QAA6C7E,GAA7C,IAAkD;AAC9C6E,sBAAgB,CAAhBA,GAAgB,CAAhBA;AACH;AACJ;;AACD,mBAAiB;AACb,SAAK,IAAI7E,GAAC,GAAV,GAAgBA,GAAC,GAAG8E,WAAW,CAA/B,QAAwC9E,GAAxC,IAA6C;AACzC8E,iBAAW,CAAXA,GAAW,CAAXA;AACH;AACJ;;AACD,qBAAmB;AACf,SAAK,IAAI9E,GAAC,GAAV,GAAgBA,GAAC,GAAGgF,aAAa,CAAjC,QAA0ChF,GAA1C,IAA+C;AAC3CgF,mBAAa,CAAbA,GAAa,CAAbA;AACH;AACJ;;AACD,uBAAqB;AACjB,SAAK,IAAIhF,GAAC,GAAV,GAAgBA,GAAC,GAAG+E,eAAe,CAAnC,QAA4C/E,GAA5C,IAAiD;AAC7C+E,qBAAe,CAAfA,GAAe,CAAfA;AACH;AACJ;AACJ,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECzDD;AACA;;AAEA;;;;;AAGO,IAAME,SAAS,GAAG,0BAA2B;AAChD,MAAIC,SAAS,GAAGrF,QAAQ,CAARA,aAAhB,GAAgBA,CAAhB;;AACA,OAAK,IAAIG,CAAC,GAAV,GAAgBA,CAAC,GAAGkF,SAAS,CAA7B,QAAsClF,CAAtC,IAA2C;AACvC,QAAImF,KAAK,GAAGD,SAAS,CAATA,CAAS,CAATA,OAAZ,GAAYA,CAAZ;AACA,QAAIE,IAAI,GAAGC,kBAAkB,CAACF,KAAK,CAALA,CAAK,CAALA,CAA9B,IAA8BA,EAAD,CAA7B;AACA,QAAIG,MAAM,GAAGH,KAAK,CAALA,aAAmBA,KAAK,CAAxBA,CAAwB,CAAxBA,GAAb;;AACA,QAAIC,IAAI,IAAR,OAAmB;AACf,aAAOC,kBAAkB,CAAzB,MAAyB,CAAzB;AACH;AACJ;;AACD;AAVG;AAYP;;;;AAGO,IAAME,SAAS,GAAG,2CAA2C;AAChE;AACA,MAAIC,OAAO,GAAGC,kBAAkB,CAAlBA,KAAkB,CAAlBA,SAAkCA,kBAAkB,CAFF,MAEE,CAAlE,CAFgE,CAIhE;;AACA,MAAIxD,OAAO,IAAIA,OAAO,YAAtB,MAAwC;AACpCA,WAAO,GAAG;AACNyD,aAAO,EAAEzD;AADH,KAAVA;AAN4D,IAUhE;;;AACA,MAAIA,OAAO,IAAI,oBAAf,UAA2C;AACvC,QAAIA,OAAO,CAAX,SAAqB;AACjBuD,aAAO,IAAI,eAAevD,OAAO,CAAPA,QAA1BuD,WAA0BvD,EAA1BuD;AACH;;AACD,QAAIvD,OAAO,CAAX,MAAkB;AACduD,aAAO,IAAI,YAAYvD,OAAO,CAAPA,KAAvBuD,QAAuBvD,EAAvBuD;AACH;;AACD,QAAIvD,OAAO,CAAX,QAAoB;AAChBuD,aAAO,IAAI,cAAcvD,OAAO,CAAPA,OAAzBuD,QAAyBvD,EAAzBuD;AACH;;AACD,QAAIvD,OAAO,CAAX,QAAoB;AAChBuD,aAAO,IAAPA;AACH;AACJ;;AACD3F,UAAQ,CAARA;AAzBG;AA2BP;;;;AAGO,IAAM8F,YAAY,GAAG,sCAAsC;AAC9D,MAAI,CAAJ,SAAc;AACV,QAAI1D,OAAO,GAAX;AACH;;AACDA,SAAO,CAAPA,UAAkB,IAAlBA,IAAkB,EAAlBA;AACAsD,WAAS,YAATA,OAAS,CAATA;AALG,E;;;;;;;;;;;;ACnDP;AAAA;AAAe,+BAA+B;AAC1C,MAAIK,YAAY,GAAG/F,QAAQ,CAARA,cAAnB,uBAAmBA,CAAnB;;AAEA,oBAAkB;AACd,QAAIgG,SAAS,GAAGhG,QAAQ,CAARA,uCAAhB;AACAgG,aAAS,GAAGA,SAAS,CAATA,eAAyBC,MAAM,CAANA,MAAaA,MAAM,CAANA,SAAbA,GAArCD,CAAqCC,CAAzBD,CAAZA;AACAA,aAAS,GAAGA,SAAS,CAATA,aAAuBC,MAAM,CAANA,SAAgBA,MAAM,CAANA,SAHrC,CAGqBA,CAAvBD,CAAZA,CAHc,CAKd;AACA;;AACA,QAAIE,QAAQ,GAAGlG,QAAQ,CAARA,wDAPD,CAOCA,CAAf,CAPc,CASd;;AACA,QAAIiG,MAAM,GAAGA,MAAM,CAANA,oCAVC,KAUDA,CAAb,CAVc,CAYd;;AACA;AACH;AACJ,C;;;;;;;;;;;;AClBD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAKe,wBAAwB;AACnC,MAAIE,QAAQ,GAAGvF,IAAI,CAAJA,MAAWC,cAAc,CAAdA,QAA1B,UAA0BA,CAAXD,CAAf;AACA,MAAIwF,MAAM,GAAGvF,cAAc,CAAdA,QAAb,QAAaA,CAAb;AACA,MAAIwF,UAAU,GAAGrG,QAAQ,CAARA,cAAjB,eAAiBA,CAAjB;AACA,MAAIsG,UAAU,GAAGtG,QAAQ,CAARA,6CAAjB;AACA,MAAIuG,QAAQ,GAAGvG,QAAQ,CAARA,gBAAf;AACA,MAAIwG,UAAU,GAAd;AAEA,MAAIC,gBAAgB,GAAGzG,QAAQ,CAARA,cAAvB,qBAAuBA,CAAvB;AAEA,MAAI0G,cAAc,GAAlB;AAEA,MAAIC,QAAQ,GAAZ;;AACA,kBAAgB;AACZA,YAAQ,GAAGN,UAAU,CAAVA,QAAXM;;AACA,QAAI,CAAJ,QAAa;AACTP,YAAM,GAANA;AACH;AACJ;;AAED,MAAIG,QAAQ,IAAZ,MAAsB;AAClBC,cAAU,GAAVA;AADJ,SAEO;AACHA,cAAU,GAAVA;AACH;;AAEDI,SAAO,CAAPA;;AAEA,wBAAsB;AAClB,QAAIC,aAAa,GAAG7G,QAAQ,CAARA,cAApB,sBAAoBA,CAApB;AAEAyG,oBAAgB,CAAhBA,2BAA4C,YAAY;AACpD,UAAI,KAAJ,SAAkB;AACdC,sBAAc,GAAG,gEAAjBA;AACAG,qBAAa,CAAbA;AAEA/F,oDAAK,CAALA,yBAA+B,oBAAc;AACzCqF,kBAAQ,GAAGpF,QAAQ,CAAnBoF;AACAtF,wBAAc,CAAdA,oBAAmCD,IAAI,CAAJA,UAAeG,QAAQ,CAFjB,IAENH,CAAnCC,EAFyC,CAIzC;;AACA,eAAK,IAAIV,CAAC,GAAV,GAAgBA,CAAC,GAAGgG,QAAQ,CAARA,OAApB,QAA4ChG,CAA5C,IAAiD;AAC7C,gBAAI2G,CAAC,IAAIX,QAAQ,CAARA,UAALW,UAAkCC,CAAC,IAAIZ,QAAQ,CAARA,UAA3C,OAAqE;AACjE,kBAAMa,CAAC,GAAGb,QAAQ,CAARA,OAAV,CAAUA,CAAV;AAEAc,+EAAmB,CACfD,CAAC,CADc,QAEfA,CAAC,CAFc,OAGfA,CAAC,CAHc,YAIfA,CAAC,CAJc,YAKfA,CAAC,CALc,aAMfA,CAAC,CANc,KAOfA,CAAC,CAPc,iBAQfA,CAAC,CARc,YASfA,CAAC,CATc,cAUfA,CAAC,CAVLC,cAAmB,CAAnBA;AAYH;AACJ;AAtBLnG;AAJJ,aA4BO;AACH4F,sBAAc,GAAG,yEAAjBA;AACAG,qBAAa,CAAbA;AAEA/F,oDAAK,CAALA,yBAA+B,oBAAc;AACzCqF,kBAAQ,GAAGpF,QAAQ,CAAnBoF;AACAtF,wBAAc,CAAdA,oBAAmCD,IAAI,CAAJA,UAAeG,QAAQ,CAFjB,IAENH,CAAnCC,EAFyC,CAIzC;;AACA,eAAK,IAAIV,CAAC,GAAV,GAAgBA,CAAC,GAAGgG,QAAQ,CAARA,OAApB,QAA4ChG,CAA5C,IAAiD;AAC7C,gBAAI2G,CAAC,IAAIX,QAAQ,CAARA,UAALW,UAAkCC,CAAC,IAAIZ,QAAQ,CAARA,UAA3C,OAAqE;AACjE,kBAAMa,CAAC,GAAGb,QAAQ,CAARA,OAAV,CAAUA,CAAV;AAEAc,+EAAmB,CACfD,CAAC,CADc,QAEfA,CAAC,CAFc,OAGfA,CAAC,CAHc,YAIfA,CAAC,CAJc,YAKfA,CAAC,CALc,aAMfA,CAAC,CANc,KAOfA,CAAC,CAPc,iBAQfA,CAAC,CARc,YASfA,CAAC,CATc,cAUfA,CAAC,CAVLC,cAAmB,CAAnBA;AAYH;AACJ;AAtBLnG;AAwBH;AAzDL2F;AA2DH;;AAEDC,gBAAc,GAAG,yEAAjBA;AAEAE,SAAO,CAAPA;;AAEA,MAAI,CAAJ,UAAe;AACX9F,gDAAK,CAALA,yBAA+B,oBAAc;AACzCqF,cAAQ,GAAGpF,QAAQ,CAAnBoF;AACAtF,oBAAc,CAAdA,oBAAmCD,IAAI,CAAJA,UAAeG,QAAQ,CAFjB,IAENH,CAAnCC,EAFyC,CAIzC;;AACA,WAAK,IAAIV,CAAC,GAAV,GAAgBA,CAAC,GAAGgG,QAAQ,CAARA,OAApB,QAA4ChG,CAA5C,IAAiD;AAC7C,YAAI2G,CAAC,IAAIX,QAAQ,CAARA,UAALW,UAAkCC,CAAC,IAAIZ,QAAQ,CAARA,UAA3C,OAAqE;AACjE,cAAMa,CAAC,GAAGb,QAAQ,CAARA,OAAV,CAAUA,CAAV;AAEAc,2EAAmB,CACfD,CAAC,CADc,QAEfA,CAAC,CAFc,OAGfA,CAAC,CAHc,YAIfA,CAAC,CAJc,YAKfA,CAAC,CALc,aAMfA,CAAC,CANc,KAOfA,CAAC,CAPc,iBAQfA,CAAC,CARc,YASfA,CAAC,CATc,cAUfA,CAAC,CAVLC,cAAmB,CAAnBA;AAYH;AACJ;AAtBLnG;AADJ,SAyBO;AAEH;AACA,SAAK,IAAIX,CAAC,GAAV,GAAgBA,CAAC,GAAGgG,QAAQ,CAARA,OAApB,QAA4ChG,CAA5C,IAAiD;AAC7C,UAAI2G,CAAC,IAAIX,QAAQ,CAARA,UAALW,UAAkCC,CAAC,IAAIZ,QAAQ,CAARA,UAA3C,OAAqE;AACjE,YAAMa,CAAC,GAAGb,QAAQ,CAARA,OAAV,CAAUA,CAAV;AAEAc,yEAAmB,CACfD,CAAC,CADc,QAEfA,CAAC,CAFc,OAGfA,CAAC,CAHc,YAIfA,CAAC,CAJc,YAKfA,CAAC,CALc,aAMfA,CAAC,CANc,KAOfA,CAAC,CAPc,iBAQfA,CAAC,CARc,YASfA,CAAC,CATc,cAUfA,CAAC,CAVLC,cAAmB,CAAnBA;AAYH;AACJ;AACJ;AACJ,C;;;;;;;;;;;;ACrJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMC,UAAU,GAAGlH,QAAQ,CAARA,cAAnB,aAAmBA,CAAnB;;AAEA,gBAAgB;AAEZ,MAAMmH,MAAM,GAAGnH,QAAQ,CAARA,iBAFH,qBAEGA,CAAf,CAFY,CAIZ;;AACA,MAAIoH,WAAW,GAAGpH,QAAQ,CAARA,0CAAlB;AACA,MAAIqH,UAAU,GAAGrH,QAAQ,CAARA,yCAAjB;AACA,MAAIsH,SAAS,GAAGtH,QAAQ,CAARA,wCAAhB;AACA,MAAIuH,YAAY,GAAGvH,QAAQ,CAARA,2CAAnB;AAEA,MAAIwH,sBAAsB,GAAGxH,QAAQ,CAARA,iBAA7B,mBAA6BA,CAA7B;AAAA,MACIyH,sBAAsB,GAAGzH,QAAQ,CAARA,iBAD7B,mBAC6BA,CAD7B;AAGA,MAAI0H,YAAY,GAAG1H,QAAQ,CAARA,cAAnB,qBAAmBA,CAAnB;AAAA,MACI2H,eAAe,GAAGD,YAAY,CADlC;AAAA,MAEIE,eAAe,GAAGF,YAAY,CAFlC;AAAA,MAGIG,mBAAmB,GAAGH,YAAY,CAHtC;AAOA,MAAII,WAAW,GAAG9H,QAAQ,CAARA,cAAlB,oBAAkBA,CAAlB;AAAA,MACI+H,cAAc,GAAGD,WAAW,CADhC;AAAA,MAEIE,cAAc,GAAGF,WAAW,CAFhC;AAAA,MAGIG,kBAAkB,GAAGH,WAAW,CAHpC;AAAA,MAIII,kBAAkB,GAAGlI,QAAQ,CAARA,cAJzB,uCAIyBA,CAJzB;;AAMA,MAAImI,YAAY,IAAhB,aAAiC;AAC7BN,uBAAmB,GAAnBA;AACAI,sBAAkB,GAAlBA;AACAG,6DAAQ,eAARA,WAAQ,CAARA;AAHJ,SAKO;AACHA,6DAAQ,sBAARA,kBAAQ,CAARA;AAhCQ,IAmCZ;;;AACA,MAAIC,SAAS,GAAGrI,QAAQ,CAARA,cAAhB,aAAgBA,CAAhB;AACA,MAAIsI,cAAc,GAAGD,SAAS,CAA9B;AACA,MAAIE,SAAS,GAAGvI,QAAQ,CAARA,cAAhB,aAAgBA,CAAhB;AACA,MAAIwI,cAAc,GAAGD,SAAS,CAA9B;AAEAF,WAAS,CAATA,YAAsBI,kEAAa,CAAnCJ,cAAmC,CAAnCA;AACAE,WAAS,CAATA,YAAsBE,kEAAa,CAAnCF,cAAmC,CAAnCA;;AAEA,OAAK,IAAIpI,CAAC,GAAV,GAAgBA,CAAC,GAAGqH,sBAAsB,CAA1C,QAAmDrH,CAAnD,IAAwD;AACpD,QAAIuI,kBAAkB,GAAGlB,sBAAsB,CAAtBA,CAAsB,CAAtBA,CAAzB;AACAA,0BAAsB,CAAtBA,CAAsB,CAAtBA,aAAsCiB,kEAAa,CAAnDjB,kBAAmD,CAAnDA;AACH;;AAED,OAAK,IAAIrH,EAAC,GAAV,GAAgBA,EAAC,GAAGsH,sBAAsB,CAA1C,QAAmDtH,EAAnD,IAAwD;AACpD,QAAIwI,kBAAkB,GAAGlB,sBAAsB,CAAtBA,EAAsB,CAAtBA,CAAzB;AACAA,0BAAsB,CAAtBA,EAAsB,CAAtBA,aAAsCgB,kEAAa,CAAnDhB,kBAAmD,CAAnDA;AAnDQ,IAwDZ;;;AAEAmB,+EAAW,CAAXA,eAA2B;AACvBC,YAAQ,EADe;AAEvBC,UAAM,EAAE,iCAA2B;AAC/Bb,wBAAkB,GAAGH,WAAW,CAAhCG;AACAJ,yBAAmB,GAAGH,YAAY,CAAlCG;AAEAO,+DAAQ,sBAARA,QAAQ,CAARA;AANmB;AAQvBW,gBAAY,EAAE,uCAA2B,CARlB;AAUvBC,WAAO,EAAE,kCAA2B;AAChC,UAAIC,mBAAmB,GAAGjJ,QAAQ,CAARA,iBAA1B,mBAA0BA,CAA1B;AACA,UAAIkJ,kBAAkB,GAAGlJ,QAAQ,CAARA,iBAAzB,iBAAyBA,CAAzB;AACAiI,wBAAkB,GAAGH,WAAW,CAAhCG;AACAJ,yBAAmB,GAAGH,YAAY,CAAlCG;;AAGA,UAAI,0BAAJ,iBAA+C;AAC3C;AACA,aAAK,IAAI1H,GAAC,GAAV,GAAgBA,GAAC,GAAG8I,mBAAmB,CAAvC,QAAgD9I,GAAhD,IAAqD;AACjD8I,6BAAmB,CAAnBA,GAAmB,CAAnBA,aAAmCR,kEAAa,CAACU,QAAQ,CAAzDF,QAAiDE,EAAD,CAAhDF;AAHuC,UAK3C;;;AACAb,iEAAQ,WAARA,kBAAQ,CAARA;AACH;;AACD,UAAI,0BAAJ,gBAA8C;AAC1C,aAAK,IAAIjI,GAAC,GAAV,GAAgBA,GAAC,GAAG+I,kBAAkB,CAAtC,QAA+C/I,GAA/C,IAAoD;AAChD+I,4BAAkB,CAAlBA,GAAkB,CAAlBA,aAAkCC,QAAQ,GAA1CD;AACH;;AAHyC,UAI1C;;AACAd,iEAAQ,sBAARA,QAAQ,CAARA;AACH;AA/BkB;AAkCvBgB,cAAU,EAAE,qCAA2B;AACnC,UAAI,0BAAJ,iBAA+C;AAC3ChB,iEAAQ,WAARA,kBAAQ,CAARA;AACA1C,kEAAS,qBAATA,UAAS,CAATA;AAFJ,aAGO,IAAI,0BAAJ,gBAA8C;AACjD0C,iEAAQ,sBAARA,QAAQ,CAARA;AACA1C,kEAAS,qBAATA,UAAS,CAATA;AAFG,aAGA,IAAI,0BAAJ,mBAAiD;AACpDA,kEAAS,+BAATA,UAAS,CAATA;AACH;;AAED2D,sEAAoB;AACvB;AA9CsB,GAA3BT;AAoDA,MAAIK,mBAAmB,GAAGjJ,QAAQ,CAARA,iBAA1B,mBAA0BA,CAA1B;AAAA,MACIkJ,kBAAkB,GAAGlJ,QAAQ,CAARA,iBA/Gb,iBA+GaA,CADzB,CA9GY,CAiHZ;;AACA,MAAMsJ,UAAU,GAAG;AAAEC,QAAI,EAAE;AAAR,GAAnB;AACA,MAAIpB,YAAY,GAAG/C,0DAAS,CAA5B,QAA4B,CAA5B;AAAA,MACIoE,WAAW,GAAGpE,0DAAS,CAD3B,QAC2B,CAD3B;;AAGA,oBAAkB;AACd,SAAK,IAAIjF,GAAC,GAAV,GAAgBA,GAAC,GAAG8I,mBAAmB,CAAvC,QAAgD9I,GAAhD,IAAqD;AACjD8I,yBAAmB,CAAnBA,GAAmB,CAAnBA,aAAmCR,kEAAa,CAAhDQ,YAAgD,CAAhDA;AACH;AAHL,SAIO;AACH,SAAK,IAAI9I,GAAC,GAAV,GAAgBA,GAAC,GAAG8I,mBAAmB,CAAvC,QAAgD9I,GAAhD,IAAqD;AACjD,UAAIsJ,KAAK,GAAGR,mBAAmB,CAAnBA,GAAmB,CAAnBA,CAAZ;AACAA,yBAAmB,CAAnBA,GAAmB,CAAnBA,aAAmCR,kEAAa,CAAhDQ,KAAgD,CAAhDA;AACH;AACJ;;AACD,mBAAiB;AACb,SAAK,IAAI9I,GAAC,GAAV,GAAgBA,GAAC,GAAG+I,kBAAkB,CAAtC,QAA+C/I,GAA/C,IAAoD;AAChD+I,wBAAkB,CAAlBA,GAAkB,CAAlBA,aAAkCM,WAAW,GAA7CN;AACH;AAnIO,IAyIZ;;;AACA,oBAAkB;AACd,SAAK,IAAI/I,GAAC,GAAV,GAAgBA,GAAC,GAAG8I,mBAAmB,CAAvC,QAAgD9I,GAAhD,IAAqD;AACjD8I,yBAAmB,CAAnBA,GAAmB,CAAnBA,aAAmCR,kEAAa,CAAhDQ,YAAgD,CAAhDA;AACH;;AACDpB,uBAAmB,GAAnBA;AAJJ,SAKO;AACHnC,8DAAS,gCAATA,UAAS,CAATA;AACH;;AACD,mBAAiB;AACbuC,sBAAkB,GAAlBA;;AAEA,SAAK,IAAI9H,GAAC,GAAV,GAAgBA,GAAC,GAAG+I,kBAAkB,CAAtC,QAA+C/I,GAA/C,IAAoD;AAChD+I,wBAAkB,CAAlBA,GAAkB,CAAlBA,aAAkCM,WAAW,GAA7CN;AACH;AALL,SAMO;AACHxD,8DAAS,+BAATA,UAAS,CAATA;AACH;AACJ;;AACD2D,gEAAoB,G;;;;;;;;;;;;ACtKpB;AAAA;AAAe,uBAAuB;AAClC,MAAMK,oBAAoB,GAAG1J,QAAQ,CAARA,cAA7B,6BAA6BA,CAA7B;AAEA8G,GAAC,GAAGA,CAAC,CAADA,aAAJA,EAAIA,CAAJA,EACAA,CAAC,GAAGA,CAAC,CAADA,aADJA,EACIA,CADJA,EAEAA,CAAC,GAAGA,CAAC,CAADA,cAFJA,EAEIA,CAFJA,EAGAA,CAAC,GAAGA,CAAC,CAADA,cAHJA,EAGIA,CAHJA,EAIAA,CAAC,GAAGA,CAAC,CAADA,eAJJA,EAIIA,CAJJA,EAKAA,CAAC,GAAGA,CAAC,CAADA,aALJA,EAKIA,CALJA,EAMA4C,oBAAoB,CAApBA,QANA5C;AAOH,C;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;CAGA;;AACe,gCAAgC;AAC3C,MAAIY,YAAY,GAAG1H,QAAQ,CAARA,iBAAnB,gBAAmBA,CAAnB;AAAA,MACI8H,WAAW,GAAG9H,QAAQ,CAARA,iBADlB,eACkBA,CADlB;AAAA,MAEI2J,iBAAiB,GAAG3J,QAAQ,CAARA,iBAFxB,4BAEwBA,CAFxB;AAAA,MAGI4J,eAAe,GAAGxE,0DAAS,CAH/B,QAG+B,CAH/B;AAAA,MAIIyE,cAAc,GAAGzE,0DAAS,CAJ9B,QAI8B,CAJ9B;AAAA,MAKI0E,qBAAqB,GAAG1E,0DAAS,CALrC,kBAKqC,CALrC;AAAA,MAMI2E,SAAS,GAAGlJ,cAAc,CAAdA,QANhB,WAMgBA,CANhB;AAAA,MAOImJ,QAAQ,GAAGnJ,cAAc,CAAdA,QAPf,UAOeA,CAPf;AAAA,MAQIoJ,YAAY,GAAGpJ,cAAc,CAAdA,QARnB,YAQmBA,CARnB;AAAA,MASIqJ,WAAW,GAAGrJ,cAAc,CAAdA,QATlB,aASkBA,CATlB;;AAYA,oBAAkB;AACd,SAAK,IAAIV,CAAC,GAAV,GAAgBA,CAAC,GAAGuH,YAAY,CAAhC,QAAyCvH,CAAzC,IAA8C;AAC1CuH,kBAAY,CAAZA,CAAY,CAAZA,oBAAmC;AAC/BzE,aAAK,EAD0B;AAE/BkH,WAAG,EAF4B;AAG/BC,YAAI,EAAEF;AAHyB,OAAnCxC;AAKH;AACJ;;AACD,mBAAiB;AACb,SAAK,IAAIvH,EAAC,GAAV,GAAgBA,EAAC,GAAG2H,WAAW,CAA/B,QAAwC3H,EAAxC,IAA6C;AACzC2H,iBAAW,CAAXA,EAAW,CAAXA,oBAAkC;AAC9B7E,aAAK,EADyB;AAE9BkH,WAAG,EAF2B;AAG9BC,YAAI,EAAEH;AAHwB,OAAlCnC;AAKH;AACJ;;AAED,MAAI6B,iBAAiB,IAArB,uBAAgD;AAC5C,SAAK,IAAIxJ,GAAC,GAAV,GAAgBA,GAAC,GAAGwJ,iBAAiB,CAArC,QAA8CxJ,GAA9C,IAAmD;AAC/CwJ,uBAAiB,CAAjBA,GAAiB,CAAjBA,oBAAwC;AACpC1G,aAAK,EAAE6G;AAD6B,OAAxCH;AAGH;AACJ;AACJ,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3CD;AACA;AAGA,IAAMU,mBAAmB,GAAG,yBAA5B,GAA4B,CAA5B;AACA,IAAMC,kBAAkB,GAAxB;AACA,IAAMC,mBAAmB,GAAzB;AACA,IAAMC,sBAAsB,GAA5B;AAEA,IAAMC,UAAU,GAAhB;AACA,IAAMC,UAAU,GAAGC,0DAAnB;AACA,IAAMC,QAAQ,GAAG;AACf/B,UAAQ,EADO;AAEfgC,MAAI,EAFW;AAGfC,YAAU,EAHK;AAIfC,eAAa,EAJE;AAKfC,WAAS,EALM;AAMfC,aAAW,EANI;AAOfC,aAAW,EAPI;AAQfC,YAAU,EAAE,4BARG,aAQH,CARG;AASfC,WAAS,EAAE,2BATI,aASJ,CATI;AAUfC,UAAQ,EAAE,wBAVK,WAUL,CAVK;AAWfC,KAAG,EAXY;AAYfnB,KAAG,EAZY;AAafC,MAAI,EAbW;AAcfnH,OAAK,EAdU;AAefsI,QAAM,EAfS;AAgBfC,OAAK,EAhBU;AAiBfC,cAAY,EAjBG;AAkBfC,UAAQ,EAAE;AAlBK,CAAjB;AAqBA,IAAIC,4BAA4B,GAAhC;AAEA;;;;;;IAKqBC,W;AACnB,yCAA8B;AAAA;;AAC5B;AACA;AACA;AACA;AACA;AAEAA,eAAW,CAAXA;AAEA;AACA,mBAAerH,wEAAf,OAAeA,CAAf;AACA,oBAAgB,aAAhB;AACA,oBAAgB,aAAhB;AACA,kBAAc,aAAd;AACA,mBAAe,aAAf;AACA,wBAAoB,aAApB;AACA,sBAAkB,aAAlB;AACA,8BAA0B,CAA1B;AACA;AACA;;AAEA,SArB4B,0BAqB5B,GArB4B,CAuB5B;;;AACA,QAAI,CAAC,KAAL,UAAoB;AAClB;AACA,sBAAgB;AACd;AACD;AACF;;AAED,0BAAsB,uBAAuBlB,UAAU,CAAC,0BAAxD,aAAwD,CAAD,CAAvD;AAEA,sBAAkB,2BAA2BkB,uDAA7C;AAEA,eAAWA,mEACT,aADSA,KAETlB,UAAU,CAAC,0BAFFkB,KAEE,CAAD,CAFDA,EAGRsH,eAAe,GAHlB,CAAWtH,CAAX;AAMA,eAAWA,mEACT,aADSA,KAETlB,UAAU,CAAC,0BAFFkB,KAEE,CAAD,CAFDA,EAGRuH,eAAe,GAHlB,kBAAWvH,CAAX;AAMA,iBAAaA,mEAAuB,aAAvBA,OAA2C,aAA3CA,OACXlB,UAAU,CAAC,sBAAsB,WAAW,CAAC,WAAW,KAAZ,OAD9C,CACY,CADCkB,CAAb;AAGA,gBAAYA,mEAAuB,aAAvBA,MACVlB,UAAU,CAAC,0BAAXA,MAAW,CAAD,CAAVA,KAAkD0I,gBAAgB,GADpE,CACE1I,CADUkB,CAAZ;AAGA;;AAEA,QAAIA,yDAAa,aAAbA,UAAoC,6BAAxC,GAAwE;AACtE,mBAAa,aAAb;AADF,WAEO,IAAKyH,cAAc,GAAG,0BAAtB,OAAsB,CAAtB,EAA2D;AAChEC,iBAAW,GAAGD,cAAc,CAAdA,MAAdC,GAAcD,CAAdC;;AACA,UAAIA,WAAW,CAAXA,UAAJ,GAA6B;AAC3B,qBAAaA,WAAW,CAAXA,IAAb,UAAaA,CAAb;AACD;AACF;;AACD,QAAI,cAAc,sBAAlB,GAA2C;AACzC,sBAAgB,YAAhB;AACD;;AACD;;AAEA,mBAAe,cAAc,KAA7B,IAAe,CAAf;AAEA;AAEA,qBAAiBjM,QAAQ,CAARA,cAAjB,KAAiBA,CAAjB;AACA2K,wDAAa,KAAbA,WAA6B,aAA7BA;AAEAuB,kBAAc,GAAG,gBAAgB,yBAAhB,eAAwD,yBAAzEA;AACAvB,wDAAa,KAAbA;AAEA,kBAAc3K,QAAQ,CAARA,cAAd,KAAcA,CAAd;AACA2K,wDAAa,KAAbA,QAA0B,aAA1BA;AAEAuB,kBAAc,GAAG,gBACf,2BADe,eAEf,2BAFFA;AAGAvB,wDAAa,KAAbA;AAEA,iBAAa3K,QAAQ,CAARA,cAAb,KAAaA,CAAb;AACA2K,wDAAa,KAAbA,OAAyB,aAAzBA;AACA,oBAAgB,KAAhB;AAEA,QAAMwB,YAAY,GAAGhI,OAAO,CAAPA,aAArB,OAAqBA,CAArB;;AACA,QAAIgI,YAAY,IAAIA,YAAY,CAAZA,SAApB,GAA6C;AAC3C;AACD;;AAED,QAAI,aAAJ,aAA8B;AAC5B,oBAAcnM,QAAQ,CAARA,cAAd,KAAcA,CAAd;AACA2K,0DAAa,KAAbA,QAA0B,aAA1BA;AACA,6BAAuB,KAAvB;AAEAuB,oBAAc,GAAG,gBACf,2BADe,eAEf,2BAFFA;AAGAvB,0DAAa,KAAbA;AACD;;AAED,2BAAuB,KAAvB;AACA,2BAAuB,KAAvB;AAEAuB,kBAAc,GAAG,gBAAgB,0BAAhB,eAAyD,0BAA1EA;AACAvB,wDAAa,KAAbA;;AAEA,QAAIpG,8DAAkB,aAAtB,KAAIA,CAAJ,EAA2C;AACzC,qBAAe,aAAf;;AACA,2BAAqB,aAArB;AACD;;AAED,QAAIA,8DAAkB,aAAtB,MAAIA,CAAJ,EAA4C;AAC1C,+CAAyC,aAAzC;AACD;;AAED,QAAIA,8DAAkB,aAAlBA,QAAJ,iBAA4D;AAC1D,uCAAiC,KAAK,KAAtC;AACD;;AAED,QAAIA,8DAAkB,aAAlBA,QAAJ,iBAA4D;AAC1D,uCAAiC,KAAK,KAAtC;AACD;;AAED,QAAIA,8DAAkB,aAAlBA,SAAJ,kBAA8D;AAC5D,wCAAkC,KAAK,KAAvC;AACD;;AAEDoG,2DAAgB,KAAhBA,SAA8B,KArIF,KAqI5BA,EArI4B,CAuI5B;;AACAA,sDAAW,KAAXA,SAAyB;AACvB,kBADuB;AAEvB,eAFuB;AAGvB,gBAHuB;AAIvB,kBAJuB;AAKvB,iBAAW;AALY,KAAzBA,EAxI4B,CAgJ5B;;AACA,uBAAmB,sBAAnB,IAAmB,CAAnB;AACA,uBAAmB,sBAAnB,IAAmB,CAAnB;AACA,sBAAkB,qBAAlB,IAAkB,CAAlB;AACA,+BAA2B,8BAA3B,IAA2B,CAA3B;AACA,gCAA4B,+BAA5B,IAA4B,CAA5B;AACA,yBAAqB,wBAArB,IAAqB,CAArB;;AAEA,SAxJ4B,KAwJ5B,GAxJ4B,CA0J5B;;;AACAyB,UAAM,CAANA,2BAAkC,KAAlCA;AAEAzB,iEAAsB,aAAtBA,MAAyC,aAAzCA,YAAkE,KA7JtC,mBA6J5BA,EA7J4B,CA+J5B;;AACA,4CAAwC,KAAxC;AACD;AAED;;;;;;;;;;AA+BA;;AAEA;;;;;2BAKO0B,G,EAAKC,a,EAAe;AACzB,yBAAmB;AACjB;AACD;;AACD,UAAI/H,0DAAJ,GAAIA,CAAJ,EAAwB;AACtB,YAAIA,8DAAkB8H,GAAG,CAAzB,GAAI9H,CAAJ,EAAgC;AAC9B,2CAAiC,KAAK8H,GAAG,CAAzC;AACA,qBAAWA,GAAG,CAAd;AACD;;AAED,YAAI9H,8DAAkB8H,GAAG,CAAzB,GAAI9H,CAAJ,EAAgC;AAC9B,2CAAiC,KAAK8H,GAAG,CAAzC;AACA,qBAAWA,GAAG,CAAd;AACD;;AAED,YAAI9H,8DAAkB8H,GAAG,CAAzB,IAAI9H,CAAJ,EAAiC;AAC/B,4CAAkC,KAAK8H,GAAG,CAA1C;AACA,sBAAYA,GAAG,CAAf;AACA,yBAAe,cAAcA,GAAG,CAAhC,IAAe,CAAf;AACD;;AAED,YAAI9H,8DAAkB8H,GAAG,CAAzB,MAAI9H,CAAJ,EAAmC;AACjC,kCAAwB8H,GAAG,CAA3B;AACD;;AAED,YAAI9H,8DAAkB8H,GAAG,CAAzB,KAAI9H,CAAJ,EAAkC;AAChC,yBAAe8H,GAAG,CAAlB;AACD;AACF;;AACD;;AACA;AACA;AACA;AACD;;;8BAES;AAAA;;AACR1B,gFAAmC,aAAnCA;AACAyB,YAAM,CAANA,8BAAqC,KAArCA;AACA,iDAA2C,KAA3C;AAEA;AACA,aAAO,aANC,UAMD,CAAP,CANQ,CAQR;;AACA,UAAI,KAAJ,OAAgB;AACd,0CAAkC,KAAlC;AACD;;AAEDR,iBAAW,CAAXA,YAAwB,WAAW,CAAX,iBAA6B;AAAA,eAAYW,MAAM,KAAlB;AAArDX,OAAwB,CAAxBA;;AAEA,UAAI,CAAC,WAAW,CAAX,eAA2B;AAAA,eAAYW,MAAM,CAAlB;AAAhC,OAAK,CAAL,EAA8D;AAC5D;AACD;AACF;AAED;;;;6BAESnC,I,EAAM;AACb,aAAO,CAACA,IAAI,GAAL,8BAAP;AACD;;;4BAEO;AACN,UAAI,eAAe,OAAO,KAAP,WAAnB,YAAsD;AACpD;AACD;;AACD;AACD;;;8CAEyB;AACxB,qBAAe,CAAC,aAAa,KAAd,QAA2B,WAAW,KAArD,GAAe,CAAf;AACD;AAED;;;;;;;;wCAKoBoC,E,EAAIC,I,EAAM;AAAA;;AAC5B,UAAMC,EAAE,GAAGF,EAAE,CAAb;AACA,UAAIG,eAAe,GAAnB;;AAEA,UAAIH,EAAE,CAAFA,eAAkB,EAAE,aAAxB,EAAsB,CAAtB,EAA0C;AACxC;AACD;;AAED7B,sEAEE,cAAE;AAAA,eAAKgC,eAAe,GAAGD,EAAE,CAAFA,OAAU,MAAI,CAAdA,cAA6B,CAAC/B,wDAAiB,MAAI,CAAJ,QAAtE,aAAqDA,CAArD;AAFJA;;AAMA,2BAAqB;AACnB;AACD;AACF;;;yCAEoB6B,E,EAAIC,I,EAAM;AAC7B,UAAIA,IAAI,IAAIA,IAAI,CAAJA,WAAgB,KAA5B,YAA6C;AAC3C;AACD;;AAED,UAAMxJ,KAAK,GAAGuJ,EAAE,CAAFA,OAAd;;AACA,UAAMI,GAAG,GAAG,2BAAZ,KAAY,CAAZ;;AAEA;AACD;;;4BAEOC,Y,EAAc;AACpB,UAAMC,YAAY,GAAG,iCAArB;AAEA,wBAAkBnC,wDAAiB,KAAjBA,QAAlB,YAAkBA,CAAlB;AACA,uBAAiBA,wDAAiB,KAAjBA,OAAjB,YAAiBA,CAAjB;AACA,wBAAkB,iBAAiB,KAAnC;AACA,mBAAa,KAAb;AACA,sBAAgB,2BAA2B,KAPvB,KAOJ,CAAhB,CAPoB,CASpB;;AACA,UAAI,aAAJ,UAA2B;AACzBA,4DAAa,KAAbA,OAAyB,aAAzBA;AADF,aAEO;AACLA,+DAAgB,KAAhBA,OAA4B,aAA5BA;AACD;;AAED,wBAAkB,KAAlB;;AACA,UAAI,4BAA4B,aAAhC,QAAqD;AACnD,gCAAwB,aAAxB;AACD;;AACD;;AACA,UAAIkC,YAAY,KAAhB,OAA4B;AAC1BlC,gEAAiB,KAAjBA,mBAAyC;AAAEoC,gBAAM,EAAE,KAAKC;AAAf,SAAzCrC;AACD;AACF;;;iDAE4B;AAC3B,UAAI,iBAAiB,CAArB,8BAAoD;AAClD3K,gBAAQ,CAARA,8BAAuC4L,WAAW,CAAlD5L,yBAA4E;AAAEiN,iBAAO,EAAE;AAAX,SAA5EjN;AACA2L,oCAA4B,GAA5BA;AACD;AACF;;;oDAE+B;AAC9B3L,cAAQ,CAARA,iCAA0C4L,WAAW,CAArD5L;AACA2L,kCAA4B,GAA5BA;AACD;;;oCAEe;AAAA;;AACd,aAAO,0DAAc,YAAM;AACzB;AACApH,+DAAW,YAAM;AACf,gBAAI,CAAJ;AADFA;AAFK,SAAP,sBAAO,GAAP;AAMD;;;gCAEWuC,C,EAAG;AACb;AACAA,OAAC,CAADA;AACA6D,mEAAsB,aAAtBA,MAAyC,aAAzCA,WAAiE,KAAjEA;AACAA,mEAAsB,aAAtBA,MAAyC,aAAzCA,UAAgE,KAJnD,UAIbA,EAJa,CAMb;;AACA,UAAI,CAAC,MAAM7D,CAAC,CAADA,OAAN,YAAD,+CAA2E,aAA3E,eAAuG,CAA3G,GAA+G;AAC7G;AACD;;AAED,UAAMoG,kBAAkB,GAAG,WAA3B,qBAA2B,EAA3B;;AAEA,UAAMC,IAAI,GAAG,0BAAb,CAAa,CAAb;;AACA,UAAMC,MAAM,GAAG,gBAAgBF,kBAAkB,CAAlC,SAA4CA,kBAAkB,CAA7E;AACA,UAAMG,OAAO,GAAG,0BAA0B,KAA1B,UAAhB;AACA,UAAMlE,QAAQ,GAAGgE,IAAI,GAAG,KAAxB;;AAEA;;AAEA,UAAIA,IAAI,IAAJA,WAAmBA,IAAI,GAAGE,OAAO,GAAG,4BAAxC,GAAuE;AACrE,qBAAaF,IAAI,GAAjB;AACD;;AACD;AACD;;;gCAEWrG,C,EAAG;AACb,UAAMqG,IAAI,GAAG,0BAAb,CAAa,CAAb;;AAEA;AACArG,OAAC,CAADA;;AACA,wBAAkBqG,IAAI,GAAG,KAAzB;AACD;;;+BAEUrG,C,EAAG;AACZA,OAAC,CAADA;AACA6D,sEAAyB,aAAzBA,MAA4C,aAA5CA,WAAoE,KAApEA;AACAA,sEAAyB,aAAzBA,MAA4C,aAA5CA,UAAmE,KAHvD,UAGZA,EAHY,CAKZ;;AACAA,8DAAiB,KAAjBA,mBAAyC;AAAEoC,cAAM,EAAE,KAAKC;AAAf,OAAzCrC;;AAEA,UAAI,uBAAuB,KAA3B,mBAAmD;AACjD,YAAI,mBAAmB,OAAO,KAAP,eAAvB,YAA8D;AAC5D,0BAAgB,KAAhB,OAA4B,KAA5B,SAA0C,KAA1C;AACD;;AAED,YAAI,KAAJ,UAAmB;AACjBiB,qBAAW,CAAXA;AACD;AACF;;AACD;AACA;AACD;;;iCAEYgB,G,EAAK;AAChB;AACA;AACA;AACA,UAJgB,OAIhB,CAJgB,CAMhB;;AACA,UAAI3J,KAAK,GAAG,2BAA2BsB,iEAAqB,KAP5C,UAOuBA,CAA3B,CAAZ,CAPgB,CAShB;;;AACA,UAAI,KAAJ,OAAgB;AACd+I,eAAO,GAAG,WAAVA,CAAU,CAAVA;AACAC,mBAAW,GAAG,iBAAdA;AACAC,qBAAa,GAAGvK,KAAK,GAArBuK;;AACA,YAAIA,aAAa,GAAjB,aAAiC;AAC/BvK,eAAK,GAAGA,KAAK,GAAbA;AADF,eAEO,IAAIwK,IAAI,CAAJA,IAASH,OAAO,GAAhBG,iBAAJ,aAAqD;AAC1DxK,eAAK,GAAGA,KAAK,GAALA,gBAARA;AACD;AACF;;AACDkG,cAAQ,GAAG,2BApBK,KAoBL,CAAXA,CApBgB,CAsBhB;;AACA,UAAI,KAAJ,UAAmB;AACjB,sCAA+BA,QAAQ,GAAG,KAAZ,KAACA,GAA/B;AACA,+CAAuC,4BAAvC;AACA,2CAAmC,4BAAnC;AACA,sCAA8B,4BAA9B;AAJF,aAKO;AACL,qCAA8BA,QAAQ,GAAG,KAAZ,KAACA,GAA9B;AACA,+CAAuC,2BAAvC;AACA,2CAAmC,2BAAnC;AACA,sCAA8B,2BAA9B;AACD;;AAED,qBAnCgB,KAmChB,EAnCgB,CAqChB;;;AACA;AACA;;AACA;;AAEA,UAAI,uBAAuB,KAA3B,mBAAmD;AACjD,YAAI,qBAAqB,OAAO,KAAP,iBAArB,cAAgE,4BAApE,GAAmG;AACjG,4BAAkB,KAAlB,OAA8B,KAA9B,SAA4C,KAA5C;AACD;;AAED,YAAI,gBAAgB,OAAO,KAAP,YAApB,YAAwD;AACtD,uBAAa,KAAb,OAAyB,KAAzB,SAAuC,KAAvC;AACD;;AAED,YAAI,KAAJ,UAAmB;AACjByC,qBAAW,CAAXA;AACD;AACF;;AAED;AACD;;;uCAEkBgB,G,EAAK;AACtB,UAAIc,SAAS,GAAb;;AAEA,UAAIC,QAAQ,CAAZ,GAAY,CAAZ,EAAmB;AACjBf,WAAG,GAAGvJ,UAAU,CAAhBuJ,GAAgB,CAAhBA;AADF,aAEO,IAAIrI,0DAAJ,GAAIA,CAAJ,EAAwB;AAC7B,YAAIqI,GAAG,CAAHA,gBAAJ,GAA2B;AACzBc,mBAAS,GAATA;AACD;;AACDd,WAAG,GAAGvJ,UAAU,CAAhBuJ,GAAgB,CAAhBA;AAJK,aAKA;AACLhG,eAAO,CAAPA;AACA;AACD;;AAED,UAAI/E,KAAK,CAAT,GAAS,CAAT,EAAgB;AACd+E,eAAO,CAAPA;AACA;AACD;;AACD,UAAI,CAAC,aAAL,aAA+B;AAC7BA,eAAO,CAAPA;AACA;AACD;;AACD,UAAIgH,UAAU,GAAGF,SAAS,SAAUd,GAAG,GAAG,KAANA,YAApC;;AAEA,UAAIgB,UAAU,GAAd,GAAoB;AAClBA,kBAAU,GAAVA;AACD;;AACD,UAAIA,UAAU,GAAd,KAAsB;AACpBA,kBAAU,GAAVA;AACD;;AACD;AAEA,UAAIC,WAAW,GAAG,4BAA4B,KAA5B,YAAlB;AACA,UAAIC,qBAAqB,GAAGF,UAAU,GAAtC;;AAEA,UAAIE,qBAAqB,GAAzB,GAA+B;AAC7BA,6BAAqB,GAArBA;AACD;;AAED,UAAI,KAAJ,UAAmB;AACjB,mCAA2BA,qBAAqB,GAAhD;AACA,mCAA2BD,WAAW,GAAXA,MAA3B;AAFF,aAGO;AACL,kCAA0BC,qBAAqB,GAA/C;AACA,iCAAyBD,WAAW,GAAXA,MAAzB;AACD;;AAED;AACD;AAED;;;;;;;;;yCAMqBE,I,EAAM;AACzB,UAAI5N,CAAC,GAAG,gBAAgB,KAAhB,aAAR;;AAEA,aAAO4N,IAAI,KAAX,MAAsB;AACpB5N,SAAC,IAAI,gBAAgB4N,IAAI,CAApB,YAAiCA,IAAI,CAA1C5N;AACA4N,YAAI,GAAGA,IAAI,CAAXA;AACD;;AACD;AACD;AAED;;;;;;;;yCAKqBjH,C,EAAG;AACtB,UAAMoG,kBAAkB,GAAG,WADL,qBACK,EAA3B,CADsB,CAGtB;;AACA,UAAMc,SAAS,GAAG,gBAAgBd,kBAAkB,CAAlC,SAA4CA,kBAAkB,CAAhF;AACA,UAAIe,UAAU,GAAd;AAEA,UAAMC,oBAAoB,GAAG,0BAA7B;;AAEA,UAAI,OAAOpH,CAAC,CAAR,oBAAQ,CAAR,KAAJ,aAAoD;AAClDmH,kBAAU,GAAInH,CAAC,CAADA,WAAaA,CAAC,CAADA,QAAd,MAACA,GAAiCA,CAAC,CAADA,WAAlC,oBAAkCA,CAAjCA,GAAsEA,CAAC,CAArFmH,oBAAqF,CAArFA;AADF,aAEO,IAAI,OAAOnH,CAAC,CAAR,kBAAJ,aAA4C;AACjD,YAAI,OAAOA,CAAC,CAADA,cAAP,oBAAOA,CAAP,KAAJ,aAAkE;AAChEmH,oBAAU,GAAGnH,CAAC,CAADA,cAAbmH,oBAAanH,CAAbmH;AADF,eAEO,IAAInH,CAAC,CAADA,yBAA2BA,CAAC,CAADA,sBAA3BA,CAA2BA,CAA3BA,IACT,OAAOA,CAAC,CAADA,yBAAP,oBAAOA,CAAP,KADK,aACoE;AACzEmH,oBAAU,GAAGnH,CAAC,CAADA,yBAAbmH,oBAAanH,CAAbmH;AACD;AANI,aAOA,IAAInH,CAAC,CAADA,WAAaA,CAAC,CAADA,QAAbA,CAAaA,CAAbA,IAA6B,OAAOA,CAAC,CAADA,WAAP,oBAAOA,CAAP,KAAjC,aAA4F;AACjGmH,kBAAU,GAAGnH,CAAC,CAADA,WAAbmH,oBAAanH,CAAbmH;AADK,aAEA,IAAInH,CAAC,CAADA,iBAAmB,OAAOA,CAAC,CAADA,aAAP,qBAA2C,OAAOA,CAAC,CAADA,aAAP,MAAlE,WAAIA,CAAJ,EAA4G;AACjHmH,kBAAU,GAAG,gBAAgBnH,CAAC,CAADA,aAAhB,IAAmCA,CAAC,CAADA,aAAhDmH;AACD;;AAED,UAAI,KAAJ,UAAmB;AACjBA,kBAAU,IAAI7B,MAAM,CAApB6B;AACD;;AAED,aAAO,gBAAgBD,SAAS,GAAzB,aAAyCC,UAAU,GAA1D;AACD;;;0CAEqBhL,K,EAAO;AAC3B,UAAMkL,UAAU,GAAG,CAAClL,KAAK,GAAG,KAAT,QAAsB,WAAW,KAApD,GAAmB,CAAnB;AACA,UAAM2J,GAAG,GAAGuB,UAAU,GAAG,KAAzB;AAEA,aAAOtM,KAAK,CAALA,GAAK,CAALA,OAAP;AACD;;;0CAEqB+K,G,EAAK;AACzB,UAAMuB,UAAU,GAAKvB,GAAD,IAAS,mBAA7B,CAAoB,CAApB;AACA,UAAM3J,KAAK,GAAG,YAAYwK,IAAI,CAAJA,MAAWU,UAAU,IAAI,WAAW,KAAzBA,GAAU,CAAVA,GAAqC,KAA5D,IAAYV,CAAZ,GAAyE,KAAvF;AAEA,aAAOW,MAAM,CAAEnL,KAAD,QAACA,CAAe,KAA9B,OAAeA,CAAF,CAAb;AACD;;;8BAESA,K,EAAOoL,K,EAAO;AACtB,UAAIpL,KAAK,KAAK,KAAVA,SAAwB,CAA5B,OAAoC;AAClC;AAFoB,QAKtB;;;AACA;AACA;AACA0H,8DAAiB,KAAjBA,kBAAwC;AAAEoC,cAAM,EAAE,KAAKC;AAAf,OAAxCrC;AACD;;;2BA3aa+B,E,EAAItK,O,EAAS;AACzB,UAAMkM,cAAc,GAAG,SAAjBA,cAAiB,KAAQ;AAC7B,YAAI7B,IAAI,GAAGC,EAAE,CADgB,UAChB,CAAb,CAD6B,CAG7B;;AACA,YAAI,CAAJ,MAAW;AACTD,cAAI,GAAG,oBAAPA,OAAO,CAAPA;AACAC,YAAE,CAAFA,UAAE,CAAFA;AACD;AAPH;;AAUA,UAAIA,EAAE,CAAN,QAAe;AACb9J,aAAK,CAALA,iCAAuC,cAAc;AACnD0L,wBAAc,CAAdA,EAAc,CAAdA;AADF1L;AADF,aAIO;AACL0L,sBAAc,CAAdA,EAAc,CAAdA;AACD;AACF;;;4CAE+BC,K,EAAO;AACrC,UAAI3C,WAAW,CAAf,mBAAmC;AACjC2C,aAAK,CAALA;AACD;AACF;;;;KAsZH;;;;AACA3C,WAAW,CAAXA;AACAA,WAAW,CAAXA;AACAA,WAAW,CAAXA;AACAA,WAAW,CAAXA,0B;;;;;;;;;;;;ACloBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAM4C,mBAAmB,GAAzB;AAEO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;AAC5B,MAAMC,EAAE,GAAGtC,MAAM,CAANA,UAAX;AACA,MAAMuC,IAAI,GAAGD,EAAE,CAAFA,QAAb,OAAaA,CAAb;;AAEA,MAAIC,IAAI,GAAR,GAAc;AACZ,WAAOtN,QAAQ,CAACqN,EAAE,CAAFA,UAAaC,IAAI,GAAjBD,GAAuBA,EAAE,CAAFA,aAAxB,IAAwBA,CAAvBA,CAAD,EAAf,EAAe,CAAf;AACD;;AAED,MAAME,OAAO,GAAGF,EAAE,CAAFA,QAAhB,UAAgBA,CAAhB;;AAEA,MAAIE,OAAO,GAAX,GAAiB;AACf,QAAMC,EAAE,GAAGH,EAAE,CAAFA,QAAX,KAAWA,CAAX;AAEA,WAAOrN,QAAQ,CAACqN,EAAE,CAAFA,UAAaG,EAAE,GAAfH,GAAqBA,EAAE,CAAFA,aAAtB,EAAsBA,CAArBA,CAAD,EAAf,EAAe,CAAf;AACD;;AAED,MAAMI,IAAI,GAAGJ,EAAE,CAAFA,QAAb,OAAaA,CAAb;;AAEA,MAAII,IAAI,GAAR,GAAc;AACZ,WAAOzN,QAAQ,CAACqN,EAAE,CAAFA,UAAaI,IAAI,GAAjBJ,GAAuBA,EAAE,CAAFA,aAAxB,IAAwBA,CAAvBA,CAAD,EAAf,EAAe,CAAf;AACD;;AAED;AAtBK;AAyBP,IAAMK,SAAS,GAAGN,QAAlB;AACA,IAAMO,kBAAkB,GAAG,MAAM,CAAN,gBAAuB,CAAvB,YAAoC;AAAC/B,SAAO,EAAE;AAAV,CAApC,GAA3B;AAEA;;;;;;;AAMO,IAAMgC,QAAQ,GAAG,SAAXA,QAAW;AAAA,SACtB9K,OAAO,CAAPA,qBAA6BA,OAAO,CAAPA,iBAA7BA,KAA2DA,OAAO,CAAPA,SADrC;AAAjB;AAIP;;;;;;;AAMO,IAAM+K,oBAAoB,GAAG,SAAvBA,oBAAuB,UAAa;AAC/C,MAAMC,OAAO,GAAb;AACA,MAAIpB,IAAI,GAAG5J,OAAO,CAAlB;;AAEA,SAAO4J,IAAI,IAAIkB,QAAQ,CAAvB,IAAuB,CAAvB,EAA+B;AAC7BE,WAAO,CAAPA;AACApB,QAAI,GAAGA,IAAI,CAAXA;AACD;;AACD;AARK;AAWP;;;;;;;;AAOO,IAAMqB,YAAY,GAAG,SAAfA,YAAe,eAAkB;AAC5C,MAAMC,iBAAiB,GAAGH,oBAAoB,CAA9C,OAA8C,CAA9C;AACA,MAAMI,uBAAuB,GAAGD,iBAAiB,CAAjD;AACA,MAAME,sBAAsB,GAA5B;AACA,MAAIC,SAAS,GAAGrL,OAAO,CAJqB,GAIrB,CAAvB,CAJ4C,CAM5C;;AACA,MAAMsL,kBAAkB,GAAG,SAArBA,kBAAqB,UAAa;AACtC,QAAI,OAAOtL,OAAO,CAAd,SAAJ,aAAyC;AACvCA,aAAO,CAAPA,OAAe,CAACA,OAAO,CAAvBA;AACD;AAHH;;AAMA,+BAA6B;AAC3B,SAAK,IAAIhE,CAAC,GAAV,GAAgBA,CAAC,GAAjB,yBAA6CA,CAA7C,IAAkD;AAChD;AACAoP,4BAAsB,CAAtBA,KAA4B;AAC1BG,eAAO,EAAEL,iBAAiB,CAAjBA,CAAiB,CAAjBA,OADiB;AAE1BM,cAAM,EAAEN,iBAAiB,CAAjBA,CAAiB,CAAjBA,OAFkB;AAG1BO,gBAAQ,EAAEP,iBAAiB,CAAjBA,CAAiB,CAAjBA,OAHgB;AAI1BQ,kBAAU,EAAER,iBAAiB,CAAjBA,CAAiB,CAAjBA,OAA2BQ;AAJb,OAA5BN;AAOAF,uBAAiB,CAAjBA,CAAiB,CAAjBA;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA;AACAI,wBAAkB,CAACJ,iBAAiB,CAApCI,CAAoC,CAAlB,CAAlBA;AACD;;AAEDD,aAAS,GAAGrL,OAAO,CAAnBqL,GAAmB,CAAnBA;;AAEA,SAAK,IAAIxI,CAAC,GAAV,GAAgBA,CAAC,GAAjB,yBAA6CA,CAA7C,IAAkD;AAChDyI,wBAAkB,CAACJ,iBAAiB,CAApCI,CAAoC,CAAlB,CAAlBA;AACAJ,uBAAiB,CAAjBA,CAAiB,CAAjBA,iBAAqCE,sBAAsB,CAAtBA,CAAsB,CAAtBA,CAArCF;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA,gBAAoCE,sBAAsB,CAAtBA,CAAsB,CAAtBA,CAApCF;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA,kBAAsCE,sBAAsB,CAAtBA,CAAsB,CAAtBA,CAAtCF;AACAA,uBAAiB,CAAjBA,CAAiB,CAAjBA,oBAAwCE,sBAAsB,CAAtBA,CAAsB,CAAtBA,CAAxCF;AACD;AACF;;AACD;AAxCK;AA2CP;;;;;;;AAMO,IAAMS,MAAM,GAAG,SAATA,MAAS,aAAgB;AACpC,OAAK,IAAL,eAA0B;AACxBpD,MAAE,CAAFA,aAAgBqD,MAAM,CAAtBrD,GAAsB,CAAtBA;AACD;;AACD,SAAOA,EAAE,CAAT;AAJK;AAOP;;;;;;AAKO,IAAMsD,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAqB,WAAW,kBAAX,UAAuC,MAAMC,IAAI,CAAV,YAA5D,GAAqB,CAArB;AAAjB;AAEP;;;;;;AAKO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,kBAAqB;AAC3C,MAAI,CAACF,QAAQ,OAAb,SAAa,CAAb,EAAgC;AAC9BC,QAAI,CAAJA,aAAkB,MAAlBA;AACD;AAHI;AAMP;;;;;;AAKO,IAAME,WAAW,GAAG,SAAdA,WAAc,kBAAqB;AAC9C,MAAIC,QAAQ,GAAG,MAAMH,IAAI,CAAJA,+BAAN,GAAMA,CAAN,GAAf;;AAEA,MAAID,QAAQ,OAAZ,SAAY,CAAZ,EAA+B;AAC7B,WAAOI,QAAQ,CAARA,QAAiB,kBAAjBA,QAAP,GAAqD;AACnDA,cAAQ,GAAGA,QAAQ,CAARA,QAAiB,kBAAjBA,KAAXA,GAAWA,CAAXA;AACD;;AACDH,QAAI,CAAJA,YAAiBG,QAAQ,CAARA,sBAAjBH,EAAiBG,CAAjBH;AACD;AARI;AAWP;;;;;;;;AAOO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,8BAAiC;AAC/D,qBAAmB;AACjBC,YAAQ,CAARA,EAAQ,CAARA;AACD;;AAED,SAAO5D,EAAE,CAAFA,cAAiB,CAAC4D,QAAQ,CAAjC,EAAiC,CAAjC,EAAuC;AACrC5D,MAAE,GAAGA,EAAE,CAAPA;AACD;;AAED;AATK;AAYP;;;;;;;AAMO,IAAMG,YAAY,GAAG,SAAfA,YAAe,iBAAoB;AAC9C,MAAI,CAACtI,oDAAL,IAAKA,CAAL,EAA0B;AACxB,UAAM,cAAN,2BAAM,CAAN;AACD;;AACD,MAAI,EAAEmI,EAAE,YAAR,WAAI,CAAJ,EAAkC;AAChC,UAAM,cAAN,6BAAM,CAAN;AACD;;AACDlK,MAAI,GAAGA,IAAI,CAAXA,IAAOA,EAAPA;AACA,MAAM+L,KAAK,GAAGvO,QAAQ,CAARA,YAAd,aAAcA,CAAd;AAEAuO,OAAK,CAALA;AACA7B,IAAE,CAAFA;AAXK;AAcP;;;;;AAIO,IAAM6D,WAAW,GAAG,SAAdA,WAAc;AAAA,SACzBC,aAAa,CAAbA,iCAA+CA,aAAa,CADnC,WACzBA,CADyB;AAApB;AAGP;;;;;;;AAMO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,uBAA0B;AACzDC,QAAM,CAANA,QAAe,qBAAe;AAC5B,QAAI,CAAChE,EAAE,CAAP,mBAAO,CAAP,EAA8B;AAC5BA,QAAE,CAAFA,mBAAE,CAAFA;AACD;;AACD,QAAI,CAACA,EAAE,CAAFA,mBAAE,CAAFA,CAAL,SAAKA,CAAL,EAAyC;AACvCA,QAAE,CAAFA,mBAAE,CAAFA;AACD;;AAEDA,MAAE,CAAFA;;AAKA,QAAIA,EAAE,CAAFA,mBAAE,CAAFA,gCAAJ,GAA8D;AAC5DA,QAAE,CAAFA,mBAAE,CAAFA;AACD;AAfHgE;AADK;AAoBP;;;;;;;AAMO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,uBAA0B;AAC5DD,QAAM,CAANA,QAAe,qBAAe;AAC5B;AAEAhE,MAAE,CAAFA;;AAMA,QAAIA,EAAE,CAAFA,mBAAE,CAAFA,IAA2BA,EAAE,CAAFA,mBAAE,CAAFA,CAA3BA,SAA2BA,CAA3BA,IACF,CAACkE,KAAK,GAAGlE,EAAE,CAAFA,mBAAE,CAAFA,oBAAT,QAASA,CAAT,IAAiE,CADnE,GAEE;AACAA,QAAE,CAAFA,mBAAE,CAAFA;AACD;AAbHgE;AADK;AAkBP;;;;;;AAKO,IAAMG,wBAAwB,GAAG,SAA3BA,wBAA2B,eAAkB;AACxD,MAAI,CAACnE,EAAE,CAAP,mBAAO,CAAP,EAA8B;AAC5B;AACD;AAED;;AAEA;;;;;;;AAKA,wBAAsB;AACpB,QAAIoE,QAAQ,KAAKC,QAAQ,CAAzB,qBAA+C;AAC7C,kCAA4B,KAA5B;AACD;AACF;;AAED,OAAK,IAAL,aAAwBrE,EAAE,CAA1B,mBAA0B,CAA1B,EAAiD;AAC/CA,MAAE,CAAFA,mBAAE,CAAFA,wBAA+C;AAACsE,eAAS,EAAV;AAAuBtE,QAAE,EAAEA;AAA3B,KAA/CA;AACD;;AAEDA,IAAE,CAAFA,mBAAE,CAAFA;AACA;AAvBK;AA0BP;;;;;AAIO,IAAMuE,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACjC,MAAMzP,KAAK,GAAGxB,QAAQ,CAARA,cAAd,OAAcA,CAAd;AAEAwB,OAAK,CAALA;AACA,SAAOA,KAAK,CAALA,SAAP;AAJK,E;;;;;;;;;;;;AC/RP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAGO,IAAM0P,IAAI,GAAG,SAAPA,IAAO,GAAM;AACxB,MAAMC,EAAE,GAAG,SAALA,EAAK;AAAA,WAAM1D,IAAI,CAAJA,MAAW,CAAC,IAAIA,IAAI,CAAT,MAAKA,EAAL,IAAXA,gCAAN,CAAMA,CAAN;AAAX;;AACA,SAAO0D,EAAE,KAAKA,EAAPA,WAAoBA,EAApBA,WAAiCA,EAAjCA,WAA8CA,EAA9CA,WAA2DA,EAA3DA,KAAkEA,EAAlEA,KAAyEA,EAAhF;AAFK;AAKP;;;;;;;;;;AASO,IAAMC,KAAK,GAAG,SAARA,KAAQ;AAAA,oCAAcC,IAAd;AAAcA,QAAd,UAAcA,GAAd,eAAcA;AAAd;;AAAA,SAAuBC,UAAU,CAAC;AAAA,WAAMC,EAAE,CAAFA,YAAN,IAAMA,CAAN;AAAD,KAAjC,IAAiC,CAAjC;AAAd;AAEP;;;;;;;;;;AASO,IAAMC,QAAQ,GAAG,SAAXA,QAAW;AAAA,MAAKC,gBAAL;AAAA,SAAgC,YAAa;AACnE,QAAI,CAACF,EAAE,CAAP,YAAoB;AAAA,yCADsCF,IACtC;AADsCA,YACtC,OADsCA,GACtC,gBADsCA;AACtC;;AAClBE,QAAE,CAAFA,gBAAmBA,EAAE,CAAFA,cAAnBA,IAAmBA,CAAnBA;AACAA,QAAE,CAAFA;AACD;;AACDG,gBAAY,CAACH,EAAE,CAAfG,eAAY,CAAZA;AACAH,MAAE,CAAFA,kBAAqBD,UAAU,CAAC,YAAM;AACpCC,QAAE,CAAFA;AAD6B,OAA/BA,gBAA+B,CAA/BA;AAGA,WAAOA,EAAE,CAAT;AATsB;AAAjB;AAYA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,MAAG;AAAA,SAAItF,GAAG,KAAK,KAAZ;AAApB;AAEA,IAAMuF,OAAO,GAAG,SAAVA,OAAU,MAAG;AAAA,SAAIC,MAAM,CAANA,iCAAJ;AAAnB;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,SACzBzF,GAAG,KAAHA,QAAgBA,GAAG,KAAnBA,cAAuCsF,QAAQ,CAARA,GAAQ,CAARA,IAAiBhE,QAAQ,CAACtK,UAAU,CAArC,GAAqC,CAAX,CAAzBsO,IAAgDhE,QAAQ,CADtE,GACsE,CAA/FtB,CADyB;AAArB;AAGA,IAAM0F,iBAAiB,GAAG,SAApBA,iBAAoB,GAAa;AAAA,qCAATV,IAAS;AAATA,QAAS,OAATA,GAAS,gBAATA;AAAS;;AAC5C,MAAI,CAACA,IAAI,CAAT,QAAkB;AAChB;AACD;;AAED,OAAK,IAAIlR,CAAC,GAAL,GAAW6R,GAAG,GAAGX,IAAI,CAA1B,QAAmClR,CAAC,GAApC,KAA4CA,CAA5C,IAAiD;AAC/C,QAAI2R,YAAY,CAACT,IAAI,CAArB,CAAqB,CAAL,CAAhB,EAA2B;AACzB,aAAOA,IAAI,CAAX,CAAW,CAAX;AACD;AACF;;AAED;AAXK;AAcA,IAAMY,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAASJ,MAAM,CAANA,iCAAT;AAAjB;AAEA,IAAMK,YAAY,GAAG,SAAfA,YAAe,sBAAyB;AACnD,MAAMC,GAAG,GAAT;;AAEA,OAAK,IAAL,mBAA4B;AAC1BA,OAAG,CAAHA,GAAG,CAAHA,GAAWC,UAAU,CAArBD,GAAqB,CAArBA;AACD;;AACD,OAAK,IAAL,kBAAyB;AACvBA,OAAG,CAAHA,KAAG,CAAHA,GAAW/P,OAAO,CAAlB+P,KAAkB,CAAlBA;AACD;;AAED;AAVK;AAaA,IAAME,OAAO,GAAG,SAAVA,OAAU,gBAAmB;AACxC,MAAIzF,GAAG,GAAP,KAAe;AACb;AACD;;AACD,MAAIA,GAAG,GAAP,KAAe;AACb;AACD;;AACD;AAPK,E;;;;;;;;;;;AC5EP,yC;;;;;;;;;;;ACAA,yC","file":"/scripts/index.js","sourcesContent":["import parseDecimalNumber from './parseDecimalNumber';\r\n\r\nlet form = document.querySelector('form');\r\n\r\nif (form) {\r\n let submitBtn = form.querySelector('button');\r\n let numberInputs = form.querySelectorAll('input[data-custom-type=\"number\"]');\r\n\r\n if (numberInputs.length > 0) {\r\n for (let i = 0; i < numberInputs.length; i++) {\r\n\r\n numberInputs[i].addEventListener('keyup', function () {\r\n let thisValue = this.value.replace('.', '');\r\n let formattedNumber = parseDecimalNumber(thisValue, '.,');\r\n\r\n let localeNumber = formattedNumber.toLocaleString('da-DK', { useGrouping: true });\r\n\r\n if (localeNumber !== \"NaN\") {\r\n this.value = localeNumber;\r\n }\r\n });\r\n }\r\n\r\n submitBtn.addEventListener('click', function (e) {\r\n for (let i = 0; i < numberInputs.length; i++) {\r\n let numberValue = numberInputs[i].value;\r\n let formattedNumber = numberValue.replaceAll('.', '');\r\n\r\n numberInputs[i].value = formattedNumber;\r\n }\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n","import axios from \"axios\";\r\n\r\nlet form = document.querySelector('form');\r\n\r\nif (form) {\r\n let normMessages = form.querySelectorAll('.norm-message');\r\n // First import bank json\r\n let bankData = JSON.parse(sessionStorage.getItem('bankdata'));\r\n\r\n let regValue;\r\n let bankdataReg;\r\n let bankInfo;\r\n\r\n if (!bankData) {\r\n axios.get('/loaddata/banker.json').then((response) => {\r\n bankData = response.data;\r\n sessionStorage.setItem('bankdata', JSON.stringify(response.data));\r\n });\r\n }\r\n\r\n if (normMessages) {\r\n for (let i = 0; i < normMessages.length; i++) {\r\n let elm = normMessages[i],\r\n specialMessage = elm.querySelectorAll('.special-values'),\r\n normMessageText = elm.querySelector('.norm-message-text'),\r\n normData = elm.dataset,\r\n normMin = parseInt(normData.normMin),\r\n normMax = parseInt(normData.normMax),\r\n parent = elm.closest('.input-group'),\r\n input = parent.querySelector('input'),\r\n regNumber = form.querySelector(\"#RegNumber\");\r\n\r\n input.addEventListener('blur', function () {\r\n let val = parseInt(this.value.replace('.', '').replace(' ', ''));\r\n let parent = elm.closest('.input-group');\r\n let warningIcon = parent.querySelector('.input-warning-icon');\r\n let checkmarkIcon = parent.querySelector('.input-checkmark-icon');\r\n\r\n if (!isNaN(val)) {\r\n if (this.id === \"RegNumber\") {\r\n for (let i = 0; i < bankData.banker.length; i++) {\r\n let regValue = this.value;\r\n let bankdataReg = bankData.banker[i].reg;\r\n let bankName;\r\n\r\n let bankInfo = form.querySelector('.bank-info');\r\n let bank = form.querySelector('.bank');\r\n\r\n if (regValue === bankdataReg) {\r\n normMessageText.parentElement.classList.add('hidden');\r\n bankName = bankData.banker[i].Bank;\r\n bankInfo.style.display = 'block';\r\n bank.innerText = bankName;\r\n return;\r\n } else {\r\n bankInfo.style.display = 'none';\r\n }\r\n\r\n if (regValue !== bankdataReg) {\r\n normMessageText.parentElement.classList.remove('hidden');\r\n }\r\n }\r\n }\r\n\r\n if (val >= normMin && val <= normMax) {\r\n this.classList.remove('warning');\r\n warningIcon.classList.remove('active');\r\n if (this.classList.contains('valid')) {\r\n checkmarkIcon.style.opacity = \"1\"; \r\n }\r\n elm.classList.add('hidden');\r\n normMessageText.classList.add('hidden');\r\n } else {\r\n this.classList.add('warning');\r\n warningIcon.classList.add('active')\r\n checkmarkIcon.style.opacity = \"0\"; \r\n elm.classList.remove('hidden');\r\n normMessageText.classList.remove('hidden');\r\n\r\n\r\n for (let i = 0; i < specialMessage.length; i++) {\r\n specialMessage[i].classList.add('hidden');\r\n }\r\n }\r\n }\r\n\r\n });\r\n }\r\n }\r\n}","(function () {\r\n var options, parseDecimalNumber, patterns;\r\n\r\n patterns = [];\r\n\r\n options = {};\r\n\r\n module.exports = parseDecimalNumber = function (value, inOptions, enforceGroupSize) {\r\n var decimal, fractionPart, groupMinSize, integerPart, number, pattern, patternIndex, result, thousands;\r\n if (enforceGroupSize == null) {\r\n enforceGroupSize = true;\r\n }\r\n if (typeof inOptions === 'string') {\r\n if (inOptions.length !== 2) {\r\n throw {\r\n name: 'ArgumentException',\r\n message: 'The format for string options is \\'\\' (exactly two characters)'\r\n };\r\n }\r\n thousands = inOptions[0], decimal = inOptions[1];\r\n } else if (Array.isArray(inOptions)) {\r\n if (inOptions.length !== 2) {\r\n throw {\r\n name: 'ArgumentException',\r\n message: 'The format for array options is [\\'\\',\\'[\\'] (exactly two elements)'\r\n };\r\n }\r\n thousands = inOptions[0], decimal = inOptions[1];\r\n } else {\r\n thousands = (inOptions != null ? inOptions.thousands : void 0) || (inOptions != null ? inOptions.group : void 0) || options.thousands;\r\n decimal = (inOptions != null ? inOptions.decimal : void 0) || options.decimal;\r\n }\r\n patternIndex = \"\" + thousands + decimal + enforceGroupSize;\r\n pattern = patterns[patternIndex];\r\n if (pattern == null) {\r\n groupMinSize = enforceGroupSize ? 3 : 1;\r\n pattern = patterns[patternIndex] = new RegExp(\"^\\\\s*([+\\-]?(?:(?:\\\\d{1,3}(?:\\\\\" + thousands + \"\\\\d{\" + groupMinSize + \",3})+)|\\\\d*))(?:\\\\\" + decimal + \"(\\\\d*))?\\\\s*$\");\r\n }\r\n result = value.match(pattern);\r\n if (!((result != null) && result.length === 3)) {\r\n return NaN;\r\n }\r\n integerPart = result[1].replace(new RegExp(\"\\\\\" + thousands, 'g'), '');\r\n fractionPart = result[2];\r\n number = parseFloat(integerPart + \".\" + fractionPart);\r\n return number;\r\n };\r\n\r\n module.exports.setOptions = function (newOptions) {\r\n var key, value;\r\n for (key in newOptions) {\r\n value = newOptions[key];\r\n options[key] = value;\r\n }\r\n };\r\n\r\n module.exports.factoryReset = function () {\r\n options = {\r\n thousands: ',',\r\n decimal: '.'\r\n };\r\n };\r\n\r\n module.exports.withOptions = function (options, enforceGroupSize) {\r\n if (enforceGroupSize == null) {\r\n enforceGroupSize = true;\r\n }\r\n return function (value) {\r\n return parseDecimalNumber(value, options, enforceGroupSize);\r\n };\r\n };\r\n\r\n module.exports.factoryReset();\r\n\r\n}).call(this);","const readmore = {\r\n init: function () {\r\n\r\n this.readmores = [...document.querySelectorAll(\"[readmore]:not([readmore=init])\")];\r\n\r\n this.readmores.map(r => {\r\n let openButton = r.querySelector(\"[readmore-open-button]\");\r\n let closeButton = r.querySelector(\"[readmore-close-button]\");\r\n\r\n //closeReadmore(r);\r\n if (openButton) {\r\n openButton.addEventListener(\"click\", () => this.openReadmore(r));\r\n }\r\n //if (closeButton) {\r\n // closeButton.addEventListener(\"click\", () => closeReadmore(r));\r\n //}\r\n r.setAttribute(\"readmore\", \"init\");\r\n });\r\n\r\n },\r\n\r\n closeReadmore: function (readmore) {\r\n if (!readmore) return;\r\n closeContent(readmore.querySelector(\"[readmore-content]\"));\r\n setClosedClass(readmore.querySelector(\"[readmore-open-button]\"));\r\n setClosedClass(readmore.querySelector(\"[readmore-close-button]\"));\r\n },\r\n\r\n openReadmore: function (readmore) {\r\n if (!readmore) return;\r\n readmore.setAttribute(\"readmore-activated\", \"\")\r\n this.openContent(readmore.querySelector(\"[readmore-content]\"));\r\n this.setOpenClass(readmore.querySelector(\"[readmore-open-button]\"));\r\n this.setOpenClass(readmore.querySelector(\"[readmore-close-button]\"));\r\n },\r\n\r\n openContent: function (content) {\r\n if (!content) return;\r\n this.setOpenClass(content);\r\n },\r\n\r\n closeContent: function (content) {\r\n if (!content) return;\r\n setClosedClass(content);\r\n content.style.height = null;\r\n },\r\n\r\n setClosedClass: function (element) {\r\n if (!element) return;\r\n\r\n setClasses(element, element.getAttribute(\"readmore-open-class\"), \"remove\");\r\n setClasses(element, element.getAttribute(\"readmore-closed-class\"), \"add\");\r\n },\r\n\r\n setOpenClass: function (element) {\r\n if (!element) return;\r\n\r\n //this.setClasses(element, element.getAttribute(\"readmore-closed-class\"), \"remove\");\r\n this.setClasses(element, element.getAttribute(\"readmore-open-class\"), \"add\");\r\n },\r\n\r\n setClasses: function (element, classList, func) {\r\n if (!element || !classList) return;\r\n let classes = classList.split(\" \");\r\n if (func === \"remove\") {\r\n classes.map(c => element.classList.remove(c));\r\n }\r\n else {\r\n classes.map(c => element.classList.add(c));\r\n }\r\n }\r\n};\r\n\r\nexport default readmore.init();\r\n","///////////////////////////\r\n/*GITNOCOMMIT*/\r\n//////////\r\n\r\n// Polyfills\r\nimport objectFitImages from \"object-fit-images\";\r\nimport objectFitVideos from \"object-fit-videos\";\r\n\r\nobjectFitImages();\r\nobjectFitVideos();\r\n\r\nimport \"picturefill\";\r\nimport lazySizes from \"lazysizes\";\r\n\r\nimport \"details-polyfill\";\r\n\r\n\r\nimport rangeSlider from \"./loanCalculator/rangeslider\"\r\nimport './components/decimal-seperator'\r\nimport './components/readmore'\r\nimport './components/norm-messages'\r\n","import setPayment from './setPayment'\r\n\r\nexport default function setCalculatedValues(e, t, a, n, s, o, m, l, r, c) {\r\n const\r\n cAmount = document.querySelector(\".calc-amount\"),\r\n cMonth = document.querySelector(\".calc-month\"),\r\n cMonthlyPay = document.querySelectorAll(\".calc-monthlyPay\"),\r\n cDebitRent = document.querySelector(\".calc-debitrente\"),\r\n cCreditTotal = document.querySelector(\".calc-creditTotal\"),\r\n cAOP = document.querySelectorAll(\".calc-aop\"),\r\n cTotalCreditCost = document.querySelectorAll(\".calc-totalkreditcost\"),\r\n cCreditCost = document.querySelectorAll(\".calc-kreditcost\"),\r\n cInsurancePrice = document.querySelectorAll('.calc-insuranceprice'),\r\n cSetupFeeLoan = document.querySelectorAll(\".calc-setupfeeloan\");\r\n\r\n if (cAmount) {\r\n cAmount.innerHTML = e;\r\n }\r\n if (cMonth) {\r\n cMonth.innerHTML = t;\r\n }\r\n if (cMonthlyPay) {\r\n for (let i = 0; i < cMonthlyPay.length; i++) {\r\n cMonthlyPay[i].innerHTML = a;\r\n } \r\n }\r\n if (cDebitRent) {\r\n cDebitRent.innerHTML = n;\r\n }\r\n if (cCreditTotal) {\r\n cCreditTotal.innerHTML = s;\r\n }\r\n if (cAOP) {\r\n for (let i = 0; i < cAOP.length; i++) {\r\n cAOP[i].innerHTML = o;\r\n } \r\n }\r\n if (cTotalCreditCost) {\r\n for (let i = 0; i < cTotalCreditCost.length; i++) {\r\n cTotalCreditCost[i].innerHTML = m;\r\n } \r\n }\r\n if (cCreditCost) {\r\n for (let i = 0; i < cCreditCost.length; i++) {\r\n cCreditCost[i].innerHTML = l;\r\n } \r\n }\r\n if (cSetupFeeLoan) {\r\n for (let i = 0; i < cSetupFeeLoan.length; i++) {\r\n cSetupFeeLoan[i].innerHTML = r;\r\n }\r\n }\r\n if (cInsurancePrice) {\r\n for (let i = 0; i < cInsurancePrice.length; i++) {\r\n cInsurancePrice[i].innerHTML = c;\r\n }\r\n }\r\n}","// Vanilla Cookies - a dead simple yet full-featured JavaScript cookie library \r\n// derived from http://stackoverflow.com/a/19189846\r\n\r\n/*********************************************************\r\nGets the value of a cookie.\r\n**********************************************************/\r\nexport const getCookie = function getCookie (sName) {\r\n var oCrumbles = document.cookie.split(';');\r\n for (var i = 0; i < oCrumbles.length; i++) {\r\n var oPair = oCrumbles[i].split('=');\r\n var sKey = decodeURIComponent(oPair[0].trim());\r\n var sValue = oPair.length > 1 ? oPair[1] : '';\r\n if (sKey == sName) {\r\n return decodeURIComponent(sValue);\r\n }\r\n }\r\n return '';\r\n};\r\n/*****************************************************************\r\nSets the value of a cookie. Expiration date and path are optional.\r\n******************************************************************/\r\nexport const setCookie = function setCookie(sName, sValue, options) {\r\n //oDate.setYear(oDate.getFullYear()+1);\r\n var sCookie = encodeURIComponent(sName) + '=' + encodeURIComponent(sValue);\r\n\r\n // Shorthand: options === expires date\r\n if (options && options instanceof Date) {\r\n options = {\r\n expires: options\r\n };\r\n }\r\n // Longhand: options object\r\n if (options && typeof options == 'object') {\r\n if (options.expires) {\r\n sCookie += '; expires=' + options.expires.toGMTString();\r\n }\r\n if (options.path) {\r\n sCookie += '; path=' + options.path.toString();\r\n }\r\n if (options.domain) {\r\n sCookie += '; domain=' + options.domain.toString();\r\n }\r\n if (options.secure) {\r\n sCookie += '; secure';\r\n }\r\n }\r\n document.cookie = sCookie;\r\n};\r\n/*********************************************************\r\nClears and immediately expires a cookie.\r\n**********************************************************/\r\nexport const removeCookie = function removeCookie(sName, options) {\r\n if (!options) {\r\n var options = {};\r\n }\r\n options.expires = new Date();\r\n setCookie(sName, '', options);\r\n};","export default function displayAmount(amount) {\r\n let currencyCode = document.querySelector(\".calc-hidden-currency\");\r\n\r\n if (currencyCode) {\r\n let textvalue = document.querySelector(\".calc-hidden-currency\").value;\r\n textvalue = textvalue.replace(\"###\", amount.slice(amount.length - 3, 6));\r\n textvalue = textvalue.replace(\"#\", amount.slice(0, amount.length - 3));\r\n\r\n // Split value of the hidden currency input field and select the third element in the array\r\n // This will be our currency\r\n var currency = document.querySelector(\".calc-hidden-currency\").value.split(\" \")[2];\r\n\r\n // Add a period for every third character from the right to the amount\r\n var amount = amount.replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1.\");\r\n\r\n // Add both the amount and currency to a string ready to be placed in the html\r\n return textvalue;\r\n }\r\n}","import axios from \"axios\"\r\nimport setCalculatedValues from \"./calculatedValues\"\r\n\r\n\r\n\r\n\r\nexport default function loadJSON(e, t) {\r\n let loaddata = JSON.parse(sessionStorage.getItem('loaddata'));\r\n let siteID = sessionStorage.getItem('siteID');\r\n let siteLegacy = document.querySelector('[data-legacy]');\r\n let loanPageID = document.querySelector('[data-loan-page-id]').dataset.loanPageId;\r\n let siteLang = document.documentElement.lang;\r\n let langOption = '';\r\n\r\n let insuranceChecbox = document.querySelector('input[id=insurance]');\r\n\r\n let loaddataString = \"\";\r\n\r\n let legacyID = \"\";\r\n if (siteLegacy) {\r\n legacyID = siteLegacy.dataset.legacy;\r\n if (!siteID) {\r\n siteID = legacyID;\r\n }\r\n }\r\n\r\n if (siteLang == 'nb') {\r\n langOption = 'no'\r\n } else {\r\n langOption = 'se'\r\n }\r\n\r\n console.log(langOption)\r\n\r\n if (insuranceChecbox) {\r\n let calcInsurance = document.querySelector('.calc-insuranceprice');\r\n\r\n insuranceChecbox.addEventListener('change', function () {\r\n if (this.checked) {\r\n loaddataString = '/loaddata/' + legacyID + '-insurance-loaddata_' + langOption + '.json';\r\n calcInsurance.parentElement.classList.remove('hidden');\r\n\r\n axios.get(loaddataString).then((response) => {\r\n loaddata = response.data\r\n sessionStorage.setItem('loaddata', JSON.stringify(response.data));\r\n\r\n //setCalculatedValues\r\n for (let i = 0; i < loaddata.months.length; i++) {\r\n if (e == loaddata.months[i].amount && t == loaddata.months[i].month) {\r\n const j = loaddata.months[i];\r\n\r\n setCalculatedValues(\r\n j.amount,\r\n j.month,\r\n j.monthlyPay,\r\n j.debitrente,\r\n j.creditTotal,\r\n j.aop,\r\n j.totalkreditcost,\r\n j.kreditcost,\r\n j.setupfeeloan,\r\n j.insuranceprice\r\n )\r\n }\r\n }\r\n })\r\n } else {\r\n loaddataString = '/loaddata/' + legacyID + '-' + loanPageID + '-loaddata_' + langOption + '.json';\r\n calcInsurance.parentElement.classList.add('hidden');\r\n\r\n axios.get(loaddataString).then((response) => {\r\n loaddata = response.data\r\n sessionStorage.setItem('loaddata', JSON.stringify(response.data));\r\n\r\n //setCalculatedValues\r\n for (let i = 0; i < loaddata.months.length; i++) {\r\n if (e == loaddata.months[i].amount && t == loaddata.months[i].month) {\r\n const j = loaddata.months[i];\r\n\r\n setCalculatedValues(\r\n j.amount,\r\n j.month,\r\n j.monthlyPay,\r\n j.debitrente,\r\n j.creditTotal,\r\n j.aop,\r\n j.totalkreditcost,\r\n j.kreditcost,\r\n j.setupfeeloan,\r\n j.insuranceprice\r\n )\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n loaddataString = '/loaddata/' + legacyID + '-' + loanPageID + '-loaddata_' + langOption + '.json';\r\n\r\n console.log(loaddataString)\r\n\r\n if (!loaddata) {\r\n axios.get(loaddataString).then((response) => {\r\n loaddata = response.data\r\n sessionStorage.setItem('loaddata', JSON.stringify(response.data));\r\n\r\n //setCalculatedValues\r\n for (let i = 0; i < loaddata.months.length; i++) {\r\n if (e == loaddata.months[i].amount && t == loaddata.months[i].month) {\r\n const j = loaddata.months[i];\r\n\r\n setCalculatedValues(\r\n j.amount,\r\n j.month,\r\n j.monthlyPay,\r\n j.debitrente,\r\n j.creditTotal,\r\n j.aop,\r\n j.totalkreditcost,\r\n j.kreditcost,\r\n j.setupfeeloan,\r\n j.insuranceprice\r\n )\r\n }\r\n }\r\n })\r\n } else {\r\n\r\n //setCalculatedValues\r\n for (let i = 0; i < loaddata.months.length; i++) {\r\n if (e == loaddata.months[i].amount && t == loaddata.months[i].month) {\r\n const j = loaddata.months[i];\r\n\r\n setCalculatedValues(\r\n j.amount,\r\n j.month,\r\n j.monthlyPay,\r\n j.debitrente,\r\n j.creditTotal,\r\n j.aop,\r\n j.totalkreditcost,\r\n j.kreditcost,\r\n j.setupfeeloan,\r\n j.insuranceprice\r\n )\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import { getCookie } from \"./cookies\"\r\nimport { setCookie } from \"./cookies\"\r\nimport { removeCookie } from \"./cookies\"\r\nimport displayAmount from \"./currencyConverter\"\r\nimport rangeSlider from \"../vendor/rangeslider-pure/range-slider\"\r\nimport loadData from \"./loadData\";\r\nimport updateSliderPosition from \"./updateSliderPos\"\r\n\r\nconst calculator = document.querySelector('.calculator');\r\n\r\nif (calculator) {\r\n\r\n const slider = document.querySelectorAll('input[type=\"range\"]');\r\n\r\n //// Values\r\n let inputAmount = document.querySelector(\"input[name=start-amount]\").value;\r\n let inputMonth = document.querySelector(\"input[name=start-month]\").value;\r\n let monthName = document.querySelector(\"input[name=month-name]\").value;\r\n let currencyName = document.querySelector(\"input[name=currency-name]\").value;\r\n\r\n let sliderAmountCounterMin = document.querySelectorAll(\".loan-amount--min\"),\r\n sliderAmountCounterMax = document.querySelectorAll(\".loan-amount--max\");\r\n\r\n let sliderAmount = document.querySelector(\"input.slider-amount\"),\r\n sliderAmountMin = sliderAmount.min,\r\n sliderAmountMax = sliderAmount.max,\r\n sliderAmountCurrent = sliderAmount.value;\r\n\r\n\r\n\r\n let sliderMonth = document.querySelector(\"input.slider-month\"),\r\n sliderMonthMin = sliderMonth.min,\r\n sliderMonthMax = sliderMonth.max,\r\n sliderMonthCurrent = sliderMonth.value,\r\n interestFreeMonths = document.querySelector(\".calc-loan-total-interest-free-months\");\r\n\r\n if (cookieAmount && cookieMonth) {\r\n sliderAmountCurrent = cookieAmount;\r\n sliderMonthCurrent = cookieMonth;\r\n loadData(cookieAmount, cookieMonth)\r\n\r\n } else {\r\n loadData(sliderAmountCurrent, sliderMonthCurrent)\r\n }\r\n\r\n // Format currency min/max\r\n let amountMin = document.querySelector('.amount-min');\r\n let amountMinInner = amountMin.innerHTML;\r\n let amountMax = document.querySelector('.amount-max');\r\n let amountMaxInner = amountMax.innerHTML;\r\n\r\n amountMin.innerHTML = displayAmount(amountMinInner);\r\n amountMax.innerHTML = displayAmount(amountMaxInner);\r\n\r\n for (let i = 0; i < sliderAmountCounterMin.length; i++) {\r\n let sliderAmountMinVal = sliderAmountCounterMin[i].innerHTML;\r\n sliderAmountCounterMin[i].innerHTML = displayAmount(sliderAmountMinVal);\r\n }\r\n\r\n for (let i = 0; i < sliderAmountCounterMax.length; i++) {\r\n let sliderAmountMaxVal = sliderAmountCounterMax[i].innerHTML;\r\n sliderAmountCounterMax[i].innerHTML = displayAmount(sliderAmountMaxVal);\r\n }\r\n\r\n\r\n\r\n // Initialize a new plugin instance for one element or NodeList of elements.\r\n\r\n rangeSlider.create(slider, {\r\n polyfill: true,\r\n onInit: function (position, value) {\r\n sliderMonthCurrent = sliderMonth.value;\r\n sliderAmountCurrent = sliderAmount.value;\r\n\r\n loadData(sliderAmountCurrent, position)\r\n },\r\n onSlideStart: function (position, value) {\r\n },\r\n onSlide: function (position, value) {\r\n let sliderAmountCounter = document.querySelectorAll('.calc-loan-amount');\r\n let sliderMonthCounter = document.querySelectorAll('.calc-loan-term');\r\n sliderMonthCurrent = sliderMonth.value;\r\n sliderAmountCurrent = sliderAmount.value;\r\n\r\n\r\n if (this.element.classList == \"slider-amount\") {\r\n // update displayed amount \r\n for (let i = 0; i < sliderAmountCounter.length; i++) {\r\n sliderAmountCounter[i].innerHTML = displayAmount(position.toString());\r\n }\r\n // Load json data (loaddata(amount, month)\r\n loadData(position, sliderMonthCurrent)\r\n }\r\n if (this.element.classList == \"slider-month\") {\r\n for (let i = 0; i < sliderMonthCounter.length; i++) {\r\n sliderMonthCounter[i].innerHTML = position + monthName;\r\n };\r\n // Load json data (loaddata(amount, month))\r\n loadData(sliderAmountCurrent, position)\r\n }\r\n\r\n },\r\n onSlideEnd: function (position, value) {\r\n if (this.element.classList == \"slider-amount\") {\r\n loadData(position, sliderMonthCurrent)\r\n setCookie(\"amount\", position, cookiePath)\r\n } else if (this.element.classList == \"slider-month\") {\r\n loadData(sliderAmountCurrent, position)\r\n setCookie(\"months\", position, cookiePath)\r\n } else if (this.element.classList == \"slider-interest\") {\r\n setCookie(\"interestFreeDays\", position, cookiePath)\r\n }\r\n\r\n updateSliderPosition();\r\n }\r\n });\r\n\r\n\r\n\r\n\r\n let sliderAmountCounter = document.querySelectorAll('.calc-loan-amount'),\r\n sliderMonthCounter = document.querySelectorAll('.calc-loan-term');\r\n\r\n // Get cookie values if present and display frontend & set cookie path so we don't get duplicates\r\n const cookiePath = { path: \"/\" };\r\n let cookieAmount = getCookie('amount'),\r\n cookieMonth = getCookie('months');\r\n\r\n if (cookieAmount) {\r\n for (let i = 0; i < sliderAmountCounter.length; i++) {\r\n sliderAmountCounter[i].innerText = displayAmount(cookieAmount);\r\n }\r\n } else {\r\n for (let i = 0; i < sliderAmountCounter.length; i++) {\r\n let inner = sliderAmountCounter[i].innerText;\r\n sliderAmountCounter[i].innerText = displayAmount(inner);\r\n }\r\n }\r\n if (cookieMonth) {\r\n for (let i = 0; i < sliderMonthCounter.length; i++) {\r\n sliderMonthCounter[i].innerHTML = cookieMonth + monthName\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // Reset cookies with new values\r\n if (cookieAmount) {\r\n for (let i = 0; i < sliderAmountCounter.length; i++) {\r\n sliderAmountCounter[i].innerHTML = displayAmount(cookieAmount);\r\n }\r\n sliderAmountCurrent = cookieAmount;\r\n } else {\r\n setCookie(\"amount\", sliderAmountCurrent, cookiePath);\r\n }\r\n if (cookieMonth) {\r\n sliderMonthCurrent = cookieMonth;\r\n\r\n for (let i = 0; i < sliderMonthCounter.length; i++) {\r\n sliderMonthCounter[i].innerHTML = cookieMonth + monthName;\r\n }\r\n } else {\r\n setCookie(\"months\", sliderMonthCurrent, cookiePath)\r\n }\r\n}\r\nupdateSliderPosition();\r\n\r\n\r\n\r\n\r\n\r\n","export default function setPayment(e) {\r\n const cHiddenMonthsPayment = document.querySelector(\".calc-hidden-months-payment\")\r\n\r\n e = e.replace(\" \", \"\"),\r\n e = e.replace(\".\", \"\"),\r\n e = e.replace(\",-\", \"\"),\r\n e = e.replace(\":-\", \"\"),\r\n e = e.replace(\"kr.\", \"\"),\r\n e = e.replace(\" \", \"\"),\r\n cHiddenMonthsPayment.value = e;\r\n}","import rangeSlider from \"../vendor/rangeslider-pure/range-slider\"\r\nimport { getCookie } from \"./cookies\"\r\n\r\n// update position\r\nexport default function updateSliderPosition() {\r\n let sliderAmount = document.querySelectorAll('.slider-amount'),\r\n sliderMonth = document.querySelectorAll('.slider-month'),\r\n sliderInterestRee = document.querySelectorAll('.interest .slider-interest'),\r\n cookieValAmount = getCookie('amount'),\r\n cookieValMonth = getCookie('months'),\r\n cookieValInterestDays = getCookie('interestFreeDays'),\r\n maxAmount = sessionStorage.getItem('maxAmount'),\r\n maxMonth = sessionStorage.getItem('maxMonth'),\r\n monthlySteps = sessionStorage.getItem('monthSteps'),\r\n amountSteps = sessionStorage.getItem('amountSteps');\r\n \r\n\r\n if (sliderAmount) {\r\n for (let i = 0; i < sliderAmount.length; i++) {\r\n sliderAmount[i].rangeSlider.update({\r\n value: cookieValAmount,\r\n max: maxAmount,\r\n step: amountSteps\r\n });\r\n }\r\n }\r\n if (sliderMonth) {\r\n for (let i = 0; i < sliderMonth.length; i++) {\r\n sliderMonth[i].rangeSlider.update({\r\n value: cookieValMonth,\r\n max: maxMonth,\r\n step: monthlySteps\r\n });\r\n }\r\n }\r\n\r\n if (sliderInterestRee && cookieValInterestDays) {\r\n for (let i = 0; i < sliderInterestRee.length; i++) {\r\n sliderInterestRee[i].rangeSlider.update({\r\n value: cookieValInterestDays\r\n });\r\n }\r\n }\r\n}","import * as dom from './utils/dom';\r\nimport * as func from './utils/functions';\r\n\r\n\r\nconst newLineAndTabRegexp = new RegExp('/[\\\\n\\\\t]/', 'g');\r\nconst MAX_SET_BY_DEFAULT = 100;\r\nconst HANDLE_RESIZE_DELAY = 300;\r\nconst HANDLE_RESIZE_DEBOUNCE = 50;\r\n\r\nconst pluginName = 'rangeSlider';\r\nconst inputrange = dom.supportsRange();\r\nconst defaults = {\r\n polyfill: true,\r\n root: document,\r\n rangeClass: 'rangeSlider',\r\n disabledClass: 'rangeSlider--disabled',\r\n fillClass: 'rangeSlider__fill',\r\n bufferClass: 'rangeSlider__buffer',\r\n handleClass: 'rangeSlider__handle',\r\n startEvent: ['mousedown', 'touchstart', 'pointerdown'],\r\n moveEvent: ['mousemove', 'touchmove', 'pointermove'],\r\n endEvent: ['mouseup', 'touchend', 'pointerup'],\r\n min: null,\r\n max: null,\r\n step: null,\r\n value: null,\r\n buffer: null,\r\n stick: null,\r\n borderRadius: 10,\r\n vertical: false\r\n};\r\n\r\nlet verticalSlidingFixRegistered = false;\r\n\r\n/**\r\n * Plugin\r\n * @param {HTMLElement} element\r\n * @param {this} options\r\n */\r\nexport default class RangeSlider {\r\n constructor(element, options) {\r\n let minSetByDefault;\r\n let maxSetByDefault;\r\n let stepSetByDefault;\r\n let stickAttribute;\r\n let stickValues;\r\n\r\n RangeSlider.instances.push(this);\r\n\r\n this.element = element;\r\n this.options = func.simpleExtend(defaults, options);\r\n this.polyfill = this.options.polyfill;\r\n this.vertical = this.options.vertical;\r\n this.onInit = this.options.onInit;\r\n this.onSlide = this.options.onSlide;\r\n this.onSlideStart = this.options.onSlideStart;\r\n this.onSlideEnd = this.options.onSlideEnd;\r\n this.onSlideEventsCount = -1;\r\n this.isInteractsNow = false;\r\n this.needTriggerEvents = false;\r\n\r\n this._addVerticalSlideScrollFix();\r\n\r\n // Plugin should only be used as a polyfill\r\n if (!this.polyfill) {\r\n // Input range support?\r\n if (inputrange) {\r\n return;\r\n }\r\n }\r\n\r\n this.options.buffer = this.options.buffer || parseFloat(this.element.getAttribute('data-buffer'));\r\n\r\n this.identifier = 'js-' + pluginName + '-' + func.uuid();\r\n\r\n this.min = func.getFirsNumberLike(\r\n this.options.min,\r\n parseFloat(this.element.getAttribute('min')),\r\n (minSetByDefault = 0)\r\n );\r\n\r\n this.max = func.getFirsNumberLike(\r\n this.options.max,\r\n parseFloat(this.element.getAttribute('max')),\r\n (maxSetByDefault = MAX_SET_BY_DEFAULT)\r\n );\r\n\r\n this.value = func.getFirsNumberLike(this.options.value, this.element.value,\r\n parseFloat(this.element.value || this.min + (this.max - this.min) / 2));\r\n\r\n this.step = func.getFirsNumberLike(this.options.step,\r\n parseFloat(this.element.getAttribute('step')) || (stepSetByDefault = 1));\r\n\r\n this.percent = null;\r\n\r\n if (func.isArray(this.options.stick) && this.options.stick.length >= 1) {\r\n this.stick = this.options.stick;\r\n } else if ((stickAttribute = this.element.getAttribute('stick'))) {\r\n stickValues = stickAttribute.split(' ');\r\n if (stickValues.length >= 1) {\r\n this.stick = stickValues.map(parseFloat);\r\n }\r\n }\r\n if (this.stick && this.stick.length === 1) {\r\n this.stick.push(this.step * 1.5);\r\n }\r\n this._updatePercentFromValue();\r\n\r\n this.toFixed = this._toFixed(this.step);\r\n\r\n let directionClass;\r\n\r\n this.container = document.createElement('div');\r\n dom.addClass(this.container, this.options.fillClass);\r\n\r\n directionClass = this.vertical ? this.options.fillClass + '__vertical' : this.options.fillClass + '__horizontal';\r\n dom.addClass(this.container, directionClass);\r\n\r\n this.handle = document.createElement('div');\r\n dom.addClass(this.handle, this.options.handleClass);\r\n\r\n directionClass = this.vertical ?\r\n this.options.handleClass + '__vertical' :\r\n this.options.handleClass + '__horizontal';\r\n dom.addClass(this.handle, directionClass);\r\n\r\n this.range = document.createElement('div');\r\n dom.addClass(this.range, this.options.rangeClass);\r\n this.range.id = this.identifier;\r\n\r\n const elementTitle = element.getAttribute('title');\r\n if (elementTitle && elementTitle.length > 0) {\r\n this.range.setAttribute('title', elementTitle);\r\n }\r\n\r\n if (this.options.bufferClass) {\r\n this.buffer = document.createElement('div');\r\n dom.addClass(this.buffer, this.options.bufferClass);\r\n this.range.appendChild(this.buffer);\r\n\r\n directionClass = this.vertical ?\r\n this.options.bufferClass + '__vertical' :\r\n this.options.bufferClass + '__horizontal';\r\n dom.addClass(this.buffer, directionClass);\r\n }\r\n\r\n this.range.appendChild(this.container);\r\n this.range.appendChild(this.handle);\r\n\r\n directionClass = this.vertical ? this.options.rangeClass + '__vertical' : this.options.rangeClass + '__horizontal';\r\n dom.addClass(this.range, directionClass);\r\n\r\n if (func.isNumberLike(this.options.value)) {\r\n this._setValue(this.options.value, true);\r\n this.element.value = this.options.value;\r\n }\r\n\r\n if (func.isNumberLike(this.options.buffer)) {\r\n this.element.setAttribute('data-buffer', this.options.buffer);\r\n }\r\n\r\n if (func.isNumberLike(this.options.min) || minSetByDefault) {\r\n this.element.setAttribute('min', '' + this.min);\r\n }\r\n\r\n if (func.isNumberLike(this.options.max) || maxSetByDefault) {\r\n this.element.setAttribute('max', '' + this.max);\r\n }\r\n\r\n if (func.isNumberLike(this.options.step) || stepSetByDefault) {\r\n this.element.setAttribute('step', '' + this.step);\r\n }\r\n\r\n dom.insertAfter(this.element, this.range);\r\n\r\n // hide the input visually\r\n dom.setCss(this.element, {\r\n 'position': 'absolute',\r\n 'width': '1px',\r\n 'height': '1px',\r\n 'overflow': 'hidden',\r\n 'opacity': '0'\r\n });\r\n\r\n // Store context\r\n this._handleDown = this._handleDown.bind(this);\r\n this._handleMove = this._handleMove.bind(this);\r\n this._handleEnd = this._handleEnd.bind(this);\r\n this._startEventListener = this._startEventListener.bind(this);\r\n this._changeEventListener = this._changeEventListener.bind(this);\r\n this._handleResize = this._handleResize.bind(this);\r\n\r\n this._init();\r\n\r\n // Attach Events\r\n window.addEventListener('resize', this._handleResize, false);\r\n\r\n dom.addEventListeners(this.options.root, this.options.startEvent, this._startEventListener);\r\n\r\n // Listen to programmatic value changes\r\n this.element.addEventListener('change', this._changeEventListener, false);\r\n }\r\n\r\n /**\r\n * A lightweight plugin wrapper around the constructor,preventing against multiple instantiations\r\n * @param {Element} el\r\n * @param {Object} options\r\n */\r\n static create(el, options) {\r\n const createInstance = (el) => {\r\n let data = el[pluginName];\r\n\r\n // Create a new instance.\r\n if (!data) {\r\n data = new RangeSlider(el, options);\r\n el[pluginName] = data;\r\n }\r\n };\r\n\r\n if (el.length) {\r\n Array.prototype.slice.call(el).forEach(function (el) {\r\n createInstance(el);\r\n });\r\n } else {\r\n createInstance(el);\r\n }\r\n }\r\n\r\n static _touchMoveScrollHandler (event) {\r\n if (RangeSlider.slidingVertically) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /* public methods */\r\n\r\n /**\r\n * @param {Object} obj like {min : Number, max : Number, value : Number, step : Number, buffer : [String|Number]}\r\n * @param {Boolean} triggerEvents\r\n * @returns {RangeSlider}\r\n */\r\n update(obj, triggerEvents) {\r\n if (triggerEvents) {\r\n this.needTriggerEvents = true;\r\n }\r\n if (func.isObject(obj)) {\r\n if (func.isNumberLike(obj.min)) {\r\n this.element.setAttribute('min', '' + obj.min);\r\n this.min = obj.min;\r\n }\r\n\r\n if (func.isNumberLike(obj.max)) {\r\n this.element.setAttribute('max', '' + obj.max);\r\n this.max = obj.max;\r\n }\r\n\r\n if (func.isNumberLike(obj.step)) {\r\n this.element.setAttribute('step', '' + obj.step);\r\n this.step = obj.step;\r\n this.toFixed = this._toFixed(obj.step);\r\n }\r\n\r\n if (func.isNumberLike(obj.buffer)) {\r\n this._setBufferPosition(obj.buffer);\r\n }\r\n\r\n if (func.isNumberLike(obj.value)) {\r\n this._setValue(obj.value);\r\n }\r\n }\r\n this._update();\r\n this.onSlideEventsCount = 0;\r\n this.needTriggerEvents = false;\r\n return this;\r\n };\r\n\r\n destroy() {\r\n dom.removeAllListenersFromEl(this, this.options.root);\r\n window.removeEventListener('resize', this._handleResize, false);\r\n this.element.removeEventListener('change', this._changeEventListener, false);\r\n\r\n this.element.style.cssText = '';\r\n delete this.element[pluginName];\r\n\r\n // Remove the generated markup\r\n if (this.range) {\r\n this.range.parentNode.removeChild(this.range);\r\n }\r\n\r\n RangeSlider.instances = RangeSlider.instances.filter((plugin) => plugin !== this);\r\n\r\n if (!RangeSlider.instances.some((plugin) => plugin.vertical)) {\r\n this._removeVerticalSlideScrollFix();\r\n }\r\n }\r\n\r\n /* private methods */\r\n\r\n _toFixed(step) {\r\n return (step + '').replace('.', '').length - 1;\r\n }\r\n\r\n _init() {\r\n if (this.onInit && typeof this.onInit === 'function') {\r\n this.onInit();\r\n }\r\n this._update(false);\r\n }\r\n\r\n _updatePercentFromValue() {\r\n this.percent = (this.value - this.min) / (this.max - this.min);\r\n }\r\n\r\n /**\r\n * This method check if this.identifier exists in ev.target's ancestors\r\n * @param ev\r\n * @param data\r\n */\r\n _startEventListener(ev, data) {\r\n const el = ev.target;\r\n let isEventOnSlider = false;\r\n\r\n if (ev.which !== 1 && !('touches' in ev)) {\r\n return;\r\n }\r\n\r\n dom.forEachAncestors(\r\n el,\r\n el => (isEventOnSlider = el.id === this.identifier && !dom.hasClass(el, this.options.disabledClass)),\r\n true\r\n );\r\n\r\n if (isEventOnSlider) {\r\n this._handleDown(ev, data);\r\n }\r\n }\r\n\r\n _changeEventListener(ev, data) {\r\n if (data && data.origin === this.identifier) {\r\n return;\r\n }\r\n\r\n const value = ev.target.value;\r\n const pos = this._getPositionFromValue(value);\r\n\r\n this._setPosition(pos);\r\n }\r\n\r\n _update(triggerEvent) {\r\n const sizeProperty = this.vertical ? 'offsetHeight' : 'offsetWidth';\r\n\r\n this.handleSize = dom.getDimension(this.handle, sizeProperty);\r\n this.rangeSize = dom.getDimension(this.range, sizeProperty);\r\n this.maxHandleX = this.rangeSize - this.handleSize;\r\n this.grabX = this.handleSize;\r\n this.position = this._getPositionFromValue(this.value);\r\n\r\n // Consider disabled state\r\n if (this.element.disabled) {\r\n dom.addClass(this.range, this.options.disabledClass);\r\n } else {\r\n dom.removeClass(this.range, this.options.disabledClass);\r\n }\r\n\r\n this._setPosition(this.position);\r\n if (this.options.bufferClass && this.options.buffer) {\r\n this._setBufferPosition(this.options.buffer);\r\n }\r\n this._updatePercentFromValue();\r\n if (triggerEvent !== false) {\r\n dom.triggerEvent(this.element, 'change', { origin: this.identifier });\r\n }\r\n }\r\n\r\n _addVerticalSlideScrollFix() {\r\n if (this.vertical && !verticalSlidingFixRegistered) {\r\n document.addEventListener('touchmove', RangeSlider._touchMoveScrollHandler, { passive: false });\r\n verticalSlidingFixRegistered = true;\r\n }\r\n }\r\n\r\n _removeVerticalSlideScrollFix() {\r\n document.removeEventListener('touchmove', RangeSlider._touchMoveScrollHandler);\r\n verticalSlidingFixRegistered = false;\r\n }\r\n\r\n _handleResize() {\r\n return func.debounce(() => {\r\n // Simulate resizeEnd event.\r\n func.delay(() => {\r\n this._update();\r\n }, HANDLE_RESIZE_DELAY);\r\n }, HANDLE_RESIZE_DEBOUNCE)();\r\n }\r\n\r\n _handleDown(e) {\r\n this.isInteractsNow = true;\r\n e.preventDefault();\r\n dom.addEventListeners(this.options.root, this.options.moveEvent, this._handleMove);\r\n dom.addEventListeners(this.options.root, this.options.endEvent, this._handleEnd);\r\n\r\n // If we click on the handle don't set the new position\r\n if ((' ' + e.target.className + ' ').replace(newLineAndTabRegexp, ' ').indexOf(this.options.handleClass) > -1) {\r\n return;\r\n }\r\n\r\n const boundingClientRect = this.range.getBoundingClientRect();\r\n\r\n const posX = this._getRelativePosition(e);\r\n const rangeX = this.vertical ? boundingClientRect.bottom : boundingClientRect.left;\r\n const handleX = this._getPositionFromNode(this.handle) - rangeX;\r\n const position = posX - this.grabX;\r\n\r\n this._setPosition(position);\r\n\r\n if (posX >= handleX && posX < handleX + this.options.borderRadius * 2) {\r\n this.grabX = posX - handleX;\r\n }\r\n this._updatePercentFromValue();\r\n }\r\n\r\n _handleMove(e) {\r\n const posX = this._getRelativePosition(e);\r\n\r\n this.isInteractsNow = true;\r\n e.preventDefault();\r\n this._setPosition(posX - this.grabX);\r\n }\r\n\r\n _handleEnd(e) {\r\n e.preventDefault();\r\n dom.removeEventListeners(this.options.root, this.options.moveEvent, this._handleMove);\r\n dom.removeEventListeners(this.options.root, this.options.endEvent, this._handleEnd);\r\n\r\n // Ok we're done fire the change event\r\n dom.triggerEvent(this.element, 'change', { origin: this.identifier });\r\n\r\n if (this.isInteractsNow || this.needTriggerEvents) {\r\n if (this.onSlideEnd && typeof this.onSlideEnd === 'function') {\r\n this.onSlideEnd(this.value, this.percent, this.position);\r\n }\r\n\r\n if (this.vertical) {\r\n RangeSlider.slidingVertically = false;\r\n }\r\n }\r\n this.onSlideEventsCount = 0;\r\n this.isInteractsNow = false;\r\n }\r\n\r\n _setPosition(pos) {\r\n let position;\r\n let stickRadius;\r\n let restFromValue;\r\n let stickTo;\r\n\r\n // Snapping steps\r\n let value = this._getValueFromPosition(func.between(pos, 0, this.maxHandleX));\r\n\r\n // Stick to stick[0] in radius stick[1]\r\n if (this.stick) {\r\n stickTo = this.stick[0];\r\n stickRadius = this.stick[1] || 0.1;\r\n restFromValue = value % stickTo;\r\n if (restFromValue < stickRadius) {\r\n value = value - restFromValue;\r\n } else if (Math.abs(stickTo - restFromValue) < stickRadius) {\r\n value = value - restFromValue + stickTo;\r\n }\r\n }\r\n position = this._getPositionFromValue(value);\r\n\r\n // Update ui\r\n if (this.vertical) {\r\n this.container.style.height = (position + this.grabX) + 'px';\r\n this.handle.style['webkitTransform'] = 'translateY(-' + position + 'px)';\r\n this.handle.style['msTransform'] = 'translateY(-' + position + 'px)';\r\n this.handle.style.transform = 'translateY(-' + position + 'px)';\r\n } else {\r\n this.container.style.width = (position + this.grabX) + 'px';\r\n this.handle.style['webkitTransform'] = 'translateX(' + position + 'px)';\r\n this.handle.style['msTransform'] = 'translateX(' + position + 'px)';\r\n this.handle.style.transform = 'translateX(' + position + 'px)';\r\n }\r\n\r\n this._setValue(value);\r\n\r\n // Update globals\r\n this.position = position;\r\n this.value = value;\r\n this._updatePercentFromValue();\r\n\r\n if (this.isInteractsNow || this.needTriggerEvents) {\r\n if (this.onSlideStart && typeof this.onSlideStart === 'function' && this.onSlideEventsCount === 0) {\r\n this.onSlideStart(this.value, this.percent, this.position);\r\n }\r\n\r\n if (this.onSlide && typeof this.onSlide === 'function') {\r\n this.onSlide(this.value, this.percent, this.position);\r\n }\r\n\r\n if (this.vertical) {\r\n RangeSlider.slidingVertically = true;\r\n }\r\n }\r\n\r\n this.onSlideEventsCount++;\r\n }\r\n\r\n _setBufferPosition(pos) {\r\n let isPercent = true;\r\n\r\n if (isFinite(pos)) {\r\n pos = parseFloat(pos);\r\n } else if (func.isString(pos)) {\r\n if (pos.indexOf('px') > 0) {\r\n isPercent = false;\r\n }\r\n pos = parseFloat(pos);\r\n } else {\r\n console.warn('New position must be XXpx or XX%');\r\n return;\r\n }\r\n\r\n if (isNaN(pos)) {\r\n console.warn('New position is NaN');\r\n return;\r\n }\r\n if (!this.options.bufferClass) {\r\n console.warn('You disabled buffer, it\\'s className is empty');\r\n return;\r\n }\r\n let bufferSize = isPercent ? pos : (pos / this.rangeSize * 100);\r\n\r\n if (bufferSize < 0) {\r\n bufferSize = 0;\r\n }\r\n if (bufferSize > 100) {\r\n bufferSize = 100;\r\n }\r\n this.options.buffer = bufferSize;\r\n\r\n let paddingSize = this.options.borderRadius / this.rangeSize * 100;\r\n let bufferSizeWithPadding = bufferSize - paddingSize;\r\n\r\n if (bufferSizeWithPadding < 0) {\r\n bufferSizeWithPadding = 0;\r\n }\r\n\r\n if (this.vertical) {\r\n this.buffer.style.height = bufferSizeWithPadding + '%';\r\n this.buffer.style.bottom = paddingSize * 0.5 + '%';\r\n } else {\r\n this.buffer.style.width = bufferSizeWithPadding + '%';\r\n this.buffer.style.left = paddingSize * 0.5 + '%';\r\n }\r\n\r\n this.element.setAttribute('data-buffer', bufferSize);\r\n }\r\n\r\n /**\r\n *\r\n * @param {Element} node\r\n * @returns {*} Returns element position relative to the parent\r\n * @private\r\n */\r\n _getPositionFromNode(node) {\r\n let i = this.vertical ? this.maxHandleX : 0;\r\n\r\n while (node !== null) {\r\n i += this.vertical ? node.offsetTop : node.offsetLeft;\r\n node = node.offsetParent;\r\n }\r\n return i;\r\n }\r\n\r\n /**\r\n *\r\n * @param {(MouseEvent|TouchEvent)}e\r\n * @returns {number}\r\n */\r\n _getRelativePosition(e) {\r\n const boundingClientRect = this.range.getBoundingClientRect();\r\n\r\n // Get the offset relative to the viewport\r\n const rangeSize = this.vertical ? boundingClientRect.bottom : boundingClientRect.left;\r\n let pageOffset = 0;\r\n\r\n const pagePositionProperty = this.vertical ? 'pageY' : 'pageX';\r\n\r\n if (typeof e[pagePositionProperty] !== 'undefined') {\r\n pageOffset = (e.touches && e.touches.length) ? e.touches[0][pagePositionProperty] : e[pagePositionProperty];\r\n } else if (typeof e.originalEvent !== 'undefined') {\r\n if (typeof e.originalEvent[pagePositionProperty] !== 'undefined') {\r\n pageOffset = e.originalEvent[pagePositionProperty];\r\n } else if (e.originalEvent.touches && e.originalEvent.touches[0] &&\r\n typeof e.originalEvent.touches[0][pagePositionProperty] !== 'undefined') {\r\n pageOffset = e.originalEvent.touches[0][pagePositionProperty];\r\n }\r\n } else if (e.touches && e.touches[0] && typeof e.touches[0][pagePositionProperty] !== 'undefined') {\r\n pageOffset = e.touches[0][pagePositionProperty];\r\n } else if (e.currentPoint && (typeof e.currentPoint.x !== 'undefined' || typeof e.currentPoint.y !== 'undefined')) {\r\n pageOffset = this.vertical ? e.currentPoint.y : e.currentPoint.x;\r\n }\r\n\r\n if (this.vertical) {\r\n pageOffset -= window.pageYOffset;\r\n }\r\n\r\n return this.vertical ? rangeSize - pageOffset : pageOffset - rangeSize;\r\n }\r\n\r\n _getPositionFromValue(value) {\r\n const percentage = (value - this.min) / (this.max - this.min);\r\n const pos = percentage * this.maxHandleX;\r\n\r\n return isNaN(pos) ? 0 : pos;\r\n }\r\n\r\n _getValueFromPosition(pos) {\r\n const percentage = ((pos) / (this.maxHandleX || 1));\r\n const value = this.step * Math.round(percentage * (this.max - this.min) / this.step) + this.min;\r\n\r\n return Number((value).toFixed(this.toFixed));\r\n }\r\n\r\n _setValue(value, force) {\r\n if (value === this.value && !force) {\r\n return;\r\n }\r\n\r\n // Set the new value and fire the `input` event\r\n this.element.value = value;\r\n this.value = value;\r\n dom.triggerEvent(this.element, 'input', { origin: this.identifier });\r\n }\r\n}\r\n\r\n//RangeSlider.version = VERSION;\r\nRangeSlider.dom = dom;\r\nRangeSlider.functions = func;\r\nRangeSlider.instances = [];\r\nRangeSlider.slidingVertically = false;\r\n","import * as func from './functions';\r\n\r\nconst EVENT_LISTENER_LIST = 'eventListenerList';\r\n\r\nexport const detectIE = () => {\r\n const ua = window.navigator.userAgent;\r\n const msie = ua.indexOf('MSIE ');\r\n\r\n if (msie > 0) {\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n const trident = ua.indexOf('Trident/');\r\n\r\n if (trident > 0) {\r\n const rv = ua.indexOf('rv:');\r\n\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n const edge = ua.indexOf('Edge/');\r\n\r\n if (edge > 0) {\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst ieVersion = detectIE();\r\nconst eventCaptureParams = window.PointerEvent && !ieVersion ? {passive: false} : false;\r\n\r\n/**\r\n * Check if a `element` is visible in the DOM\r\n *\r\n * @param {Element} element\r\n * @return {Boolean}\r\n */\r\nexport const isHidden = (element) => (\r\n element.offsetWidth === 0 || element.offsetHeight === 0 || element.open === false\r\n);\r\n\r\n/**\r\n * Get hidden parentNodes of an `element`\r\n *\r\n * @param {Element} element\r\n * @return {Element[]}\r\n */\r\nexport const getHiddenParentNodes = (element) => {\r\n const parents = [];\r\n let node = element.parentNode;\r\n\r\n while (node && isHidden(node)) {\r\n parents.push(node);\r\n node = node.parentNode;\r\n }\r\n return parents;\r\n};\r\n\r\n/**\r\n * Returns dimensions for an element even if it is not visible in the DOM.\r\n *\r\n * @param {Element} element\r\n * @param {string} key (e.g. offsetWidth …)\r\n * @return {Number}\r\n */\r\nexport const getDimension = (element, key) => {\r\n const hiddenParentNodes = getHiddenParentNodes(element);\r\n const hiddenParentNodesLength = hiddenParentNodes.length;\r\n const hiddenParentNodesStyle = [];\r\n let dimension = element[key];\r\n\r\n // Used for native `
` elements\r\n const toggleOpenProperty = (element) => {\r\n if (typeof element.open !== 'undefined') {\r\n element.open = !element.open;\r\n }\r\n };\r\n\r\n if (hiddenParentNodesLength) {\r\n for (let i = 0; i < hiddenParentNodesLength; i++) {\r\n // Cache the styles to restore then later.\r\n hiddenParentNodesStyle.push({\r\n display: hiddenParentNodes[i].style.display,\r\n height: hiddenParentNodes[i].style.height,\r\n overflow: hiddenParentNodes[i].style.overflow,\r\n visibility: hiddenParentNodes[i].style.visibility\r\n });\r\n\r\n hiddenParentNodes[i].style.display = 'block';\r\n hiddenParentNodes[i].style.height = '0';\r\n hiddenParentNodes[i].style.overflow = 'hidden';\r\n hiddenParentNodes[i].style.visibility = 'hidden';\r\n toggleOpenProperty(hiddenParentNodes[i]);\r\n }\r\n\r\n dimension = element[key];\r\n\r\n for (let j = 0; j < hiddenParentNodesLength; j++) {\r\n toggleOpenProperty(hiddenParentNodes[j]);\r\n hiddenParentNodes[j].style.display = hiddenParentNodesStyle[j].display;\r\n hiddenParentNodes[j].style.height = hiddenParentNodesStyle[j].height;\r\n hiddenParentNodes[j].style.overflow = hiddenParentNodesStyle[j].overflow;\r\n hiddenParentNodes[j].style.visibility = hiddenParentNodesStyle[j].visibility;\r\n }\r\n }\r\n return dimension;\r\n};\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} el\r\n * @param {Object} cssObj\r\n * @returns {*}\r\n */\r\nexport const setCss = (el, cssObj) => {\r\n for (const key in cssObj) {\r\n el.style[key] = cssObj[key];\r\n }\r\n return el.style;\r\n};\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} elem\r\n * @param {string} className\r\n */\r\nexport const hasClass = (elem, className) => new RegExp(' ' + className + ' ').test(' ' + elem.className + ' ');\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} elem\r\n * @param {string} className\r\n */\r\nexport const addClass = (elem, className) => {\r\n if (!hasClass(elem, className)) {\r\n elem.className += ' ' + className;\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} elem\r\n * @param {string} className\r\n */\r\nexport const removeClass = (elem, className) => {\r\n let newClass = ' ' + elem.className.replace(/[\\t\\r\\n]/g, ' ') + ' ';\r\n\r\n if (hasClass(elem, className)) {\r\n while (newClass.indexOf(' ' + className + ' ') >= 0) {\r\n newClass = newClass.replace(' ' + className + ' ', ' ');\r\n }\r\n elem.className = newClass.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} el\r\n * @param {Function} callback\r\n * @param {boolean} andForElement - apply callback for el\r\n * @returns {HTMLElement}\r\n */\r\nexport const forEachAncestors = (el, callback, andForElement) => {\r\n if (andForElement) {\r\n callback(el);\r\n }\r\n\r\n while (el.parentNode && !callback(el)) {\r\n el = el.parentNode;\r\n }\r\n\r\n return el;\r\n};\r\n\r\n/**\r\n *\r\n * @param {HTMLElement} el\r\n * @param {string} name event name\r\n * @param {Object} data\r\n */\r\nexport const triggerEvent = (el, name, data) => {\r\n if (!func.isString(name)) {\r\n throw new TypeError('event name must be String');\r\n }\r\n if (!(el instanceof HTMLElement)) {\r\n throw new TypeError('element must be HTMLElement');\r\n }\r\n name = name.trim();\r\n const event = document.createEvent('CustomEvent');\r\n\r\n event.initCustomEvent(name, false, false, data);\r\n el.dispatchEvent(event);\r\n};\r\n\r\n/**\r\n * @param {Object} referenceNode after this\r\n * @param {Object} newNode insert this\r\n */\r\nexport const insertAfter = (referenceNode, newNode) =>\r\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\r\n\r\n/**\r\n * Add event listeners and push them to el[EVENT_LISTENER_LIST]\r\n * @param {HTMLElement|Node|Document} el DOM element\r\n * @param {Array} events\r\n * @param {Function} listener\r\n */\r\nexport const addEventListeners = (el, events, listener) => {\r\n events.forEach((eventName) => {\r\n if (!el[EVENT_LISTENER_LIST]) {\r\n el[EVENT_LISTENER_LIST] = {};\r\n }\r\n if (!el[EVENT_LISTENER_LIST][eventName]) {\r\n el[EVENT_LISTENER_LIST][eventName] = [];\r\n }\r\n\r\n el.addEventListener(\r\n eventName,\r\n listener,\r\n eventCaptureParams\r\n );\r\n if (el[EVENT_LISTENER_LIST][eventName].indexOf(listener) < 0) {\r\n el[EVENT_LISTENER_LIST][eventName].push(listener);\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Remove event listeners and remove them from el[EVENT_LISTENER_LIST]\r\n * @param {HTMLElement} el DOM element\r\n * @param {Array} events\r\n * @param {Function} listener\r\n */\r\nexport const removeEventListeners = (el, events, listener) => {\r\n events.forEach((eventName) => {\r\n let index;\r\n\r\n el.removeEventListener(\r\n eventName,\r\n listener,\r\n false\r\n );\r\n\r\n if (el[EVENT_LISTENER_LIST] && el[EVENT_LISTENER_LIST][eventName] &&\r\n (index = el[EVENT_LISTENER_LIST][eventName].indexOf(listener)) > -1\r\n ) {\r\n el[EVENT_LISTENER_LIST][eventName].splice(index, 1);\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Remove ALL event listeners which exists in el[EVENT_LISTENER_LIST]\r\n * @param {RangeSlider} instance\r\n * @param {HTMLElement} el DOM element\r\n */\r\nexport const removeAllListenersFromEl = (instance, el) => {\r\n if (!el[EVENT_LISTENER_LIST]) {\r\n return;\r\n }\r\n\r\n /* jshint ignore:start */\r\n\r\n /**\r\n *\r\n * @callback listener\r\n * @this {Object} event name\r\n */\r\n function rm(listener) {\r\n if (listener === instance._startEventListener) {\r\n this.el.removeEventListener(this.eventName, listener, false);\r\n }\r\n }\r\n\r\n for (const eventName in el[EVENT_LISTENER_LIST]) {\r\n el[EVENT_LISTENER_LIST][eventName].forEach(rm, {eventName: eventName, el: el});\r\n }\r\n\r\n el[EVENT_LISTENER_LIST] = {};\r\n /* jshint ignore:end */\r\n};\r\n\r\n/**\r\n * Range feature detection\r\n * @return {Boolean}\r\n */\r\nexport const supportsRange = () => {\r\n const input = document.createElement('input');\r\n\r\n input.setAttribute('type', 'range');\r\n return input.type !== 'text';\r\n};\r\n","/**\r\n * Create a random uuid\r\n */\r\nexport const uuid = () => {\r\n const s4 = () => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\r\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\r\n};\r\n\r\n/**\r\n * Delays a function for the given number of milliseconds, and then calls\r\n * it with the arguments supplied.\r\n *\r\n * @param {Function} fn function\r\n * @param {Number} wait delay\r\n * @param {Number} args arguments\r\n * @return {Function}\r\n */\r\nexport const delay = (fn, wait, ...args) => setTimeout(() => fn.apply(null, args), wait);\r\n\r\n/**\r\n * Returns a debounced function that will make sure the given\r\n * function is not triggered too much.\r\n *\r\n * @param {Function} fn Function to debounce.\r\n * @param {Number} debounceDuration OPTIONAL. The amount of time in milliseconds for which we will debounce the\r\n * function. (defaults to 100ms)\r\n * @return {Function}\r\n */\r\nexport const debounce = (fn, debounceDuration = 100) => (...args) => {\r\n if (!fn.debouncing) {\r\n fn.lastReturnVal = fn.apply(window, args);\r\n fn.debouncing = true;\r\n }\r\n clearTimeout(fn.debounceTimeout);\r\n fn.debounceTimeout = setTimeout(() => {\r\n fn.debouncing = false;\r\n }, debounceDuration);\r\n return fn.lastReturnVal;\r\n};\r\n\r\nexport const isString = obj => obj === '' + obj;\r\n\r\nexport const isArray = obj => Object.prototype.toString.call(obj) === '[object Array]';\r\n\r\nexport const isNumberLike = (obj) =>\r\n (obj !== null && obj !== undefined && ((isString(obj) && isFinite(parseFloat(obj))) || (isFinite(obj))));\r\n\r\nexport const getFirsNumberLike = (...args) => {\r\n if (!args.length) {\r\n return null;\r\n }\r\n\r\n for (let i = 0, len = args.length; i < len; i++) {\r\n if (isNumberLike(args[i])) {\r\n return args[i];\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const isObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]';\r\n\r\nexport const simpleExtend = (defaultOpt, options) => {\r\n const opt = {};\r\n\r\n for (let key in defaultOpt) {\r\n opt[key] = defaultOpt[key];\r\n }\r\n for (let key in options) {\r\n opt[key] = options[key];\r\n }\r\n\r\n return opt;\r\n};\r\n\r\nexport const between = (pos, min, max) => {\r\n if (pos < min) {\r\n return min;\r\n }\r\n if (pos > max) {\r\n return max;\r\n }\r\n return pos;\r\n};\r\n","// removed by extract-text-webpack-plugin","// removed by extract-text-webpack-plugin"],"sourceRoot":""}