{"version":3,"file":"ScrollLinks-8f3fb7aa.js","names":["define","Moduler","create","defaults","init","document","querySelectorAll","forEach","link","addEventListener","window","scrollTo","top","querySelector","this","getAttribute","offsetTop","behavior","topMenu","topMenuHeight","offsetHeight","menuItems","Array","from","scrollItems","map","itm","length","fromTop","pageYOffset","cur","getBoundingClientRect","documentElement","clientTop","id","matches","parentElement","classList","add","remove"],"sources":["ScrollLinks.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAEA,OAAOA,EAAQC,OAAO,CAClBC,SAAU,CAEV,EAEAC,KAAM,WAEFC,SAASC,iBAAiB,sBAAsBC,SAAQC,IACpDA,EAAKC,iBAAiB,SAAS,WAE3B,OADAC,OAAOC,SAAS,CAAEC,IAAKP,SAASQ,cAAcC,KAAKC,aAAa,SAASC,UAAWC,SAAU,YACvF,CACX,GAAE,IAIN,IAAIC,EAAUb,SAASQ,cAAc,iBACjCM,EAAgBD,EAAQE,aAAe,GAEvCC,EAAYC,MAAMC,KAAKL,EAAQZ,iBAAiB,uBAGhDkB,EAAcH,EAAUI,KAAI,SAAUC,GACtC,GAAIA,EAAIX,aAAa,QAAQY,OAAS,EAClC,OAAOD,CAEf,IAGAhB,OAAOD,iBAAiB,UAAU,WAE9B,IAAImB,EAAUlB,OAAOmB,YAAcV,EAGnC,IAAIW,EAAMN,EAAYC,KAAI,SAAUC,GAChC,GAAIA,EAAIK,wBAAwBnB,IAAMF,OAAOmB,YAAcxB,SAAS2B,gBAAgBC,UAAYL,EAC5F,OAAOF,CAEf,IAGIQ,GADJJ,EAAMA,EAAIA,EAAIH,OAAS,KACPG,EAAIH,OAASG,EAAI,GAAGI,GAAK,GAEzCb,EAAUd,SAAQmB,IACVA,EAAIS,QAAQ,WAAaD,EAAK,MAC9BR,EAAIU,cAAcC,UAAUC,IAAI,aAEhCZ,EAAIU,cAAcC,UAAUE,OAAO,YACvC,GAER,GACJ,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n\r\n return Moduler.create({\r\n defaults: {\r\n\r\n },\r\n\r\n init: function () {\r\n \r\n document.querySelectorAll('a.js-highlightLink').forEach(link => {\r\n link.addEventListener('click', function () {\r\n window.scrollTo({ top: document.querySelector(this.getAttribute('href')).offsetTop, behavior: 'smooth'});\r\n return false;\r\n });\r\n });\r\n\r\n // Cache selectors\r\n let topMenu = document.querySelector('.js-highlight');\r\n let topMenuHeight = topMenu.offsetHeight + 15;\r\n // All list items\r\n let menuItems = Array.from(topMenu.querySelectorAll(\"a.js-highlightLink\"));\r\n \r\n // Anchors corresponding to menu items\r\n let scrollItems = menuItems.map(function (itm) {\r\n if (itm.getAttribute('href').length > 0) {\r\n return itm;\r\n }\r\n });\r\n\r\n // Bind to scroll\r\n window.addEventListener('scroll', function () {\r\n // Get container scroll position\r\n let fromTop = window.pageYOffset + topMenuHeight;\r\n\r\n // Get id of current scroll item\r\n var cur = scrollItems.map(function (itm) {\r\n if (itm.getBoundingClientRect().top + window.pageYOffset - document.documentElement.clientTop < fromTop) {\r\n return itm;\r\n }\r\n });\r\n // Get the id of the current element\r\n cur = cur[cur.length - 1];\r\n var id = cur && cur.length ? cur[0].id : \"\";\r\n // Set/remove active class\r\n menuItems.forEach(itm => {\r\n if (itm.matches(\"[href='#\" + id + \"']\")) {\r\n itm.parentElement.classList.add('is-active');\r\n } else {\r\n itm.parentElement.classList.remove('is-active');\r\n }\r\n });\r\n });\r\n }\r\n });\r\n});"]}