{"version":3,"sources":["webpack:///./node_modules/@tarekraafat/autocomplete.js/dist/autoComplete.min.js","webpack:///./node_modules/ui-core/utility/js/no-focusable-svg.js","webpack:///./node_modules/ui-core/plugins/cookies/js/cookies.js","webpack:///./node_modules/ui-core/plugins/bookmark/js/bookmark.js","webpack:///./node_modules/ui-core/components/drop-block/js/drop-block.js","webpack:///./node_modules/ui-core/components/modal/js/modal.js","webpack:///./node_modules/ui-core/components/alert-popup/js/alert-popup.js","webpack:///./node_modules/ui-core/components/accordion/js/accordion.js","webpack:///./node_modules/ui-core/components/back-to-top/js/back-to-top.js","webpack:///./node_modules/ui-core/widgets/quick-search/js/quick-search.ts","webpack:///./node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder.js","webpack:///./node_modules/ui-core/widgets/multi-search/js/multi-search.js","webpack:///./node_modules/ui-core/widgets/raa/js/raa.js","webpack:///./node_modules/ui-core/widgets/register/js/register.js","webpack:///./node_modules/ui-core/widgets/show-recommended/js/show-recommended.js","webpack:///./node_modules/ui-core/plugins/drawer/js/menu-accessability.js","webpack:///./node_modules/ui-core/plugins/slide/js/slide.js","webpack:///./node_modules/ui-core/widgets/menu/js/responsive-menu.js","webpack:///./node_modules/ui-core/plugins/scrollo/js/scrollo.js","webpack:///./node_modules/ui-core/components/coolbar/js/coolbar.js","webpack:///./node_modules/ui-core/utility/ie-warning/js/ie-warning.js","webpack:///./node_modules/ui-core/plugins/drawer/js/drawer.js","webpack:///./node_modules/ui-core/plugins/auto-hide-bar/js/auto-hide-bar.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_mobile-menu.js","webpack:///./node_modules/ui-core/plugins/polyfills/js/stickyfill.es.js","webpack:///./node_modules/ui-core/plugins/stickyElements/js/stickyElements.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_sticky.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/lazy-imports.js","webpack:///./node_modules/ui-core/plugins/polyfills/js/Element/matches.js","webpack:///./node_modules/ui-core/plugins/polyfills/js/Element/closest.js"],"names":["t","e","n","Object","keys","getOwnPropertySymbols","r","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","i","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","Symbol","_typeof","iterator","constructor","prototype","value","configurable","writable","Array","isArray","s","from","o","TypeError","toString","call","slice","name","test","u","document","querySelector","a","createElement","append","insertAdjacentElement","parentNode","insertBefore","getAttribute","focus","setAttribute","c","String","toLowerCase","normalize","replace","l","innerHTML","class","outerHTML","f","input","dispatchEvent","CustomEvent","bubbles","detail","feedback","cancelable","p","mode","diacritics","highlight","map","join","d","indexOf","substring","Promise","data","cache","store","src","then","h","searchEngine","resultItem","match","key","done","next","resultsList","maxResults","query","matches","results","m","b","y","v","selection","index","g","isOpen","wrapper","list","removeAttribute","w","O","getElementsByTagName","tag","selected","split","cursor","classList","remove","add","id","scrollTop","offsetTop","clientHeight","A","k","L","event","j","this","HTMLInputElement","HTMLTextAreaElement","trigger","threshold","Error","noResults","DocumentFragment","concat","role","inside","element","S","E","placeHolder","placeholder","around","dest","destination","position","hidden","T","events","debounce","clearTimeout","setTimeout","keydown","keyCode","preventDefault","submit","tabSelect","blur","mousedown","click","toUpperCase","querySelectorAll","target","closest","nodeName","addEventListener","x","init","start","unInit","removeChild","removeEventListener","open","close","goTo","previous","select","search","options","instances","selector","exports","module","define","UX","noFocusableSVG","isIE","svgs","cookies","getItem","sKey","decodeURIComponent","cookie","RegExp","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","Number","Infinity","Date","toUTCString","removeItem","hasItem","aKeys","nLen","nIdx","$window","$body","$document","bookmark","$","window","control","on","add_bookmark","sidebar","addPanel","title","location","href","external","AddFavorite","opera","print","alert","navigator","userAgent","dropBlock","$controllers","$targets","$controller","$target","$parents","$parent","escape","$container","switchVal","$section","vPort","isMobile","initialized","direction","pop","stopPropagation","hasClass","isDataSlideTarget","is","disableOnMobile","find","hide","show","dimensions","controller","check","addClass","attr","icon","first","removeAttr","each","loi","recalculate","additionalOnShow","removeClass","back","$parentSection","additionalOnHide","$nested","parents","parent","current","ifContaind","wrapInner","nHeight","outerHeight","pOffset","offset","pLeft","left","nWidth","innerWidth","styles","container_offset","container_base","width","parent_base","top","right","css","switch","temp","undefined","modal","$toggle","revers","lastItem","items","$close","accessibilityEnabled","accessibility","$content","after","focusCycle","bind","$autofocus","tab","off","tabRevers","which","alertPopup","config","$actions","$approve","$cancel","$url","set","controls","_this","action","onClick","currentTarget","redirect","accordion","$elements","$tabbedElements","$tabbedControllers","isStickyBody","$responsiveElements","accVport","$responsiveTarget","collapseTabs","collapseAccordion","defaultCollapsed","hideAllBoolean","openedAccordion","hideDropBlock","initResponsive","logic","additionalControls","stopImmediatePropagation","$this","toggle","single","preventAccordionBehavior","tabbed","elem","hideAll","parentAccordion","collapseTabsByDefault","getAccordionContent","additionalAjaxSuccess","$elem","getCustomAjaxUrl","buildAjaxUrl","ajaxUrl","widgetId","dropzoneId","$parentTab","ajax","url","success","replaceWith","error","state","$accordionContent","contentTarget","slideToggle","height","toggleClass","$wrapper","accordionExpandedSingle","Event","checkExpandAll","$opened","children","slideUp","extraCollapseAccordionCheck","slideDown","expanded","accordionExpandedTabbed","all","text","$lazy","$expandElem","setViewports","backToTop","footerBackToTop","animate","body","isfooterVisible","docViewBottom","autocompleteResultItem","citationSearchJournalField","citationSearch","hideAutoComplete","qsAutocomplete","qsForms","qsDropdowns","qsHeaderWrapper","qsSeriesKey","qsItems","autocompleteSelectedResultItem","citationSearchDoiField","citationSubmit","inputGroup","journalSearchHideAutocompleteWrapper","autoCompleteWrapper","el","searchType","seriesKey","_autoCompleteOptions","domUtils","getElement","activeDropdownJournal","elements","selectors","hs","pts","ptgs","ptfs","ts","cs","pt","initialize","_URLParameters","URLParameters","setAutoCompleteOptions","setActiveJournal","isAutocompleteOn","browserUtils","initAutocomplete","addEventListeners","getElements","isSelectOnly","elementRenderer","item","ele","autoCompleteOptions","className","paramFormatted","innerText","appendChild","record","label","getConfigs","quickSearchElm","autoCompleteObj","buildFetchURL","fetch","json","resultListConfig","defaultConfigs","handleAutoCompleteOptions","containsClasses","initAutoCompleteInstance","configs","onSelection","render","idName","Math","ceil","random","resultListDestination","parentElement","autcompleteInstances","Map","QuickSearchElm","contains","onKeyDown","form","onFormSubmit","handleDropdownCollapse","registerCitationSearchEvents","autocompleteAnnouncer","announcerContainer","autocompleteLists","observer","MutationObserver","mutationsList","mutation","observe","childList","submitForm","submitWithoutChoosingValue","selectedItemId","reserveSearchInputOnJournalChange","activeJournalForm","changeSubmitButtonState","onCitationSearchDoiField","hasValue","dataset","journalCitationInputs","toggleClasses","disabled","allEmpty","validator","isNotEmpty","parameters","entries","reduce","acc","prop","term","trim","parseInt","autoCompleteMaxWords","autoCompleteMaxChars","QuickSearch","Selectors","Elements","ClassList","Texts","HTMLElement","adplaceholder","elemToToggle","$multi_search","getWidgetId","widgetEl","multiSearch","dropdown","widgetID","topic","tagLabel","tagId","params","multiSearchAction","lazyload","not","truncate","lines","type","lazyLoad","getPbContext","pbContext","dataType","async","html","console","log","ready","toggleQuickSearch","val","loadInstitutionPage","selectDom","showRecommended","desktopWidth","widget","screen","getRecommendedData","getContent","$widget","load","checkIfClosed","hideSkeletons","$accordionTab","menubar","$id","$rootItems","$items","$allItems","$activeItem","vmenu","bChildOpen","enter","esc","space","up","down","bindHandlers","handleKeyDown","keypress","handleKeyPress","handleFocus","handleDocumentClick","parentsUntil","altKey","ctrlKey","menu","processMenuChoice","moveUp","moveToPrevious","moveDown","moveToNext","last","prev","eq","charAt","shiftKey","fromCharCode","slide","$slide","$contents","$slideinfo","elementvPort","nested","multi","activeSlide","oldInfo","clone","wait","backLabel","isQueue","isRTL","displaySlideHtmlToPage","$back","customViewPorts","viewPort","responsive","additionalInitialization","facetDateChart","utils","$main","additionalResponsive","addTransition","empty","removeTransition","setBackLabel","_e$currentTarget","jcf","destroy","openingEvent","isDefaultPrevented","popupType","additionalShow","_nestSlide","clonedDiv","destroyJcf","appendTo","rebuildJcf","googletag","pubads","refresh","$coolBar","openEvent","_showSlide","slidePill","$slidedDiv","translate","one","additionalShowSlide","isInsideSlide","closingEvent","originalTarget","isLoi","beforeReturnSlideContent","$dropBlockHolder","_returnDataSlide","splice","_hideSlide","additionalHide","closeEvent","updateTarget","returnDataSlideHere","$returnDataSlideHere","additionalOff","$el","reponsiveMenu","$menuContainer","leftSectionWidth","rightSectionWidth","maxMenuItemWidth","$moreDropsown","$menu","$menuWrapper","build","modifyMenu","before","availableMenuWidth","menuWidth","$lastMenuItem","prepend","$moreItems","$firstMoreItem","scrollo","rect","getBoundingClientRect","scrollLeft","pageXOffset","documentElement","pageYOffset","adjustAnchor","$anchor","fixedElementsHeight","get","fixedpageElementsHeight","scrollTo","hash","elementsHeight","$fixedHeader","$scrolloThenFix","$stickyCoolbar","stickyCoolbarHeigh","coolbar","sections","holder","coolbarElement","headerHeight","isStickyBar","lock","fill","addtionalControls","ul","li","link","ieWarning","content","warning","button","targetEl","contentEl","ie","sessionStorage","showMessage","insertAdjacentHTML","handlers","btnClickHandler","style","paddingTop","getComputedStyle","removeMessage","child","ev","menuHeaderMainTitle","redirectPath","displayedNestedItems","nestedMenu","listPositionVars","mainScrollingList","inTimeoutTiming","outTimeoutTiming","mainScrollingListHeight","mobileTransitionTime","bodyTransitionPropertyName","bodyTransitionElapsedTime","$header","additionalControl","rebuild","original","hideNested","listPosition","handleHeightSet","handleResize","tabDesktop","escDesktop","showAdditional","showNested","siblings","$menuTitle","showNestedExtra","$parenNestedMenu","shouldNavigate","$menuHeader","hideNestedExtra","reset","$parentMenu","$dropdownToggle","$firstNestedMenu","$prevMenu","$nextMenu","handle","sub","addDataOnly","menuElements","timing","timeoutTime","addDataToElem","handleScrollBarHide","lastScrollVal","getLastPosition","JSON","stringify","bottom","floor","scrollVal","parse","elemsArr","parentHeightVal","innerHeight","subHeightVal","isSafari","duration","abs","skipCheck","elapsedTime","propertyName","autoHideBar","main","getElementsByClassName","$reponsiveMenu","err","headerSelector","$primaryBar","$stickyBar","previousTop","scrollDelta","scrollOffset","previousScroll","changeEvent","changeEventName","header","createEvents","displayOnScroll","_this2","currentTop","secondaryNav_HeaderOffsetTop","removeProperty","setProperty","hideOpenHeaderMenus","$openedLoginMenu","$openedQuickSearchMenu","seppuku","testNode","some","prefix","isInitialized","shadowRootExists","ShadowRoot","scroll","stickies","extend","targetObj","sourceObject","hasOwnProperty","parseNumeric","parseFloat","getDocOffsetTop","node","docOffsetTop","offsetParent","Sticky","_createClass","_classCallCheck","sticky","_node","_stickyMode","_active","_removed","_deactivate","nodeComputedStyle","nodeComputedProps","display","marginTop","marginBottom","marginLeft","marginRight","cssFloat","isNaN","originalPosition","referenceNode","host","nodeWinOffset","parentWinOffset","parentComputedStyle","_parent","offsetHeight","_offsetToWindow","clientWidth","_offsetToParent","borderTopWidth","borderLeftWidth","borderRightWidth","_styles","nodeTopValue","_limits","end","borderBottomWidth","parentPosition","_recalcPosition","_clone","padding","border","borderSpacing","fontSize","stickyMode","_fastCheck","Stickyfill","forceSticky","refreshAll","addOne","nodeList","addedStickies","_loop","removeOne","_loop2","removeAll","fastCheckTimer","docHiddenKey","visibilityChangeEventName","checkScroll","startFastCheckTimer","stopFastCheckTimer","clearInterval","setInterval","stickyElements","scrollThenFix","dynamicHeader","stickoParent","isHeaderSticky","dynamicHeaderHeight","unshift","_isDynamicHeaderHeight","extra","computeHeaderHeight","matched","isHeader","makeSticky","setTopValue","postStickyActions","_canSetTopValue","_has","stickoActions","scrollThenFixActions","fixedHeaderHeight","scrollThenFixOffset","self","$scrollo","$autoHideBar","$coolbar","$dropBlock","$modal","$alertPopup","$accordion","$backToTop","$quickSearch","$adplaceholder","$multiSearch","$showRecommended","quickSearch","mobileMenuMain","stickyMain","Element","msMatchesSelector","webkitMatchesSelector","nodeType"],"mappings":"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","file":"js/vendors~lazy-imports-e299f7ecb67acc97513c.js","sourcesContent":["var e,t;e=this,t=function(){\"use strict\";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var s,u=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return u=e.done,e},e:function(e){a=!0,s=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw s}}}}(n.keys);try{for(l.s();!(c=l.n()).done;)a(c.value)}catch(e){l.e(e)}finally{l.f()}}else a()})),n.filter&&(i=n.filter(i));var s=i.slice(0,t.resultsList.maxResults);t.feedback={query:e,matches:i,results:s},f(\"results\",t)},m=\"aria-expanded\",b=\"aria-activedescendant\",y=\"aria-selected\",v=function(e,n){e.feedback.selection=t({index:n},e.feedback.results[n])},g=function(e){e.isOpen||((e.wrapper||e.input).setAttribute(m,!0),e.list.removeAttribute(\"hidden\"),e.isOpen=!0,f(\"open\",e))},w=function(e){e.isOpen&&((e.wrapper||e.input).setAttribute(m,!1),e.input.setAttribute(b,\"\"),e.list.setAttribute(\"hidden\",\"\"),e.isOpen=!1,f(\"close\",e))},O=function(e,t){var n=t.resultItem,r=t.list.getElementsByTagName(n.tag),o=!!n.selected&&n.selected.split(\" \");if(t.isOpen&&r.length){var s,u,a=t.cursor;e>=r.length&&(e=0),e<0&&(e=r.length-1),t.cursor=e,a>-1&&(r[a].removeAttribute(y),o&&(u=r[a].classList).remove.apply(u,i(o))),r[e].setAttribute(y,!0),o&&(s=r[e].classList).add.apply(s,i(o)),t.input.setAttribute(b,r[t.cursor].id),t.list.scrollTop=r[e].offsetTop-t.list.clientHeight+r[e].clientHeight+5,t.feedback.cursor=t.cursor,v(t,e),f(\"navigate\",t)}},A=function(e){O(e.cursor+1,e)},k=function(e){O(e.cursor-1,e)},L=function(e,t,n){(n=n>=0?n:e.cursor)<0||(e.feedback.event=t,v(e,n),f(\"selection\",e),w(e))};function j(e,n){var r=this;return new Promise((function(i,o){var s,u;return s=n||((u=e.input)instanceof HTMLInputElement||u instanceof HTMLTextAreaElement?u.value:u.innerHTML),function(e,t,n){return t?t(e):e.length>=n}(s=e.query?e.query(s):s,e.trigger,e.threshold)?d(e,s).then((function(n){try{return e.feedback instanceof Error?i():(h(s,e),e.resultsList&&function(e){var n=e.resultsList,r=e.list,i=e.resultItem,o=e.feedback,s=o.matches,u=o.results;if(e.cursor=-1,r.innerHTML=\"\",s.length||n.noResults){var c=new DocumentFragment;u.forEach((function(e,n){var r=a(i.tag,t({id:\"\".concat(i.id,\"_\").concat(n),role:\"option\",innerHTML:e.match,inside:c},i.class&&{class:i.class}));i.element&&i.element(r,e)})),r.append(c),n.element&&n.element(r,o),g(e)}else w(e)}(e),c.call(r))}catch(e){return o(e)}}),o):(w(e),c.call(r));function c(){return i()}}))}var S=function(e,t){for(var n in e)for(var r in e[n])t(n,r)},T=function(e){var n,r,i,o=e.events,s=(n=function(){return j(e)},r=e.debounce,function(){clearTimeout(i),i=setTimeout((function(){return n()}),r)}),u=e.events=t({input:t({},o&&o.input)},e.resultsList&&{list:o?t({},o.list):{}}),a={input:{input:function(){s()},keydown:function(t){!function(e,t){switch(e.keyCode){case 40:case 38:e.preventDefault(),40===e.keyCode?A(t):k(t);break;case 13:t.submit||e.preventDefault(),t.cursor>=0&&L(t,e);break;case 9:t.resultsList.tabSelect&&t.cursor>=0&&L(t,e);break;case 27:t.input.value=\"\",w(t)}}(t,e)},blur:function(){w(e)}},list:{mousedown:function(e){e.preventDefault()},click:function(t){!function(e,t){var n=t.resultItem.tag.toUpperCase(),r=Array.from(t.list.querySelectorAll(n)),i=e.target.closest(n);i&&i.nodeName===n&&L(t,e,r.indexOf(i))}(t,e)}}};S(a,(function(t,n){(e.resultsList||\"input\"===n)&&(u[t][n]||(u[t][n]=a[t][n]))})),S(u,(function(t,n){e[t].addEventListener(n,u[t][n])}))};function E(e){var n=this;return new Promise((function(r,i){var o,s,u;if(o=e.placeHolder,u={role:\"combobox\",\"aria-owns\":(s=e.resultsList).id,\"aria-haspopup\":!0,\"aria-expanded\":!1},a(e.input,t(t({\"aria-controls\":s.id,\"aria-autocomplete\":\"both\"},o&&{placeholder:o}),!e.wrapper&&t({},u))),e.wrapper&&(e.wrapper=a(\"div\",t({around:e.input,class:e.name+\"_wrapper\"},u))),s&&(e.list=a(s.tag,t({dest:[s.destination,s.position],id:s.id,role:\"listbox\",hidden:\"hidden\"},s.class&&{class:s.class}))),T(e),e.data.cache)return d(e).then((function(e){try{return c.call(n)}catch(e){return i(e)}}),i);function c(){return f(\"init\",e),r()}return c.call(n)}))}function x(e){var t=e.prototype;t.init=function(){E(this)},t.start=function(e){j(this,e)},t.unInit=function(){if(this.wrapper){var e=this.wrapper.parentNode;e.insertBefore(this.input,this.wrapper),e.removeChild(this.wrapper)}var t;S((t=this).events,(function(e,n){t[e].removeEventListener(n,t.events[e][n])}))},t.open=function(){g(this)},t.close=function(){w(this)},t.goTo=function(e){O(e,this)},t.next=function(){A(this)},t.previous=function(){k(this)},t.select=function(e){L(this,null,e)},t.search=function(e,t,n){return p(e,t,n)}}return function e(t){this.options=t,this.id=e.instances=(e.instances||0)+1,this.name=\"autoComplete\",this.wrapper=1,this.threshold=1,this.debounce=0,this.resultsList={position:\"afterend\",tag:\"ul\",maxResults:5},this.resultItem={tag:\"li\"},function(e){var t=e.name,r=e.options,i=e.resultsList,o=e.resultItem;for(var s in r)if(\"object\"===n(r[s]))for(var a in e[s]||(e[s]={}),r[s])e[s][a]=r[s][a];else e[s]=r[s];e.selector=e.selector||\"#\"+t,i.destination=i.destination||e.selector,i.id=i.id||t+\"_list_\"+e.id,o.id=o.id||t+\"_result\",e.input=u(e.selector)}(this),x.call(this,e),E(this)}},\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).autoComplete=t();\n","(function () {\n UX.noFocusableSVG = {\n init: function () {\n if (UX.test.isIE) {\n const svgs = document.getElementsByTagName('svg');\n let i = svgs.length;\n while (i--) {\n svgs[i].setAttribute('focusable', false);\n }\n }\n },\n };\n})();\n","/*eslint-disable*/\n(function () {\n /*\\\n |*|\n |*| :: cookies.js ::\n |*|\n |*| A complete cookies reader/writer framework with full unicode support.\n |*|\n |*| Revision #1 - September 4, 2014\n |*|\n |*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie\n |*| https://developer.mozilla.org/User:fusionchess\n |*| https://github.com/madmurphy/cookies.js\n |*|\n |*| This framework is released under the GNU Public License, version 3 or later.\n |*| http://www.gnu.org/licenses/gpl-3.0-standalone.html\n |*|\n |*| Syntaxes:\n |*|\n |*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])\n |*| * docCookies.getItem(name)\n |*| * docCookies.removeItem(name[, path[, domain]])\n |*| * docCookies.hasItem(name)\n |*| * docCookies.keys()\n |*|\n \\*/\n\n var cookies = {\n getItem: function (sKey) {\n if (!sKey) {\n return null;\n }\n return (\n decodeURIComponent(\n document.cookie.replace(\n new RegExp(\n '(?:(?:^|.*;)\\\\s*' +\n encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n ),\n '$1'\n )\n ) || null\n );\n },\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd) {\n switch (vEnd.constructor) {\n case Number:\n sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + vEnd;\n break;\n case String:\n sExpires = '; expires=' + vEnd;\n break;\n case Date:\n sExpires = '; expires=' + vEnd.toUTCString();\n break;\n }\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=' +\n encodeURIComponent(sValue) +\n sExpires +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '') +\n (bSecure ? '; secure' : '');\n return true;\n },\n removeItem: function (sKey, sPath, sDomain) {\n if (!this.hasItem(sKey)) {\n return false;\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '');\n return true;\n },\n hasItem: function (sKey) {\n if (!sKey) {\n return false;\n }\n return new RegExp('(?:^|;\\\\s*)' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=').test(\n document.cookie\n );\n },\n keys: function () {\n var aKeys = document.cookie\n .replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, '')\n .split(/\\s*(?:\\=[^;]*)?;\\s*/);\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {\n aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\n }\n return aKeys;\n },\n };\n\n UX.cookies = cookies;\n})();\n","(function () {\n var $window = $(window),\n $body = $('body'),\n $document = $(document);\n\n var bookmark = {\n init: function () {\n bookmark.control();\n },\n control: function () {\n $body.on('click', '.header__dropzone-bookmark', function () {\n bookmark.add_bookmark();\n });\n },\n add_bookmark: function () {\n if ($window.sidebar && $window.sidebar.addPanel) {\n // Mozilla Firefox Bookmark\n $window.sidebar.addPanel($document.title, $window.location.href, '');\n } else if ($window.external && 'AddFavorite' in $window.external) {\n // IE Favorite\n $window.external.AddFavorite(location.href, $document.title);\n } else if ($window.opera && $window.print) {\n // Opera Hotlist\n this.title = $document.title;\n return true;\n } else {\n // webkit - safari/chrome\n alert(\n 'Press ' +\n (navigator.userAgent.toLowerCase().indexOf('mac') !== -1 ? 'Command/Cmd' : 'CTRL') +\n ' + D to bookmark this page.'\n );\n }\n },\n };\n\n UX.bookmark = bookmark;\n})();\n","// tabs.js calls UX.dropBlock.init(); on line 260\n// profile-menu.js calls UX.dropBlock.init(); on line 53\n\n(function () {\n var $window = $(window),\n $body = $('body');\n\n var dropBlock = {\n $controllers: $('[data-db-target-for]'),\n $targets: null, // Holds all targets in Dom\n $controller: null, // Current drop down controller\n $target: null, // Current target down controller element\n $parents: null, // Hodls all parents in Dom\n $parent: null, // Current parent element\n escape: 27,\n $container: $('.container'),\n switchVal: null,\n $section: $('.dropBlock__holder'),\n vPort: 'screen-sm',\n isMobile: false,\n initialized: false,\n direction: 'left', // left , right\n pop: 'down', // up , down\n\n init: function () {\n dropBlock.control();\n },\n\n control: function () {\n if (dropBlock.initialized) {\n return;\n }\n dropBlock.initialized = true;\n\n $(document).on('click', '[data-db-target-for]', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n const isOpen = $(this).hasClass('js--open'),\n isDataSlideTarget = $(this).is('[data-slide-target]'),\n disableOnMobile = $(this).data('db-sm-disable') || false;\n\n dropBlock.$controller = $(this);\n dropBlock.find.target();\n\n if (isOpen) {\n dropBlock.on.hide();\n } else {\n if (dropBlock.isMobile && (isDataSlideTarget !== false || disableOnMobile)) {\n return;\n } else {\n dropBlock.on.show(e);\n }\n }\n });\n\n $(document).on(\n 'click',\n '.coolBar:not(.loi__banner) [data-db-target-of] a:not([data-slide-target])',\n function (e) {\n dropBlock.on.hide();\n }\n );\n\n $window.on('resize', function () {\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n }\n });\n\n $(document).on(dropBlock.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n dropBlock.isMobile = true;\n });\n $(document).on(dropBlock.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n dropBlock.isMobile = false;\n });\n },\n on: {\n show: function (e) {\n // show target element\n\n if (!dropBlock.$controller.closest('.dropBlock__holder').length) {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check(e);\n }\n }\n\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:open', [dropBlock]);\n\n dropBlock.$target.addClass('js--open');\n dropBlock.$controller.addClass('js--open');\n $body.attr('data-active', 'dropBlock');\n dropBlock.$target.closest(\"[class*='sticko']\").addClass('js--open');\n dropBlock.switch.icon();\n // Move focus to active inner component, or leave focus on control\n dropBlock.$target.find('.active :tabbable').first().focus();\n\n // Accessibility\n dropBlock.$controller.attr({'aria-expanded': 'true'});\n dropBlock.$target.removeAttr('aria-hidden');\n\n // @fixme - this should not be here at all - it should be moved to proper component\n const isLoi = dropBlock.$target.find('.loi').length > 0;\n if (isLoi) {\n dropBlock.$target.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n dropBlock.$controller.trigger('dropBlock:opened', [dropBlock]);\n }\n dropBlock.additionalOnShow();\n },\n hide: function () {\n // hide target element\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:close', [dropBlock]);\n\n // Close current target\n dropBlock.$controller.removeClass('js--open');\n dropBlock.$target.removeClass('js--open');\n // Play nicely with others ...\n // For plugins which don't use js--open class but uses .hide .show methods instead, reset them ...\n // For example LOA accordion\n if (dropBlock.$target.attr('style')) {\n dropBlock.$target.removeAttr('style');\n }\n // Explicitly for our accordion working as a drop-block\n dropBlock.$target.closest(\"[class*='accordion-tabbed__tab']\").removeClass('js--open');\n\n dropBlock.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n\n dropBlock.switch.back();\n\n // Accessibility - Inform screen readers\n dropBlock.$controller.attr({'aria-expanded': 'false'});\n dropBlock.$target.attr({'aria-hidden': 'true'});\n\n // Nested dropBlocks close handling\n if (dropBlock.$parentSection && dropBlock.$parentSection.length) {\n // Nested ones - set parent after closing self - will close parent in second round\n dropBlock.$controller = $(\n '[data-db-target-for=\"' + dropBlock.$parentSection.attr('data-db-target-of') + '\"]'\n );\n dropBlock.find.target();\n } else {\n // If we want to close last drop block, than there is no more active component\n if ($body.attr('data-active') === 'dropBlock') {\n $body.removeAttr('data-active');\n $('body, html').removeClass('lock-screen'); // @todo investigate if this is needed for drop Blocks or was copied out of other component\n }\n }\n if (dropBlock.$target) {\n dropBlock.$target.find('input:focus').blur();\n }\n dropBlock.$controller.trigger('dropBlock:closed', [dropBlock]);\n }\n dropBlock.additionalOnHide();\n },\n escape: function () {\n // hide target if user clicks escape key\n // @fixme this seems unused and deprecated by controller.js\n if (dropBlock.$target != null) {\n dropBlock.on.hide();\n }\n },\n },\n find: {\n target: function () {\n // get the target element if existed\n if ($('[data-db-target-of]').length) {\n dropBlock.$targets = $('[data-db-target-of]');\n dropBlock.$target = $(\n '[data-db-target-of=' + dropBlock.$controller.attr('data-db-target-for') + ']'\n );\n dropBlock.$section = dropBlock.$target;\n const $nested = dropBlock.$section.parents('.dropBlock__holder');\n if ($nested.length) {\n dropBlock.$parentSection = $nested;\n } else {\n dropBlock.$parentSection = null;\n }\n dropBlock.find.parent();\n }\n },\n parent: function () {\n // get the parent element if existed\n\n dropBlock.$parent = null;\n dropBlock.$parents = $('[data-db-parent-of]');\n\n if (dropBlock.$parents.length) {\n dropBlock.$parents.each(function () {\n const current = dropBlock.$controller.attr('data-db-target-for');\n let parentFor = $(this).data('db-parent-of').split(',');\n\n if (parentFor.indexOf(current) !== -1) {\n dropBlock.$parent = $(this);\n return false;\n }\n });\n\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n dropBlock.find.ifContaind();\n }\n }\n },\n ifContaind: function () {\n // check if it parent or target has container element\n if (dropBlock.$parent.find('.container').length && !dropBlock.$target.find('.container').length) {\n dropBlock.$target.wrapInner(\"
\");\n }\n },\n dimensions: function () {\n // count the top and left position of the target element based on teh parent element\n\n var nHeight = dropBlock.$parent.outerHeight(),\n pOffset = dropBlock.$parent.offset(),\n pLeft = pOffset.left,\n nWidth = dropBlock.$parent.innerWidth(),\n styles = {},\n container_offset = pOffset;\n\n dropBlock.$container = $('.container');\n if (dropBlock.$container.length) {\n container_offset = dropBlock.$container.offset();\n }\n\n const container_left = container_offset.left,\n container_base = container_left + dropBlock.$container.width(),\n parent_base = nWidth + pLeft;\n\n if (dropBlock.$parent.find('.scrollThenFix').length) {\n nHeight = dropBlock.$parent.find('.scrollThenFix').outerHeight();\n }\n\n if (dropBlock.$parent.innerWidth() === dropBlock.$controller.innerWidth()) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : 'auto';\n if (dropBlock.isMobile) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : '100%';\n }\n }\n\n if (parent_base > container_base) {\n styles = {\n top: nHeight,\n right: '0px',\n width: nWidth,\n };\n } else {\n styles = {\n top: nHeight,\n width: nWidth,\n };\n let direction = dropBlock.$parent.data('db-direction') || dropBlock.direction;\n /*eslint-disable*/\n switch (direction) {\n case 'left':\n case 'right':\n styles[direction] = '0px';\n break;\n case 'center':\n let offset = dropBlock.$target.innerWidth() / 2 - dropBlock.$parent.innerWidth();\n styles['left'] = `calc(-50% - ${offset}px)`;\n }\n /*eslint-enable*/\n }\n dropBlock.$target.css(styles);\n },\n },\n switch: {\n icon: function () {\n dropBlock.switchVal = dropBlock.$controller.attr('data-db-switch');\n switch (dropBlock.switchVal) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').addClass('js--rotated');\n break;\n default:\n dropBlock.$controller.find('i').addClass(dropBlock.switchVal);\n }\n },\n back: function () {\n dropBlock.$controllers.each(function () {\n var temp = $(this).attr('data-db-switch');\n switch (temp) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').removeClass('js--rotated');\n break;\n default:\n if (temp !== undefined) dropBlock.$controller.find('i').removeClass(temp);\n }\n });\n },\n },\n\n additionalOnShow: function () {},\n\n additionalOnHide: function () {},\n };\n\n UX.dropBlock = dropBlock; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n shift = 16;\n\n var modal = {\n $toggle: $('[data-toggle=\"modal\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n $close: null,\n accessibilityEnabled: true,\n\n init: function () {\n if (this.accessibilityEnabled) modal.accessibility.init();\n modal.$target = $(modal.$toggle.data('target'));\n modal.control();\n },\n accessibility: {\n init: function () {\n // Move every modal outside of content in order to be able hide and show page content for screen readers\n // @note: for some reason, it is not working with tab trap correctly, when we append it to body - after(.content) works fine\n var $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-container'));\n }\n // Text for close buttons\n $('[data-dismiss=\"modal\"]').append('Close modal');\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n control: function () {\n $body.on('click', '[data-toggle=\"modal\"]', function (e) {\n e.preventDefault();\n modal.$toggle = $(this);\n modal.$target = $(modal.$toggle.data('target'));\n modal.$close = modal.$target.find('.close');\n modal.items = modal.$target.find('a, button, input');\n modal.items.each(function (index) {\n if (index === modal.items.length - 1) {\n modal.lastItem = $(this);\n }\n });\n modal.on.show();\n });\n\n $body.on('click', '.modal', function (e) {\n var target = $(e.target);\n if (!target.is('.modal__dialog') && !target.closest('.modal__dialog').length > 0) {\n //e.preventDefault();\n modal.on.hide();\n }\n });\n\n $body.on('click', '[data-dismiss=\"modal\"]', function (e) {\n modal.on.hide();\n });\n\n $('.modal').on('keydown', modal.focusCycle.bind(modal));\n\n $window.on('keyup', function (e) {\n if (e.keyCode === shift) {\n modal.revers = false;\n }\n });\n },\n on: {\n show: function (e) {\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n setTimeout(function () {\n $body.attr('data-active', 'modal');\n modal.accessibility.show();\n const $autofocus = modal.$target.find('[autofocus]');\n if ($autofocus.length) $autofocus.focus();\n else modal.$close.focus();\n }, 250);\n modal.$target.closest(\"[class*='sticko']\").addClass('js--open');\n $('#externalEmailDialogForm').addClass('pairing-management-modal');\n },\n hide: function () {\n $body.removeAttr('data-active');\n modal.accessibility.hide();\n modal.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n },\n tab: function () {\n modal.$close.off('focusout');\n modal.lastItem.off('focusout');\n modal.lastItem.on('focusout', function () {\n modal.$close.focus();\n });\n },\n tabRevers: function () {\n modal.lastItem.off('focusout');\n modal.$close.off('focusout');\n modal.$close.on('focusout', function () {\n modal.lastItem.focus();\n });\n },\n },\n focusCycle: function (e) {\n if (e.keyCode === shift) {\n modal.revers = true;\n }\n\n if ((e.keyCode || e.which) === tabKey) {\n if (!modal.revers) {\n modal.on.tab();\n } else {\n modal.on.tabRevers();\n }\n }\n },\n };\n\n UX.modal = modal; // add to global namespace\n})();\n","(function () {\n const $body = $('body');\n UX.alertPopup = {\n config: {\n $toggle: '[data-toggle=\"alert\"]',\n $target: null,\n $actions: null,\n $approve: '[data-action=\"approve\"]',\n $cancel: '[data-action=\"cancel\"]',\n $url: null,\n },\n init: function () {\n if (config.enableAlertPopupAccessibility) this.accessibility.init();\n this.set();\n this.controls();\n },\n accessibility: {\n init: function () {\n let $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-alert'));\n }\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n set: function () {\n this.config.$actions = document.querySelectorAll(this.config.$toggle);\n this.config.$approve = document.querySelectorAll(this.config.$approve);\n this.config.$cancel = document.querySelectorAll(this.config.$cancel);\n },\n controls: function () {\n this.config.$actions.forEach(action => {\n action.addEventListener('click', e => {\n this.onClick(e);\n });\n });\n this.config.$approve.forEach(action => {\n action.addEventListener('click', e => {\n this.action();\n });\n });\n this.config.$cancel.forEach(action => {\n action.addEventListener('click', e => {\n this.hide($(action).closest('.alert'));\n });\n });\n },\n onClick: function (e) {\n e.preventDefault();\n this.config.$target = e.currentTarget.getAttribute('data-target');\n this.config.$url = e.currentTarget.href;\n this.show(this.config.$target);\n },\n redirect: function (value) {\n window.location.href = value;\n },\n show: function (target) {\n $body.attr('data-active', 'modal');\n this.accessibility.show();\n $(target).addClass('js--open');\n $(target).attr('open', true);\n },\n hide: function (target) {\n this.accessibility.hide();\n $(target).removeClass('js--open');\n $(target).removeAttr('open');\n },\n action: function () {\n this.redirect(this.config.$url);\n },\n };\n})();\n","(function () {\n var $body = $('body'),\n isMobile = false;\n\n var accordion = {\n $elements: $('.accordion'),\n $tabbedElements: $('.accordion-tabbed'),\n $controllers: $('.accordion__control'), //@todo: remove ambiguous DOM searches for elements that are unused and move other into init function\n $tabbedControllers: $('.accordion-tabbed__control'),\n isMobile: false,\n isStickyBody: false,\n vPort: 'screen-sm',\n $responsiveElements: $('[data-accordion-vport]'),\n accVport: [],\n $responsiveTarget: [],\n collapseTabs: false,\n collapseAccordion: true, // collapse accordion on open new accordion\n defaultCollapsed: true, // collapse accordion on pageload\n hideAllBoolean: true,\n openedAccordion: 0,\n hideDropBlock: true,\n\n init: function () {\n accordion.initResponsive();\n accordion.logic($('.accordion-tabbed')); // collapse all accordions on page load\n accordion.control();\n accordion.additionalControls();\n },\n additionalControls: function () {},\n control: function () {\n $body.on('click', '.accordion__control', function (e) {\n e.stopImmediatePropagation();\n // This check is needed on Safari browser in order to close the dropblock if its opened\n if ($body.attr('data-active') === 'dropBlock' && accordion.hideDropBlock) {\n UX.dropBlock.on.hide();\n }\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port\n if ($(this).hasClass('external') || (typeof attr !== typeof undefined && attr !== false && isMobile)) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.single($this);\n }\n\n $(this).trigger('accordion:controlClick');\n });\n if (config.enableAccordionTypeSingle || config.enableAccordionTypeSubsection) {\n $body.on('click', '.accordion-tabbed__control', function (e) {\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port or prevent accordion behavior\n if (\n $(this).hasClass('external') ||\n (typeof attr !== typeof undefined && attr !== false && isMobile) ||\n accordion.preventAccordionBehavior($(this))\n ) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.tabbed($this);\n }\n });\n }\n\n if (config.enableAccordionExpandAll) {\n $body.on('click', '.expand-all', function (e) {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.all($this);\n });\n }\n\n $(document).on(accordion.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n });\n\n $(document).on(accordion.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n });\n },\n logic: function (elem) {\n if (accordion.hideAllBoolean) {\n accordion.hideAll();\n }\n\n accordion.$tabbedElements = elem;\n\n accordion.$tabbedElements.each(function () {\n var $this = $(this),\n parentAccordion = $this.closest('.accordion');\n\n if (parentAccordion.parent('[data-default-collapsed]').length) {\n accordion.defaultCollapsed = parentAccordion.parent().data('default-collapsed');\n }\n\n $this.find('.accordion-tabbed__tab').each(function (index) {\n var $this = $(this);\n if (accordion.defaultCollapsed || accordion.defaultCollapsed === 'all') {\n if (accordion.preventAccordionBehavior($this)) {\n return;\n }\n if (\n !accordion.collapseTabsByDefault(this) &&\n index === accordion.openedAccordion &&\n !$this.hasClass('accordion__closed')\n ) {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n if ($this.find('.accordion-lazy').length) {\n accordion.getAccordionContent($this.find('.accordion-lazy'));\n }\n } else {\n $this.removeClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'false');\n $this.find('.accordion-tabbed__content').hide();\n }\n } else {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n }\n });\n });\n },\n collapseTabsByDefault: function () {\n return accordion.collapseTabs;\n },\n additionalAjaxSuccess: function ($elem) {},\n getCustomAjaxUrl: function ($elem) {},\n buildAjaxUrl: function ($elem) {\n let ajaxUrl;\n var hasCustomUrl =\n typeof $elem.attr('data-custom-url') !== 'undefined' && $elem.attr('data-custom-url') === 'true';\n if (hasCustomUrl) {\n ajaxUrl = accordion.getCustomAjaxUrl($elem);\n } else {\n const widgetId = $elem.attr('data-widgetid');\n const dropzoneId = $elem.attr('data-dropzoneid');\n const pbContext = encodeURIComponent($('meta[name=pbContext]').attr('content'));\n ajaxUrl =\n '/pb/widgets/accordion/loadTab?pbContext=' +\n pbContext +\n '&widgetId=' +\n widgetId +\n '&dropZoneId=' +\n dropzoneId;\n }\n return ajaxUrl;\n },\n getAccordionContent: function ($elem) {\n var ajaxUrl = accordion.buildAjaxUrl($elem);\n var $parentTab = $elem.parent();\n $.ajax({\n url: ajaxUrl,\n success: function (data) {\n $elem.closest('.accordion-tabbed__tab').attr('data-ajaxLoaded', 'true');\n $elem.replaceWith(data);\n if ($parentTab.find('.accordion-tabbed').length) {\n accordion.logic($parentTab.find('.accordion-tabbed'));\n }\n $parentTab.find('.accordion__spinner').remove();\n accordion.additionalAjaxSuccess($parentTab);\n },\n error: function () {},\n });\n },\n on: {\n toggle: {\n single: function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n },\n tabbed: function ($this) {\n const $parent = $this.closest('.accordion-tabbed__tab');\n const $opened = $this.closest('.accordion-tabbed').children('.js--open');\n\n const state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const $wrapper = $this.closest('.expandable-accordion');\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n if (!$parent.hasClass('js--open')) {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.children('.accordion-tabbed__content').slideUp(200);\n }\n $parent.children('.accordion-tabbed__content').slideDown(200, function () {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.removeClass('js--open');\n }\n\n $parent.addClass('js--open');\n if ($parent.attr('data-ajaxLoaded') !== 'true' && $parent.find('.accordion-lazy').length) {\n accordion.getAccordionContent($parent.find('.accordion-lazy'));\n }\n accordion.on.expanded($this);\n const accordionExpandedTabbed = $.Event('accordion:expandedTabbed');\n $(document).trigger(accordionExpandedTabbed, [$this]);\n });\n } else {\n $parent.children('.accordion-tabbed__content').slideUp(200, function () {\n $this.removeClass('js--open');\n $parent.removeClass('js--open');\n // @fixme: work with aria-expanded is missing here, so it doesn't work correct\n });\n }\n },\n all: function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n },\n },\n expanded: function ($this) {},\n checkExpandAll: function ($this, state, $wrapper) {\n let $expandElem;\n if ($wrapper.length) {\n $expandElem = $wrapper.find('.expand-all');\n }\n\n if ($expandElem.length && $expandElem.attr('aria-expanded') === 'true') {\n $expandElem.attr('aria-expanded', state);\n if (state) $expandElem.text('Hide All');\n else $expandElem.text('Expand All');\n }\n },\n },\n hideAll: function () {\n //Hide accordion content on load (in case of disabled JS, the accordion should be open)\n accordion.$elements.each(function () {\n var $this = $(this);\n $this.find('.accordion__control').attr('aria-expanded', 'false');\n if (!$this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__content').hide();\n } else if ($this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__control').attr('aria-expanded', 'true');\n } else {\n $this.find('.accordion__content').removeClass('js--open');\n }\n });\n },\n initResponsive: function () {\n if (accordion.$responsiveElements.length) {\n accordion.$responsiveElements.each(function (index) {\n accordion.$responsiveTarget[index] = $(this);\n accordion.accVport[index] = $(this).data('accordion-vport');\n accordion.setViewports(index);\n });\n }\n },\n extraCollapseAccordionCheck: function ($parent) {\n return accordion.collapseAccordion;\n },\n setViewports: function (index) {\n $(document).on(accordion.accVport[index] + '-on', function () {\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.addClass('accordion-vport--res');\n if (target.data('accordion-option') === 'with-arrow') {\n target.addClass('accordion-with-arrow');\n }\n accordion.logic(accordion.$responsiveTarget[index].find('.accordion-tabbed'));\n }\n });\n\n $(document).on(accordion.accVport[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.removeClass('accordion-vport--res accordion-with-arrow');\n target.find('.accordion-tabbed__content').show();\n }\n });\n },\n };\n if (config.enableAccordionTypeSubsection || config.enableAccordionTypeSingle) {\n accordion.on.toggle.single = function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n };\n }\n if (config.enableAccordionExpandAll) {\n accordion.on.toggle.all = function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n };\n }\n if (config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = function ($this) {\n return !!$this.parents('[data-accordion-vport]:not(.accordion-vport--res)').length;\n };\n }\n if (!config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = () => true;\n }\n UX.accordion = accordion; // add to global namespace\n})();\n","(function () {\n var $window = $(window),\n $body = $('body');\n\n var backToTop = {\n element: '.back-to-top',\n footerBackToTop: 'footer .back-to-top',\n\n init: function () {\n backToTop.controller();\n },\n controller: function () {\n $body.on('click', backToTop.element, function (e) {\n e.preventDefault();\n $('html, body').animate({scrollTop: 0}, 600);\n $(document.body).find(':focusable').first().focus();\n });\n\n $window.on('scroll', function () {\n if ($(backToTop.footerBackToTop).length) {\n if ($(this).scrollTop() > $('header').height()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__is-visible');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__is-visible back-to-top__fade-out');\n }\n\n if ($(this).scrollTop() > 400) {\n $(backToTop.footerBackToTop).addClass('back-to-top__fade-out');\n }\n\n if (backToTop.check.isfooterVisible()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__static');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__static');\n }\n }\n });\n },\n check: {\n isfooterVisible: function () {\n var docViewBottom = $(window).scrollTop() + $(window).height();\n var backToTopPos = $('footer').offset().top;\n return backToTopPos <= docViewBottom;\n },\n },\n };\n\n UX.backToTop = backToTop;\n})();\n","import AutoComplete from '@tarekraafat/autocomplete.js';\nimport {\n ComponentObject,\n ComponentSelectors,\n ComponentElements,\n ComponentService,\n ComponentInjector,\n ComponentSelector,\n UIComponent,\n Inject,\n BrowserUtils,\n Validator\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject { }\n\nclass ClassList extends ComponentObject {\n autocompleteResultItem = 'autoComplete__item';\n citationSearchJournalField = 'quick-search--citation__journal-search__input';\n citationSearch = 'quick-search--citation';\n hideAutoComplete = 'hide-auto-complete';\n}\n\nclass Selectors extends ComponentSelectors {\n qsAutocomplete = new ComponentSelector('input.auto-complete');\n qsForms = new ComponentSelector('[name=\"defaultQuickSearch\"],[name=\"thisJournalQuickSearch\"], [name=\"thisBookQuickSearch\"]');\n qsDropdowns = new ComponentSelector('.tab__nav__item__link');\n qsHeaderWrapper = new ComponentSelector('.quick-qsHeaderWrapper', 'document');\n qsSeriesKey = '[name=SeriesKey]';\n qsItems = '.quick-search__search-items';\n citationSearch = '.quick-search-pane__citation';\n autocompleteSelectedResultItem = '.autoComplete__item[aria-selected=\"true\"]';\n citationSearchJournalField = new ComponentSelector('.quick-search--citation__journal-search__input')\n citationSearchDoiField = new ComponentSelector('.quick-search--citation__journal-search__input__doi')\n citationSubmit = new ComponentSelector('.citation-search__submit');\n inputGroup = '.input-group'\n journalSearchHideAutocompleteWrapper = '.quick-search--citation__journal-search'\n autoCompleteWrapper = '.autoComplete_wrapper'\n}\n\nclass Elements extends ComponentElements {\n qsForms: Array = [];\n qsDropdowns: Array = [];\n qsAutocomplete: Array = [];\n qsHeaderWrapper: HTMLElement;\n citationSubmit: HTMLElement;\n citationSearchJournalField: HTMLInputElement;\n citationSearchDoiField: HTMLInputElement;\n}\n\n\ninterface QuickSearch extends ComponentService { }\n\ninterface QuickSearchURLParams {\n hs: string;\n pts: string;\n ptgs: string;\n ptfs: string;\n ts: string;\n cs: string;\n pt: string;\n}\n\ninterface AutoCompleteOptions {\n isSelectOnly: boolean\n}\n\nclass QuickSearchElm {\n constructor(public el: HTMLInputElement, public searchType: string, public seriesKey: string) { }\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass QuickSearch implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n @Inject()\n protected validator: Validator;\n\n activeDropdownJournal: string;\n autcompleteInstances: Map;\n _URLParameters: QuickSearchURLParams;\n _autoCompleteOptions: AutoCompleteOptions;\n\n protected get autoCompleteOptions(): AutoCompleteOptions {\n return this._autoCompleteOptions;\n }\n\n // On/Off Autocomplete\n protected get isAutocompleteOn(): boolean {\n return true;\n }\n\n // Submit quick search if user pressed Enter without choosing an autocomplete value\n protected get submitWithoutChoosingValue(): boolean {\n return true;\n }\n\n // Reserve the user input when changing between different journals\n protected get reserveSearchInputOnJournalChange(): boolean {\n return false;\n }\n\n protected get activeJournalForm(): HTMLElement {\n return this.domUtils.getElement(`[aria-labelledby=\"#${this.activeDropdownJournal}\"] form`, this.elements.qsHeaderWrapper)\n }\n\n protected get journalCitationInputs(): NodeListOf{\n return this.domUtils.closest(this.selectors.inputGroup, this.elements.citationSearchDoiField).querySelectorAll('input')\n }\n\n protected get URLParameters(): QuickSearchURLParams {\n return {\n hs: 'historyItemsConf',\n pts: 'publicationTitlesConf',\n ptgs: 'groupTitlesConf',\n ptfs: 'publicationItemsConf',\n ts: 'topicsConf',\n cs: 'contributorsConf',\n pt: 'publicationTypesConf'\n }\n }\n\n constructor(readonly wrapper: HTMLElement) { }\n\n initialize(): void {\n this._URLParameters = this.URLParameters;\n this.setAutoCompleteOptions();\n this.setActiveJournal();\n this.elements.initialize(this.wrapper);\n if (this.elements.qsAutocomplete.length && this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.initAutocomplete();\n }\n this.addEventListeners();\n this.domUtils.getElements(this.selectors.autoCompleteWrapper).forEach((element, i) => {\n element.setAttribute('aria-label', 'Enter a text or select an option');\n })\n }\n\n /**\n * Set activeDropdownJournal to default \"Anywhere\"\n *\n */\n setActiveJournal() {\n this.activeDropdownJournal = this.domUtils.getElement(`${this.selectors.qsItems} > div`)\n ?.getAttribute('aria-labelledby')\n ?.replace(/[#]/, '');\n }\n\n setAutoCompleteOptions() {\n this._autoCompleteOptions = { isSelectOnly: false };\n }\n\n protected elementRenderer(item, data) {\n let ele;\n\n if (this.autoCompleteOptions.isSelectOnly === true) {\n ele = document.createElement('div');\n } else {\n ele = document.createElement('a');\n ele.href = data.value.url;\n }\n\n ele.className = \"autoComplete__link--grid\";\n ele.innerHTML = `${data.value.highlight}`;\n // TODO, fix the global var declaration.\n // @ts-ignore\n if (data.value.paramFormatted && config.enableAutoCompleteCategory) {\n ele.innerHTML = `${data.value.paramFormatted} ${ele.innerHTML}`;\n }\n item.setAttribute('aria-label', ele.innerText);\n item.innerHTML = '';\n item.appendChild(ele);\n }\n\n protected get defaultConfigs() {\n return {\n threshold: 2,\n debounce: 300,\n resultItem: {\n element: this.elementRenderer.bind(this),\n class: `${this.classList.autocompleteResultItem} my-2`\n },\n searchEngine: (query, record) => {\n return record.highlight || record.label;\n },\n }\n }\n\n protected getConfigs(quickSearchElm: QuickSearchElm, autoCompleteObj: AutoComplete) {\n return {\n data: {\n src: async () => {\n const url = this.buildFetchURL(quickSearchElm);\n if (url) {\n const data = await fetch(url);\n return await data.json();\n } else {\n return [];\n }\n },\n cache: false\n },\n selector: () => quickSearchElm.el,\n resultsList: this.resultListConfig(quickSearchElm),\n ...this.defaultConfigs\n }\n }\n\n protected handleAutoCompleteOptions(ele: HTMLElement) {\n // check if it's a citation field, if yes, then autoCompleteOptions.isSelectOnly should be true\n // meaning clicking on autocomplete items will just copy the text\n this.autoCompleteOptions.isSelectOnly = this.domUtils.containsClasses(ele, this.classList.citationSearchJournalField)\n }\n\n protected initAutoCompleteInstance(quickSearchElm: QuickSearchElm): AutoComplete {\n this.handleAutoCompleteOptions(quickSearchElm.el);\n let autoCompleteObj: AutoComplete = {};\n const configs = this.getConfigs(quickSearchElm, autoCompleteObj);\n autoCompleteObj = new AutoComplete(configs);\n this.domUtils.addEventListener(quickSearchElm.el, 'selection', this.onSelection.bind(this));\n return autoCompleteObj;\n }\n\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return {\n maxResults: 10,\n render: true,\n idName: 'autoComplete-' + Math.ceil(Math.random() * 10000),\n class: 'autoComplete rlist',\n destination: () => this.resultListDestination(quickSearchElm)\n }\n }\n\n protected resultListDestination(quickSearchElm: QuickSearchElm) {\n if (this.domUtils.closest(this.selectors.citationSearch, quickSearchElm.el)) {\n return quickSearchElm.el.parentElement;\n }\n return quickSearchElm.el.parentElement.parentElement;\n }\n\n\n protected initAutocomplete() {\n this.autcompleteInstances = new Map();\n this.elements.qsAutocomplete.forEach((element, i) => {\n element.setAttribute('type', 'search');\n let quickSearchElm = new QuickSearchElm(element, null, null);\n\n // check if the search element is in a specific journal or anywhere and update it accordingly\n if (element.parentElement.classList.contains('option-journal')) {\n quickSearchElm.seriesKey = this.domUtils.getElement(this.selectors.qsSeriesKey, element.parentElement)?.value;\n quickSearchElm.searchType = 'journal';\n }\n\n this.autcompleteInstances.set(\n quickSearchElm,\n this.initAutoCompleteInstance(quickSearchElm)\n );\n });\n }\n\n addEventListeners(): void {\n if (this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.elements.qsAutocomplete.forEach(input => {\n input.addEventListener('keydown', this.onKeyDown.bind(this, input));\n });\n }\n\n this.elements.qsForms.forEach(form => {\n form.addEventListener('submit', this.onFormSubmit.bind(this, form));\n })\n\n if (this.elements.qsDropdowns && this.elements.qsDropdowns.length > 0) {\n this.elements.qsDropdowns.forEach(item => {\n item.addEventListener('click', this.handleDropdownCollapse.bind(this, item));\n })\n }\n\n this.registerCitationSearchEvents();\n this.autocompleteAnnouncer();\n }\n\n protected autocompleteAnnouncer(): void {\n const announcerContainer = document.querySelector('.advanced-search__autocomplete__announcer');\n const autocompleteLists = document.querySelectorAll('[id^=\"autoComplete_list_\"]');\n const mutationCallback = function(mutationsList) {\n mutationsList.forEach(mutation => {\n if(mutation.target.children.length){\n announcerContainer.innerHTML = `${mutation.target.children.length} results are available, use up and down arrow keys to navigate.`\n } else {\n announcerContainer.innerHTML = `No results are available.`\n }\n });\n };\n const observer = new MutationObserver(mutationCallback);\n autocompleteLists.forEach(element => {\n observer.observe(element, { childList: true });\n });\n }\n\n\n protected onFormSubmit(form: HTMLFormElement, e: Event) {\n const inputValue = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, form)?.value;\n if (inputValue === '') {\n window.location.href = '/search/advanced';\n e.preventDefault();\n } else {\n form.submit()\n }\n }\n\n protected onSelection(event: CustomEvent & { target: HTMLInputElement }) {\n if (this.autoCompleteOptions.isSelectOnly === true) {\n // set input field value to the label of the clicked autocomplete item\n event.target.value = event.detail.selection.value.label;\n } else {\n window.location.href = event.detail.selection.value.url;\n }\n }\n\n\n protected onKeyDown(input: HTMLInputElement, e: KeyboardEvent,) {\n if (e.keyCode === 13) {\n // this is necessary since the autocomplete plugin prevents default on Enter\n const submitForm = () => this.domUtils.closest('form', input).dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n if (this.submitWithoutChoosingValue) {\n if (this.domUtils.getElement(this.selectors.autocompleteSelectedResultItem, this.wrapper)) {\n return\n }\n return submitForm()\n } else if (input.value !== '') {\n return\n }\n submitForm()\n }\n }\n\n protected handleDropdownCollapse(item: HTMLElement, e: Event) {\n const selectedItemId = item.id;\n if (this.activeDropdownJournal === selectedItemId) {\n // prevent collapse default behavior of collapsing the menu when pressing on it again\n item.removeAttribute('data-toggle');\n setTimeout(() => {\n item.setAttribute('data-toggle', 'collapse');\n }, 0);\n } else {\n if (this.reserveSearchInputOnJournalChange) {\n if (this.activeJournalForm) {\n const input = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, this.activeJournalForm);\n this.activeDropdownJournal = selectedItemId;\n input.value = input.value; // huh?\n }\n } else {\n this.activeDropdownJournal = selectedItemId;\n }\n }\n }\n\n protected registerCitationSearchEvents() {\n if (!this.domUtils.containsClasses(this.wrapper, this.classList.citationSearch)) {\n return\n }\n\n this.domUtils.addEventListener(this.elements.qsAutocomplete, 'input', this.changeSubmitButtonState.bind(this));\n\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.changeSubmitButtonState.bind(this));\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.onCitationSearchDoiField.bind(this));\n\n this.changeSubmitButtonState(); // initial check to enable submit button if the fields have a valid value from the JSON\n }\n\n protected onCitationSearchDoiField() {\n let ele = this.elements.citationSearchDoiField,\n hasValue = ele.value !== \"\";\n\n ele.setAttribute('name', hasValue ? ele.dataset.name : \"\"); // remove DOI field name/value from submit payload unless it has a valid value\n\n this.journalCitationInputs.forEach((input) => {\n if (\n input.getAttribute('name') === \"quickLinkDoi\" ||\n input.getAttribute('data-name') === \"quickLinkDoi\" ||\n input.getAttribute('name') === \"quickLink\"\n ) {\n return;\n }\n if (input.getAttribute('name') === \"quickLinkJournal\") {\n this.domUtils.toggleClasses(\n this.domUtils.closest(this.selectors.journalSearchHideAutocompleteWrapper, input),\n this.classList.hideAutoComplete,\n hasValue\n ) // this is to hide autocomplete suggestions, as they sometimes render after you've already written something\n // in the DOI field, and you can't hide them unless you **select journal field > click somewhere else to\n // blur it**, and you can't do this as that field is disabled\n }\n input.disabled = hasValue; // disabled all other fields if the DOI one has a valid value\n })\n }\n\n protected changeSubmitButtonState() {\n let allEmpty = true;\n\n if (\n this.validator.isNotEmpty(this.elements.citationSearchJournalField) ||\n this.validator.isNotEmpty(this.elements.citationSearchDoiField)\n ) {\n allEmpty = false;\n }\n\n // enable if at least one main field has a valid value\n if (allEmpty) {\n this.elements.citationSubmit.setAttribute('disabled', 'true');\n } else {\n this.elements.citationSubmit.removeAttribute('disabled');\n }\n }\n\n protected buildFetchURL(element: QuickSearchElm) {\n const parameters = Object.entries(this.URLParameters).reduce((acc, [key, prop]) => {\n const value = element.el.dataset[prop];\n if (value) {\n acc.push(`${key}=${value}`);\n }\n return acc;\n }, []);\n const term = element.el.value.trim().replace(/\\s\\s+/g, ' ');\n if (\n term.split(' ').length >= parseInt(element.el.dataset.autoCompleteMaxWords) ||\n term.length >= parseInt(element.el.dataset.autoCompleteMaxChars)\n ) {\n return '';\n }\n // title-auto-complete maybe should be used for citation but it hasn't been used in literatum for quite a while\n return `/action/doSuggest?target=auto-complete&query=${encodeURIComponent(term)}&${parameters.join(\n '&'\n )}&fl=PubID${element.searchType === 'journal' ? '&within=' + element.seriesKey : ''}`;\n }\n}\n\nexport default QuickSearch;\n\nexport {\n Elements as QuickSearchElements,\n Selectors as QuickSearchSelectors,\n ClassList as QuickSearchClassList,\n Texts as QuickSearchTexts,\n AutoCompleteOptions as QuickSearchAutoCompleteOptions,\n QuickSearchElm\n}","(function () {\n const adplaceholder = {\n init: function () {\n $('.js__toggleAdForm').on('click', function (e) {\n e.preventDefault();\n const elemToToggle = '#' + $(this).data('toggle');\n $(elemToToggle).slideToggle();\n });\n },\n };\n UX.adplaceholder = adplaceholder; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n $multi_search;\n\n // get the 'data-widget-id' attribute from the current generated widget\n function getWidgetId(elem) {\n var widgetEl = elem.parents('[data-widget-id]')[0];\n var widgetId = widgetEl ? $(widgetEl).data('widget-id') : '';\n\n return widgetId;\n }\n\n // get The content attribute from the meta tag in the head\n function getPbContext() {\n var pbContext = $('[name=\"pbContext\"]').attr('content');\n return pbContext ? pbContext : '';\n }\n\n const multiSearch = {\n init: function () {\n multiSearch.control();\n },\n control: function () {\n $body.on('click', '.multi-search__dropblock__holder a', function () {\n var el = $(this);\n\n multiSearch.set.parent(el);\n multiSearch.on.select.dropdown(el);\n });\n\n $body.on('click', 'a.remove-topic', function () {\n var el = $(this);\n var widgetID = getWidgetId(el);\n\n multiSearch.set.parent(el);\n multiSearch.topic.remove(widgetID);\n });\n },\n on: {\n select: {\n dropdown: function (elem) {\n var tagLabel = elem.data('label');\n var tagId = elem.data('value');\n var widgetID = getWidgetId(elem);\n\n multiSearch.topic.add(tagLabel, tagId, widgetID);\n },\n },\n },\n topic: {\n add: function (label, id, widgetID) {\n var params = {\n multiSearchAction: 'applyTopic',\n tagId: id,\n tagLabel: label,\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n remove: function (widgetID) {\n var params = {\n multiSearchAction: 'removeTopic',\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n lazyload: function () {\n function lazyLoad() {\n $('.lazy-load').remove();\n $('.delayLoad').removeClass('delayLoad').addClass('delayedLoad');\n }\n\n $('.creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n addClass: 'loa-height',\n });\n\n $('.card .creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 1,\n type: 'list',\n addClass: 'loa-height',\n });\n\n setTimeout(lazyLoad, 10);\n },\n },\n set: {\n parent: function (elem) {\n $multi_search = $(elem.parents('.multi-search')[0]);\n },\n },\n ajax: function (params) {\n params['pbContext'] = getPbContext();\n\n $.ajax({\n type: 'GET',\n url: '/pb/widgets/multiSearch/updateTopic',\n dataType: 'html',\n data: params,\n async: true,\n success: function (html) {\n multiSearch.render(html);\n multiSearch.topic.lazyload();\n },\n error: function (error) {\n console.log(error);\n },\n });\n },\n render: function (html) {\n $multi_search.html('');\n $multi_search.replaceWith(html);\n },\n };\n\n UX.multiSearch = multiSearch;\n})();\n","$(document).ready(function () {\n // display user login popup - loginBar\n $(document).on('click', '#indivLogin, #guestLogin', function (event) {\n event.preventDefault();\n event.stopPropagation();\n $(this).toggleClass('active');\n $('.navigation-login-dropdown-container:not(.login-options)').toggleClass('hidden');\n if ($('.search-open').is(':visible')) {\n toggleQuickSearch(); /*eslint-disable-line*/\n }\n });\n\n $(document).on('click', function (e) {\n if (\n $(e.target).attr('id') !== 'indivLogin' &&\n $(e.target).attr('id') !== 'guestLogin' &&\n !$('.navigation-login-dropdown-container').hasClass('hidden')\n ) {\n $('.navigation-login-dropdown-container').addClass('hidden');\n }\n });\n\n // enable sumbit btn for access token widget\n $('#accessTokenForm div.input-group input[type=text]').on('keyup input change', function () {\n !$('#accessTokenForm div.input-group #tokenAccess').val().length\n ? $('#accessTokenForm input[type=submit]').attr('disabled', 'disabled')\n : $('#accessTokenForm input[type=submit]').removeAttr('disabled');\n });\n\n // enable sumbit btn for access token widget\n $('.registration-popup input[type=submit]').attr('disabled', 'disabled');\n\n $('.registration-popup input[type=text]').on('keyup input change', function () {\n !$(this).val().length\n ? $('.registration-form input[type=submit]').attr('disabled', 'disabled')\n : $('.registration-form input[type=submit]').removeAttr('disabled');\n });\n\n // display verification code hidden msg after 3m\n if ($('#check-if-exist')) {\n setTimeout(function () {\n $('#hidden-message').css('visibility', 'visible');\n }, 30000);\n }\n\n // enable sumbit btn for 2-step widget\n $('#check-if-exist input[type=input]').on('keyup input change', function () {\n !$('#check-if-exist input[type=input]').val().length\n ? $('#check-if-exist input[type=submit]').attr('disabled', 'disabled')\n : $('#check-if-exist input[type=submit]').removeAttr('disabled');\n });\n});\n\n// this is not required anymore\n// $(window).on('load', function () {\n// // recaptcha load\n// if ($('.g-recaptcha').length) {\n// loadRecaptcha(); /*eslint-disable-line*/\n// }\n// });\n\nfunction loadInstitutionPage(selectDom) {\n var href = $(selectDom).val();\n location.href = href;\n}\nwindow.loadInstitutionPage = loadInstitutionPage; // add to global namespace\n","$(document).ready(function () {\n $('.registration__personal .registration__button').on('click', function (e) {\n e.preventDefault();\n alert('Registration magic happens'); //TODO: For testing purposes only, obviously. Delete after registration procedure is implemented\n $(this).parents('.row').slideUp(200);\n $(this).parents('.row').next().find('.accordion__control').click();\n });\n});\n","(function (UX) {\n 'use strict';\n\n let showRecommended = {\n selectors: {\n placeholder: '.show-recommended-placeholder',\n },\n desktopWidth: 768,\n init: () => {\n let relatedTab;\n $(showRecommended.selectors.placeholder).each((index, widget) => {\n if (\n $(widget).closest('#pane-pcw-related:not(.active)').length &&\n window.screen.width >= showRecommended.desktopWidth\n ) {\n relatedTab = document.querySelectorAll('#pane-pcw-related, #pane-pcw-relatedcon');\n relatedTab.forEach(tab => {\n tab.addEventListener('click', () => showRecommended.getRecommendedData(widget));\n });\n } else {\n showRecommended.getContent(widget);\n }\n });\n },\n getContent: widget => {\n let $widget = $(widget);\n $widget.load($widget.attr('data-ajaxurl'), 'onload=true', function () {\n showRecommended.truncate && showRecommended.truncate($widget);\n setTimeout(() => {\n showRecommended.checkIfClosed($widget);\n showRecommended.hideSkeletons($widget);\n $(document).trigger('showRecommended:loaded');\n }, 10);\n });\n },\n getRecommendedData: widget => {\n if (!widget.classList.contains('js-reommended-loaded')) {\n showRecommended.getContent(widget);\n widget.classList.add('js-reommended-loaded');\n }\n },\n truncate: $widget => {\n if (!showRecommended.truncate) {\n return;\n }\n $('.creative-work__title', $widget).not(\"[data-truncate='none']\").truncate({\n lines: 3,\n addClass: 'min-height',\n });\n\n $('.creative-work .loa', $widget).not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n addClass: 'loa-height',\n });\n },\n checkIfClosed: $widget => {\n let $accordionTab = $widget.closest('.accordion-tabbed__tab');\n if (!$accordionTab.hasClass('js--open')) {\n $accordionTab.find('.accordion-tabbed__control').attr('aria-expanded', 'false');\n $accordionTab.find('.accordion-tabbed__content').hide();\n }\n },\n hideSkeletons: $widget => {\n $('.lazy-load', $widget).remove();\n $('.delayLoad', $widget).removeClass('delayLoad').addClass('delayedLoad');\n $widget.replaceWith($widget.children());\n },\n };\n UX.showRecommended = showRecommended;\n})(UX);\n","function menubar(e, t) {\n (this.$id = $('#' + e)),\n (this.$rootItems = this.$id.children('li')),\n (this.$items = this.$id.find('.menu-item')),\n (this.$parents = this.$id.find('.menu-parent')),\n (this.$allItems = this.$parents.add(this.$items)),\n (this.$activeItem = null),\n (this.vmenu = t),\n (this.bChildOpen = !1),\n (this.keys = {\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n }),\n this.bindHandlers();\n}\nmenubar.prototype.bindHandlers = function () {\n var e = this;\n\n this.$allItems.keydown(function (t) {\n return e.handleKeyDown($(this), t);\n }),\n this.$allItems.keypress(function (t) {\n return e.handleKeyPress($(this), t);\n }),\n this.$allItems.focus(function (t) {\n return e.handleFocus($(this), t);\n }),\n $(document).click(function (t) {\n return e.handleDocumentClick(t);\n });\n};\n\nmenubar.prototype.handleFocus = function (e, t) {\n if (null == this.$activeItem) this.$activeItem = e;\n else if (e[0] !== this.$activeItem[0]) return !0;\n const i = this.$activeItem.parentsUntil('div').filter('li');\n if (\n (this.$allItems.removeClass('menu-focus menu-focus-checked'),\n this.$activeItem.is('.checked')\n ? this.$activeItem.addClass('menu-focus-checked')\n : this.$activeItem.addClass('menu-focus'),\n i.addClass('menu-focus'),\n 1 === this.vmenu)\n )\n if (1 === this.bChildOpen) {\n const s = e.parent();\n s.is('#menubar') &&\n 'true' === e.attr('aria-haspopup') &&\n e.addClass('hover').children('ul').attr('aria-hidden', 'false');\n } else this.vmenu = !1;\n return !0;\n};\n\nmenubar.prototype.handleKeyDown = function (e, t) {\n const i = e.parent();\n if (t.altKey || t.ctrlKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n this.$id.find('ul').attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus hover'),\n (this.$activeItem = null),\n 0 === this.bChildOpen;\n break;\n case this.keys.esc:\n if (UX.menu.$toggle.length > 0) {\n //if (e.keyCode === escKey) {\n\n //e.preventDefault();\n UX.menu.on.hide();\n UX.menu.$toggle.focus();\n //}\n } else {\n return (\n i.is('#menubar')\n ? (e.removeClass('hover').children('ul').first().attr('aria-hidden', 'true'), e.focus())\n : ((this.$activeItem = i.parent()),\n e.removeClass('hover'),\n (this.bChildOpen = !1),\n this.$activeItem.focus(),\n i.attr('aria-hidden', 'true')),\n t.stopPropagation(),\n !1\n );\n }\n\n case this.keys.enter:\n case this.keys.space:\n const s = e.parent();\n return (\n s.is('#menubar')\n ? (e.addClass('hover').children('ul').first().attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n this.processMenuChoice(e),\n e.find('ul > li:first').find('a').focus())\n : (this.processMenuChoice(e),\n this.$allItems.removeClass('menu-hover menu-hover-checked hover'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n this.$id.find('ul').not('#menubar').attr('aria-hidden', 'true'),\n (this.$activeItem = null)),\n t.stopPropagation(),\n !1\n );\n case this.keys.left:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveUp(e))\n : (this.$activeItem = this.moveToPrevious(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.right:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveDown(e))\n : (this.$activeItem = this.moveToNext(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.up:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToPrevious(e))\n : (this.$activeItem = this.moveUp(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.down:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToNext(e))\n : (this.$activeItem = this.moveDown(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n }\n /*eslint-enable*/\n return !0;\n};\n\nmenubar.prototype.moveToNext = function (e) {\n let a;\n let t = e.parent(),\n i = t.children('li'),\n s = i.length,\n r = i.index(e),\n n = null;\n if (t.is('#menubar')) {\n if (((n = s - 1 > r ? e.next() : i.first()), 'true' === e.attr('aria-haspopup'))) {\n e.removeClass('hover');\n a = e.children('ul').first();\n 'false' === a.attr('aria-hidden') && (a.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus'), 'true' === n.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n n.addClass('hover');\n a = n.children('ul').first();\n a.attr('aria-hidden', 'false');\n }\n } else if ('true' === e.attr('aria-haspopup')) {\n e.addClass('hover');\n a = e.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n } else {\n if (1 === this.vmenu) return e;\n let h = null,\n o = null;\n if (\n ((h = e.parentsUntil('div').filter('ul').not('#menubar')),\n h.attr('aria-hidden', 'true'),\n h.find('li').removeClass('menu-focus hover'),\n h.last().parent().removeClass('menu-focus hover'),\n (o = h.last().parent()),\n (r = this.$rootItems.index(o)),\n (n = r < this.$rootItems.length - 1 ? o.next() : this.$rootItems.first()),\n 'true' === n.attr('aria-haspopup') && n.children('ul').length > 0)\n ) {\n n.addClass('hover');\n a = n.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n }\n }\n return n;\n};\n\nmenubar.prototype.moveToPrevious = function (e) {\n let n;\n let t = e.parent(),\n i = t.children('li'),\n s = (i.length, i.index(e)),\n r = null;\n if (t.is('#menubar')) {\n if (((r = s > 0 ? e.prev() : i.last()), 'true' === e.attr('aria-haspopup'))) {\n n = e.removeClass('hover').children('ul').first();\n 'false' === n.attr('aria-hidden') && (n.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus hover'), 'true' === r.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n r.addClass('hover');\n n = r.children('ul').first();\n n.attr('aria-hidden', 'false');\n }\n } else {\n const a = t.parent(),\n h = a.parent();\n\n if (1 !== this.vmenu && h.is('#menubar')) {\n if (\n (t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n a.removeClass('menu-focus hover'),\n (s = this.$rootItems.index(a)),\n (r = s > 0 ? a.prev() : this.$rootItems.last()),\n r.addClass('menu-focus hover'),\n 'true' === r.attr('aria-haspopup'))\n ) {\n n = null;\n r.children('ul').length > 0 &&\n ((n = r.addClass('hover').children('ul').first()),\n n.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n (r = n.children('li').first()));\n }\n } else\n (r = t.parent()),\n t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n r.removeClass('hover'),\n 1 === this.vmenu && (this.bChildOpen = !1);\n }\n return r;\n};\n\nmenubar.prototype.moveDown = function (e, t) {\n let i = e.parent(),\n s = i.children('li').not('.separator'),\n r = s.length,\n n = s.index(e),\n a = null,\n h = null;\n if (i.is('#menubar'))\n return 'true' !== e.attr('aria-haspopup')\n ? e\n : ((h = e.addClass('hover').children('ul').first()),\n (a = h.children('li').first()),\n h.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n a);\n if (t) {\n let o = !1,\n u = n + 1;\n for (u === r && (u = 0); u !== n; ) {\n const l = s.eq(u).html().charAt(0);\n if (l.toLowerCase() === t) {\n o = !0;\n break;\n }\n (u += 1), u === r && (u = 0);\n }\n return 1 === o ? ((a = s.eq(u)), e.removeClass('menu-focus menu-focus-checked'), a) : e;\n }\n return (a = r - 1 > n ? s.eq(n + 1) : s.first()), e.removeClass('menu-focus menu-focus-checked'), a;\n};\n\nmenubar.prototype.moveUp = function (e) {\n let t = e.parent(),\n i = t.children('li').not('.separator'),\n s = (i.length, i.index(e)),\n r = null;\n return t.is('#menubar')\n ? e\n : ((r = s > 0 ? i.eq(s - 1) : i.last()), e.removeClass('menu-focus menu-focus-checked'), r);\n};\n\nmenubar.prototype.handleKeyPress = function (e, t) {\n if (t.altKey || t.ctrlKey || t.shiftKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n return !0;\n case this.keys.esc:\n case this.keys.enter:\n case this.keys.space:\n case this.keys.up:\n case this.keys.down:\n case this.keys.left:\n case this.keys.right:\n return t.stopPropagation(), !1;\n default:\n var i = String.fromCharCode(t.which);\n return (this.$activeItem = this.moveDown(e, i)), this.$activeItem.focus(), t.stopPropagation(), !1;\n }\n return !0;\n /*eslint-enable*/\n};\n\nmenubar.prototype.handleDocumentClick = function (e) {\n var t = this.$id.find('ul').not('#menubar');\n return (\n t.attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n (this.$activeItem = null),\n !0\n );\n};\n\nmenubar.prototype.processMenuChoice = function (e) {\n var t = (e.parent().attr('id'), e.attr('id'), e.data('href'));\n if (null != t)\n if (t.toLowerCase().indexOf('legacy.') > 0) {\n const i = window.open(t, '_blank');\n i.focus();\n } else window.location.href = t;\n const s = e.find('a');\n null != s && (window.location.href = s[0].href);\n};\nwindow.menubar = menubar;\n","(function () {\n const $body = $('body');\n\n var slide = {\n $slide: null,\n $target: null,\n $contents: null,\n $slideinfo: null,\n $toggle: null,\n prev: null,\n isMobile: false,\n vPort: 'screen-sm',\n elementvPort: null,\n back: false,\n nested: false,\n multi: false,\n activeSlide: 0,\n oldInfo: [],\n off: null,\n clone: null,\n wait: false,\n backLabel: 'back',\n $elements: null,\n isQueue: false,\n isRTL: false,\n\n init: function () {\n slide.$slide =\n '';\n\n slide.$elements = $(slide.$slide);\n slide.displaySlideHtmlToPage();\n\n slide.$contents = slide.$elements.find('.w-slide__content');\n slide.$slideinfo = slide.$elements.find('.w-slide__title');\n slide.$back = slide.$elements.find('.w-slide__back');\n slide.$toggle = $('.w-slide__btn');\n\n slide.elementvPort = slide.vPort;\n slide.vPort = [];\n\n slide.customViewPorts();\n\n slide.$toggle.each(function (index) {\n slide.check.viewPort($(this), index);\n slide.responsive(index);\n });\n\n slide.additionalInitialization();\n slide.control();\n slide.additionalControls();\n if (typeof facetDateChart != 'undefined') {\n facetDateChart.control(); /*eslint-disable-line*/\n }\n\n if (UX.utils && UX.utils.isRTL()) {\n slide.isRTL = true;\n }\n },\n displaySlideHtmlToPage: () => {\n let $main = $('main');\n if ($main.length > 0) $main.append(slide.$elements);\n else $body.append(slide.$elements);\n },\n additionalInitialization: function () {},\n responsive: function (index) {\n $(document).on(slide.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = false;\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).addClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.vPort[index] + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = true;\n slide.on.off(e);\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).removeClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.elementvPort + '-on', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = true;\n slide.$elements.css('margin-top', 0);\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n $(document).on(slide.elementvPort + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = false;\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n slide.additionalResponsive();\n },\n additionalResponsive: function () {},\n control: function () {\n $body.on('click', '.w-slide__btn', function (e) {\n if (slide.isQueue && slide.isMobile) {\n e.stopImmediatePropagation();\n $(this).off('click');\n return false;\n }\n slide.isQueue = true;\n\n if ($(this).hasClass('disable')) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n if ($(this).hasClass('slide-active')) {\n e.stopPropagation();\n e.preventDefault();\n slide.addTransition();\n slide.$toggle = $(this);\n slide.$target = $(slide.$toggle.data('slide-target'));\n slide.back = false;\n\n if ($(this).is('[id*=pane-pcw]') && UX.tab.check.empty($(this))) {\n setTimeout(function () {\n slide.on.show(e);\n }, 3000);\n } else {\n slide.on.show(e);\n }\n }\n });\n\n $body.on('click', '.w-slide__back, .w-slide__hide', function (e) {\n if ($(this).hasClass('w-slide__back')) {\n e.preventDefault();\n }\n\n slide.back = true;\n slide.on.hide(e);\n });\n },\n additionalControls: function () {},\n addTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', 'all 250ms');\n },\n removeTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', '');\n },\n customViewPorts: function () {\n if ($('.journal-home').length) {\n slide.elementvPort = 'screen-md';\n }\n },\n setBackLabel: function () {\n slide.$back.html('' + slide.backLabel);\n },\n on: {\n show: function (e) {\n $(document).trigger('UX-detach');\n if (typeof jcf != 'undefined') {\n jcf.destroy($('.range-slider__range')); /*eslint-disable-line*/\n }\n\n /**\n * Fire \"open\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not open.\n */\n const openingEvent = $.Event('slide:open');\n $(document).trigger(openingEvent, [slide]);\n if (openingEvent.isDefaultPrevented()) {\n return;\n }\n\n if ($body.attr('data-active') !== 'undefined') {\n UX.controller.check(e);\n }\n\n if (slide.$toggle.is('[data-full-screen]') && !slide.$toggle.data('[full-screen]') && !slide.isMobile)\n $body.addClass('w-slide__not-fullWidth');\n else $body.removeClass('w-slide__not-fullWidth');\n\n slide.nested = slide.$toggle.parents('.w-slide__content').length > 0;\n slide.multi =\n slide.$toggle.closest('.pill-list').length > 0 || slide.$toggle.is('[data-slide-target*=\"#pill\"]');\n if (slide.$toggle.closest('.w-slide__pill').length > 0) {\n slide.nested = false;\n slide.multi = true;\n }\n\n const popupType = e.currentTarget?.getAttribute('aria-haspopup');\n if (popupType) slide.$elements.attr('role', popupType === 'true' ? 'menu' : popupType);\n\n slide.on.additionalShow();\n\n slide.$slideinfo.hide().removeClass('js--open');\n slide.backLabel = 'back';\n slide.setBackLabel();\n\n if (slide.nested) {\n slide.on._nestSlide();\n }\n\n if (slide.multi) {\n if (slide.activeSlide !== 0) {\n slide.back = true;\n slide.on.hide(e);\n }\n\n slide.activeSlide++;\n slide.$elements\n .addClass('w-slide__pill')\n .find('.w-slide__content')\n .append('
');\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n\n slide.$contents.attr('original-target', slide.$toggle.data('slide-target'));\n\n if (slide.$target.hasClass('tab__pane')) {\n slide.$target.closest('.tab__content').find('.tab__pane').removeClass('active');\n slide.$target.addClass('active');\n }\n\n let label = slide.$toggle.text();\n if (slide.$toggle.is('[data-label]')) {\n label = slide.$toggle.data('label');\n }\n\n //LIT-163835\n if (slide.$toggle.hasClass('loa') || slide.$toggle.parents('.loa.mobile-authors').length > 0) {\n label = 'AUTHORS';\n }\n\n let clonedDiv = slide.$target.children();\n\n slide.on.destroyJcf(clonedDiv);\n\n if (slide.$toggle.is('[data-slide-clone]')) {\n slide.clone = slide.$toggle.data('slide-clone');\n\n if (slide.clone === 'self') {\n clonedDiv = slide.$target;\n }\n } else {\n slide.clone = '';\n }\n\n slide.oldInfo.push(label);\n slide.$slideinfo.html(label);\n\n const isLoi = slide.$target.find('.loi').length > 0;\n if (isLoi) {\n slide.$contents.append(clonedDiv.html());\n $('.dropBlock-loi__holder .loi').remove();\n slide.$contents.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.clone === 'self') {\n if (slide.nested || slide.multi) {\n slide.$target.after('
');\n } else {\n slide.$target.after('
');\n }\n } else {\n if (slide.nested || slide.multi) {\n slide.$target.append('
');\n } else {\n slide.$target.append('
');\n }\n }\n\n clonedDiv.appendTo(slide.$contents);\n\n slide.on.rebuildJcf(slide.$contents);\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n $body.addClass('lock-screen slide-is-active').attr('data-active', 'slide');\n slide.$back.focus();\n\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.addClass('slide');\n }\n /*\n $('.w-slide__title').truncate({\n lines: 1\n });\n */\n\n // \"opened\" event\n const openEvent = $.Event('slide:opened');\n\n if (slide.wait) {\n setTimeout(function () {\n slide.on._showSlide();\n slide.on.slidePill();\n $(document).trigger(openEvent, [slide]);\n }, 150);\n slide.wait = false;\n } else {\n slide.on._showSlide();\n $(document).trigger(openEvent, [slide]);\n }\n\n $(document).trigger('UX-attach');\n },\n _showSlide: function () {\n var slideWidth = '100%';\n\n var $slidedDiv = slide.$elements;\n if (slide.nested || slide.multi) {\n $slidedDiv = slide.$contents;\n }\n\n if (!slide.$elements.hasClass('js--open') && slide.multi) {\n $slidedDiv = $('[class*=nested--], .w-slide');\n }\n let translate = `-${slideWidth}`;\n if (slide.isRTL) {\n translate = slideWidth;\n }\n\n $slidedDiv\n .css('transform', `translateX(${translate})`)\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.isQueue = false;\n slide.removeTransition();\n });\n slide.$slideinfo.show().addClass('js--open');\n slide.$elements.addClass('js--open');\n slide.on.additionalShowSlide();\n },\n _nestSlide: function () {\n slide.activeSlide++;\n slide.$contents.append('
');\n slide.$contents = $('.nested--' + slide.activeSlide);\n },\n additionalShow: function () {},\n additionalShowSlide: function () {},\n slidePill: function () {},\n hide: function (e) {\n const isInsideSlide = $(e.target).closest('.w-slide').length;\n /**\n * Fire \"close\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not close.\n */\n var closingEvent = $.Event('slide:close');\n $(document).trigger(closingEvent, [slide]);\n if (closingEvent.isDefaultPrevented()) {\n return;\n }\n\n if (typeof e !== 'undefined' && $('.w-slide').hasClass('js--open')) {\n if (!isInsideSlide) {\n slide.back = true;\n }\n }\n\n if (slide.back) {\n slide.addTransition();\n slide.$slideinfo.hide().removeClass('js--open');\n\n slide.nested = true;\n\n if (slide.activeSlide === 0) {\n slide.nested = false;\n slide.$contents = slide.$elements.children('.w-slide__content');\n } else {\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n slide.on.destroyJcf(slide.$contents);\n\n let originalTarget = $(slide.$contents.attr('original-target'));\n if (!originalTarget) {\n originalTarget = $body;\n }\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n slide.on.beforeReturnSlideContent();\n\n if (isLoi) {\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.$contents.find('[class*=nested--]').length) {\n slide.$contents.find('[class*=nested--]').remove();\n }\n slide.on._returnDataSlide(originalTarget);\n slide.on.rebuildJcf(originalTarget);\n }\n\n slide.oldInfo.splice(slide.activeSlide, 1);\n slide.$slideinfo.html(slide.oldInfo[slide.activeSlide - 1]);\n if (slide.$toggle) {\n slide.$toggle.focus();\n }\n\n if (slide.nested) {\n slide.activeSlide--;\n slide.on._hideSlide();\n if (slide.multi) {\n slide.$contents.remove();\n }\n slide.$contents = $('.nested--' + slide.activeSlide);\n if (slide.activeSlide === 0) {\n slide.$contents = slide.$elements.children('.w-slide__content');\n }\n } else {\n slide.activeSlide = 0;\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.removeClass('slide');\n }\n\n slide.on._hideSlide();\n slide.$elements.removeClass('js--open');\n slide.$elements.removeAttr('role');\n }\n slide.$slideinfo.show().addClass('js--open');\n\n slide.backLabel = 'back';\n slide.setBackLabel();\n slide.on.additionalHide(e);\n\n if (slide.$elements.hasClass('w-slide__pill')) {\n while (slide.activeSlide > 0) {\n slide.activeSlide--;\n slide.on.hide(e);\n }\n\n if (\n typeof e !== 'undefined' &&\n ($(e.target).hasClass('w-slide__back') || $(e.currentTarget).hasClass('w-slide__back')) &&\n slide.activeSlide === 0\n ) {\n slide.on.off(e);\n }\n }\n\n if (!isInsideSlide && !(typeof e !== 'undefined' && $(e.target).closest('.pill-list').length)) {\n slide.on.off(e);\n }\n\n slide.removeTransition();\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n\n // \"closed\" event\n const closeEvent = $.Event('slide:closed');\n $(document).trigger(closeEvent, [slide]);\n },\n _hideSlide: function () {\n let updateTarget = slide.$elements;\n if (slide.nested) updateTarget = slide.$contents;\n\n updateTarget\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n if (slide.back)\n if (!slide.nested) slide.$contents.empty();\n else $(this).remove();\n });\n },\n _returnDataSlide: function (originalTarget) {\n const returnDataSlideHere =\n slide.nested || slide.multi ? '.returnNestedDataSlideHere' : '.returnDataSlideHere';\n const $returnDataSlideHere =\n slide.clone === 'self' ? $(returnDataSlideHere) : $(returnDataSlideHere, originalTarget);\n slide.$contents.children().appendTo($returnDataSlideHere.parent());\n $returnDataSlideHere.remove();\n },\n additionalHide: function (e) {},\n beforeReturnSlideContent: function () {},\n off: function (e) {\n slide.$slideinfo.hide().removeClass('js--open');\n\n $('.pill-list li').removeClass('pill-active');\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n if (isLoi) {\n slide.$contents = $('.loi').closest('.w-slide__content');\n\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n $('.coolBar').removeClass('slide');\n slide.$contents = slide.$elements.children('.w-slide__content');\n slide.$elements\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.$elements.removeClass('js--open');\n if (slide.off) {\n $('.w-slide').removeClass('w-slide__pill');\n slide.$contents.empty();\n }\n });\n slide.off = false;\n slide.on.additionalOff(e);\n },\n additionalOff: function (e) {},\n destroyJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.destroy($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n rebuildJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.replace($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n },\n check: {\n viewPort: function ($el, index) {\n if (typeof $el.data('ctrl-res') !== 'undefined') {\n slide.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', slide.elementvPort);\n slide.vPort[index] = slide.elementvPort;\n }\n },\n },\n };\n\n UX.slide = slide; // add to global namespace\n})();\n","(function () {\n var $body = $('body');\n var reponsiveMenu = {\n vPort: 'screen-sm',\n elementvPort: null,\n isMobile: false, // variable use to determine if responsive mode is on or off\n $menuContainer: $('.responsive-menu-container'),\n leftSectionWidth: null,\n rightSectionWidth: null,\n maxMenuItemWidth: 135,\n $moreDropsown: $('.responsive-menu-nav .menubar > .dropdown-more'),\n $menu: $('.responsive-menu-nav >.drawer__nav'),\n $menuWrapper: $('.responsive-menu-nav'),\n\n init: function () {\n reponsiveMenu.elementvPort = reponsiveMenu.vPort;\n reponsiveMenu.vPort = [];\n $('.responsive-menu-container').each(function (index) {\n reponsiveMenu.check.viewPort(index, $(this));\n reponsiveMenu.responsive(index);\n });\n reponsiveMenu.control();\n reponsiveMenu.on.build();\n },\n\n responsive: function (index) {\n $(document).on(reponsiveMenu.vPort[index] + '-on', function () {\n reponsiveMenu.isMobile = true;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).addClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n\n $(document).on(reponsiveMenu.vPort[index] + '-off', function () {\n reponsiveMenu.isMobile = false;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).removeClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n },\n\n control: function () {\n $(window).on('resize', function () {\n reponsiveMenu.modifyMenu();\n });\n\n $body.on('touchend', '.dropdown-more >a, .dropdown.menu-parent>a ', function (e) {\n if ($(this).parents('.dropdown-more').length > 0 && !$(this).parent().hasClass('.dropdown-more')) {\n $('.responsive-menu-nav .js--opened:not(.dropdown-more)')\n .not($(this).parent())\n .removeClass('js--opened');\n } else {\n $('.responsive-menu-nav .js--opened').not($(this).parent()).removeClass('js--opened');\n }\n\n $(this).parent().toggleClass('js--opened');\n if (!$(this).parent().hasClass('js--opened')) {\n $(this).parent().addClass('js--forceClose');\n } else {\n $(this).parent().removeClass('js--forceClose');\n }\n });\n\n $body.click(function (e) {\n $('.responsive-menu-nav .js--opened:not(:hover)').removeClass('js--opened');\n });\n },\n on: {\n build: function () {\n reponsiveMenu.$menuWrapper.show();\n reponsiveMenu.modifyMenu();\n\n setTimeout(function () {\n reponsiveMenu.modifyMenu();\n }, 800);\n },\n },\n modifyMenu: function () {\n $('.responsive-menu-container').each(function () {\n reponsiveMenu.$menuContainer = $(this);\n reponsiveMenu.$moreDropsown = reponsiveMenu.$menuContainer.find('.dropdown-more');\n\n if (!reponsiveMenu.$menuContainer.hasClass('js--disabled-responsive-menu')) {\n reponsiveMenu.leftSectionWidth = reponsiveMenu.$menuContainer.find('.left-section').width();\n reponsiveMenu.rightSectionWidth = reponsiveMenu.$menuContainer.find('.right-section').width();\n reponsiveMenu.$menu = reponsiveMenu.$menuContainer.find('.drawer__nav');\n reponsiveMenu.$menuWrapper = reponsiveMenu.$menuContainer.find('.responsive-menu-nav');\n\n const availableMenuWidth =\n reponsiveMenu.$menuContainer.width() -\n (reponsiveMenu.leftSectionWidth + reponsiveMenu.rightSectionWidth + 35);\n let menuWidth = reponsiveMenu.$menu.width();\n\n if (availableMenuWidth > 0 && menuWidth > 0) {\n if (menuWidth > availableMenuWidth) {\n while (menuWidth > availableMenuWidth) {\n const $lastMenuItem = reponsiveMenu.$menu\n .find('.menubar > [role=\"menuitem\"]:not(.dropdown-more)')\n .last();\n if ($lastMenuItem.length > 0) {\n reponsiveMenu.$moreDropsown.removeClass('hidden');\n reponsiveMenu.$moreDropsown\n .find('>.dropdown__menu')\n .prepend($lastMenuItem[0].outerHTML);\n $lastMenuItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n } else if (\n availableMenuWidth > menuWidth + reponsiveMenu.maxMenuItemWidth &&\n !reponsiveMenu.$moreDropsown.hasClass('hidden')\n ) {\n while (availableMenuWidth > menuWidth) {\n const $moreItems = reponsiveMenu.$moreDropsown.find(\n '.dropdown__menu [role=\"menuitem\"]'\n );\n const $firstMoreItem = $moreItems.first();\n if ($firstMoreItem.length > 0) {\n reponsiveMenu.$moreDropsown.before($firstMoreItem[0].outerHTML);\n\n if ($moreItems.length <= 1) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n }\n\n $firstMoreItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n\n if (menuWidth > availableMenuWidth) {\n reponsiveMenu.modifyMenu();\n }\n }\n }\n } else {\n if (!reponsiveMenu.$moreDropsown.hasClass('hidden')) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n reponsiveMenu.$moreDropsown.before(reponsiveMenu.$moreDropsown.find('.dropdown__menu').html());\n reponsiveMenu.$moreDropsown.find('.dropdown__menu').empty();\n }\n }\n });\n },\n check: {\n viewPort: function (index, $el) {\n if (typeof $el.data('ctrl-res') != 'undefined' || $el.data('ctrl-res') === '') {\n reponsiveMenu.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', reponsiveMenu.elementvPort);\n reponsiveMenu.vPort[index] = reponsiveMenu.elementvPort;\n }\n },\n },\n };\n\n UX.reponsiveMenu = reponsiveMenu; // add to global namespace\n})();\n","(function () {\n var $body = $('body');\n\n var scrollo = {\n init: function () {\n scrollo.control();\n },\n offset: function (el) {\n var rect = el.getBoundingClientRect();\n var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n };\n },\n adjustAnchor: function (e) {\n e.preventDefault();\n const $anchor = $(':target');\n const fixedElementsHeight = scrollo.get.fixedpageElementsHeight();\n\n if ($anchor.length > 0) {\n e.stopPropagation();\n // When we prevent default, we have to also change focus to target manually\n $anchor.eq(0).focus();\n window.scrollTo(0, scrollo.offset($anchor.get(0)).top - fixedElementsHeight);\n }\n },\n control: function () {\n $(window).on('hashchange load', scrollo.adjustAnchor);\n /**\n * checks for any tag that has the hash-tag prefix and execute the adjustAnchor function\n * the .content a[href^=\"#\"] was added to support the publication content tags\n */\n $body.on(\n 'click',\n 'a.table-fn[href^=\"#\"], a.ref.fn[href^=\"#\"], .scroll-to-target a[href^=\"#\"], .content a[href^=\"#\"]',\n function (e) {\n if (window.location.hash === $(this).attr('href')) {\n scrollo.adjustAnchor(e);\n }\n }\n );\n $body.on('click keydown', 'a[href^=\"#\"].sr-only-focusable', function (e) {\n // pass click and ENTER to action\n if (e.keyCode && e.keyCode !== 13) {\n return;\n }\n if (window.location.hash === $(this).attr('href')) {\n scrollo.adjustAnchor(e);\n }\n });\n $body.on('click', '.w-slide__back', function () {\n if ($('[data-scroll-back-to]').length) {\n $(document).scrollTop($('[data-scroll-back-to]').data('scroll-back-to'));\n $('[data-scroll-back-to]').removeAttr('data-scroll-back-to');\n }\n });\n },\n\n get: {\n fixedpageElementsHeight: function () {\n var elementsHeight = 0;\n\n var $fixedHeader = $('header.fixed, .pageHeader');\n if ($fixedHeader.length) {\n elementsHeight = $fixedHeader.outerHeight();\n }\n\n const $scrolloThenFix = $('.scrollThenFix');\n if ($scrolloThenFix.length) {\n elementsHeight = $scrolloThenFix.outerHeight();\n }\n\n const $stickyCoolbar = $('.coolBar.stickybar--sticky');\n let stickyCoolbarHeigh = 0;\n if ($stickyCoolbar.length) {\n stickyCoolbarHeigh = $stickyCoolbar.outerHeight();\n if (stickyCoolbarHeigh === 0) {\n stickyCoolbarHeigh = $stickyCoolbar.find('.stickybar__wrapper').outerHeight();\n }\n elementsHeight += stickyCoolbarHeigh;\n }\n\n if ($('header .scrollThenFix, .coolBar').length) {\n $.each($('header .scrollThenFix, .coolBar'), function (index, value) {\n if ($(value).outerHeight()) {\n elementsHeight += $(value).outerHeight();\n }\n });\n }\n\n return elementsHeight;\n },\n },\n };\n\n UX.scrollo = scrollo; // add to global namespace\n})();\n","(function () {\n var coolbar = {\n sections: null,\n holder: $('.coolBar--sections .coolBar__drop'),\n vPort: 'screen-sm',\n isMobile: false,\n coolbarElement: null,\n headerHeight: 0,\n isStickyBar: false,\n lock: true, // define lock and set default value, this lock will be used to make sure to run certain functionality and to run on every scroll event\n init: function () {\n coolbar.coolbarElement = $('.coolBar');\n coolbar.isStickyBar = coolbar.coolbarElement.hasClass('stickybar');\n coolbar.get.sections();\n coolbar.fill.sections();\n coolbar.control();\n coolbar.addtionalControls();\n },\n control: function () {\n if ($('.journal-home').length) {\n coolbar.vPort = 'screen-md';\n }\n\n $(document).on(coolbar.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n $('.coolBar').addClass('coolBar--res'); // class will be used in our scss (to replace media queries)\n\n coolbar.isMobile = true;\n\n if ($('.stickybar.coolBar--res,.coolBar.coolBar--res').length > 0) {\n $('.content>article.container').addClass('article--res');\n }\n });\n\n $(document).on(coolbar.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n $('.coolBar').removeClass('coolBar--res');\n $('.content article.container').removeClass('article--res');\n $(document).trigger('eventSetContentPadding');\n coolbar.isMobile = false;\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n });\n },\n addtionalControls: function () {},\n get: {\n sections: function () {\n coolbar.sections = $('.article__content .section__title');\n },\n },\n fill: {\n sections: function () {\n if ($('.coolBar--sections').length && coolbar.sections.length > 1) {\n $('.coolBar--sections').removeClass('hidden');\n const ul = $('
    ').appendTo(coolbar.holder);\n coolbar.sections.each(function () {\n var $this = $(this);\n var li = $('
  • ').attr('role', 'menuitem').appendTo(ul);\n var link = $('')\n .attr('href', '#' + $this.attr('id'))\n .appendTo(li);\n $('').append($this.html()).appendTo(link);\n });\n } else {\n $('.coolBar--sections').remove();\n }\n if ($('.authorArticleInfoCon').length) {\n $('.coolBar--sections .coolBar__drop').append(\n '
  • Author and Article Information
  • '\n );\n }\n },\n },\n };\n UX.coolbar = coolbar; // add to global namespace\n})();\n","import {isIE} from '../../js/tests';\n\n(function () {\n let ieWarning = {\n html: '
    The site is best supported on modern browsers like Chrome, Safari, Firefox and Edge.
    ',\n parent: 'header',\n selectors: {\n target: 'header',\n content: '.content',\n warning: '.ie-warning',\n button: '.ie-warning__btn',\n },\n targetEl: null,\n contentEl: null,\n init: function () {\n const ie = isIE;\n if (!sessionStorage.getItem('ieWarning') && ie && ie < 12) {\n this.targetEl = document.querySelector(this.selectors.target);\n this.showMessage();\n }\n },\n showMessage: function () {\n ieWarning.targetEl.insertAdjacentHTML('afterbegin', this.html);\n document.querySelector(ieWarning.selectors.button).addEventListener('click', this.handlers.btnClickHandler);\n ieWarning.contentEl = document.querySelector(ieWarning.selectors.content);\n if (ieWarning.contentEl) {\n ieWarning.contentEl.style.paddingTop =\n parseInt(window.getComputedStyle(ieWarning.contentEl).paddingTop) +\n document.querySelector(ieWarning.selectors.warning).clientHeight +\n 'px';\n }\n },\n removeMessage: function () {\n if (sessionStorage) {\n sessionStorage.setItem('ieWarning', 'shown');\n }\n document\n .querySelector(ieWarning.selectors.button)\n .removeEventListener('click', this.handlers.btnClickHandler);\n const child = document.querySelector(ieWarning.selectors.warning);\n if (ieWarning.contentEl) {\n ieWarning.contentEl.style.paddingTop =\n parseInt(window.getComputedStyle(ieWarning.contentEl).paddingTop) - child.clientHeight + 'px';\n }\n ieWarning.targetEl.removeChild(child);\n },\n handlers: {\n btnClickHandler: function (ev) {\n ieWarning.removeMessage();\n },\n },\n };\n\n UX.ieWarning = ieWarning;\n UX.ieWarning.init();\n})();\n","import './menu-accessability.js';\n\n(function () {\n //document.activeElement\n\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n escKey = 27,\n enterKey = 13;\n\n var menu = {\n $toggle: $('[data-toggle=\"nav\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n vPort: ['screen-sm'],\n isMobile: false, // variable use to determine if responsive mode is on or off\n menuHeaderMainTitle: '',\n redirectPath: false,\n displayedNestedItems: false,\n nestedMenu: undefined,\n listPositionVars: {\n mainScrollingList: $('#menubar'),\n inTimeoutTiming: null, // override these if you want a custom listPosition.handle in or out timeout time\n outTimeoutTiming: null,\n mainScrollingListHeight: false,\n mobileTransitionTime: 400, // should usually keep it the same as the transition time for `.main-nav.menu--res li`'s that's in drawer.scss,\n bodyTransitionPropertyName: 'transform', // this one,\n bodyTransitionElapsedTime: 0.25, // and this one depend on the type and duration of the sidebar `show` transition (currently under `.lock-screen[data-active='menu']` in drawer.scss)\n },\n\n init: function () {\n $('.main-nav').each(function (index) {\n menu.$target = $(this);\n const $header = menu.$target.find('.menu-header');\n menu.menuHeaderMainTitle = $header.text();\n menu.redirectPath = $header.data('redirect-to');\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.items = $('.main-nav').find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.control();\n menu.additionalControl();\n },\n\n responsive: function (index) {\n $(document).on(menu.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n menu.isMobile = true;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).addClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').addClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.responsive(); // rebuild menu to be responsive - drawer\n }\n });\n });\n\n $(document).on(menu.vPort[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n menu.isMobile = false;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).removeClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').removeClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.original(); // return menu as default\n }\n });\n });\n },\n\n control: function () {\n $body.on('click', '[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.$toggle = $(this);\n menu.$target = $('#' + menu.$toggle.data('target'));\n\n menu.items = menu.$target.find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.items.each(function (index) {\n if (index === menu.items.length - 1) {\n menu.lastItem = $(this);\n }\n });\n\n menu.on.show(e);\n });\n\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.on.hide(e);\n });\n\n $body.on('click', function (e) {\n if (!$(e.target).closest('.dropdown__toggle').length) {\n $('a.dropdown__toggle.hover').removeClass('hover');\n }\n if (\n !$(e.target).hasClass('icon-arrow_r') &&\n !$(e.target).parents('.main-nav__toggle__controller') &&\n !$(e.target).parents('.main-nav.menu--res').length &&\n $('.lock-screen[data-active=\"menu\"]').length\n ) {\n menu.on.hide(e);\n }\n });\n\n $body.on('click', '.main-nav a', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n });\n\n $body.on('click touchend', '[data-toggle=\"dropdown\"]', function (e) {\n e.preventDefault();\n menu.nestedMenu = $(this);\n menu.on.nested(e);\n });\n $body.on('click', '.menu-header', function (e) {\n e.preventDefault();\n\n if (menu.isMobile) {\n menu.on.hideNested(true);\n }\n e.stopPropagation(); // prevent closing menu when getting back from nested menu\n });\n $body.on('keydown', '.drawer__nav, [data-toggle=\"nav\"]', function (e) {\n if (menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey) {\n if (!menu.revers) {\n menu.on.tab();\n } else {\n menu.on.tabRevers();\n }\n }\n }\n });\n\n // without .get(0) e.elapsedTime and e.propertyName are undefined\n $body.get(0).addEventListener('transitionend', menu.on.listPosition.handleHeightSet);\n $window.on('resize', menu.on.listPosition.handleResize);\n\n $window.on('keyup', function (e) {\n menu.revers = !!(e.shiftKey && e.keyCode === tabKey);\n if (!menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey || enterKey) {\n menu.on.tabDesktop(e, menu.revers, e.keyCode);\n }\n\n if ((e.keyCode || e.which) === escKey) {\n menu.on.escDesktop(e);\n }\n }\n });\n },\n additionalControl: function () {},\n on: {\n show: function () {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check();\n }\n $body.addClass('lock-screen').attr('data-active', 'menu');\n menu.$toggle.addClass('js--open');\n\n menu.$target.closest('.main-nav').css('top', $window.scrollTop());\n $('.coolBar--res')\n .removeClass('trans')\n .css('top', $window.scrollTop() + $('header').height());\n $('.loi__banner.loi--res').css('top', $window.scrollTop() + $('header').height());\n $('.main-nav__toggle__controller').attr('aria-expanded', 'true');\n menu.$target.attr('style', 'display: block !important');\n menu.$toggle.focus();\n menu.on.showAdditional();\n },\n showAdditional: function () {},\n showNested: function () {\n menu.on.listPosition.start('in');\n menu.nestedMenu.next('.dropdown__menu').toggleClass('sub-menu__opened');\n menu.nestedMenu.parent().toggleClass('menu-parent__opened');\n menu.nestedMenu.find('i').toggleClass('opposite-arrow');\n menu.nestedMenu.parent().siblings('li').toggleClass('prev-items');\n menu.nestedMenu.toggleClass('prev-items');\n $(\"[data-toggle='nav']\").addClass('js--nested-open'); // replace Close button with back button after nested menu get opened\n const $menuTitle = menu.nestedMenu.html();\n\n if ($('.menu-header').length) {\n $('.menu-header').html($menuTitle);\n }\n menu.displayedNestedItems = true;\n\n menu.on.showNestedExtra();\n },\n showNestedExtra: function () {},\n hideNested: function (shouldNavigate = false) {\n var $menuHeader = $('.menu-header');\n var $parenNestedMenu;\n\n if (typeof menu.nestedMenu != 'undefined') {\n menu.on.listPosition.start('out');\n $parenNestedMenu = menu.nestedMenu.parent().parent(); // first parent list\n menu.nestedMenu = $parenNestedMenu.parent().find('.dropdown__toggle'); // first parent dropdown toggle link\n\n $parenNestedMenu.find('.sub-menu__opened').removeClass('sub-menu__opened');\n $parenNestedMenu.find('.menu-parent__opened').removeClass('menu-parent__opened');\n $parenNestedMenu.find('.prev-items').removeClass('prev-items');\n $(\"[data-toggle='nav']\").removeClass('js--nested-open');\n\n if ($parenNestedMenu.hasClass('sub-menu__opened')) {\n $menuHeader.find('span').html(menu.nestedMenu.find('span').html());\n } else {\n if (menu.redirectPath && shouldNavigate && !menu.displayedNestedItems) {\n document.location = menu.redirectPath;\n } else {\n $menuHeader.html(menu.menuHeaderMainTitle);\n menu.displayedNestedItems = false;\n }\n }\n } else {\n menu.nestedMenu = $menuHeader;\n }\n\n menu.on.hideNestedExtra();\n },\n hideNestedExtra: function () {},\n hide: function () {\n if (menu.isMobile) {\n // hide nested menu before closing\n menu.on.hideNested();\n }\n menu.$toggle.removeClass('js--open');\n $('.main-nav, header').css('top', 0);\n $('.coolBar--res').addClass('trans').css('top', $('header').height()); // The magic number contains 1px of border and\n $('.loi__banner.loi--res').css('top', $('header').height());\n $body.removeAttr('data-active').removeClass('lock-screen');\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.on.listPosition.reset();\n },\n escape: function () {\n menu.on.hide();\n menu.$toggle.focus();\n },\n tab: function () {\n menu.$toggle.off();\n menu.lastItem.off().on('focusout', function () {\n menu.$toggle.focus();\n });\n },\n tabRevers: function () {\n menu.lastItem.off();\n menu.$toggle.off().on('focusout', function () {\n menu.lastItem.focus();\n });\n },\n tabDesktop: function (e, revers, keyCode) {\n var $target = $(e.target);\n var $parentMenu = $target.closest('.dropdown__menu');\n var $dropdownToggle = $('.dropdown__toggle');\n var dropdownMenu = '.dropdown__menu';\n\n if (!$target.closest('ul').length) {\n $dropdownToggle.removeClass('hover');\n $('.dropdown').removeClass('js--open');\n }\n\n if ($target.hasClass('dropdown__toggle')) {\n if (\n $parentMenu.length === 0 ||\n (!$parentMenu.hasClass('js--open') && $parentMenu.find('.js--open').length === 0)\n ) {\n $dropdownToggle.removeClass('hover');\n $(dropdownMenu).removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n } else {\n $parentMenu.find('.hover').removeClass('hover');\n $parentMenu.find('.js--open').removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n }\n if (keyCode == enterKey) {\n $(e.target).closest('a').addClass('hover');\n }\n } else {\n $target.closest('ul').find('.hover').removeClass('hover');\n }\n },\n escDesktop: function (e) {\n $(e.target).closest('.dropdown__toggle').removeClass('hover');\n },\n rebuild: {\n responsive: function () {\n menu.on.hide();\n },\n original: function () {\n menu.on.hide();\n menu.$target.show();\n },\n },\n nested: function (e) {\n //e.preventDefault();\n if (menu.isMobile) {\n menu.on.showNested();\n }\n },\n listPosition: {\n start: function (direction) {\n if (!menu.nestedMenu || !direction || !menu.isMobile) return;\n let $firstNestedMenu = menu.nestedMenu.first();\n if (!$firstNestedMenu.closest('#menubar').length) return; // this function should only work inside #menubar\n\n switch (direction) {\n case 'in': {\n let $prevMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar'),\n $nextMenu = $firstNestedMenu.next('.dropdown__menu');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $prevMenu, sub: $nextMenu},\n 'in'\n );\n\n break;\n }\n case 'out': {\n let addDataOnly = $firstNestedMenu.hasClass('menu-header'),\n $prevMenu = $firstNestedMenu.next('.dropdown__menu'),\n $nextMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $nextMenu, sub: $prevMenu},\n 'out',\n addDataOnly\n );\n\n break;\n }\n }\n },\n handle: function (menuElements, direction = {}, addDataOnly) {\n let timing = direction === 'in' ? 0 : menu.listPositionVars.mobileTransitionTime / 3, // 0 timing is good for in direction, looks bad for out\n timeoutTime =\n direction === 'in' && menu.listPositionVars.inTimeoutTiming\n ? menu.listPositionVars.inTimeoutTiming\n : direction === 'out' && menu.listPositionVars.outTimeoutTiming\n ? menu.listPositionVars.outTimeoutTiming\n : menu.listPositionVars.mobileTransitionTime / 3;\n\n menu.on.listPosition.addDataToElem(menuElements.prev);\n if (addDataOnly === true) return;\n\n menu.on.listPosition.handleScrollBarHide([menuElements.prev, menuElements.next]);\n\n if (menuElements.next.length) {\n let lastScrollVal = menu.on.listPosition.getLastPosition(menuElements.next);\n\n setTimeout(() => {\n menu.on.listPosition.scrollTo(\n menuElements,\n direction,\n lastScrollVal ? lastScrollVal : 0,\n timing\n );\n }, timeoutTime); // a timeout so the transition happens just before the next list enters the viewport\n }\n },\n addDataToElem: function ($elem) {\n if ($elem.length) {\n let rect = $elem.get(0).getBoundingClientRect();\n\n $elem.attr(\n 'data-last-pos',\n JSON.stringify({\n bottom: Math.floor(rect.bottom),\n scrollVal: Math.floor($elem.first().scrollTop()),\n })\n );\n }\n },\n getLastPosition: function ($elem) {\n return $elem.attr('data-last-pos') && JSON.parse($elem.attr('data-last-pos')).scrollVal;\n },\n handleScrollBarHide: function (elemsArr) {\n elemsArr.forEach($elem => {\n $elem.addClass('scrollbar-hidden');\n\n if (!$elem.attr('data-transitionend-listener-added')) {\n $elem.attr('data-transitionend-listener-added', 'true');\n $elem.on('transitionend', e => {\n $elem.removeClass('scrollbar-hidden');\n });\n }\n });\n },\n scrollTo: function (menuElements, direction, value, timing = 0) {\n let parentHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.parent.innerHeight() - menuElements.parent.height()), // height minus padding\n subHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.sub.innerHeight() - menuElements.sub.height()); // height minus padding\n\n if (UX.utils.isSafari()) {\n subHeightVal = subHeightVal - 180;\n }\n\n if (direction === 'in') {\n menuElements.parent\n .css({'max-height': parentHeightVal, height: parentHeightVal, 'overflow-y': 'hidden'})\n .attr('data-list-pos-corrected', 'true');\n menuElements.sub\n .css({'max-height': subHeightVal, height: subHeightVal, 'overflow-y': 'auto'})\n .attr('data-list-pos-corrected', 'true');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: 0, // if we don't scroll the parent to the top, the sub will sometimes be cut off\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n\n menuElements.sub.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n } else if (direction === 'out') {\n menuElements.parent.css({\n 'max-height': parentHeightVal,\n height: parentHeightVal,\n 'overflow-y': 'auto',\n });\n menuElements.sub\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .removeAttr('data-list-pos-corrected');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n }\n },\n handleResize: function (e) {\n if (menu.$toggle.hasClass('js--open')) {\n menu.on.listPosition.handleHeightSet({}, {skipCheck: true});\n }\n },\n handleHeightSet: function (e = {}, options = {}) {\n if (\n (menu.$toggle.hasClass('js--open') &&\n e.elapsedTime === menu.listPositionVars.bodyTransitionElapsedTime &&\n e.propertyName === menu.listPositionVars.bodyTransitionPropertyName) ||\n options.skipCheck === true\n ) {\n // not using $window.outerHeight() because it's return value doesn't change with the resize event\n menu.listPositionVars.mainScrollingListHeight =\n window.outerHeight - menu.listPositionVars.mainScrollingList[0].getBoundingClientRect().top;\n menu.listPositionVars.mainScrollingList\n .find('[data-list-pos-corrected=\"true\"]')\n .add(menu.listPositionVars.mainScrollingList)\n .css({\n height: menu.listPositionVars.mainScrollingListHeight,\n 'max-height': menu.listPositionVars.mainScrollingListHeight,\n });\n }\n },\n reset: function () {\n menu.listPositionVars.mainScrollingList\n .find('[data-last-pos], [data-list-pos-corrected]')\n .add(menu.listPositionVars.mainScrollingList)\n .removeAttr('data-last-pos data-list-pos-corrected')\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .animate(\n {\n scrollTop: 0,\n },\n 0\n );\n },\n },\n },\n check: {\n viewPort: function (index) {\n if (menu.$target.find('.drawer__nav').attr('data-ctrl-res')) {\n menu.vPort[index] = menu.$target.find('.drawer__nav').attr('data-ctrl-res');\n }\n },\n },\n };\n\n UX.menu = menu; // add to global namespace\n})();\n","import {isIE} from '../../../utility/js/tests';\n\n(function () {\n var autoHideBar = {\n headerSelector: '.header',\n $primaryBar: $('.auto-hide-primary-bar'),\n $stickyBar: $('.auto-hide-secondary-bar'),\n previousTop: 0,\n scrollDelta: 5,\n scrollOffset: 100,\n vPort: 'screen-sm',\n isMobile: false,\n previousScroll: '',\n disabled: false,\n changeEvent: null,\n changeEventName: 'change:auto-hide-bar',\n\n init: function () {\n if (!isIE) {\n this.header = document.querySelector(this.headerSelector);\n this.$primaryBar.addClass('auto-hide-bar fixed-element');\n this.$stickyBar.addClass('secondary-bar--sticky fixed-element');\n\n this.createEvents();\n\n setTimeout(() => {\n this.$stickyBar.css('top', this.$primaryBar.height());\n }, 200);\n\n this.control();\n } else {\n this.$primaryBar.removeClass('fixed');\n }\n },\n control: function () {\n $(document).on(autoHideBar.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n autoHideBar.isMobile = true;\n });\n\n $(document).on(autoHideBar.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n autoHideBar.isMobile = false;\n });\n\n $(window).on('resize', function () {\n autoHideBar.previousScroll = '';\n });\n $(window).on('scroll resize', () => {\n autoHideBar.displayOnScroll();\n });\n\n autoHideBar.additionalControls();\n },\n createEvents() {\n this.changeEvent = new CustomEvent(this.changeEventName, {}, false);\n },\n displayOnScroll: function () {\n if (autoHideBar.$stickyBar.length && autoHideBar.isMobile === false && !autoHideBar.disabled) {\n const currentTop = $(window).scrollTop();\n const secondaryNav_HeaderOffsetTop = autoHideBar.$primaryBar.height() + autoHideBar.scrollOffset;\n\n if (autoHideBar.previousTop >= currentTop && currentTop < secondaryNav_HeaderOffsetTop) {\n //if scrolling up...\n if (\n autoHideBar.previousTop - currentTop > autoHideBar.scrollDelta &&\n autoHideBar.previousScroll !== 'up'\n ) {\n autoHideBar.$primaryBar.addClass('fixed-element');\n this.header.style.removeProperty('transform');\n autoHideBar.previousScroll = 'up';\n setTimeout(() => {\n document.dispatchEvent(this.changeEvent);\n }, 100);\n }\n } else if (currentTop > secondaryNav_HeaderOffsetTop && autoHideBar.previousScroll !== 'down') {\n //if scrolling down...\n autoHideBar.$primaryBar.removeClass('fixed-element');\n this.header.style.setProperty('transform', `translateY(-${autoHideBar.$primaryBar.height()}px)`);\n autoHideBar.hideOpenHeaderMenus();\n autoHideBar.previousScroll = 'down';\n setTimeout(() => {\n document.dispatchEvent(this.changeEvent);\n }, 100);\n }\n autoHideBar.previousTop = currentTop;\n }\n },\n additionalControls: function () {},\n hideOpenHeaderMenus: function () {\n //hide profile menu\n $('.navigation-login-dropdown-container').addClass('hidden');\n //hide login menu\n const $openedLoginMenu = $('.loginBar__dropBlock__holder.js--open');\n $openedLoginMenu.removeClass('js--open');\n $('[data-db-target-for=' + $openedLoginMenu.attr('data-db-target-of') + ']').removeClass('js--open');\n //hide quick search menu\n const $openedQuickSearchMenu = $('.quick-search__dropBlock.js--open');\n $openedQuickSearchMenu.removeClass('js--open');\n $('[data-db-target-for=' + $openedQuickSearchMenu.attr('data-db-target-of') + ']').removeClass('js--open');\n },\n };\n\n UX.autoHideBar = autoHideBar; // add to global namespace\n})();\n","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/drawer/js/drawer';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/plugins/slide/js/slide';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/widgets/menu/js/responsive-menu';\n \nconst main = (UX) => {\n const $menu = Array.prototype.slice.call(document.querySelectorAll('[data-toggle=\"nav\"]')),\n $slide = Array.prototype.slice.call(document.getElementsByClassName('w-slide__btn')),\n $reponsiveMenu = Array.prototype.slice.call(document.getElementsByClassName('responsive-menu-nav'))\n\ntry {\n if ($menu.length ) {\n UX.menu.init($menu);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($slide.length ) {\n UX.slide.init($slide);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($reponsiveMenu.length ) {\n UX.reponsiveMenu.init($reponsiveMenu);\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n ","'use strict';\n\n/*\n * 1. Check if the browser supports `position: sticky` natively or is too old to run the polyfill.\n * If either of these is the case set `seppuku` flag. It will be checked later to disable key features\n * of the polyfill, but the API will remain functional to avoid breaking things.\n */\n/*eslint-disable*/\nlet seppuku = false;\n\nconst isWindowDefined = typeof window !== 'undefined';\n\n// The polyfill can’t function properly without `window` or `window.getComputedStyle`.\nif (!isWindowDefined || !window.getComputedStyle) seppuku = true;\n// Dont’t get in a way if the browser supports `position: sticky` natively.\nelse {\n const testNode = document.createElement('div');\n\n if (\n ['', '-webkit-', '-moz-', '-ms-'].some(prefix => {\n try {\n testNode.style.position = prefix + 'sticky';\n } catch (e) {}\n\n return testNode.style.position != '';\n })\n )\n seppuku = true;\n}\n\n/*\n * 2. “Global” vars used across the polyfill\n */\nlet isInitialized = false;\n\n// Check if Shadow Root constructor exists to make further checks simpler\nconst shadowRootExists = typeof ShadowRoot !== 'undefined';\n\n// Last saved scroll position\nconst scroll = {\n top: null,\n left: null,\n};\n\n// Array of created Sticky instances\nconst stickies = [];\n\n/*\n * 3. Utility functions\n */\nfunction extend(targetObj, sourceObject) {\n for (var key in sourceObject) {\n if (sourceObject.hasOwnProperty(key)) {\n targetObj[key] = sourceObject[key];\n }\n }\n}\n\nfunction parseNumeric(val) {\n return parseFloat(val) || 0;\n}\n\nfunction getDocOffsetTop(node) {\n let docOffsetTop = 0;\n\n while (node) {\n docOffsetTop += node.offsetTop;\n node = node.offsetParent;\n }\n\n return docOffsetTop;\n}\n\n/*\n * 4. Sticky class\n */\nclass Sticky {\n constructor(node) {\n if (!(node instanceof HTMLElement)) throw new Error('First argument must be HTMLElement');\n if (stickies.some(sticky => sticky._node === node))\n throw new Error('Stickyfill is already applied to this node');\n\n this._node = node;\n this._stickyMode = null;\n this._active = false;\n\n stickies.push(this);\n\n this.refresh();\n }\n\n refresh() {\n if (seppuku || this._removed) return;\n if (this._active) this._deactivate();\n\n const node = this._node;\n\n /*\n * 1. Save node computed props\n */\n const nodeComputedStyle = getComputedStyle(node);\n const nodeComputedProps = {\n position: nodeComputedStyle.position,\n top: nodeComputedStyle.top,\n display: nodeComputedStyle.display,\n marginTop: nodeComputedStyle.marginTop,\n marginBottom: nodeComputedStyle.marginBottom,\n marginLeft: nodeComputedStyle.marginLeft,\n marginRight: nodeComputedStyle.marginRight,\n cssFloat: nodeComputedStyle.cssFloat,\n };\n\n /*\n * 2. Check if the node can be activated\n */\n if (\n isNaN(parseFloat(nodeComputedProps.top)) ||\n nodeComputedProps.display == 'table-cell' ||\n nodeComputedProps.display == 'none'\n )\n return;\n\n this._active = true;\n\n /*\n * 3. Check if the current node position is `sticky`. If it is, it means that the browser supports sticky positioning,\n * but the polyfill was force-enabled. We set the node’s position to `static` before continuing, so that the node\n * is in it’s initial position when we gather its params.\n */\n const originalPosition = node.style.position;\n if (nodeComputedStyle.position == 'sticky' || nodeComputedStyle.position == '-webkit-sticky')\n node.style.position = 'static';\n\n /*\n * 4. Get necessary node parameters\n */\n const referenceNode = node.parentNode;\n const parentNode = shadowRootExists && referenceNode instanceof ShadowRoot ? referenceNode.host : referenceNode;\n const nodeWinOffset = node.getBoundingClientRect();\n const parentWinOffset = parentNode.getBoundingClientRect();\n const parentComputedStyle = getComputedStyle(parentNode);\n\n this._parent = {\n node: parentNode,\n styles: {\n position: parentNode.style.position,\n },\n offsetHeight: parentNode.offsetHeight,\n };\n this._offsetToWindow = {\n left: nodeWinOffset.left,\n right: document.documentElement.clientWidth - nodeWinOffset.right,\n };\n this._offsetToParent = {\n top: nodeWinOffset.top - parentWinOffset.top - parseNumeric(parentComputedStyle.borderTopWidth),\n left: nodeWinOffset.left - parentWinOffset.left - parseNumeric(parentComputedStyle.borderLeftWidth),\n right: -nodeWinOffset.right + parentWinOffset.right - parseNumeric(parentComputedStyle.borderRightWidth),\n };\n this._styles = {\n position: originalPosition,\n top: node.style.top,\n bottom: node.style.bottom,\n left: node.style.left,\n right: node.style.right,\n width: node.style.width,\n marginTop: node.style.marginTop,\n marginLeft: node.style.marginLeft,\n marginRight: node.style.marginRight,\n };\n\n const nodeTopValue = parseNumeric(nodeComputedProps.top);\n this._limits = {\n start: nodeWinOffset.top + window.pageYOffset - nodeTopValue,\n end:\n parentWinOffset.top +\n window.pageYOffset +\n parentNode.offsetHeight -\n parseNumeric(parentComputedStyle.borderBottomWidth) -\n node.offsetHeight -\n nodeTopValue -\n parseNumeric(nodeComputedProps.marginBottom),\n };\n\n /*\n * 5. Ensure that the node will be positioned relatively to the parent node\n */\n const parentPosition = parentComputedStyle.position;\n\n if (parentPosition != 'absolute' && parentPosition != 'relative') {\n parentNode.style.position = 'relative';\n }\n\n /*\n * 6. Recalc node position.\n * It’s important to do this before clone injection to avoid scrolling bug in Chrome.\n */\n this._recalcPosition();\n\n /*\n * 7. Create a clone\n */\n const clone = (this._clone = {});\n clone.node = document.createElement('div');\n\n // Apply styles to the clone\n extend(clone.node.style, {\n width: nodeWinOffset.right - nodeWinOffset.left + 'px',\n height: nodeWinOffset.bottom - nodeWinOffset.top + 'px',\n marginTop: nodeComputedProps.marginTop,\n marginBottom: nodeComputedProps.marginBottom,\n marginLeft: nodeComputedProps.marginLeft,\n marginRight: nodeComputedProps.marginRight,\n cssFloat: nodeComputedProps.cssFloat,\n padding: 0,\n border: 0,\n borderSpacing: 0,\n fontSize: '1em',\n position: 'static',\n });\n\n referenceNode.insertBefore(clone.node, node);\n clone.docOffsetTop = getDocOffsetTop(clone.node);\n }\n\n _recalcPosition() {\n if (!this._active || this._removed) return;\n\n const stickyMode =\n scroll.top <= this._limits.start ? 'start' : scroll.top >= this._limits.end ? 'end' : 'middle';\n\n if (this._stickyMode == stickyMode) return;\n\n switch (stickyMode) {\n case 'start':\n extend(this._node.style, {\n position: 'absolute',\n left: this._offsetToParent.left + 'px',\n right: this._offsetToParent.right + 'px',\n top: this._offsetToParent.top + 'px',\n bottom: 'auto',\n width: 'auto',\n marginLeft: 0,\n marginRight: 0,\n marginTop: 0,\n });\n break;\n\n case 'middle':\n extend(this._node.style, {\n position: 'fixed',\n left: this._offsetToWindow.left + 'px',\n right: this._offsetToWindow.right + 'px',\n top: this._styles.top,\n bottom: 'auto',\n width: 'auto',\n marginLeft: 0,\n marginRight: 0,\n marginTop: 0,\n });\n break;\n\n case 'end':\n extend(this._node.style, {\n position: 'absolute',\n left: this._offsetToParent.left + 'px',\n right: this._offsetToParent.right + 'px',\n top: 'auto',\n bottom: 0,\n width: 'auto',\n marginLeft: 0,\n marginRight: 0,\n });\n break;\n }\n\n this._stickyMode = stickyMode;\n }\n\n _fastCheck() {\n if (!this._active || this._removed) return;\n\n if (\n Math.abs(getDocOffsetTop(this._clone.node) - this._clone.docOffsetTop) > 1 ||\n Math.abs(this._parent.node.offsetHeight - this._parent.offsetHeight) > 1\n )\n this.refresh();\n }\n\n _deactivate() {\n if (!this._active || this._removed) return;\n\n this._clone.node.parentNode.removeChild(this._clone.node);\n delete this._clone;\n\n extend(this._node.style, this._styles);\n delete this._styles;\n\n // Check whether element’s parent node is used by other stickies.\n // If not, restore parent node’s styles.\n if (!stickies.some(sticky => sticky !== this && sticky._parent && sticky._parent.node === this._parent.node)) {\n extend(this._parent.node.style, this._parent.styles);\n }\n delete this._parent;\n\n this._stickyMode = null;\n this._active = false;\n\n delete this._offsetToWindow;\n delete this._offsetToParent;\n delete this._limits;\n }\n\n remove() {\n this._deactivate();\n\n stickies.some((sticky, index) => {\n if (sticky._node === this._node) {\n stickies.splice(index, 1);\n return true;\n }\n });\n\n this._removed = true;\n }\n}\n\n/*\n * 5. Stickyfill API\n */\nconst Stickyfill = {\n stickies,\n Sticky,\n\n forceSticky() {\n seppuku = false;\n init();\n\n this.refreshAll();\n },\n\n addOne(node) {\n // Check whether it’s a node\n if (!(node instanceof HTMLElement)) {\n // Maybe it’s a node list of some sort?\n // Take first node from the list then\n if (node.length && node[0]) node = node[0];\n else return;\n }\n\n // Check if Stickyfill is already applied to the node\n // and return existing sticky\n for (var i = 0; i < stickies.length; i++) {\n if (stickies[i]._node === node) return stickies[i];\n }\n\n // Create and return new sticky\n return new Sticky(node);\n },\n\n add(nodeList) {\n // If it’s a node make an array of one node\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\n // Check if the argument is an iterable of some sort\n if (!nodeList.length) return;\n\n // Add every element as a sticky and return an array of created Sticky instances\n const addedStickies = [];\n\n for (let i = 0; i < nodeList.length; i++) {\n const node = nodeList[i];\n\n // If it’s not an HTMLElement – create an empty element to preserve 1-to-1\n // correlation with input list\n if (!(node instanceof HTMLElement)) {\n addedStickies.push(void 0);\n continue;\n }\n\n // If Stickyfill is already applied to the node\n // add existing sticky\n if (\n stickies.some(sticky => {\n if (sticky._node === node) {\n addedStickies.push(sticky);\n return true;\n }\n })\n )\n continue;\n\n // Create and add new sticky\n addedStickies.push(new Sticky(node));\n }\n\n return addedStickies;\n },\n\n refreshAll() {\n stickies.forEach(sticky => sticky.refresh());\n },\n\n removeOne(node) {\n // Check whether it’s a node\n if (!(node instanceof HTMLElement)) {\n // Maybe it’s a node list of some sort?\n // Take first node from the list then\n if (node.length && node[0]) node = node[0];\n else return;\n }\n\n // Remove the stickies bound to the nodes in the list\n stickies.some(sticky => {\n if (sticky._node === node) {\n sticky.remove();\n return true;\n }\n });\n },\n\n remove(nodeList) {\n // If it’s a node make an array of one node\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\n // Check if the argument is an iterable of some sort\n if (!nodeList.length) return;\n\n // Remove the stickies bound to the nodes in the list\n for (let i = 0; i < nodeList.length; i++) {\n const node = nodeList[i];\n\n stickies.some(sticky => {\n if (sticky._node === node) {\n sticky.remove();\n return true;\n }\n });\n }\n },\n\n removeAll() {\n while (stickies.length) stickies[0].remove();\n },\n};\n\n/*\n * 6. Setup events (unless the polyfill was disabled)\n */\nfunction init() {\n if (isInitialized) {\n return;\n }\n\n isInitialized = true;\n\n // Watch for scroll position changes and trigger recalc/refresh if needed\n function checkScroll() {\n if (window.pageXOffset != scroll.left) {\n scroll.top = window.pageYOffset;\n scroll.left = window.pageXOffset;\n\n Stickyfill.refreshAll();\n } else if (window.pageYOffset != scroll.top) {\n scroll.top = window.pageYOffset;\n scroll.left = window.pageXOffset;\n\n // recalc position for all stickies\n stickies.forEach(sticky => sticky._recalcPosition());\n }\n }\n\n checkScroll();\n window.addEventListener('scroll', checkScroll);\n\n // Watch for window resizes and device orientation changes and trigger refresh\n window.addEventListener('resize', Stickyfill.refreshAll);\n window.addEventListener('orientationchange', Stickyfill.refreshAll);\n\n //Fast dirty check for layout changes every 500ms\n let fastCheckTimer;\n\n function startFastCheckTimer() {\n fastCheckTimer = setInterval(function () {\n stickies.forEach(sticky => sticky._fastCheck());\n }, 500);\n }\n\n function stopFastCheckTimer() {\n clearInterval(fastCheckTimer);\n }\n\n let docHiddenKey;\n let visibilityChangeEventName;\n\n if ('hidden' in document) {\n docHiddenKey = 'hidden';\n visibilityChangeEventName = 'visibilitychange';\n } else if ('webkitHidden' in document) {\n docHiddenKey = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n if (visibilityChangeEventName) {\n if (!document[docHiddenKey]) startFastCheckTimer();\n\n document.addEventListener(visibilityChangeEventName, () => {\n if (document[docHiddenKey]) {\n stopFastCheckTimer();\n } else {\n startFastCheckTimer();\n }\n });\n } else startFastCheckTimer();\n}\n\nif (!seppuku) init();\n\n/*\n * 7. Expose Stickyfill\n */\nexport default Stickyfill;\nexport {Sticky};\n","import {isIE} from '../../../utility/js/tests';\nimport {fixedHeaderHeight} from '../../../utility/js/utils';\nimport Stickyfill from '../../polyfills/js/stickyfill.es';\nimport '../../polyfills/js/NodeList/forEach';\nimport '../../polyfills/js/Element/matches';\nimport '../../polyfills/js/Element/closest';\n\n(function (UX) {\n /**\n ****************************\n ***** Sticky Elements ******\n ****************************\n *\n * Sticky Elements object is responsible for stickiness in all UX3 sites, it uses CSS3 `position: sticky;`\n * instead of `fixed`, for IE it uses `stickybits` plugin as a polyfill. Covering all sticky cases\n * in UX3 with minimum code. Also. Hooks can be used for extending its functionality. It used\n * to replace old stickiness solutions:(1) Header with position fixed. (2) CoolBar with\n * stickybar.js. (3) sticko.js plugin (4) Scroll them fix header-scroll-fix.js\n *\n */\n UX.stickyElements = {\n /**\n * Different Selectors\n */\n selectors: {\n header: '.header',\n scrollThenFix: '.scrollThenFix',\n stickyElements: ['.fixed-element'],\n // Elements can be in header cause its height to be dynamic\n dynamicHeader: ['.pb-ad', '.pb-las', '.cookiePolicy-popup', '.header__dropzone'],\n stickoParent: '.sticko__parent',\n },\n\n /**\n * Holds header object\n * @type {HTMLElement}\n */\n header: null,\n\n /**\n * Toggle header stickiness\n * @type {boolean}\n */\n isHeaderSticky: true,\n\n /**\n * Use dynamic header height computed by JS instead of CSS fixed value\n * @type {boolean}\n */\n dynamicHeaderHeight: false,\n\n // For responsive\n vPort: 'screen-sm',\n isMobile: false,\n\n init() {\n this.header = document.querySelector(this.selectors['header']);\n\n if (this.isHeaderSticky) this.selectors['stickyElements'].unshift(this.selectors['header']);\n\n this._isDynamicHeaderHeight();\n\n this.start();\n this.responsive();\n this.extra();\n },\n\n responsive() {\n // TODO: get rid of jQuery\n $(document).on('smartResize', () => this.start());\n $(document).on(`${this.vPort}-on`, () => (this.isMobile = true));\n $(document).on(`${this.vPort}-off`, () => (this.isMobile = false));\n },\n\n extra() {},\n\n start() {\n this.computeHeaderHeight();\n if (this.selectors['stickyElements'].length) {\n /** @type {NodeListOf} */\n const matched = document.querySelectorAll(this.selectors['stickyElements'].join(','));\n if (!matched || !matched.length) return;\n\n matched.forEach(item => {\n const isHeader = item.matches(this.selectors['header']);\n this.makeSticky(item, isHeader);\n });\n }\n },\n\n /**\n * Make sure stickyElements are stick correctly\n * @param {HTMLElement} item\n * @param {boolean} isHeader\n */\n makeSticky(item, isHeader) {\n this.setTopValue(item, isHeader);\n this.postStickyActions(item, isHeader);\n // if IE use polyfill\n if (isIE) {\n Stickyfill.addOne(item);\n }\n },\n\n setTopValue(item, isHeader) {\n if (this._canSetTopValue(item, isHeader)) {\n item.style.top = this.headerHeight + 'px';\n }\n },\n\n /**\n * This is a magical method to run specific actions after making items sticky based on what is the item.\n * actions are saved in groups in this._actions object and they called dynamically.\n * @param {HTMLElement} item\n * @param {boolean} isHeader\n * @protected\n */\n postStickyActions: function (item, isHeader) {\n if (this._has(item, this.selectors['stickoParent'], true)) {\n this.stickoActions(item);\n }\n if (this._has(item, this.selectors['scrollThenFix'])) {\n this.scrollThenFixActions(item, isHeader);\n }\n },\n\n /**\n * Set sticko height to fill the viewport excluding the fixed header\n * @param {HTMLElement} item\n * @protected\n */\n stickoActions(item) {\n const stickoParent = item.querySelector(this.selectors['stickoParent']) || item;\n if (this.isHeaderSticky) stickoParent.style.height = `calc(100vh - ${this.headerHeight}px)`;\n else stickoParent.style.height = '100vh';\n document.addEventListener('change:auto-hide-bar', () => {\n item.style.top = `${fixedHeaderHeight()}px`;\n });\n },\n\n /**\n * Make it sticky as soon as reach the fixed element inside it\n * @param {HTMLElement} item\n * @param {boolean} isHeader\n */\n scrollThenFixActions(item, isHeader) {\n item.classList.add('fixed-element');\n let scrollThenFixOffset = item.querySelector(this.selectors['scrollThenFix']).offsetTop;\n scrollThenFixOffset -= !isHeader ? this.headerHeight : 0;\n item.style.top = `${-1 * scrollThenFixOffset}px`;\n },\n\n /**\n * Check if to use dynamic header height\n * @return {void}\n * @private\n */\n _isDynamicHeaderHeight() {\n if (!this.dynamicHeaderHeight) {\n for (let i = 0; i < this.selectors['dynamicHeader'].length; i++) {\n this.dynamicHeaderHeight = this._has(this.header, this.selectors['dynamicHeader'][i], true);\n if (this.dynamicHeaderHeight) break;\n }\n }\n },\n\n computeHeaderHeight() {\n this.headerHeight = fixedHeaderHeight(this.selectors['header']);\n },\n\n /**\n *\n * @param {HTMLElement} item\n * @param {string} selector\n * @param {boolean} [self]\n * @return {*|boolean}\n * @private\n */\n _has(item, selector, self) {\n return (\n item &&\n (item.querySelector(selector) !== null || // if item contains element matches the selector\n (self && item.matches(selector))) // or item itself matches the selector\n );\n },\n\n _canSetTopValue(item, isHeader) {\n return !isHeader && this.dynamicHeaderHeight && item.closest(this.selectors['header']) === null;\n },\n };\n})(UX);\n","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/scrollo/js/scrollo';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/auto-hide-bar/js/auto-hide-bar';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/stickyElements/js/stickyElements';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/components/coolbar/js/coolbar';\n \nconst main = (UX) => {\n const $scrollo = Array.prototype.slice.call(document.querySelectorAll('.table-fn, .ref.fn, .scroll-to-target')),\n $autoHideBar = Array.prototype.slice.call(document.getElementsByClassName('auto-hide-primary-bar')),\n $coolbar = Array.prototype.slice.call(document.getElementsByClassName('coolBar'))\n\ntry {\n if ($scrollo.length ) {\n UX.scrollo.init($scrollo);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($autoHideBar.length ) {\n UX.autoHideBar.init($autoHideBar);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n UX.stickyElements.init();\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($coolbar.length ) {\n UX.coolbar.init($coolbar);\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n ","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/utility/js/no-focusable-svg';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/utility/ie-warning/js/ie-warning';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/cookies/js/cookies';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/plugins/bookmark/js/bookmark';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/components/drop-block/js/drop-block';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/components/modal/js/modal';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/components/alert-popup/js/alert-popup';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/components/accordion/js/accordion';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/components/back-to-top/js/back-to-top';\n\nimport QuickSearch from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/widgets/quick-search/js/quick-search';\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/widgets/multi-search/js/multi-search';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/widgets/raa/js/raa';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/node_modules/ui-core/widgets/register/js/register';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/wspc/widgets/show-recommended/js/show-recommended';\n\nimport mobileMenuMain from './groups/_mobile-menu';\nimport stickyMain from './groups/_sticky';\nconst main = (UX) => {\n const $dropBlock = Array.prototype.slice.call(document.querySelectorAll('[data-db-target-for]')),\n $modal = Array.prototype.slice.call(document.getElementsByClassName('modal')),\n $alertPopup = Array.prototype.slice.call(document.getElementsByClassName('ux-alert-container')),\n $accordion = Array.prototype.slice.call(document.getElementsByClassName('accordion')),\n $backToTop = Array.prototype.slice.call(document.getElementsByClassName('back-to-top')),\n $quickSearch = Array.prototype.slice.call(document.getElementsByClassName('quick-search')),\n $adplaceholder = Array.prototype.slice.call(document.getElementsByClassName('js__toggleAdForm')),\n $multiSearch = Array.prototype.slice.call(document.getElementsByClassName('multi-search')),\n $showRecommended = Array.prototype.slice.call(document.getElementsByClassName('show-recommended-placeholder'))\n\ntry {\n UX.noFocusableSVG.init();\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($dropBlock.length ) {\n UX.dropBlock.init($dropBlock);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($modal.length ) {\n UX.modal.init($modal);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($alertPopup.length ) {\n UX.alertPopup.init($alertPopup);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($accordion.length ) {\n UX.accordion.init($accordion);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($backToTop.length ) {\n UX.backToTop.init($backToTop);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($quickSearch.length ) {\n UX.quickSearch = $quickSearch\n .map(item=>new QuickSearch(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($adplaceholder.length ) {\n UX.adplaceholder.init($adplaceholder);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($multiSearch.length ) {\n UX.multiSearch.init($multiSearch);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($showRecommended.length ) {\n UX.showRecommended.init($showRecommended);\n }\n } catch (err) {\n console.error(err);\n }\n \nmobileMenuMain(UX);\n\nstickyMain(UX);\n\n}\n\n export default main;\n ","/**\n * Polyfill to support matches on IE9+\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\n */\n\nif (!Element.prototype.matches)\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n","/**\n * Polyfill for Element.closest()\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\n */\n\nimport './matches';\n\nif (!Element.prototype.closest)\n Element.prototype.closest = function (s) {\n var el = this;\n if (!document.documentElement.contains(el)) return null;\n do {\n if (el.matches(s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n"],"sourceRoot":""}