{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/components/formValidation.js","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/login.js","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/login/login.js","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/login/resetPassword.js","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/utils/errorHelper.js","webpack:///./cartridges/app_custom_skandinavisk/cartridge/client/default/js/utils/helpers.js"],"names":["errorHelper","require","clearFormErrors","form","$form","$","find","empty","removeClass","formValidation","formElement","payload","errorContainer","parent","clearErrorNotification","fields","Object","keys","forEach","key","feedbackElement","children","length","Array","isArray","html","join","siblings","addClass","error","success","errorMsg","serverError","createErrorNotification","module","exports","document","ready","processInclude","errorHelpers","selectors","loginForm","registerForm","handleLogin","submit","e","preventDefault","url","attr","spinner","start","trigger","ajax","type","dataType","data","serialize","stop","location","href","redirectUrl","responseJSON","window","handleRegistration","err","errorMessage","resetPasswordForm","resetPasswordBtn","resetPasswordEmail","submitEmailBtn","resetPassword","$resetForm","text","receivedMsgHeading","append","receivedMsgBody","buttonText","clearFormPassword","$errorContainer","on","val","errorText","closeErrorBtn","alert","classes","displayNone","alertSuccess","alertDanger","elements","$document","$body","message","errorElSelector","$errorEl","$alertEl","isSuccess","handleEventListener","errorContainerEl","$this","closest","init","breakpoints","xs","s","m","l","xl","mediaBreakpoints","tabletMax","mobileMax","desktopOnly","include","getScreenSize","mediaQuery","matchMedia","matches","elementInViewport","el","offsetToTop","top","offsetTop","left","offsetLeft","width","offsetWidth","height","offsetHeight","offsetParent","pageXOffset","pageYOffset","innerHeight","innerWidth","compatMode","documentElement","scrollTop","clientHeight","scrollLeft","clientWidth","appendToUrl","params","newUrl","indexOf","map","encodeURIComponent","parseQueryString","filterUrl","queryString","split","parameters","prefs","i","keyValuePair","result","preferences","maxPrefs","Math","floor","value","scrollToPosition","scrollPos","duration","$scrollableEl","history","scrollRestoration","animate","scrollToAnchor","anchor","$anchor","headerElemHeight","extraMargin","parseInt","offset","subscribeMutationObserver","callback","config","childList","characterData","subtree","attributes","each","index","target","observer","MutationObserver","mutationsList","disconnect","observe"],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;;AAEb,MAAMA,WAAW,GAAGC,mBAAO,CAAC,mHAAD,CAA3B;AAEA;AACA;AACA;AACA;AACA;;;AACA,SAASC,eAAT,CAAyBC,IAAzB,EAA+B;AAC3B,QAAMC,KAAK,GAAGC,CAAC,CAACF,IAAD,CAAf;AACAC,OAAK,CAACE,IAAN,CAAW,mBAAX,EAAgCC,KAAhC;AACAH,OAAK,CAACE,IAAN,CAAW,0BAAX,EAAuCE,WAAvC,CAAmD,YAAnD;AACH;AAED;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwBC,WAAxB,EAAqCC,OAArC,EAA8C;AAC1C,MAAIC,cAAc,GAAGF,WAAW,CAACG,MAAZ,GAAqBP,IAArB,CAA0B,qBAA1B,CAArB;AACAJ,iBAAe,CAACQ,WAAD,CAAf;AAEAV,aAAW,CAACc,sBAAZ,CAAmCF,cAAnC;;AACA,MAAI,OAAOD,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,CAACI,MAA3C,EAAmD;AAC/CC,UAAM,CAACC,IAAP,CAAYN,OAAO,CAACI,MAApB,EAA4BG,OAA5B,CAAoC,UAASC,GAAT,EAAc;AAC9C,UAAIR,OAAO,CAACI,MAAR,CAAeI,GAAf,CAAJ,EAAyB;AACrB,YAAIC,eAAe,GAAGf,CAAC,CAACK,WAAD,CAAD,CACjBJ,IADiB,CACZ,YAAYa,GAAZ,GAAkB,IADN,EAEjBN,MAFiB,GAGjBQ,QAHiB,CAGR,mBAHQ,CAAtB;;AAIA,YAAID,eAAe,CAACE,MAAhB,GAAyB,CAA7B,EAAgC;AAC5B,cAAIC,KAAK,CAACC,OAAN,CAAcb,OAAO,CAACQ,GAAD,CAArB,CAAJ,EAAiC;AAC7BC,2BAAe,CAACK,IAAhB,CAAqBd,OAAO,CAACI,MAAR,CAAeI,GAAf,EAAoBO,IAApB,CAAyB,OAAzB,CAArB;AACH,WAFD,MAEO;AACHN,2BAAe,CAACK,IAAhB,CAAqBd,OAAO,CAACI,MAAR,CAAeI,GAAf,CAArB;AACH;;AACDC,yBAAe,CAACO,QAAhB,CAAyB,eAAzB,EAA0CC,QAA1C,CAAmD,YAAnD;AACH;AACJ;AACJ,KAfD;AAgBH;;AAED,MAAIjB,OAAO,KAAKA,OAAO,CAACkB,KAAR,IAAkB,aAAalB,OAAb,IAAwB,CAACA,OAAO,CAACmB,OAAxD,CAAX,EAA8E;AAC1E,QAAIC,QAAQ,GAAG,EAAf;;AAEA,QAAI,iBAAiBpB,OAAjB,IAA4BA,OAAO,CAACqB,WAApC,IAAmDrB,OAAO,CAACqB,WAAR,CAAoBV,MAApB,GAA6B,CAApF,EAAuF;AACnFS,cAAQ,GAAGpB,OAAO,CAACqB,WAAnB;AACH;;AAEDhC,eAAW,CAACiC,uBAAZ,CAAoCF,QAApC,EAA8CnB,cAA9C;AACH;AACJ;;AAEDsB,MAAM,CAACC,OAAP,GAAiB;AACb1B,gBADa;AAEbP;AAFa,CAAjB,C;;;;;;;;;;;;ACvDA;AAAA;AAAa;;AAEb;AAEAG,CAAC,CAAC+B,QAAD,CAAD,CAAYC,KAAZ,CAAkB,YAAY;AAC1BC,uEAAc,CAACrC,mBAAO,CAAC,sGAAD,CAAR,CAAd;AACAqC,uEAAc,CAACrC,mBAAO,CAAC,sHAAD,CAAR,CAAd;AACH,CAHD,E;;;;;;;;;;;;ACJa;;AAEb,MAAMQ,cAAc,GAAGR,mBAAO,CAAC,mIAAD,CAAP,CAAwCQ,cAA/D;;AACA,MAAM8B,YAAY,GAAGtC,mBAAO,CAAC,mHAAD,CAA5B;;AAEA,MAAMuC,SAAS,GAAG;AACdC,WAAS,EAAE,WADG;AAEdC,cAAY,EAAE;AAFA,CAAlB;AAKA;AACA;AACA;;AACA,SAASC,WAAT,GAAuB;AACnBtC,GAAC,CAACmC,SAAS,CAACC,SAAX,CAAD,CAAuBG,MAAvB,CAA8B,UAASC,CAAT,EAAY;AACtC,QAAIzC,KAAK,GAAGC,CAAC,CAAC,IAAD,CAAb;AACAwC,KAAC,CAACC,cAAF;AACA,UAAMC,GAAG,GAAG3C,KAAK,CAAC4C,IAAN,CAAW,QAAX,CAAZ;AACA5C,SAAK,CAAC6C,OAAN,GAAgBC,KAAhB;AACA9C,SAAK,CAAC+C,OAAN,CAAc,cAAd,EAA8BN,CAA9B;AACAxC,KAAC,CAAC+C,IAAF,CAAO;AACHL,SAAG,EAAEA,GADF;AAEHM,UAAI,EAAE,MAFH;AAGHC,cAAQ,EAAE,MAHP;AAIHC,UAAI,EAAEnD,KAAK,CAACoD,SAAN,EAJH;AAKH1B,aAAO,EAAE,UAAUyB,IAAV,EAAgB;AACrBnD,aAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;;AACA,YAAI,CAACF,IAAI,CAACzB,OAAV,EAAmB;AACfrB,wBAAc,CAACL,KAAD,EAAQmD,IAAR,CAAd;AACAnD,eAAK,CAAC+C,OAAN,CAAc,aAAd,EAA6BI,IAA7B;AACH,SAHD,MAGO;AACHnD,eAAK,CAAC+C,OAAN,CAAc,eAAd,EAA+BI,IAA/B;AACAG,kBAAQ,CAACC,IAAT,GAAgBJ,IAAI,CAACK,WAArB;AACH;AACJ,OAdE;AAeH/B,WAAK,EAAE,UAAU0B,IAAV,EAAgB;AACnB,YAAIA,IAAI,CAACM,YAAL,CAAkBD,WAAtB,EAAmC;AAC/BE,gBAAM,CAACJ,QAAP,CAAgBC,IAAhB,GAAuBJ,IAAI,CAACM,YAAL,CAAkBD,WAAzC;AACH,SAFD,MAEO;AACHxD,eAAK,CAAC+C,OAAN,CAAc,aAAd,EAA6BI,IAA7B;AACAnD,eAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;AACH;AACJ;AAtBE,KAAP;AAwBA,WAAO,KAAP;AACH,GA/BD;AAgCH;AAED;AACA;AACA;;;AACA,SAASM,kBAAT,GAA8B;AAC1B1D,GAAC,CAACmC,SAAS,CAACE,YAAX,CAAD,CAA0BE,MAA1B,CAAiC,UAAUC,CAAV,EAAa;AAC1C,UAAMzC,KAAK,GAAGC,CAAC,CAAC,IAAD,CAAf;AACAwC,KAAC,CAACC,cAAF;AACA,UAAMC,GAAG,GAAG3C,KAAK,CAAC4C,IAAN,CAAW,QAAX,CAAZ;AACA5C,SAAK,CAAC6C,OAAN,GAAgBC,KAAhB;AACA9C,SAAK,CAAC+C,OAAN,CAAc,gBAAd,EAAgCN,CAAhC;AACAxC,KAAC,CAAC+C,IAAF,CAAO;AACHL,SAAG,EAAEA,GADF;AAEHM,UAAI,EAAE,MAFH;AAGHC,cAAQ,EAAE,MAHP;AAIHC,UAAI,EAAEnD,KAAK,CAACoD,SAAN,EAJH;AAKH1B,aAAO,EAAE,UAAUyB,IAAV,EAAgB;AACrBnD,aAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;;AACA,YAAI,CAACF,IAAI,CAACzB,OAAV,EAAmB;AACf1B,eAAK,CAAC+C,OAAN,CAAc,sBAAd,EAAsCI,IAAtC;AACA9C,wBAAc,CAACL,KAAD,EAAQmD,IAAR,CAAd;AACH,SAHD,MAGO;AACHnD,eAAK,CAAC+C,OAAN,CAAc,wBAAd,EAAwCI,IAAxC;AACAG,kBAAQ,CAACC,IAAT,GAAgBJ,IAAI,CAACK,WAArB;AACH;AACJ,OAdE;AAeH/B,WAAK,EAAE,UAAUmC,GAAV,EAAe;AAClB,YAAIA,GAAG,CAACH,YAAJ,CAAiBD,WAArB,EAAkC;AAC9BE,gBAAM,CAACJ,QAAP,CAAgBC,IAAhB,GAAuBK,GAAG,CAACH,YAAJ,CAAiBD,WAAxC;AACH,SAFD,MAEO;AACHrB,sBAAY,CAACN,uBAAb,CAAqC+B,GAAG,CAACH,YAAJ,CAAiBI,YAAtD;AACH;;AAED7D,aAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;AACH;AAvBE,KAAP;AAyBA,WAAO,KAAP;AACH,GAhCD;AAiCH;;AAEDvB,MAAM,CAACC,OAAP,GAAiB;AACbQ,aADa;AAEboB;AAFa,CAAjB,C;;;;;;;;;;;;ACvFa;;AAEb,MAAM;AAAEtD,gBAAF;AAAkBP;AAAlB,IAAsCD,mBAAO,CAAC,mIAAD,CAAnD;;AACA,MAAMD,WAAW,GAAGC,mBAAO,CAAC,mHAAD,CAA3B;;AAEA,MAAMuC,SAAS,GAAG;AACd0B,mBAAiB,EAAE,yBADL;AAEdC,kBAAgB,EAAE,oBAFJ;AAGdC,oBAAkB,EAAE,uBAHN;AAIdC,gBAAc,EAAE,oBAJF;AAKdzD,gBAAc,EAAE;AALF,CAAlB;AAQA;AACA;AACA;;AACA,SAAS0D,aAAT,GAAyB;AACrB,QAAM;AAAEJ,qBAAF;AAAqBG;AAArB,MAAwC7B,SAA9C;AACA,QAAM+B,UAAU,GAAGlE,CAAC,CAAC6D,iBAAD,CAApB;AAEAK,YAAU,CAAC3B,MAAX,CAAkB,UAAUC,CAAV,EAAa;AAC3B,UAAMzC,KAAK,GAAGC,CAAC,CAAC,IAAD,CAAf;AACAwC,KAAC,CAACC,cAAF;AACA,QAAIC,GAAG,GAAG3C,KAAK,CAAC4C,IAAN,CAAW,QAAX,CAAV;AACA5C,SAAK,CAAC6C,OAAN,GAAgBC,KAAhB;AACAqB,cAAU,CAACpB,OAAX,CAAmB,gBAAnB,EAAqCN,CAArC;AACAxC,KAAC,CAAC+C,IAAF,CAAO;AACHL,SAAG,EAAEA,GADF;AAEHM,UAAI,EAAE,MAFH;AAGHC,cAAQ,EAAE,MAHP;AAIHC,UAAI,EAAEnD,KAAK,CAACoD,SAAN,EAJH;AAKH1B,aAAO,EAAE,UAAUyB,IAAV,EAAgB;AACrBnD,aAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;;AACA,YAAI,CAACF,IAAI,CAACzB,OAAV,EAAmB;AACfrB,wBAAc,CAACL,KAAD,EAAQmD,IAAR,CAAd;AACH,SAFD,MAEO;AACHlD,WAAC,CAAC,yBAAD,CAAD,CAA6BmE,IAA7B,CAAkCjB,IAAI,CAACkB,kBAAvC;AACApE,WAAC,CAAC,wBAAD,CAAD,CAA4BE,KAA5B,GACKmE,MADL,CACY,QAAQnB,IAAI,CAACoB,eAAb,GAA+B,MAD3C;AAEAtE,WAAC,CAACgE,cAAD,CAAD,CAAkBG,IAAlB,CAAuBjB,IAAI,CAACqB,UAA5B,EACK5B,IADL,CACU,YADV,EACwB,YADxB,EAEKA,IAFL,CAEU,aAFV,EAEyB,4BAFzB;AAGH;AACJ,OAjBE;AAkBHnB,WAAK,EAAE,YAAY;AACfzB,aAAK,CAAC6C,OAAN,GAAgBQ,IAAhB;AACH;AApBE,KAAP;AAsBA,WAAO,KAAP;AACH,GA7BD;AA8BH;AAED;AACA;AACA;;;AACA,SAASoB,iBAAT,GAA6B;AACzB,QAAM;AAAEV,oBAAF;AAAoBC,sBAApB;AAAwCF;AAAxC,MAA8D1B,SAApE;AACA,QAAMpC,KAAK,GAAGC,CAAC,CAAC6D,iBAAD,CAAf;AACA,QAAMY,eAAe,GAAG1E,KAAK,CAACS,MAAN,GAAeP,IAAf,CAAoBkC,SAAS,CAAC5B,cAA9B,CAAxB;AAEAP,GAAC,CAAC8D,gBAAD,CAAD,CAAoBY,EAApB,CAAuB,mBAAvB,EAA4C,YAAY;AACpD1E,KAAC,CAAC+D,kBAAD,CAAD,CAAsBY,GAAtB,CAA0B,EAA1B;AACA9E,mBAAe,CAACE,KAAD,CAAf;AACAJ,eAAW,CAACc,sBAAZ,CAAmCgE,eAAnC;AACH,GAJD;AAKH;;AAED5C,MAAM,CAACC,OAAP,GAAiB;AACbmC,eADa;AAEbO;AAFa,CAAjB,C;;;;;;;;;;;ACnEA,MAAMrC,SAAS,GAAG;AACd5B,gBAAc,EAAE,qBADF;AAEdqE,WAAS,EAAE,gBAFG;AAGdC,eAAa,EAAE,iBAHD;AAIdC,OAAK,EAAE;AAJO,CAAlB;AAOA,MAAMC,OAAO,GAAG;AACZC,aAAW,EAAE,cADD;AAEZC,cAAY,EAAE,eAFF;AAGZC,aAAW,EAAE;AAHD,CAAhB;AAMA,MAAMC,QAAQ,GAAG;AACbC,WAAS,EAAEpF,CAAC,CAAC+B,QAAD,CADC;AAEbsD,OAAK,EAAErF,CAAC,CAAC,MAAD;AAFK,CAAjB;AAKA;AACA;AACA;AACA;AACA;;AACA,SAAS4B,uBAAT,CAAiC0D,OAAjC,EAA0CC,eAAe,GAAGpD,SAAS,CAAC5B,cAAtE,EAAsF;AAClF,QAAM;AAAEqE,aAAF;AAAaE;AAAb,MAAuB3C,SAA7B;AACA,QAAM;AAAE6C,eAAF;AAAeC,gBAAf;AAA6BC;AAA7B,MAA6CH,OAAnD;AACA,QAAMS,QAAQ,GAAGxF,CAAC,CAACuF,eAAD,CAAlB;AACA,QAAME,QAAQ,GAAGzF,CAAC,CAAC8E,KAAD,CAAlB;;AAEA,MAAI,CAACQ,OAAD,IAAYA,OAAO,CAACrE,MAAR,KAAmB,CAAnC,EAAsC;AAClCR,0BAAsB,CAAC8E,eAAD,CAAtB;AACA;AACH;;AAEDC,UAAQ,CAACrF,WAAT,CAAqB6E,WAArB;AACAQ,UAAQ,CAACvF,IAAT,CAAc2E,SAAd,EAAyBxD,IAAzB,CAA8BkE,OAA9B;AAEA,MAAII,SAAS,GAAGF,QAAQ,CAACvF,IAAT,CAAcgF,YAAd,CAAhB;;AAEA,MAAIS,SAAJ,EAAe;AACXD,YAAQ,CAACtF,WAAT,CAAqB8E,YAArB,EAAmC1D,QAAnC,CAA4C2D,WAA5C;AACH;;AAEDS,qBAAmB;AACtB;AAED;AACA;AACA;AACA;;;AACA,SAASlF,sBAAT,CAAgCgE,eAAhC,EAAiD;AAC7C,MAAImB,gBAAgB,GAAG,IAAvB;AACA,QAAM;AAAErF;AAAF,MAAqB4B,SAA3B;AACA,QAAM;AAAEkD;AAAF,MAAYF,QAAlB;AACA,QAAM;AAAEH;AAAF,MAAkBD,OAAxB;;AAEA,MAAIN,eAAJ,EAAqB;AACjB,QAAI,OAAOA,eAAP,KAA2B,QAA3B,IAAuCA,eAAe,CAACxD,MAAhB,GAAyB,CAApE,EAAuE;AACnE2E,sBAAgB,GAAG5F,CAAC,CAACyE,eAAD,CAApB;AACH,KAFD,MAEO;AACHmB,sBAAgB,GAAGnB,eAAnB;AACH;AACJ,GAND,MAMO;AACHmB,oBAAgB,GAAG5F,CAAC,CAACO,cAAD,CAApB;AACH;;AAED,MAAIqF,gBAAgB,IAAI,OAAOA,gBAAP,KAA4B,QAAhD,IAA4DA,gBAAgB,CAAC3E,MAAjB,GAA0B,CAA1F,EAA6F;AACzFoE,SAAK,CAACvC,OAAN,CAAc,mBAAd;AACA8C,oBAAgB,CAACrE,QAAjB,CAA0ByD,WAA1B;AACH;;AAEDK,OAAK,CAACvC,OAAN,CAAc,kBAAd;AACH;AAED;AACA;AACA;;;AACA,SAAS6C,mBAAT,GAA+B;AAC3B,QAAM;AAAEpF,kBAAF;AAAkBsE;AAAlB,MAAoC1C,SAA1C;AACA,QAAM;AAAEiD;AAAF,MAAgBD,QAAtB;AAEAC,WAAS,CAACV,EAAV,CAAa,OAAb,EAAsBG,aAAtB,EAAqC,YAAW;AAC5C,UAAMgB,KAAK,GAAG7F,CAAC,CAAC,IAAD,CAAf;AACA,UAAMyE,eAAe,GAAGoB,KAAK,CAACC,OAAN,CAAcvF,cAAd,KAAiCsF,KAAK,CAACC,OAAN,CAAc,kBAAd,CAAzD;;AAEA,QAAIrB,eAAe,CAACxD,MAAhB,KAA2B,CAA/B,EAAkC;AAC9BR,4BAAsB,CAACgE,eAAD,CAAtB;AACH;AACJ,GAPD;AAQH;;AAED5C,MAAM,CAACC,OAAP,GAAiB;AACbiE,MAAI,EAAE,YAAW;AACbJ,uBAAmB;AACtB,GAHY;AAIb/D,yBAJa;AAKbnB;AALa,CAAjB,C;;;;;;;;;;;;AC3FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA,MAAMuF,WAAW,GAAG;AAChBC,IAAE,EAAE,GADY;AAEhBC,GAAC,EAAE,GAFa;AAGhBC,GAAC,EAAE,GAHa;AAIhBC,GAAC,EAAE,IAJa;AAKhBC,IAAE,EAAE;AALY,CAApB;AAQA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG;AACrBC,WAAS,EAAG,cAAaP,WAAW,CAACI,CAAE,KADlB;AACwB;AAC7CI,WAAS,EAAG,eAAcR,WAAW,CAACE,CAAE,KAFnB;AAEyB;AAC9CO,aAAW,EAAG,eAAcT,WAAW,CAACI,CAAZ,GAAgB,CAAE,KAHzB,CAG6B;;AAH7B,CAAzB;AAMA;AACA;AACA;AACA;;AACA,SAASnE,cAAT,CAAwByE,OAAxB,EAAiC;AAC7B,MAAI,OAAOA,OAAP,KAAmB,UAAvB,EAAmC;AAC/BA,WAAO;AACV,GAFD,MAEO,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AACpC/F,UAAM,CAACC,IAAP,CAAY8F,OAAZ,EAAqB7F,OAArB,CAA8BC,GAAD,IAAS;AAClC,UAAI,OAAO4F,OAAO,CAAC5F,GAAD,CAAd,KAAwB,UAA5B,EAAwC;AACpC4F,eAAO,CAAC5F,GAAD,CAAP;AACH;AACJ,KAJD;AAKH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6F,aAAT,CAAuBC,UAAvB,EAAmC;AAC/B,SAAOnD,MAAM,CAACoD,UAAP,CAAkBD,UAAlB,EAA8BE,OAArC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;;;AACC,SAASC,iBAAT,CAA2BC,EAA3B,EAA+BC,WAA/B,EAA4C;AACzC,MAAIC,GAAG,GAAGF,EAAE,CAACG,SAAb;AACA,MAAIC,IAAI,GAAGJ,EAAE,CAACK,UAAd;AACA,MAAIC,KAAK,GAAGN,EAAE,CAACO,WAAf;AACA,MAAIC,MAAM,GAAGR,EAAE,CAACS,YAAhB;;AAEA,SAAOT,EAAE,CAACU,YAAV,EAAwB;AACpBV,MAAE,GAAGA,EAAE,CAACU,YAAR;AACAR,OAAG,IAAIF,EAAE,CAACG,SAAV;AACAC,QAAI,IAAIJ,EAAE,CAACK,UAAX;AACH;;AAED,MAAI,OAAOJ,WAAP,KAAuB,WAA3B,EAAwC;AACpCC,OAAG,IAAID,WAAP;AACH;;AAED,MAAIxD,MAAM,CAACkE,WAAP,KAAuB,IAA3B,EAAiC;AAC7B,WAAOT,GAAG,GAAGzD,MAAM,CAACmE,WAAP,GAAqBnE,MAAM,CAACoE,WAAlC,IAAiDT,IAAI,GAAG3D,MAAM,CAACkE,WAAP,GAAqBlE,MAAM,CAACqE,UAApF,IAAkGZ,GAAG,GAAGM,MAAN,GAAe/D,MAAM,CAACmE,WAAxH,IAAuIR,IAAI,GAAGE,KAAP,GAAe7D,MAAM,CAACkE,WAApK;AACH;;AAED,MAAI5F,QAAQ,CAACgG,UAAT,KAAwB,YAA5B,EAA0C;AACtC,WACIb,GAAG,GAAGzD,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCC,SAAhC,GAA4CxE,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCE,YAAlF,IACGd,IAAI,GAAG3D,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCG,UAAhC,GAA6C1E,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCI,WADvF,IAEGlB,GAAG,GAAGM,MAAN,GAAe/D,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCC,SAFlD,IAGGb,IAAI,GAAGE,KAAP,GAAe7D,MAAM,CAAC1B,QAAP,CAAgBiG,eAAhB,CAAgCG,UAJtD;AAMH;AACJ;;AAED,SAASE,WAAT,CAAqB3F,GAArB,EAA0B4F,MAA1B,EAAkC;AAC9B,MAAIC,MAAM,GAAG7F,GAAb;AACA6F,QAAM,IAAI,CAACA,MAAM,CAACC,OAAP,CAAe,GAAf,MAAwB,CAAC,CAAzB,GAA6B,GAA7B,GAAmC,GAApC,IAA2C7H,MAAM,CAACC,IAAP,CAAY0H,MAAZ,EAAoBG,GAApB,CAAyB3H,GAAD,IAAU,GAAEA,GAAI,IAAG4H,kBAAkB,CAACJ,MAAM,CAACxH,GAAD,CAAP,CAAc,EAA3E,EAA8EO,IAA9E,CAAmF,GAAnF,CAArD;AAEA,SAAOkH,MAAP;AACH;;AAED,SAASI,gBAAT,CAA0BC,SAA1B,EAAqC;AACjC;AACA,MAAIC,WAAW,GAAGD,SAAS,CAACE,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAlB;AACA,MAAIC,UAAU,GAAGF,WAAW,CAACC,KAAZ,CAAkB,GAAlB,CAAjB;AACA,MAAIE,KAAK,GAAG,EAAZ;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,UAAU,CAAC9H,MAA/B,EAAuCgI,CAAC,EAAxC,EAA4C;AACxC,QAAIC,YAAY,GAAGH,UAAU,CAACE,CAAD,CAAV,CAAcH,KAAd,CAAoB,GAApB,CAAnB;;AAEA,QAAGI,YAAY,CAACjI,MAAb,IAAuB,CAA1B,EAA6B;AACzB+H,WAAK,CAACE,YAAY,CAAC,CAAD,CAAb,CAAL,GAAyBA,YAAY,CAAC,CAAD,CAArC;AACH;AACJ;;AAED,MAAIC,MAAM,GAAG;AACTC,eAAW,EAAE;AADJ,GAAb;AAIA,MAAIxI,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYoI,KAAZ,CAAX;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGrI,IAAI,CAACK,MAAzB,EAAiCgI,CAAC,EAAlC,EAAsC;AAClC;AACA,QAAID,KAAK,CAACpI,IAAI,CAACqI,CAAD,CAAL,CAAL,IAAkBrI,IAAI,CAACqI,CAAD,CAAJ,CAAQT,OAAR,CAAgB,MAAhB,KAA2B,CAAjD,EAAoD;AAChDW,YAAM,CAACvI,IAAI,CAACqI,CAAD,CAAL,CAAN,GAAkBD,KAAK,CAACpI,IAAI,CAACqI,CAAD,CAAL,CAAvB;AACH;AACJ,GAvBgC,CAyBjC;;;AACA,MAAII,QAAQ,GAAGC,IAAI,CAACC,KAAL,CAAW3I,IAAI,CAACK,MAAL,GAAc,CAAzB,CAAf;;AACA,OAAK,IAAIgI,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAII,QAArB,EAA+BJ,CAAC,EAAhC,EAAoC;AAChC,QAAInI,GAAG,GAAGkI,KAAK,CAAC,UAAUC,CAAX,CAAf;AACA,QAAIO,KAAK,GAAGR,KAAK,CAAC,UAAUC,CAAX,CAAjB;;AACA,QAAGnI,GAAG,IAAI,IAAP,IAAe0I,KAAK,IAAI,IAA3B,EAAiC;AAC7B;AACH;;AAEDL,UAAM,CAACC,WAAP,CAAmBtI,GAAnB,IAA0B0I,KAA1B;AACH;;AAED,SAAOL,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASM,gBAAT,CAA0BC,SAA1B,EAAqCC,QAArC,EAA+CC,aAA/C,EAA8D;AAC1DD,UAAQ,GAAGA,QAAQ,IAAI,GAAvB;AACAC,eAAa,GAAGA,aAAa,IAAI5J,CAAC,CAAC,YAAD,CAAlC;;AAEA,MAAIyD,MAAM,CAACoG,OAAP,CAAeC,iBAAnB,EAAsC;AAClCrG,UAAM,CAACoG,OAAP,CAAeC,iBAAf,GAAmC,QAAnC;AACH;;AAEDF,eAAa,CAACG,OAAd,CAAsB;AAClB9B,aAAS,EAAEyB,SAAS,IAAI;AADN,GAAtB,EAEGC,QAFH;AAGH;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,cAAT,CAAwBC,MAAxB,EAAgC3B,MAAhC,EAAwC;AACpC,MAAI2B,MAAM,CAAChJ,MAAP,KAAkB,CAAlB,IAAuB,OAAOgJ,MAAP,KAAkB,QAA7C,EAAuD;AAEvD,MAAIC,OAAO,GAAGlK,CAAC,CAACiK,MAAD,CAAf;AAEA,MAAIC,OAAO,CAACjJ,MAAR,KAAmB,CAAvB,EAA0B;AAE1BqH,QAAM,GAAGA,MAAM,IAAI,EAAnB;AAEA,QAAM6B,gBAAgB,GAAG7B,MAAM,CAAC6B,gBAAP,IAA2B,CAApD;AACA,QAAMC,WAAW,GAAG9B,MAAM,CAAC8B,WAAP,IAAsB,CAA1C;AACA,QAAMT,QAAQ,GAAGrB,MAAM,CAACqB,QAAP,IAAmB,GAApC;AACA,QAAMD,SAAS,GAAGW,QAAQ,CAAEH,OAAO,CAACI,MAAR,GAAiBpD,GAAjB,GAAuBiD,gBAAvB,GAA0CC,WAA5C,EAA0D,EAA1D,CAA1B;AAEAX,kBAAgB,CAACC,SAAD,EAAYC,QAAZ,CAAhB;AACH;;AAED,SAASY,yBAAT,CAAmCpF,QAAnC,EAA6CqF,QAA7C,EAAuD;AACnD;AACA,QAAMC,MAAM,GAAG;AAAEC,aAAS,EAAE,IAAb;AAAmBC,iBAAa,EAAE,IAAlC;AAAwCC,WAAO,EAAE,IAAjD;AAAuDC,cAAU,EAAE;AAAnE,GAAf,CAFmD,CAInD;;AACA7K,GAAC,CAACmF,QAAD,CAAD,CAAY2F,IAAZ,CAAiB,UAASC,KAAT,EAAgB/D,EAAhB,EAAoB;AACjC,QAAIgE,MAAM,GAAGhL,CAAC,CAACgH,EAAD,CAAD,CAAM,CAAN,CAAb,CADiC,CAGjC;;AACA,QAAIiE,QAAQ,GAAG,IAAIC,gBAAJ,CAAqB,UAASC,aAAT,EAAuBF,QAAvB,EAAiC;AACjET,cAAQ;AACX,KAFc,CAAf,CAJiC,CAQjC;AACA;;AACAxK,KAAC,CAACgH,EAAD,CAAD,CAAMtC,EAAN,CAAS,oBAAT,EAA+B,YAAW;AACtCuG,cAAQ,CAACG,UAAT;AACH,KAFD,EAViC,CAcjC;;AACAH,YAAQ,CAACI,OAAT,CAAiBL,MAAjB,EAAyBP,MAAzB;AACH,GAhBD;AAiBH","file":"default/js/login.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/app_custom_skandinavisk/cartridge/client/default/js/login.js\");\n","'use strict';\n\nconst errorHelper = require('../utils/errorHelper');\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n const $form = $(form);\n $form.find('.invalid-feedback').empty();\n $form.find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\n/**\n *\n * @param {Object} formElement - form element\n * @param {Object} payload - data\n */\nfunction formValidation(formElement, payload) {\n var errorContainer = formElement.parent().find('.js-error-messaging');\n clearFormErrors(formElement);\n\n errorHelper.clearErrorNotification(errorContainer);\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach(function(key) {\n if (payload.fields[key]) {\n var feedbackElement = $(formElement)\n .find('[name=\"' + key + '\"]')\n .parent()\n .children('.invalid-feedback');\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('
'));\n } else {\n feedbackElement.html(payload.fields[key]);\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n }\n }\n });\n }\n\n if (payload && (payload.error || ('success' in payload && !payload.success))) {\n var errorMsg = '';\n\n if ('serverError' in payload && payload.serverError && payload.serverError.length > 0) {\n errorMsg = payload.serverError;\n }\n\n errorHelper.createErrorNotification(errorMsg, errorContainer);\n }\n}\n\nmodule.exports = {\n formValidation,\n clearFormErrors\n};\n","'use strict';\n\nimport { processInclude } from './utils/helpers';\n\n$(document).ready(function () {\n processInclude(require('./login/login'));\n processInclude(require('./login/resetPassword'));\n});\n","'use strict';\n\nconst formValidation = require('../components/formValidation').formValidation;\nconst errorHelpers = require('../utils/errorHelper');\n\nconst selectors = {\n loginForm: '.js-login',\n registerForm: '.js-register'\n};\n\n/**\n * Handle account login\n */\nfunction handleLogin() {\n $(selectors.loginForm).submit(function(e) {\n var $form = $(this);\n e.preventDefault();\n const url = $form.attr('action');\n $form.spinner().start();\n $form.trigger('login:submit', e);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize(),\n success: function (data) {\n $form.spinner().stop();\n if (!data.success) {\n formValidation($form, data);\n $form.trigger('login:error', data);\n } else {\n $form.trigger('login:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (data) {\n if (data.responseJSON.redirectUrl) {\n window.location.href = data.responseJSON.redirectUrl;\n } else {\n $form.trigger('login:error', data);\n $form.spinner().stop();\n }\n }\n });\n return false;\n });\n}\n\n/**\n * Handles account registration\n */\nfunction handleRegistration() {\n $(selectors.registerForm).submit(function (e) {\n const $form = $(this);\n e.preventDefault();\n const url = $form.attr('action');\n $form.spinner().start();\n $form.trigger('login:register', e);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize(),\n success: function (data) {\n $form.spinner().stop();\n if (!data.success) {\n $form.trigger('login:register:error', data);\n formValidation($form, data);\n } else {\n $form.trigger('login:register:success', data);\n location.href = data.redirectUrl;\n }\n },\n error: function (err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n } else {\n errorHelpers.createErrorNotification(err.responseJSON.errorMessage);\n }\n\n $form.spinner().stop();\n }\n });\n return false;\n });\n}\n\nmodule.exports = {\n handleLogin,\n handleRegistration\n};\n","'use strict';\n\nconst { formValidation, clearFormErrors } = require('../components/formValidation');\nconst errorHelper = require('../utils/errorHelper');\n\nconst selectors = {\n resetPasswordForm: '.js-reset-password-form',\n resetPasswordBtn: '.js-reset-password',\n resetPasswordEmail: '#reset-password-email',\n submitEmailBtn: '#submitEmailButton',\n errorContainer: '.js-error-messaging'\n};\n\n/**\n * Reset password function\n */\nfunction resetPassword() {\n const { resetPasswordForm, submitEmailBtn } = selectors;\n const $resetForm = $(resetPasswordForm);\n\n $resetForm.submit(function (e) {\n const $form = $(this);\n e.preventDefault();\n var url = $form.attr('action');\n $form.spinner().start();\n $resetForm.trigger('login:register', e);\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize(),\n success: function (data) {\n $form.spinner().stop();\n if (!data.success) {\n formValidation($form, data);\n } else {\n $('.request-password-title').text(data.receivedMsgHeading);\n $('.request-password-body').empty()\n .append('
' + data.receivedMsgBody + '
');\n $(submitEmailBtn).text(data.buttonText)\n .attr('data-modal', 'closeModal')\n .attr('data-target', '#requestPasswordResetModal');\n }\n },\n error: function () {\n $form.spinner().stop();\n }\n });\n return false;\n });\n}\n\n/**\n * Clear Form function\n */\nfunction clearFormPassword() {\n const { resetPasswordBtn, resetPasswordEmail, resetPasswordForm } = selectors;\n const $form = $(resetPasswordForm);\n const $errorContainer = $form.parent().find(selectors.errorContainer);\n\n $(resetPasswordBtn).on('modal:beforeClose', function () {\n $(resetPasswordEmail).val('');\n clearFormErrors($form);\n errorHelper.clearErrorNotification($errorContainer);\n });\n}\n\nmodule.exports = {\n resetPassword,\n clearFormPassword\n};\n","const selectors = {\n errorContainer: '.js-error-messaging',\n errorText: '.js-alert-text',\n closeErrorBtn: '.js-close-alert',\n alert: '.js-alert'\n};\n\nconst classes = {\n displayNone: 'display-none',\n alertSuccess: 'alert-success',\n alertDanger: 'alert-danger'\n};\n\nconst elements = {\n $document: $(document),\n $body: $('body')\n};\n\n/**\n * Create an alert to display the error message\n * @param {string} message - Error message to display\n * @param {string} errorElSelector - Selector for the element that will be used to display error message (default value is '.error-messaging')\n */\nfunction createErrorNotification(message, errorElSelector = selectors.errorContainer) {\n const { errorText, alert } = selectors;\n const { displayNone, alertSuccess, alertDanger } = classes;\n const $errorEl = $(errorElSelector);\n const $alertEl = $(alert);\n\n if (!message || message.length === 0) {\n clearErrorNotification(errorElSelector);\n return;\n }\n\n $errorEl.removeClass(displayNone);\n $errorEl.find(errorText).html(message);\n\n let isSuccess = $errorEl.find(alertSuccess);\n\n if (isSuccess) {\n $alertEl.removeClass(alertSuccess).addClass(alertDanger);\n }\n\n handleEventListener();\n}\n\n/**\n * Clears the error message\n * @param {jQuery|string|undefined} $errorContainer - jQuery element - error message container (error-messaging .js-error-messaging)\n */\nfunction clearErrorNotification($errorContainer) {\n let errorContainerEl = null;\n const { errorContainer } = selectors;\n const { $body } = elements;\n const { displayNone } = classes;\n\n if ($errorContainer) {\n if (typeof $errorContainer === 'string' && $errorContainer.length > 0) {\n errorContainerEl = $($errorContainer);\n } else {\n errorContainerEl = $errorContainer;\n }\n } else {\n errorContainerEl = $(errorContainer);\n }\n\n if (errorContainerEl && typeof errorContainerEl === 'object' && errorContainerEl.length > 0) {\n $body.trigger('error:beforeClear');\n errorContainerEl.addClass(displayNone);\n }\n\n $body.trigger('error:afterClear');\n}\n\n/**\n * Adds event listener on close error message button\n */\nfunction handleEventListener() {\n const { errorContainer, closeErrorBtn } = selectors;\n const { $document } = elements;\n\n $document.on('click', closeErrorBtn, function() {\n const $this = $(this);\n const $errorContainer = $this.closest(errorContainer) || $this.closest('.error-messaging');\n\n if ($errorContainer.length !== 0) {\n clearErrorNotification($errorContainer);\n }\n });\n}\n\nmodule.exports = {\n init: function() {\n handleEventListener();\n },\n createErrorNotification,\n clearErrorNotification\n};\n","/**\n * Media breakpoints\n */\nconst breakpoints = {\n xs: 421,\n s: 767,\n m: 900,\n l: 1199,\n xl: 1440\n};\n\n/**\n * media queries\n */\nconst mediaBreakpoints = {\n tabletMax: `(max-width:${breakpoints.l}px)`, //(max-width: 1199px)\n mobileMax: `(max-width: ${breakpoints.s}px)`, //(max-width: 767px)\n desktopOnly: `(min-width: ${breakpoints.l + 1}px)`//(min-width: 1200px)\n};\n\n/**\n * example: processInclude(require('./components/search'));\n * @param {Object} include - required file\n */\nfunction processInclude(include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach((key) => {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n}\n\n/**\n * example: getScreenSize('(min-width: 1025px)');\n * isMobile: getScreenSize(mediaBreakpoints.mobileMax),\n * @param {string} mediaQuery - media query string - (min-width: 1025px)\n * @returns {boolean} - returns boolean value if screen size matched or not\n */\nfunction getScreenSize(mediaQuery) {\n return window.matchMedia(mediaQuery).matches;\n}\n\n/**\n * Checks if element is vertically and horizontally in viewport\n * @param {jQuery} el - jQuery object\n * @param {number} offsetToTop - tolerated margin, usually 0\n * @returns {boolean} - returns true if element is in view or false if not\n */\n function elementInViewport(el, offsetToTop) {\n var top = el.offsetTop;\n var left = el.offsetLeft;\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n if (typeof offsetToTop !== 'undefined') {\n top -= offsetToTop;\n }\n\n if (window.pageXOffset !== null) {\n return top < window.pageYOffset + window.innerHeight && left < window.pageXOffset + window.innerWidth && top + height > window.pageYOffset && left + width > window.pageXOffset;\n }\n\n if (document.compatMode === 'CSS1Compat') {\n return (\n top < window.document.documentElement.scrollTop + window.document.documentElement.clientHeight\n && left < window.document.documentElement.scrollLeft + window.document.documentElement.clientWidth\n && top + height > window.document.documentElement.scrollTop\n && left + width > window.document.documentElement.scrollLeft\n );\n }\n}\n\nfunction appendToUrl(url, params) {\n let newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map((key) => `${key}=${encodeURIComponent(params[key])}`).join('&');\n\n return newUrl;\n}\n\nfunction parseQueryString(filterUrl) {\n // get all url parameters as key value pairs\n var queryString = filterUrl.split('?')[1];\n var parameters = queryString.split('&');\n var prefs = {};\n for (var i = 0; i < parameters.length; i++) {\n var keyValuePair = parameters[i].split('=');\n\n if(keyValuePair.length == 2) {\n prefs[keyValuePair[0]] = keyValuePair[1];\n }\n }\n\n var result = {\n preferences: {}\n };\n\n var keys = Object.keys(prefs);\n for (var i = 0; i < keys.length; i++) {\n // add all parameters that do not start with pref\n if (prefs[keys[i]] && keys[i].indexOf('pref') != 0) {\n result[keys[i]] = prefs[keys[i]];\n }\n }\n\n // for each numbered pref parameter, add the key value pair to the result\n var maxPrefs = Math.floor(keys.length / 2);\n for (var i = 1; i <= maxPrefs; i++) {\n var key = prefs['prefn' + i];\n var value = prefs['prefv' + i];\n if(key == null || value == null) {\n continue;\n }\n\n result.preferences[key] = value;\n }\n\n return result;\n}\n\n/**\n * Scrolls the window to the top\n * Example: scrollToPosition(0, 1000);\n * @param {number} scrollPos - position which needs to be scrolled to\n * @param {number} duration - duration of scrolling\n * @param {Object} $scrollableEl - scrollable element\n */\nfunction scrollToPosition(scrollPos, duration, $scrollableEl) {\n duration = duration || 500;\n $scrollableEl = $scrollableEl || $('html, body');\n\n if (window.history.scrollRestoration) {\n window.history.scrollRestoration = 'manual';\n }\n\n $scrollableEl.animate({\n scrollTop: scrollPos || 0\n }, duration);\n}\n\n/**\n * Scrolls the window to the specific position/element\n * Example: scrollToAnchor('#product-details', { duration: 1000 });\n * @param {string} anchor - element selector which needs to be scrolled to\n * @param {Object} params - object of parameters - headerHeight, extraMargin, duration\n */\nfunction scrollToAnchor(anchor, params) {\n if (anchor.length === 0 || typeof anchor !== 'string') return;\n\n var $anchor = $(anchor);\n\n if ($anchor.length === 0) return;\n\n params = params || {};\n\n const headerElemHeight = params.headerElemHeight || 0;\n const extraMargin = params.extraMargin || 0;\n const duration = params.duration || 500;\n const scrollPos = parseInt(($anchor.offset().top - headerElemHeight - extraMargin), 10);\n\n scrollToPosition(scrollPos, duration);\n}\n\nfunction subscribeMutationObserver(elements, callback) {\n // config object\n const config = { childList: true, characterData: true, subtree: true, attributes: true, };\n\n // set a MutationObserver for each element\n $(elements).each(function(index, el) {\n var target = $(el)[0];\n\n // set mutation observer\n var observer = new MutationObserver(function(mutationsList,observer) {\n callback();\n });\n\n // observer should disconnect after fulfilling its purpose\n // create event listener\n $(el).on('disconnectObserver', function() {\n observer.disconnect();\n });\n\n // set the observer on the target\n observer.observe(target, config);\n });\n}\n\nexport {\n processInclude,\n appendToUrl,\n parseQueryString,\n getScreenSize,\n scrollToAnchor,\n scrollToPosition,\n mediaBreakpoints,\n breakpoints,\n elementInViewport,\n subscribeMutationObserver\n};\n"],"sourceRoot":""}