{"version":3,"file":"./modules/AnchorNavigation.xxxxxxxx.js","mappings":"oPASA,MAAMA,EAAiB,mCAER,MAAMC,EAWjB,YAAOC,CAAMC,EAAmBH,GAC5BI,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,QAAQC,IAAuBA,EAAKC,QAAQC,oBAAmBC,SAASC,IACpH,IAAIZ,EAAiBY,GACrBA,EAAQH,QAAQC,kBAAoB,MAAM,GAElD,CAEA,WAAAG,CAAmBD,GAAA,KAAAA,QAAAA,EAfX,KAAAE,SAA0BX,MAAMC,KAAKC,SAASC,iBAAiB,iDAgBnES,KAAKC,gBAAkB,IAAI,UAAgBJ,GAC3CG,KAAKE,aAAc,OAAUC,OAAQ,UACrCH,KAAKI,YAAa,OAAUd,SAAU,SACtCU,KAAKK,aAAc,OAAUF,OAAQ,QACrCH,KAAKM,iBAAkB,OAAUH,OAAQ,YAEzCH,KAAKO,MACT,CAEQ,IAAAA,G,MAEJ,OADmBP,KAAKQ,gBAAgBR,KAAKD,WAKzCC,KAAKH,QAAQY,gBAAgB,WAGjC,QAAiCT,KAAKH,QAAQa,cAAc,8BAE5DV,KAAKW,0BACAX,KAAKY,+BAA+BZ,KAAKK,YAAYQ,OAAOC,WAAU,IAAMd,KAAKY,gCACtFZ,KAAKe,UAAUD,WAAU,EAAGE,YAAoBhB,KAAKiB,sBAAmCD,KACxFhB,KAAKM,gBAAgBO,OAAOC,WAAU,IAAMd,KAAKY,gCACjDZ,KAAKI,WAAWU,WAAWI,GAAMlB,KAAKmB,qBAAqBD,KACvDlB,KAAKoB,+BAAiF,QAAnD,EAAApB,KAAKH,QAAQa,cAAc,gCAAwB,SAAEW,UAAUC,IAAI,iDAE1GtB,KAAKuB,6BAEEvB,OAjBHA,KAAKH,QAAQ2B,SACNxB,KAiBf,CAEQ,0BAAAuB,GACJ,IAAIE,GAAgB,EAEpBtB,OAAOuB,iBAAiB,aAAa,KAC7B1B,KAAK2B,sBACDF,GACAzB,KAAK4B,gBAAgB5B,KAAK2B,qBAC1BF,GAAgB,IAEhBzB,KAAK4B,gBAAgB5B,KAAK2B,qBAC1B3B,KAAK2B,oBAAsB,KAC3BF,GAAgB,GAExB,GAER,CAEQ,0BAAAL,GACJ,OAA8E,OAAvE9B,SAASuC,KAAKnB,cAAc,sCACvC,CAEQ,eAAAF,CAAgBT,GACpB,MAAM+B,EAAY9B,KAAKH,QAAQa,cAAc,6BACzCqB,EAAShC,EAASiC,KAAI,CAACC,EAAGC,KACtB,MAAMC,EAAWF,EAAEG,aAAa,kBAC5BC,EAAYJ,EAAEG,aAAa,oBAC/B,GAAKC,GAA2B,KAAdA,GAAqBF,EAEvC,OADAF,EAAEK,aAAa,sBAAuB,IAC/B,0DAA0DH,aAAoBE,mBAA2BA,OAAe,IAChIE,KAAK,IAEZ,OAAKR,GAELD,EAAUU,UAAYT,EAEtB/B,KAAKyC,kBAELzC,KAAKe,WAAY,OAAUe,EAAW,SAASjB,MAC3C,QAAO,EAAGG,YAAsD,MAApBA,EAAQ0B,WAGjD1C,MAVa,IAWxB,CAEQ,uBAAAW,GAKJ,OAJAX,KAAKE,YAAYW,MACb,OAAU,OACV,OAAUb,KAAKe,YACjBD,WAAU,IAAMd,KAAK2C,wBAChB3C,IACX,CAEQ,eAAAyC,GACJzC,KAAK4C,SAAWxD,MAAMC,KAAKW,KAAKH,QAAQN,iBAAiB,oBACzDS,KAAK6C,gCACT,CAEQ,8BAAAA,GACJ7C,KAAK4C,SAAShD,SAAQkD,IAClBA,EAAKpB,iBAAiB,YAAaR,IACjB,UAAVA,EAAE6B,KACFD,EAAKE,OACT,GACF,GAEV,CAEQ,iBAAAC,GACJ,OAAO7D,MAAMC,KAAKC,SAASC,iBAAiB,yBAChD,CAEQ,oBAAA4B,CAAqBD,GACzB,MAAMF,EAA6C,MAAtBE,EAAEF,OAAQ0B,QAA+BxB,EAAEF,OAAuBE,EAAEF,OAAQkC,QAAQ,KAC3GC,IAAW,GAA+BnC,EAAQoB,aAAa,QAEjEe,IAAY,QAAgBA,KAC5BjC,EAAEkC,iBACFpD,KAAKiB,sBAAsBD,GAEnC,CAEQ,eAAAqC,CAAgBxD,EAAsByD,EAAc,GACxD,MAAMC,EAAc1D,EAAQ2D,wBACxBC,EAAenE,SAASoE,gBAAgBD,aAC5C,OAAOE,KAAKC,MAAML,EAAYD,MAAQA,GAClCK,KAAKC,MAAML,EAAYD,KAAOG,GAC9BE,KAAKC,MAAML,EAAYM,QAAUP,CACzC,CAEQ,gBAAAQ,GAQJ,OAPY1E,MAAMC,KAAKW,KAAK4C,UAAUpD,QAAOsD,IACzC,IAAMiB,KAAMC,GAAclB,EAAKpD,QAC3BuE,EAAU3E,SAAS4E,eAAeF,GAEtC,OAAOhE,KAAKqD,gBAAgBY,EAASjE,KAAKmE,wBAAwB,IAG3D,EACf,CAEQ,gBAAAC,GACJ,MAAMC,EAAgBrE,KAAK8D,mBAQ3B,OAPA,QAAoB9D,KAAK4C,SAAU,aAE/ByB,IACArE,KAAKsE,mBAAgCtE,KAAKH,QAAQa,cAAc,6BAA8B2D,GAC9FA,EAAchD,UAAUC,IAAI,cAGzB+C,CACX,CAEQ,qBAAAF,GACJ,MAAMI,GAAkB,QAAiBvE,KAAKH,SAC9C,OAAOG,KAAKC,gBAAgBuE,cAAgBD,EAAkBvE,KAAKyE,uBAAwB,QAAiBzE,KAAKH,QACrH,CAEQ,mBAAA4E,GACJ,IAAIC,EAA0BpF,SAASoB,cAAc,kBACrD,OAAOgE,GAAa,QAAiBA,GAAc,CACvD,CAEQ,qBAAAzD,CAAsB0D,GAC1B,MAAMC,EAAiBtF,SAAS4E,eAAeS,EAAWjF,QAAQqE,OAASzE,SAASoB,cAAciE,EAAWvC,aAAa,SACtHuB,KAAKkB,MAAMD,EAAepB,wBAAwBF,OAAStD,KAAKmE,yBAChE,OAAUS,EAAgB,uBAAuB/D,MAAK,UAASC,WAAU,IAAMd,KAAKW,4BAEpFX,KAAKW,0BAGT,MAAMmE,EAAUF,EAAe1B,QAAQ,0BAiBvC,OAfI4B,GACAF,EAAe1B,QAAQ,sBAAsB6B,cAAc,IAAIC,YAAY,iBAAkB,CACzFC,OAAQ,CACJC,QAASJ,MAKrB9E,KAAK4B,gBAAgBgD,GAErB5E,KAAKW,0BAELX,KAAKsE,mBAAgCtE,KAAKH,QAAQa,cAAc,6BAA8BiE,GAC9F3E,KAAKmF,gCAAgCP,GAE9B5E,IACX,CAEQ,+BAAAmF,CAAgCd,GACpCA,EAAc/B,aAAa,WAAY,MACvC+B,EAAce,OAClB,CAEQ,eAAAxD,CAAgBqC,GACpBjE,KAAK2B,oBAAsBsC,EAC3B,MAAMoB,EAAqBpB,EAAQT,wBAAwBF,IAC3D,IAAIgC,EAAStF,KAAKuF,kBAElBC,uBAAsB,KAClBrF,OAAOsF,SAAS,CACZnC,IAAK+B,EAAqBC,EAC1BI,KAAM,EACNC,SAAU,UACZ,GAEV,CAEQ,eAAAJ,GACJ,IAAID,EAAS,EAETZ,EAA0BpF,SAASoB,cAAc,kBACrD,GAAIgE,IAAyD,UAA1CkB,iBAAiBlB,GAAYmB,UAAkE,WAA1CD,iBAAiBlB,GAAYmB,UAAwB,CACzH,MAAMC,EAAsBF,iBAAiBlB,GAAYqB,UAC7B,MAAxBD,GAAuD,QAAxBA,GAAyD,SAAxBA,IAChER,IAAU,QAAiBZ,GAEnC,CAEA,IAAIsB,EAA0B1G,SAASoB,cAAc,+BACjDsF,GAAwD,SAAzCJ,iBAAiBI,GAAYC,UAC5CX,IAAU,QAAiBU,IAG/B,IAAIE,EAAuClG,KAAKH,QAAQa,cAAc,yBAKtE,OAJIwF,GAAmF,UAAvDN,iBAAiBM,GAAyBL,UAA+E,WAAvDD,iBAAiBM,GAAyBL,WACxIP,IAAU,QAAiBY,IAGxBZ,CACX,CAEQ,kBAAAa,GACJ,MAAMC,EAAwBpG,KAAKH,QAAQ2D,wBAAwBF,IAE7D+C,GADoB,QAAmBrG,KAAKiD,qBACNO,wBAAwBK,OACpE,OAAOuC,GAAyBpG,KAAKyE,uBAAyB4B,EAAoB,CACtF,CAEQ,mBAAA1D,GAQJ,OAPI3C,KAAKmG,sBACLnG,KAAKH,QAAQa,cAAc,yBAAyBW,UAAUC,IAAI,gCAClEtB,KAAKoE,qBAELpE,KAAKH,QAAQa,cAAc,yBAAyBW,UAAUG,OAAO,iCACrE,QAAoBxB,KAAK4C,SAAU,cAEhC5C,IACX,CAEA,kBAAAsE,CAAmBgC,EAA4BzG,IACvC,WACA,eAGJyG,EAAcC,SAAS,CACnBjD,IAAK,EACLoC,KAAM7F,EAAQ2G,WAAa,GAC3Bb,SAAU,UAElB,CAEQ,2BAAA/E,GACJ,MAAM6F,EAAetG,OAAOuG,SAASD,KAAKE,UAAU,GAChD1C,EAAuB3E,SAAS4E,eAAe,GAAGuC,KAEtD,SAAIA,IAAmC,IAA3BA,EAAKG,QAAQ,WAAqB3C,KAC1CjE,KAAK4B,gBAAgBqC,IAEd,EAIf,EAgBAhF,EAAiBC,MAAMF,E,6DCtTZ,MAAM6H,EAOjB,WAAA/G,CAAYD,EAAsBiH,EAA2B,0BAA2BC,EAA6B,6BACjH/G,KAAKH,QAAUA,EACfG,KAAK8G,iBAAmBA,EACxB9G,KAAK+G,mBAAqBA,EAC1B/G,KAAKwE,cACLxE,KAAKO,MACT,CAEQ,IAAAA,GACJyG,OAAOC,gBAAgB,UAAW/F,GAAMlB,KAAKkH,OAAOhG,IAAIf,OAC5D,CAEA,MAAA+G,CAAOhG,GACHlB,KAAKmH,oBAAoBnH,KAAKoH,iBAC9BpH,KAAKoH,gBAAkBC,WAC3B,CAEQ,mBAAAF,CAAoBC,GACpBzD,KAAK2D,IAAID,YAAcD,GAAmB,IAE1CjH,OAAOoH,QAAU,IAEjBF,YAAcD,GACdpH,KAAKH,QAAQwB,UAAUC,IAAItB,KAAK8G,kBAChC9G,KAAKH,QAAQwB,UAAUG,OAAOxB,KAAK+G,oBACnC/G,KAAKwE,eAAgB,GACd6C,YAAcD,IACrBpH,KAAKH,QAAQwB,UAAUC,IAAItB,KAAK+G,oBAChC/G,KAAKH,QAAQwB,UAAUG,OAAOxB,KAAK8G,kBACnC9G,KAAKwE,eAAgB,GAG7B,E,aCxCH,WACC,aAwaEgD,EAAOC,QAAU,CAAEC,SArarB,WAEE,IAAIC,EAAIxH,OACJyH,EAAItI,SAGR,KACE,mBAAoBsI,EAAElE,gBAAgBmE,SACF,IAApCF,EAAEG,8BAFJ,CAQA,IAuB4BC,EAvBxBC,EAAUL,EAAEM,aAAeN,EAAEK,QAI7BE,EAAW,CACbhB,OAAQS,EAAET,QAAUS,EAAEpB,SACtBd,SAAUkC,EAAElC,SACZ0C,cAAeH,EAAQI,UAAUlB,QAAUmB,EAC3CC,eAAgBN,EAAQI,UAAUE,gBAIhCC,EACFZ,EAAEa,aAAeb,EAAEa,YAAYD,IAC3BZ,EAAEa,YAAYD,IAAIE,KAAKd,EAAEa,aACzBE,KAAKH,IAmBPI,GAXwBZ,EAWgBJ,EAAEiB,UAAUb,UAR/C,IAAIc,OAFa,CAAC,QAAS,WAAY,SAEVtG,KAAK,MAAMuG,KAAKf,GAQe,EAAI,GA0LzEJ,EAAET,OAASS,EAAEpB,SAAW,gBAEDwC,IAAjBC,UAAU,MAKsB,IAAhCC,EAAcD,UAAU,IAoB5BE,EAAaC,KACXxB,EACAC,EAAE/F,UACoBkH,IAAtBC,UAAU,GAAGtD,OACPsD,UAAU,GAAGtD,KACfiC,EAAEyB,SAAWzB,EAAE0B,iBACEN,IAArBC,UAAU,GAAG1F,MACP0F,UAAU,GAAG1F,IACfqE,EAAEJ,SAAWI,EAAEN,aA3BnBa,EAAShB,OAAOiC,KACdxB,OACsBoB,IAAtBC,UAAU,GAAGtD,KACTsD,UAAU,GAAGtD,KACW,iBAAjBsD,UAAU,GACfA,UAAU,GACVrB,EAAEyB,SAAWzB,EAAE0B,iBAEAN,IAArBC,UAAU,GAAG1F,IACT0F,UAAU,GAAG1F,SACIyF,IAAjBC,UAAU,GACRA,UAAU,GACVrB,EAAEJ,SAAWI,EAAEN,aAiB3B,EAGAM,EAAElC,SAAW,gBAEUsD,IAAjBC,UAAU,KAKVC,EAAcD,UAAU,IAC1Bd,EAASzC,SAAS0D,KAChBxB,OACsBoB,IAAtBC,UAAU,GAAGtD,KACTsD,UAAU,GAAGtD,KACW,iBAAjBsD,UAAU,GAAkBA,UAAU,GAAK,OACjCD,IAArBC,UAAU,GAAG1F,IACT0F,UAAU,GAAG1F,SACIyF,IAAjBC,UAAU,GAAmBA,UAAU,GAAK,GAOpDE,EAAaC,KACXxB,EACAC,EAAE/F,OACAmH,UAAU,GAAGtD,MAAQiC,EAAEyB,SAAWzB,EAAE0B,eACpCL,UAAU,GAAG1F,KAAOqE,EAAEJ,SAAWI,EAAEN,cAEzC,EAGAW,EAAQI,UAAUlB,OAASc,EAAQI,UAAU7B,SAAW,WAEtD,QAAqBwC,IAAjBC,UAAU,GAKd,IAAoC,IAAhCC,EAAcD,UAAU,IAA5B,CAqBA,IAAItD,EAAOsD,UAAU,GAAGtD,KACpBpC,EAAM0F,UAAU,GAAG1F,IAGvB4F,EAAaC,KACXnJ,KACAA,UACgB,IAAT0F,EAAuB1F,KAAKsJ,aAAe5D,OACnC,IAARpC,EAAsBtD,KAAKuJ,YAAcjG,EAVlD,KAnBA,CAEE,GAA4B,iBAAjB0F,UAAU,SAAoCD,IAAjBC,UAAU,GAChD,MAAM,IAAIQ,YAAY,gCAGxBtB,EAASC,cAAcgB,KACrBnJ,UAEsB+I,IAAtBC,UAAU,GAAGtD,OACPsD,UAAU,GAAGtD,KACS,iBAAjBsD,UAAU,KAAoBA,UAAU,GAAKhJ,KAAKsJ,gBAExCP,IAArBC,UAAU,GAAG1F,MACP0F,UAAU,GAAG1F,SACEyF,IAAjBC,UAAU,KAAqBA,UAAU,GAAKhJ,KAAKuJ,UAI3D,CAYF,EAGAvB,EAAQI,UAAU3C,SAAW,gBAENsD,IAAjBC,UAAU,MAKsB,IAAhCC,EAAcD,UAAU,IAc5BhJ,KAAKkH,OAAO,CACVxB,OAAQsD,UAAU,GAAGtD,KAAO1F,KAAKsJ,WACjChG,MAAO0F,UAAU,GAAG1F,IAAMtD,KAAKuJ,UAC/B5D,SAAUqD,UAAU,GAAGrD,WAhBvBuC,EAASC,cAAcgB,KACrBnJ,UACsB+I,IAAtBC,UAAU,GAAGtD,OACPsD,UAAU,GAAGtD,KAAO1F,KAAKsJ,aACzBN,UAAU,GAAKhJ,KAAKsJ,gBACLP,IAArBC,UAAU,GAAG1F,MACP0F,UAAU,GAAG1F,IAAMtD,KAAKuJ,YACxBP,UAAU,GAAKhJ,KAAKuJ,WAWhC,EAGAvB,EAAQI,UAAUE,eAAiB,WAEjC,IAAoC,IAAhCW,EAAcD,UAAU,IAA5B,CAUA,IAAIS,EAzON,SAA8BC,GAC5B,KAAOA,IAAO9B,EAAE/F,OAA6B,IAArB8H,EAAaD,IACnCA,EAAKA,EAAGE,YAAcF,EAAGG,KAG3B,OAAOH,CACT,CAmOyBI,CAAqB9J,MACxC+J,EAAcN,EAAiBjG,wBAC/BwG,EAAchK,KAAKwD,wBAEnBiG,IAAqB7B,EAAE/F,MAEzBqH,EAAaC,KACXnJ,KACAyJ,EACAA,EAAiBH,WAAaU,EAAYtE,KAAOqE,EAAYrE,KAC7D+D,EAAiBF,UAAYS,EAAY1G,IAAMyG,EAAYzG,KAIP,UAAlDqE,EAAE/B,iBAAiB6D,GAAkB5D,UACvC8B,EAAElC,SAAS,CACTC,KAAMqE,EAAYrE,KAClBpC,IAAKyG,EAAYzG,IACjBqC,SAAU,YAKdgC,EAAElC,SAAS,CACTC,KAAMsE,EAAYtE,KAClBpC,IAAK0G,EAAY1G,IACjBqC,SAAU,UA7Bd,MANEuC,EAASI,eAAea,KACtBnJ,UACiB+I,IAAjBC,UAAU,IAA0BA,UAAU,GAoCpD,CArZA,CA8CA,SAASX,EAAc4B,EAAGC,GACxBlK,KAAKsJ,WAAaW,EAClBjK,KAAKuJ,UAAYW,CACnB,CAkBA,SAASjB,EAAckB,GACrB,GACe,OAAbA,GACoB,iBAAbA,QACepB,IAAtBoB,EAASxE,UACa,SAAtBwE,EAASxE,UACa,YAAtBwE,EAASxE,SAIT,OAAO,EAGT,GAAwB,iBAAbwE,GAA+C,WAAtBA,EAASxE,SAE3C,OAAO,EAIT,MAAM,IAAIyE,UACR,oCACED,EAASxE,SACT,wDAEN,CASA,SAAS0E,EAAmBX,EAAIY,GAC9B,MAAa,MAATA,EACKZ,EAAGa,aAAe5B,EAAqBe,EAAGc,aAGtC,MAATF,EACKZ,EAAGe,YAAc9B,EAAqBe,EAAGgB,iBADlD,CAGF,CASA,SAASC,EAAYjB,EAAIY,GACvB,IAAIM,EAAgBjD,EAAE/B,iBAAiB8D,EAAI,MAAM,WAAaY,GAE9D,MAAyB,SAAlBM,GAA8C,WAAlBA,CACrC,CASA,SAASjB,EAAaD,GACpB,IAAImB,EAAgBR,EAAmBX,EAAI,MAAQiB,EAAYjB,EAAI,KAC/DoB,EAAgBT,EAAmBX,EAAI,MAAQiB,EAAYjB,EAAI,KAEnE,OAAOmB,GAAiBC,CAC1B,CAsBA,SAASC,EAAKC,GACZ,IACIC,EACAC,EACAC,EAxGQC,EAyGRC,GAJO9C,IAIWyC,EAAQM,WA9Jd,IAqDJF,EA4GZC,EAAUA,EAAU,EAAI,EAAIA,EAG5BJ,EA9GO,IAAO,EAAItH,KAAK4H,IAAI5H,KAAK6H,GAAKJ,IAgHrCF,EAAWF,EAAQS,QAAUT,EAAQf,EAAIe,EAAQS,QAAUR,EAC3DE,EAAWH,EAAQU,QAAUV,EAAQd,EAAIc,EAAQU,QAAUT,EAE3DD,EAAQW,OAAOxC,KAAK6B,EAAQY,WAAYV,EAAUC,GAG9CD,IAAaF,EAAQf,GAAKkB,IAAaH,EAAQd,GACjDvC,EAAEnC,sBAAsBuF,EAAKtC,KAAKd,EAAGqD,GAEzC,CAUA,SAAS9B,EAAaQ,EAAIO,EAAGC,GAC3B,IAAI0B,EACAH,EACAC,EACAC,EACAL,EAAY/C,IAGZmB,IAAO9B,EAAE/F,MACX+J,EAAajE,EACb8D,EAAS9D,EAAEyB,SAAWzB,EAAE0B,YACxBqC,EAAS/D,EAAEJ,SAAWI,EAAEN,YACxBsE,EAASzD,EAAShB,SAElB0E,EAAalC,EACb+B,EAAS/B,EAAGJ,WACZoC,EAAShC,EAAGH,UACZoC,EAAStD,GAIX0C,EAAK,CACHa,WAAYA,EACZD,OAAQA,EACRL,UAAWA,EACXG,OAAQA,EACRC,OAAQA,EACRzB,EAAGA,EACHC,EAAGA,GAEP,CA2LF,EAUF,CA/aA,E","sources":["webpack:///./modules/AnchorNavigation.ts","webpack:///./modules/ScrollDirection.ts","webpack:///../../../node_modules/smoothscroll-polyfill/dist/smoothscroll.js"],"sourcesContent":["/// \r\n\r\nimport { fromEvent, Observable } from 'rxjs';\r\nimport { takeUntil, filter, startWith, first } from 'rxjs/operators';\r\nimport { removeClassFromList, getElementHeight } from '../helpers/DOMHelpers';\r\nimport { getLastItemInArray, horizontalScrolling, isIOS, isSelectorValid } from '../helpers/helperFunctions';\r\nimport ScrollDirection from './ScrollDirection';\r\nimport smoothscroll from 'smoothscroll-polyfill';\r\n\r\nconst moduleSelector = '[data-module=\"AnchorNavigation\"]';\r\n\r\nexport default class AnchorNavigation {\r\n private scrollDirection: ScrollDirection;\r\n private navLinks: HTMLElement[];\r\n private sections: HTMLElement[] = Array.from(document.querySelectorAll('div:not(.nx-tabs__item) > [data-anchor-text]'));\r\n private scrollBody$: Observable;\r\n private clickNav$: Observable;\r\n private clickBody$: Observable;\r\n private windowLoad$: Observable;\r\n private windowPopstate$: Observable;\r\n private isScrollingToAnchor: HTMLElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new AnchorNavigation(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.scrollDirection = new ScrollDirection(element);\r\n this.scrollBody$ = fromEvent(window, 'scroll');\r\n this.clickBody$ = fromEvent(document, 'click');\r\n this.windowLoad$ = fromEvent(window, 'load');\r\n this.windowPopstate$ = fromEvent(window, 'popstate');\r\n\r\n this.init();\r\n }\r\n\r\n private init(): AnchorNavigation {\r\n const navigation = this.buildNavigation(this.sections);\r\n if (!navigation) {\r\n this.element.remove();\r\n return this;\r\n } else {\r\n this.element.removeAttribute('hidden');\r\n };\r\n\r\n horizontalScrolling(this.element.querySelector('.nx-scroll-wrapper__inner'));\r\n\r\n this.subscribeToScrollOnBody();\r\n if (!this.scrollToAnchorSectionOnLoad()) this.windowLoad$.pipe().subscribe(() => this.scrollToAnchorSectionOnLoad());\r\n this.clickNav$.subscribe(({ target }: Event) => this.scrollToActiveSection(target));\r\n this.windowPopstate$.pipe().subscribe(() => this.scrollToAnchorSectionOnLoad());\r\n this.clickBody$.subscribe((e) => this.onDefaultAnchorClick(e));\r\n if (this.isMainNavigationBurgerType()) this.element.querySelector('.nx-anchor-navigation')?.classList.add('nx-anchor-navigation--navigation-type-burger');\r\n\r\n this.correctPositionOnScrollEnd();\r\n\r\n return this;\r\n }\r\n\r\n private correctPositionOnScrollEnd() {\r\n let isFirstScroll = true;\r\n\r\n window.addEventListener('scrollend', () => {\r\n if (this.isScrollingToAnchor) {\r\n if (isFirstScroll) {\r\n this.scrollToSection(this.isScrollingToAnchor);\r\n isFirstScroll = false;\r\n } else {\r\n this.scrollToSection(this.isScrollingToAnchor);\r\n this.isScrollingToAnchor = null;\r\n isFirstScroll = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private isMainNavigationBurgerType(): boolean {\r\n return document.body.querySelector('header.nx-mob-burger-nav--activated') !== null;\r\n }\r\n\r\n private buildNavigation(sections: HTMLElement[]): AnchorNavigation {\r\n const container = this.element.querySelector('.nx-scroll-wrapper__inner'),\r\n markUp = sections.map((s, counter) => {\r\n const anchorId = s.getAttribute('data-anchor-id'),\r\n innerText = s.getAttribute('data-anchor-text');\r\n if (!innerText || innerText === \"\" || !anchorId) return;\r\n s.setAttribute('data-anchor-content', '')\r\n return `${innerText}`;\r\n }).join('');\r\n\r\n if (!markUp) return null;\r\n\r\n container.innerHTML = markUp;\r\n\r\n this.initAnchorLinks();\r\n\r\n this.clickNav$ = fromEvent(container, 'click').pipe(\r\n filter(({ target }: Event) => (target).tagName === 'A'),\r\n );\r\n\r\n return this;\r\n }\r\n\r\n private subscribeToScrollOnBody(): AnchorNavigation {\r\n this.scrollBody$.pipe(\r\n startWith(null),\r\n takeUntil(this.clickNav$),\r\n ).subscribe(() => this.setStickyNavigation());\r\n return this;\r\n }\r\n\r\n private initAnchorLinks() {\r\n this.navLinks = Array.from(this.element.querySelectorAll('.nx-anchor-link'));\r\n this.triggerClickOnEnterForNavLinks();\r\n }\r\n\r\n private triggerClickOnEnterForNavLinks() {\r\n this.navLinks.forEach(link => {\r\n link.addEventListener(\"keypress\", (e) => {\r\n if (e.key === \"Enter\") {\r\n link.click();\r\n }\r\n });\r\n });\r\n }\r\n\r\n private getAnchorSections() {\r\n return Array.from(document.querySelectorAll('[data-anchor-content]'));\r\n }\r\n\r\n private onDefaultAnchorClick(e) {\r\n const target = (e.target).tagName === 'A' ? e.target : (e.target).closest('a');\r\n const targetID = (target) ? (target).getAttribute('href') : false;\r\n\r\n if (targetID && isSelectorValid(targetID)) {\r\n e.preventDefault();\r\n this.scrollToActiveSection(target as HTMLAnchorElement);\r\n }\r\n }\r\n\r\n private isOnTopViewport(element: HTMLElement, top: number = 0): boolean {\r\n const elementRect = element.getBoundingClientRect(),\r\n offsetHeight = document.documentElement.offsetHeight;\r\n return Math.floor(elementRect.top) <= top &&\r\n Math.floor(elementRect.top) < offsetHeight &&\r\n Math.floor(elementRect.bottom) > top;\r\n }\r\n\r\n private getActiveSection(): HTMLElement {\r\n const arr = Array.from(this.navLinks).filter(link => {\r\n let { href: sectionId } = link.dataset;\r\n let section = document.getElementById(sectionId);\r\n\r\n return this.isOnTopViewport(section, this.getCorrectionOnScroll());\r\n });\r\n\r\n return arr[0];\r\n }\r\n\r\n private setActiveSection(): HTMLElement {\r\n const activeSection = this.getActiveSection();\r\n removeClassFromList(this.navLinks, 'nx-active');\r\n\r\n if (activeSection) {\r\n this.scrollToHorizontal(this.element.querySelector('.nx-scroll-wrapper__inner'), activeSection);\r\n activeSection.classList.add('nx-active');\r\n }\r\n\r\n return activeSection;\r\n }\r\n\r\n private getCorrectionOnScroll() {\r\n const anchorNavHeight = getElementHeight(this.element);\r\n return this.scrollDirection.scrollingFlag ? anchorNavHeight + this.getBreadcrumbHeight() : getElementHeight(this.element);\r\n }\r\n\r\n private getBreadcrumbHeight(): number {\r\n let breadcrumb = document.querySelector('.nx-breadcrumb');\r\n return breadcrumb ? getElementHeight(breadcrumb) : 0;\r\n }\r\n\r\n private scrollToActiveSection(targetLink: HTMLElement): AnchorNavigation {\r\n const clickedSection = document.getElementById(targetLink.dataset.href) || document.querySelector(targetLink.getAttribute('href'));\r\n if (Math.round(clickedSection.getBoundingClientRect().top) !== this.getCorrectionOnScroll()) {\r\n fromEvent(clickedSection, 'niveax:animationend').pipe(first()).subscribe(() => this.subscribeToScrollOnBody());\r\n } else {\r\n this.subscribeToScrollOnBody();\r\n }\r\n\r\n const tabItem = clickedSection.closest('.nx-tab-container-item')\r\n\r\n if (tabItem) {\r\n clickedSection.closest('.nx-tabs-container').dispatchEvent(new CustomEvent('niveax:openTab', {\r\n detail: {\r\n tabNode: tabItem\r\n }\r\n }));\r\n }\r\n\r\n this.scrollToSection(clickedSection);\r\n\r\n this.subscribeToScrollOnBody();\r\n\r\n this.scrollToHorizontal(this.element.querySelector('.nx-scroll-wrapper__inner'), targetLink);\r\n this.setKeyboardFocusToActiveSection(clickedSection);\r\n\r\n return this;\r\n }\r\n\r\n private setKeyboardFocusToActiveSection(activeSection: HTMLElement) {\r\n activeSection.setAttribute('tabindex', '-1');\r\n activeSection.focus();\r\n }\r\n\r\n private scrollToSection(section: HTMLElement) {\r\n this.isScrollingToAnchor = section;\r\n const sectionPositionTop = section.getBoundingClientRect().top;\r\n let offset = this.getScrollOffset();\r\n\r\n requestAnimationFrame(() => {\r\n window.scrollBy({\r\n top: sectionPositionTop - offset,\r\n left: 0,\r\n behavior: \"smooth\"\r\n });\r\n });\r\n }\r\n\r\n private getScrollOffset(): number {\r\n let offset = 0;\r\n\r\n let breadcrumb = document.querySelector('.nx-breadcrumb');\r\n if (breadcrumb && (getComputedStyle(breadcrumb).position === 'fixed' || getComputedStyle(breadcrumb).position === 'sticky')) {\r\n const breadcrumbMaxHeight = getComputedStyle(breadcrumb).maxHeight;\r\n if (breadcrumbMaxHeight !== '0' && breadcrumbMaxHeight !== '0px' && breadcrumbMaxHeight !== 'none') {\r\n offset += getElementHeight(breadcrumb);\r\n }\r\n }\r\n\r\n let mainHeader = document.querySelector('.nx-mob-burger-nav__wrapper');\r\n if (mainHeader && (getComputedStyle(mainHeader).display !== 'none')) {\r\n offset += getElementHeight(mainHeader);\r\n }\r\n\r\n let anchorNavigationElement = this.element.querySelector('.nx-anchor-navigation');\r\n if (anchorNavigationElement && (getComputedStyle(anchorNavigationElement).position === 'fixed' || getComputedStyle(anchorNavigationElement).position === 'sticky')) {\r\n offset += getElementHeight(anchorNavigationElement);\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n private isStickyNavigation(): boolean {\r\n const firstScrollElementTop = this.element.getBoundingClientRect().top;\r\n const lastScrollElement = getLastItemInArray(this.getAnchorSections());\r\n const lastElementBottom = lastScrollElement.getBoundingClientRect().bottom;\r\n return firstScrollElementTop <= this.getBreadcrumbHeight() && lastElementBottom > 0;\r\n }\r\n\r\n private setStickyNavigation(): AnchorNavigation {\r\n if (this.isStickyNavigation()) {\r\n this.element.querySelector('.nx-anchor-navigation').classList.add('nx-anchor-navigation--sticky');\r\n this.setActiveSection();\r\n } else {\r\n this.element.querySelector('.nx-anchor-navigation').classList.remove('nx-anchor-navigation--sticky');\r\n removeClassFromList(this.navLinks, 'nx-active');\r\n }\r\n return this;\r\n }\r\n\r\n scrollToHorizontal(parentElement: HTMLElement, element: HTMLElement) {\r\n if (isIOS()) {\r\n smoothscroll.polyfill();\r\n }\r\n\r\n parentElement.scrollTo({\r\n top: 0,\r\n left: element.offsetLeft - 20,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n private scrollToAnchorSectionOnLoad(): boolean {\r\n const hash: string = window.location.hash.substring(1),\r\n section: HTMLElement = document.getElementById(`${hash}`);\r\n\r\n if (hash && hash.indexOf('layer') === -1 && !!section) {\r\n this.scrollToSection(section);\r\n\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n AnchorNavigation.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n AnchorNavigation.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n AnchorNavigation.setup(moduleSelector);\r\n}","/// \r\n\r\nexport default class ScrollDirection {\r\n element: HTMLElement;\r\n scrollingUpClass: string;\r\n scrollingDownClass: string;\r\n scrollingFlag: boolean;\r\n lastPageYOffset: number;\r\n\r\n constructor(element: HTMLElement, scrollingUpClass: string = 'nx-motion-scrolling--up', scrollingDownClass: string = 'nx-motion-scrolling--down') {\r\n this.element = element;\r\n this.scrollingUpClass = scrollingUpClass;\r\n this.scrollingDownClass = scrollingDownClass;\r\n this.scrollingFlag;\r\n this.init();\r\n }\r\n\r\n private init() {\r\n NiveaX.addToEventStore('scroll', (e) => this.scroll(e), window);\r\n }\r\n\r\n scroll(e) {\r\n this.toggleScrollClasses(this.lastPageYOffset);\r\n this.lastPageYOffset = pageYOffset;\r\n }\r\n\r\n private toggleScrollClasses(lastPageYOffset: number) {\r\n if (Math.abs(pageYOffset - lastPageYOffset) < 40) return;\r\n\r\n if (window.scrollY < 0) return;\r\n\r\n if (pageYOffset < lastPageYOffset) {\r\n this.element.classList.add(this.scrollingUpClass);\r\n this.element.classList.remove(this.scrollingDownClass);\r\n this.scrollingFlag = true;\r\n } else if (pageYOffset > lastPageYOffset) {\r\n this.element.classList.add(this.scrollingDownClass);\r\n this.element.classList.remove(this.scrollingUpClass);\r\n this.scrollingFlag = false;\r\n }\r\n\r\n }\r\n}","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n"],"names":["moduleSelector","AnchorNavigation","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","constructor","sections","this","scrollDirection","scrollBody$","window","clickBody$","windowLoad$","windowPopstate$","init","buildNavigation","removeAttribute","querySelector","subscribeToScrollOnBody","scrollToAnchorSectionOnLoad","pipe","subscribe","clickNav$","target","scrollToActiveSection","e","onDefaultAnchorClick","isMainNavigationBurgerType","classList","add","correctPositionOnScrollEnd","remove","isFirstScroll","addEventListener","isScrollingToAnchor","scrollToSection","body","container","markUp","map","s","counter","anchorId","getAttribute","innerText","setAttribute","join","innerHTML","initAnchorLinks","tagName","setStickyNavigation","navLinks","triggerClickOnEnterForNavLinks","link","key","click","getAnchorSections","closest","targetID","preventDefault","isOnTopViewport","top","elementRect","getBoundingClientRect","offsetHeight","documentElement","Math","floor","bottom","getActiveSection","href","sectionId","section","getElementById","getCorrectionOnScroll","setActiveSection","activeSection","scrollToHorizontal","anchorNavHeight","scrollingFlag","getBreadcrumbHeight","breadcrumb","targetLink","clickedSection","round","tabItem","dispatchEvent","CustomEvent","detail","tabNode","setKeyboardFocusToActiveSection","focus","sectionPositionTop","offset","getScrollOffset","requestAnimationFrame","scrollBy","left","behavior","getComputedStyle","position","breadcrumbMaxHeight","maxHeight","mainHeader","display","anchorNavigationElement","isStickyNavigation","firstScrollElementTop","lastElementBottom","parentElement","scrollTo","offsetLeft","hash","location","substring","indexOf","ScrollDirection","scrollingUpClass","scrollingDownClass","NiveaX","addToEventStore","scroll","toggleScrollClasses","lastPageYOffset","pageYOffset","abs","scrollY","module","exports","polyfill","w","d","style","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","original","elementScroll","prototype","scrollElement","scrollIntoView","now","performance","bind","Date","ROUNDING_TOLERANCE","navigator","RegExp","test","undefined","arguments","shouldBailOut","smoothScroll","call","scrollX","pageXOffset","scrollLeft","scrollTop","SyntaxError","scrollableParent","el","isScrollable","parentNode","host","findScrollableParent","parentRects","clientRects","x","y","firstArg","TypeError","hasScrollableSpace","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","value","currentX","currentY","k","elapsed","startTime","cos","PI","startX","startY","method","scrollable"],"sourceRoot":""}