{"version":3,"sources":["webpack:///./node_modules/ui-core/utility/js/no-focusable-svg.js","webpack:///./node_modules/ui-core/utility/js/observe-dom.js","webpack:///./node_modules/ui-core/plugins/cookies/js/cookies.js","webpack:///./node_modules/ui-core/basic/lists/js/list.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/ui-core/components/modal/js/modal.js","webpack:///./node_modules/ui-core/components/accordion/js/accordion.js","webpack:///./node_modules/ui-core/components/alert-popup/js/alert-popup.js","webpack:///./node_modules/ui-core/plugins/transplant/js/transplant.js","webpack:///./node_modules/ui-core/components/drop-block/js/drop-block.js","webpack:///./node_modules/ui-core/components/back-to-top/js/back-to-top.js","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/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/stickybits/js/stickybits.es.js","webpack:///./node_modules/ui-theme/js/utility/_sticky.js","webpack:///./node_modules/ui-core/plugins/modal/js/modal.js","webpack:///./node_modules/ui-core/plugins/drawer/js/drawer.js","webpack:///./node_modules/ui-core/widgets/ip-ranges/js/ip-ranges.ts","webpack:///./node_modules/ui-core/widgets/quick-search/js/quick-search.ts","webpack:///./node_modules/ui-theme/js/widgets/_quick-search.ts","webpack:///./node_modules/ui-theme/js/components/_drawer.js","webpack:///./node_modules/ui-theme/js/components/slide.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_mobile-menu.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/lazy-imports.js","webpack:///./node_modules/@tarekraafat/autocomplete.js/dist/autoComplete.min.js"],"names":["UX","noFocusableSVG","init","test","isIE","svgs","document","getElementsByTagName","i","length","setAttribute","window","observeDOM","MutationObserver","WebKitMutationObserver","eventListenerSupported","addEventListener","obj","withMutations","observerOptions","callback","obs","mutations","addedNodes","removedNodes","options","childList","subtree","attributes","observe","cookies","getItem","sKey","decodeURIComponent","cookie","replace","RegExp","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","constructor","Number","Infinity","String","Date","toUTCString","removeItem","this","hasItem","keys","aKeys","split","nLen","nIdx","$body","list","$","expandIcon","collapseIcon","on","build","control","e","preventDefault","toggleList","each","find","hide","elem","$toggle","$wrapper","closest","$target","children","toggle","defineToggleIcons","toggleClass","hasClass","attr","closeList","removeClass","addClass","$expandableList","undefined","data","toPropertyKey","module","exports","_defineProperty","r","t","Object","defineProperty","value","enumerable","configurable","writable","__esModule","$window","modal","revers","lastItem","items","$close","accessibilityEnabled","accessibility","$content","after","append","show","removeAttr","index","target","is","focusCycle","bind","keyCode","controller","check","setTimeout","$autofocus","focus","tab","off","tabRevers","which","isMobile","accordion","$elements","$tabbedElements","$controllers","$tabbedControllers","isStickyBody","vPort","$responsiveElements","accVport","$responsiveTarget","collapseTabs","collapseAccordion","defaultCollapsed","hideAllBoolean","openedAccordion","hideDropBlock","initResponsive","logic","additionalControls","stopImmediatePropagation","dropBlock","_typeof","$this","single","trigger","preventAccordionBehavior","tabbed","hideAll","parentAccordion","parent","collapseTabsByDefault","getAccordionContent","additionalAjaxSuccess","$elem","getCustomAjaxUrl","buildAjaxUrl","ajaxUrl","widgetId","dropzoneId","$parentTab","ajax","url","success","replaceWith","remove","error","state","$accordionContent","next","contentTarget","slideToggle","height","accordionExpandedSingle","Event","checkExpandAll","$parent","$opened","slideUp","extraCollapseAccordionCheck","slideDown","expanded","accordionExpandedTabbed","all","text","$lazy","$expandElem","setViewports","parents","alertPopup","config","$actions","$approve","$cancel","$url","set","controls","querySelectorAll","_this","forEach","action","onClick","currentTarget","getAttribute","href","redirect","location","transplant","$element","$order","$cloneData","$clonedContainer","$direction","$remove","$targetClass","$classNames","_transplant$$target$f","clone","array","item","order","cleanDuplicateID","clonedItems","sort","a","b","html","$source","id","targetFor","$controler","clonedElement","ariaOwns","map","join","$targets","$controller","$parents","escape","$container","switchVal","$section","initialized","direction","pop","stopPropagation","isOpen","isDataSlideTarget","disableOnMobile","dimensions","icon","first","loi","recalculate","additionalOnShow","back","$parentSection","blur","additionalOnHide","$nested","current","indexOf","ifContaind","wrapInner","nHeight","outerHeight","pOffset","offset","pLeft","left","nWidth","innerWidth","styles","container_offset","container_base","width","parent_base","top","right","concat","css","switch","temp","backToTop","element","footerBackToTop","animate","scrollTop","body","isfooterVisible","docViewBottom","adplaceholder","elemToToggle","$multi_search","getWidgetId","widgetEl","multiSearch","el","select","dropdown","widgetID","topic","tagLabel","tagId","add","label","params","multiSearchAction","lazyload","not","truncate","lines","type","lazyLoad","getPbContext","pbContext","dataType","async","render","console","log","ready","event","toggleQuickSearch","val","loadInstitutionPage","selectDom","menubar","$id","$rootItems","$items","$allItems","$activeItem","vmenu","bChildOpen","enter","esc","space","up","down","bindHandlers","prototype","keydown","handleKeyDown","keypress","handleKeyPress","handleFocus","click","handleDocumentClick","parentsUntil","filter","altKey","ctrlKey","menu","processMenuChoice","moveUp","moveToPrevious","moveDown","moveToNext","s","n","h","o","last","prev","u","eq","charAt","toLowerCase","shiftKey","fromCharCode","open","slide","$slide","$contents","$slideinfo","elementvPort","nested","multi","activeSlide","oldInfo","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","push","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","modifyMenu","before","availableMenuWidth","menuWidth","$lastMenuItem","prepend","outerHTML","$moreItems","$firstMoreItem","Stickybits","stickyOnEvent","createEvent","stickyOffEvent","version","userAgent","navigator","props","customStickyChangeNumber","noStyles","stickyBitStickyOffset","parentClass","scrollEl","querySelector","stickyClass","stuckClass","stickyChangeClass","useStickyClasses","useFixed","useGetBoundingClientRect","verticalPosition","positionVal","definePosition","instances","_this$props","verticalPositionStyle","positionStyle","els","style","position","addInstance","initCustomEvent","_proto","stickyProp","prefix","head","parentNode","isWin","se","getClosestParent","computeScrollOffsets","className","stateContainer","manageState","match","p","parentElement","getTopPosition","getBoundingClientRect","pageYOffset","documentElement","topPosition","offsetTop","offsetParent","it","isCustom","isTop","scrollElOffset","stickyStart","stickyChangeOffset","offsetHeight","parentBottom","stickyChange","stickyStop","innerHeight","toggleClasses","cArray","rItem","start","change","stop","stl","ns","pv","sticky","stuck","vp","rAFStub","rAFDummy","f","rAF","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","tC","scroll","scrollY","isSticky","isStuck","bottom","dispatchEvent","isStickyChange","update","updatedProps","instance","updatedProp","removeInstance","cleanup","removeEventListener","stickybits","stickyNodes","stickyTargets","setHeaderHeight","setSticky","get","setProperty","resize","node","nodeWinOffset","outerWidth","jQuery","NAME","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Default","backdrop","keyboard","DefaultType","HIDE","HIDE_PREVENTED","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","Selector","Modal","_classCallCheck","_config","_getConfig","_element","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","_createClass","key","relatedTarget","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this2","hideEvent","transition","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","htmlElement","removeData","handleUpdate","_objectSpread","typeCheckConfig","_triggerBackdropTransition","_this3","hideEventPrevented","defaultPrevented","classList","modalTransitionDuration","_this4","modalBody","nodeType","Node","ELEMENT_NODE","appendChild","display","removeAttribute","reflow","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","createElement","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","_getScrollbarWidth","_this10","fixedContent","slice","call","stickyContent","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","clientWidth","removeChild","_jQueryInterface","TypeError","_this11","selector","getSelectorFromElement","tagName","Constructor","noConflict","addRangeFields","addRangeSubmitButtons","updateRangesCheckboxes","updateRangesSubmitButtons","wrapper","initialize","addEventListeners","field","handleAddRangeFieldChange","checkbox","handleUpdateRangeFieldChange","anyIsEmpty","some","trim","setSubmitButtonsDisable","anyIsChecked","checked","isDisabled","button","disabled","ipRanges","Elements","ClassList","Texts","HTMLElement","autocompleteResultItem","citationSearchJournalField","citationSearch","hideAutoComplete","qsAutocomplete","qsForms","qsDropdowns","qsHeaderWrapper","qsSeriesKey","qsItems","autocompleteSelectedResultItem","citationSearchDoiField","citationSubmit","inputGroup","journalSearchHideAutocompleteWrapper","autoCompleteWrapper","searchType","seriesKey","_autoCompleteOptions","domUtils","getElement","activeDropdownJournal","selectors","hs","pts","ptgs","ptfs","ts","cs","pt","_URLParameters","URLParameters","setAutoCompleteOptions","setActiveJournal","isAutocompleteOn","browserUtils","initAutocomplete","getElements","isSelectOnly","elementRenderer","ele","autoCompleteOptions","innerHTML","highlight","paramFormatted","innerText","threshold","debounce","resultItem","class","searchEngine","query","record","getConfigs","quickSearchElm","autoCompleteObj","src","buildFetchURL","fetch","json","cache","resultsList","resultListConfig","defaultConfigs","handleAutoCompleteOptions","containsClasses","initAutoCompleteInstance","configs","onSelection","maxResults","idName","Math","ceil","random","destination","resultListDestination","autcompleteInstances","Map","QuickSearchElm","contains","input","onKeyDown","form","onFormSubmit","handleDropdownCollapse","registerCitationSearchEvents","autocompleteAnnouncer","announcerContainer","autocompleteLists","observer","mutationsList","mutation","submit","detail","selection","submitForm","bubbles","cancelable","submitWithoutChoosingValue","selectedItemId","reserveSearchInputOnJournalChange","activeJournalForm","changeSubmitButtonState","onCitationSearchDoiField","hasValue","dataset","name","journalCitationInputs","allEmpty","validator","isNotEmpty","parameters","entries","reduce","acc","prop","term","parseInt","autoCompleteMaxWords","autoCompleteMaxChars","QuickSearch","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","arguments","$menuHeader","hideNestedExtra","reset","$parentMenu","$dropdownToggle","$firstNestedMenu","$prevMenu","$nextMenu","handle","sub","addDataOnly","menuElements","timing","timeoutTime","addDataToElem","handleScrollBarHide","lastScrollVal","getLastPosition","scrollTo","JSON","stringify","floor","scrollVal","parse","elemsArr","parentHeightVal","subHeightVal","isSafari","duration","abs","skipCheck","elapsedTime","propertyName","iosControl","offsetY","_ux3lvl_slide_init","_ux3lvl_slide_onShow","_ux3lvl_slide_onHide","_ux3lvl_slide_onOff","apply","main","Array","getElementsByClassName","$reponsiveMenu","err","$list","$modal","$accordion","$alertPopup","$transplant","$dropBlock","$backToTop","$ipRanges","$quickSearch","$adplaceholder","$multiSearch","quickSearch","mobileMenuMain","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","Symbol","iterator","isArray","from","toString","insertAdjacentElement","insertBefore","c","normalize","l","CustomEvent","feedback","mode","diacritics","d","substring","Promise","store","then","done","matches","results","m","y","v","g","w","O","tag","selected","cursor","A","k","L","j","HTMLInputElement","HTMLTextAreaElement","Error","noResults","DocumentFragment","role","inside","S","E","placeHolder","placeholder","around","dest","hidden","T","events","clearTimeout","tabSelect","mousedown","toUpperCase","nodeName","x","unInit","close","goTo","previous","search","define"],"mappings":"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","file":"js/vendors~lazy-imports-f677df26a9d6e45ad536.js","sourcesContent":["(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","/**\n * Observe changes in the DOM of a specified element.\n *\n * @param {Element} obj - The DOM element to observe for changes.\n * @param {boolean} withMutations - A flag to control detailed mutation information.\n * @param {MutationObserverInit} [observerOptions] - Options for the MutationObserver.\n * @param {function} callback - The function to call when DOM changes occur.\n */\nwindow.observeDOM = (function () {\n let MutationObserver = window.MutationObserver || window.WebKitMutationObserver,\n eventListenerSupported = window.addEventListener;\n\n return function (obj, withMutations, observerOptions, callback) {\n if (MutationObserver) {\n let obs = new MutationObserver(function (mutations) {\n if (withMutations) {\n callback(mutations);\n } else {\n if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) callback();\n }\n });\n let options = observerOptions || {\n childList: true,\n subtree: true,\n attributes: true,\n };\n if (obj) {\n obs.observe(obj, options);\n }\n } else if (eventListenerSupported) {\n obj.addEventListener('DOMNodeInserted', callback, false);\n obj.addEventListener('DOMNodeRemoved', callback, false);\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 let $body = $('body');\n\n let list = {\n expandIcon: 'icon-add_box',\n collapseIcon: 'icon-squared-minus',\n\n init: function () {\n list.on.build();\n list.control();\n },\n control: function () {\n $body.on('click', '.expandable-list__toggle', function (e) {\n e.preventDefault();\n list.on.toggleList($(this));\n });\n },\n on: {\n build: function () {\n let $wrapper = $('.expandable-list');\n\n $wrapper.each(function () {\n let $target = $(this).find('.expandable-list__body');\n $target.hide();\n });\n },\n\n toggleList: function (elem) {\n let $toggle = elem,\n $wrapper = $toggle.closest('.expandable-list'),\n $target = $wrapper.children('.expandable-list__body').toggle();\n list.defineToggleIcons($wrapper);\n\n $wrapper.toggleClass('js--open');\n $toggle.find('i').toggleClass(list.expandIcon + ' ' + list.collapseIcon);\n\n if ($wrapper.hasClass('js--open')) {\n $toggle.attr('aria-expanded', true);\n $target.attr('aria-hidden', false);\n } else {\n $toggle.attr('aria-expanded', false);\n $target.attr('aria-hidden', true);\n }\n },\n closeList: function (elem) {\n let $wrapper = $('.expandable-list');\n list.defineToggleIcons($wrapper);\n $wrapper.removeClass('js--open');\n let $target = $wrapper.children('.expandable-list__body').hide();\n let $toggle = $('.expandable-list__toggle');\n\n $toggle\n .attr('aria-expanded', 'false')\n .find('i')\n .addClass(list.expandIcon)\n .removeClass(list.collapseIcon);\n $target.attr('aria-hidden', true);\n },\n },\n defineToggleIcons($expandableList) {\n if ($expandableList.data('expand-icon') !== undefined && $expandableList.data('expand-icon') !== '') {\n list.expandIcon = $expandableList.data('expand-icon');\n }\n\n if ($expandableList.data('collapse-icon') !== undefined && $expandableList.data('collapse-icon') !== '') {\n list.collapseIcon = $expandableList.data('collapse-icon');\n }\n },\n };\n\n UX.list = list; // add to global namespace\n})();\n","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","(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 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 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 transplant = {\n $element: null,\n $target: null,\n $order: null,\n $cloneData: null,\n $clonedContainer: null,\n vPort: 'screen-sm',\n\n init: function () {\n var transArray = $('[data-toggle=\"transplant\"]');\n\n transArray.each(function (index) {\n var $this = $(this);\n\n transplant.$element = $this.data('transplant');\n transplant.$target = $($this.data('target'));\n transplant.$direction = $($this.data('direction'));\n transplant.$order = $this.data('transplant-order');\n\n transplant.$remove = $this.data('remove');\n transplant.$targetClass = $this.data('target-class');\n transplant.$classNames = $this.data('class-names');\n\n if (transplant.$direction === 'to' || typeof transplant.$direction === 'undefined') {\n if (transplant.$element === 'self') {\n transplant.$element = $this;\n } else {\n transplant.$element = $this.find(transplant.$element);\n }\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .removeAttr('data-toggle')\n .attr('data-transplant-order', transplant.$order);\n\n transplant.clone();\n if (transplant.$targetClass) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$targetClass);\n transplant.$target.find('[data-pb-widget]')?.removeAttr('data-pb-widget');\n }\n if (transplant.$classNames) {\n transplant.$element.addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n } else {\n transplant.$target = $this;\n\n const array = $this.data('target').split(',');\n $.each(array, function (index, item) {\n // go through selectors\n transplant.$element = $(item);\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .attr('data-transplant-order', transplant.$order);\n transplant.clone();\n\n if (transplant.$targetClass) {\n transplant.$element.addClass(transplant.$targetClass);\n }\n\n if (transplant.$classNames) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n });\n }\n });\n transplant.order();\n },\n\n clone: function () {\n if (transplant.$element.hasClass('cloned')) return;\n\n if (transplant.$target.find('.transplanted-clone').length <= 0) {\n if (transplant.$target.is('ul')) {\n transplant.$target.append('
  • ');\n } else {\n transplant.$target.append('
    ');\n }\n\n transplant.$clonedContainer = transplant.$target.find('.transplanted-clone');\n if (transplant.$cloneData.is('li')) {\n transplant.$clonedContainer.append('');\n transplant.$clonedContainer = transplant.$target\n .find('.transplanted-clone__ul')\n .addClass(transplant.$classNames);\n }\n }\n\n transplant.$clonedContainer.append(transplant.$cloneData);\n transplant.$element.addClass('cloned');\n\n transplant.cleanDuplicateID();\n },\n order: function () {\n var clonedItems = transplant.$clonedContainer.children();\n\n clonedItems.sort(function (a, b) {\n return $(a).data('transplant-order') - $(b).data('transplant-order');\n });\n\n transplant.$clonedContainer.html(clonedItems);\n },\n remove: function () {\n if (transplant.$target) {\n transplant.$element.remove();\n } else {\n transplant.$source.remove();\n }\n },\n cleanDuplicateID: function () {\n var id,\n targetFor,\n $controler,\n isMobile = false,\n clonedElement = transplant.$target;\n\n if (!clonedElement || clonedElement.length <= 0 || clonedElement.hasClass('cloned-with-ids')) return;\n\n id = clonedElement.attr('id');\n if (id) {\n clonedElement.attr('id', id + '-cloned');\n }\n clonedElement.find('[id]:not(.cloned-with-ids), [aria-owns]').each(function () {\n var $this = $(this);\n $this.addClass('cloned-with-ids');\n var id = $this.attr('id'),\n ariaOwns = $this.attr('aria-owns');\n\n if (id) {\n $this.attr('id', id + '-cloned');\n }\n if (ariaOwns) {\n $this.attr(\n 'aria-owns',\n $this\n .attr('aria-owns')\n .split(' ')\n .map(id => id + '-cloned')\n .join(' ')\n );\n }\n });\n targetFor = clonedElement.attr('data-db-target-of');\n\n if (targetFor) {\n $controler = $('[data-db-target-for=' + targetFor + ']');\n if (!isMobile) {\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n }\n $(document).on(transplant.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n $controler.attr({'aria-controls': targetFor});\n });\n $(document).on(transplant.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n });\n }\n },\n };\n UX.transplant = transplant; // add to global namespace\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 $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","(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","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 slide.backLabel +\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","/**\n stickybits - Stickybits is a lightweight alternative to `position: sticky` polyfills\n @version v3.6.5\n @link https://github.com/dollarshaveclub/stickybits#readme\n @author Jeff Wainwright (https://jeffry.in)\n @license MIT\n**/\n/*eslint-disable*/\n/*\n STICKYBITS 💉\n --------\n > a lightweight alternative to `position: sticky` polyfills 🍬\n --------\n - each method is documented above it our view the readme\n - Stickybits does not manage polymorphic functionality (position like properties)\n * polymorphic functionality: (in the context of describing Stickybits)\n means making things like `position: sticky` be loosely supported with position fixed.\n It also means that features like `useStickyClasses` takes on styles like `position: fixed`.\n --------\n defaults 🔌\n --------\n - version = `package.json` version\n - userAgent = viewer browser agent\n - target = DOM element selector\n - noStyles = boolean\n - offset = number\n - parentClass = 'string'\n - scrollEl = window || DOM element selector || DOM element\n - stickyClass = 'string'\n - stuckClass = 'string'\n - useStickyClasses = boolean\n - useFixed = boolean\n - useGetBoundingClientRect = boolean\n - verticalPosition = 'string'\n --------\n props🔌\n --------\n - p = props {object}\n --------\n instance note\n --------\n - stickybits parent methods return this\n - stickybits instance methods return an instance item\n --------\n nomenclature\n --------\n - target => el => e\n - props => o || p\n - instance => item => it\n --------\n methods\n --------\n - .definePosition = defines sticky or fixed\n - .addInstance = an array of objects for each Stickybits Target\n - .getClosestParent = gets the parent for non-window scroll\n - .getTopPosition = gets the element top pixel position from the viewport\n - .computeScrollOffsets = computes scroll position\n - .toggleClasses = older browser toggler\n - .manageState = manages sticky state\n - .removeClass = older browser support class remover\n - .removeInstance = removes an instance\n - .cleanup = removes all Stickybits instances and cleans up dom from stickybits\n*/\nvar Stickybits =\n/*#__PURE__*/\nfunction () {\n const stickyOnEvent = document.createEvent('CustomEvent'),\n stickyOffEvent = document.createEvent('CustomEvent');\n stickyOnEvent.initCustomEvent('sticky-on', true, false, {});\n stickyOffEvent.initCustomEvent('sticky-off', true, false, {});\n\n function Stickybits(target, obj) {\n var o = typeof obj !== 'undefined' ? obj : {};\n this.version = '3.6.5';\n this.userAgent = window.navigator.userAgent || 'no `userAgent` provided by the browser';\n this.props = {\n customStickyChangeNumber: o.customStickyChangeNumber || null,\n noStyles: o.noStyles || false,\n stickyBitStickyOffset: o.stickyBitStickyOffset || 0,\n parentClass: o.parentClass || 'js-stickybit-parent',\n scrollEl: typeof o.scrollEl === 'string' ? document.querySelector(o.scrollEl) : o.scrollEl || window,\n stickyClass: o.stickyClass || 'js-is-sticky',\n stuckClass: o.stuckClass || 'js-is-stuck',\n stickyChangeClass: o.stickyChangeClass || 'js-is-sticky--change',\n useStickyClasses: o.useStickyClasses || false,\n useFixed: o.useFixed || false,\n useGetBoundingClientRect: o.useGetBoundingClientRect || false,\n verticalPosition: o.verticalPosition || 'top'\n /*\n define positionVal\n ----\n - uses a computed (`.definePosition()`)\n - defined the position\n */\n\n };\n this.props.positionVal = this.definePosition() || 'fixed';\n this.instances = [];\n var _this$props = this.props,\n positionVal = _this$props.positionVal,\n verticalPosition = _this$props.verticalPosition,\n noStyles = _this$props.noStyles,\n stickyBitStickyOffset = _this$props.stickyBitStickyOffset,\n useStickyClasses = _this$props.useStickyClasses;\n var verticalPositionStyle = verticalPosition === 'top' && !noStyles ? stickyBitStickyOffset + \"px\" : '';\n var positionStyle = positionVal !== 'fixed' ? positionVal : '';\n this.els = typeof target === 'string' ? document.querySelectorAll(target) : target;\n if (!('length' in this.els)) this.els = [this.els];\n\n for (var i = 0; i < this.els.length; i++) {\n var el = this.els[i]; // set vertical position\n\n el.style[verticalPosition] = verticalPositionStyle;\n el.style.position = positionStyle;\n\n if (positionVal === 'fixed' || useStickyClasses) {\n // instances are an array of objects\n this.instances.push(this.addInstance(el, this.props));\n }\n }\n }\n /*\n setStickyPosition ✔️\n --------\n — most basic thing stickybits does\n => checks to see if position sticky is supported\n => defined the position to be used\n => stickybits works accordingly\n */\n\n\n var _proto = Stickybits.prototype;\n\n _proto.definePosition = function definePosition() {\n var stickyProp;\n\n if (this.props.useFixed) {\n stickyProp = 'fixed';\n } else {\n var prefix = ['', '-o-', '-webkit-', '-moz-', '-ms-'];\n var test = document.head.style;\n\n for (var i = 0; i < prefix.length; i += 1) {\n test.position = prefix[i] + \"sticky\";\n }\n\n stickyProp = test.position ? test.position : 'fixed';\n test.position = '';\n }\n\n return stickyProp;\n }\n /*\n addInstance ✔️\n --------\n — manages instances of items\n - takes in an el and props\n - returns an item object\n ---\n - target = el\n - o = {object} = props\n - scrollEl = 'string' | object\n - verticalPosition = number\n - off = boolean\n - parentClass = 'string'\n - stickyClass = 'string'\n - stuckClass = 'string'\n ---\n - defined later\n - parent = dom element\n - state = 'string'\n - offset = number\n - stickyStart = number\n - stickyStop = number\n - returns an instance object\n */\n ;\n\n _proto.addInstance = function addInstance(el, props) {\n var _this = this;\n\n var item = {\n el: el,\n parent: el.parentNode,\n props: props\n };\n this.isWin = this.props.scrollEl === window;\n var se = this.isWin ? window : this.getClosestParent(item.el, item.props.scrollEl);\n this.computeScrollOffsets(item);\n item.parent.className += \" \" + props.parentClass;\n item.state = 'default';\n\n item.stateContainer = function () {\n return _this.manageState(item);\n };\n\n se.addEventListener('scroll', item.stateContainer);\n return item;\n }\n /*\n --------\n getParent 👨‍\n --------\n - a helper function that gets the target element's parent selected el\n - only used for non `window` scroll elements\n - supports older browsers\n */\n ;\n\n _proto.getClosestParent = function getClosestParent(el, match) {\n // p = parent element\n var p = match;\n var e = el;\n if (e.parentElement === p) return p; // traverse up the dom tree until we get to the parent\n\n while (e.parentElement !== p) {\n e = e.parentElement;\n } // return parent element\n\n\n return p;\n }\n /*\n --------\n getTopPosition\n --------\n - a helper function that gets the topPosition of a Stickybit element\n - from the top level of the DOM\n */\n ;\n\n _proto.getTopPosition = function getTopPosition(el) {\n if (this.props.useGetBoundingClientRect) {\n return el.getBoundingClientRect().top + (this.props.scrollEl.pageYOffset || document.documentElement.scrollTop);\n }\n\n var topPosition = 0;\n\n do {\n topPosition = el.offsetTop + topPosition;\n } while (el = el.offsetParent);\n\n return topPosition;\n }\n /*\n computeScrollOffsets 📊\n ---\n computeScrollOffsets for Stickybits\n - defines\n - offset\n - start\n - stop\n */\n ;\n\n _proto.computeScrollOffsets = function computeScrollOffsets(item) {\n var it = item;\n var p = it.props;\n var el = it.el;\n var parent = it.parent;\n var isCustom = !this.isWin && p.positionVal === 'fixed';\n var isTop = p.verticalPosition !== 'bottom';\n var scrollElOffset = isCustom ? this.getTopPosition(p.scrollEl) : 0;\n var stickyStart = isCustom ? this.getTopPosition(parent) - scrollElOffset : this.getTopPosition(parent);\n var stickyChangeOffset = p.customStickyChangeNumber !== null ? p.customStickyChangeNumber : el.offsetHeight;\n var parentBottom = stickyStart + parent.offsetHeight;\n it.offset = scrollElOffset + p.stickyBitStickyOffset;\n it.stickyStart = isTop ? stickyStart - it.offset : 0;\n it.stickyChange = it.stickyStart + stickyChangeOffset;\n it.stickyStop = isTop ? parentBottom - (el.offsetHeight + it.offset) : parentBottom - window.innerHeight;\n }\n /*\n toggleClasses ⚖️\n ---\n toggles classes (for older browser support)\n r = removed class\n a = added class\n */\n ;\n\n _proto.toggleClasses = function toggleClasses(el, r, a) {\n var e = el;\n var cArray = e.className.split(' ');\n if (a && cArray.indexOf(a) === -1) cArray.push(a);\n var rItem = cArray.indexOf(r);\n if (rItem !== -1) cArray.splice(rItem, 1);\n e.className = cArray.join(' ');\n }\n /*\n manageState 📝\n ---\n - defines the state\n - normal\n - sticky\n - stuck\n */\n ;\n\n _proto.manageState = function manageState(item) {\n // cache object\n var it = item;\n var e = it.el;\n var p = it.props;\n var state = it.state;\n var start = it.stickyStart;\n var change = it.stickyChange;\n var stop = it.stickyStop;\n var stl = e.style; // cache props\n\n var ns = p.noStyles;\n var pv = p.positionVal;\n var se = p.scrollEl;\n var sticky = p.stickyClass;\n var stickyChange = p.stickyChangeClass;\n var stuck = p.stuckClass;\n var vp = p.verticalPosition;\n var isTop = vp !== 'bottom';\n /*\n requestAnimationFrame\n ---\n - use rAF\n - or stub rAF\n */\n\n var rAFStub = function rAFDummy(f) {\n f();\n };\n\n var rAF = !this.isWin ? rAFStub : window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || rAFStub;\n /*\n define scroll vars\n ---\n - scroll\n - notSticky\n - isSticky\n - isStuck\n */\n\n var tC = this.toggleClasses;\n var scroll = this.isWin ? window.scrollY || window.pageYOffset : se.scrollTop;\n var notSticky = scroll > start && scroll < stop && (state === 'default' || state === 'stuck');\n var isSticky = isTop && scroll <= start && (state === 'sticky' || state === 'stuck');\n var isStuck = scroll >= stop && state === 'sticky';\n /*\n Unnamed arrow functions within this block\n ---\n - help wanted or discussion\n - view test.stickybits.js\n - `stickybits .manageState `position: fixed` interface` for more awareness 👀\n */\n\n if (notSticky) {\n it.state = 'sticky';\n rAF(function () {\n tC(e, stuck, sticky);\n stl.position = pv;\n if (ns) return;\n stl.bottom = '';\n stl[vp] = p.stickyBitStickyOffset + \"px\";\n e.dispatchEvent(stickyOnEvent);\n });\n } else if (isSticky) {\n it.state = 'default';\n rAF(function () {\n tC(e, sticky);\n tC(e, stuck);\n if (pv === 'fixed') stl.position = '';\n e.dispatchEvent(stickyOffEvent);\n });\n } else if (isStuck) {\n it.state = 'stuck';\n rAF(function () {\n tC(e, sticky, stuck);\n if (pv !== 'fixed' || ns) return;\n stl.top = '';\n stl.bottom = '0';\n stl.position = 'absolute';\n });\n }\n\n var isStickyChange = scroll >= change && scroll <= stop;\n var isNotStickyChange = scroll < change / 2 || scroll > stop;\n var stub = 'stub'; // a stub css class to remove\n\n if (isNotStickyChange) {\n rAF(function () {\n tC(e, stickyChange);\n });\n } else if (isStickyChange) {\n rAF(function () {\n tC(e, stub, stickyChange);\n });\n }\n };\n\n _proto.update = function update(updatedProps) {\n if (updatedProps === void 0) {\n updatedProps = null;\n }\n\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n this.computeScrollOffsets(instance);\n\n if (updatedProps) {\n for (var updatedProp in updatedProps) {\n instance.props[updatedProp] = updatedProps[updatedProp];\n }\n }\n }\n\n return this;\n }\n /*\n removes an instance 👋\n --------\n - cleanup instance\n */\n ;\n\n _proto.removeInstance = function removeInstance(instance) {\n var e = instance.el;\n var p = instance.props;\n var tC = this.toggleClasses;\n e.style.position = '';\n e.style[p.verticalPosition] = '';\n tC(e, p.stickyClass);\n tC(e, p.stuckClass);\n tC(e.parentNode, p.parentClass);\n }\n /*\n cleanup 🛁\n --------\n - cleans up each instance\n - clears instance\n */\n ;\n\n _proto.cleanup = function cleanup() {\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n instance.props.scrollEl.removeEventListener('scroll', instance.stateContainer);\n this.removeInstance(instance);\n }\n\n this.manageState = false;\n this.instances = [];\n };\n\n return Stickybits;\n}();\n/*\n export\n --------\n exports StickBits to be used 🏁\n*/\n\n\nfunction stickybits(target, o) {\n return new Stickybits(target, o);\n}\n\nexport default stickybits;\n","import stickybits from 'ui-core/plugins/stickybits/js/stickybits.es';\n\n(function ($, UX) {\n const sticky = {\n stickyNodes: [],\n stickyTargets:\n '.header, .issue-navigator, .navbar, .article__aside, .article__navbar, .table-of-content__nav, .tos-list',\n init() {\n this.stickyNodes = document.querySelectorAll(this.stickyTargets);\n this.setHeaderHeight();\n this.setSticky();\n },\n setHeaderHeight() {\n // set the initial value of --header-height to override the default values\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n\n // to cover the case when resize from smaller screens to web and page reload\n $(window).resize(function () {\n // On resize\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n // cover case when jump from Simulater viewport into web and on page reload\n $(document).on('smartResize', function () {\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n },\n setSticky() {\n if (!UX.test.isIE() || UX.test.isIE() > 11) {\n return;\n }\n stickybits(`${this.stickyTargets}, .article__navbar__secondary`, {useStickyClasses: true});\n this.stickyNodes.forEach(function (node) {\n const nodeWinOffset = node.getBoundingClientRect();\n node.style.left = nodeWinOffset.left + 'px';\n node.style.width = nodeWinOffset.width + 'px';\n node.style.right = window.outerWidth - nodeWinOffset.right + 'px';\n });\n },\n };\n\n $(() => {\n sticky.init();\n });\n})(jQuery, UX);\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n/*eslint-disable*/\nimport $ from 'jquery';\nimport Util from '../../../utility/js/bootstrap-utils';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal';\nconst VERSION = '4.4.1';\nconst DATA_KEY = 'bs.modal';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst DATA_API_KEY = '.data-api';\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true,\n};\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean',\n};\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDE_PREVENTED: `hidePrevented${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n};\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'in',\n STATIC: 'modal-static',\n};\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(Selector.DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true;\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget,\n });\n\n $(this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, event => this.hide(event));\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(() => this._showElement(relatedTarget));\n }\n\n hide(event) {\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = $.Event(Event.HIDE);\n\n $(this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n const transition = $(this._element).hasClass(ClassName.FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(document).off(Event.FOCUSIN);\n\n $(this._element).removeClass(ClassName.SHOW);\n\n $(this._element).off(Event.CLICK_DISMISS);\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n }\n\n dispose() {\n [window, this._element, this._dialog].forEach(htmlElement => $(htmlElement).off(EVENT_KEY));\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN);\n\n $.removeData(this._element, DATA_KEY);\n\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n }\n\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config,\n };\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(Event.HIDE_PREVENTED);\n\n $(this._element).trigger(hideEventPrevented);\n if (hideEventPrevented.defaultPrevented) {\n return;\n }\n\n this._element.classList.add(ClassName.STATIC);\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, () => {\n this._element.classList.remove(ClassName.STATIC);\n })\n .emulateTransitionEnd(modalTransitionDuration);\n this._element.focus();\n } else {\n this.hide();\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE);\n const modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $(this._element).addClass(ClassName.SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget,\n });\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus();\n }\n this._isTransitioning = false;\n $(this._element).trigger(shownEvent);\n };\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, event => {\n if (\n document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0\n ) {\n this._element.focus();\n }\n });\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, event => this.handleUpdate(event));\n } else {\n $(window).off(Event.RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._isTransitioning = false;\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN);\n this._resetAdjustments();\n this._resetScrollbar();\n $(this._element).trigger(Event.HIDDEN);\n });\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove();\n this._backdrop = null;\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName.BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $(this._backdrop).appendTo(document.body);\n\n $(this._element).on(Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false;\n return;\n }\n if (event.target !== event.currentTarget) {\n return;\n }\n\n this._triggerBackdropTransition();\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $(this._backdrop).addClass(ClassName.SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW);\n\n const callbackRemove = () => {\n this._removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`;\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT));\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight;\n const calculatedPadding = $(element).css('padding-right');\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n });\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight;\n const calculatedMargin = $(element).css('margin-right');\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`);\n });\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight;\n const calculatedPadding = $(document.body).css('padding-right');\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n }\n\n $(document.body).addClass(ClassName.OPEN);\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right');\n $(element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n });\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`));\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right');\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right');\n }\n });\n\n // Restore body padding\n const padding = $(document.body).data('padding-right');\n $(document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n }\n\n _getScrollbarWidth() {\n // thx d.walsh\n const scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {}),\n };\n\n if (!data) {\n data = new Modal(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target;\n const selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle'\n : {\n ...$(target).data(),\n ...$(this).data(),\n };\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n const $target = $(target).one(Event.SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($(target), config, this);\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface;\n$.fn[NAME].Constructor = Modal;\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n};\n\nexport default Modal;\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 {\n BrowserUtils,\n ComponentElements,\n ComponentInjector,\n ComponentObject,\n ComponentSelector,\n ComponentSelectors,\n ComponentService,\n Inject,\n UIComponent\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject {\n}\n\nclass ClassList extends ComponentObject {\n}\n\nclass Selectors extends ComponentSelectors {\n addRangeFields = new ComponentSelector('.ip-ranges__add-range input[name=\"ipRanges\"]');\n addRangeSubmitButtons = new ComponentSelector('.ip-ranges__add-range input[type=\"submit\"]');\n updateRangesCheckboxes = new ComponentSelector('.ip-ranges__update-range tr:not(.ip-ranges__update-range__ignore-conflicts) input[type=\"checkbox\"]');\n updateRangesSubmitButtons = new ComponentSelector('.ip-ranges__update-range input[type=\"submit\"]');\n}\n\nclass Elements extends ComponentElements {\n addRangeFields: Array = [];\n addRangeSubmitButtons: Array = [];\n updateRangesCheckboxes: Array = [];\n updateRangesSubmitButtons: Array = [];\n}\n\ninterface ipRanges extends ComponentService {\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass ipRanges implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n\n constructor(readonly wrapper: HTMLElement) {\n }\n\n initialize(): void {\n this.elements.initialize(this.wrapper);\n this.addEventListeners();\n }\n\n addEventListeners(): void {\n this.elements.addRangeFields.forEach((field) => {\n field.addEventListener('input', this.handleAddRangeFieldChange.bind(this, field));\n });\n this.elements.updateRangesCheckboxes.forEach(checkbox => {\n checkbox.addEventListener('change', this.handleUpdateRangeFieldChange.bind(this, checkbox));\n });\n }\n\n protected handleAddRangeFieldChange(): void {\n const anyIsEmpty = this.elements.addRangeFields.some(field => field.value.trim() === '');\n this.setSubmitButtonsDisable(this.elements.addRangeSubmitButtons, anyIsEmpty)\n }\n\n protected handleUpdateRangeFieldChange(): void {\n const anyIsChecked = this.elements.updateRangesCheckboxes.some(checkbox => checkbox.checked);\n this.setSubmitButtonsDisable(this.elements.updateRangesSubmitButtons, !anyIsChecked)\n }\n\n protected setSubmitButtonsDisable(array: Array = [], isDisabled: boolean): void {\n array.forEach(button => {\n button.disabled = isDisabled;\n })\n }\n}\n\nexport default ipRanges;\n\nexport {\n Elements as IpRangesElements,\n Selectors as IpRangesSelectors,\n ClassList as IpRangesClassList,\n Texts as IpRangesTexts,\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}","import { ComponentSelector, ComponentInjector } from '@atypon/ui-utils';\nimport CoreQuickSearch, { QuickSearchClassList, QuickSearchElements, QuickSearchSelectors, QuickSearchTexts, QuickSearchElm } from 'ui-core/widgets/quick-search/js/quick-search';\n\nclass ClassList extends QuickSearchClassList {\n}\n\nclass Selectors extends QuickSearchSelectors {\n journalSearchHideAutocompleteWrapper = '.journal-search__wrapper';\n}\n\nclass Elements extends QuickSearchElements {\n citationSubmit: HTMLElement;\n}\n\ninterface QuickSearch {\n get elements(): Elements;\n get classList(): ClassList;\n get selectors(): Selectors;\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, QuickSearchTexts)\nclass QuickSearch extends CoreQuickSearch {\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return { ...super.resultListConfig(quickSearchElm), position: 'afterbegin' };\n }\n}\n\n\nexport default QuickSearch;\n\nexport {\n Elements as ClassicQuickSearchElements,\n Selectors as ClassicQuickSearchSelectors,\n ClassList as ClassicQuickSearchClassList,\n}","import 'ui-core/plugins/drawer/js/drawer';\n\n(function () {\n // Mostly this file was added to do fix som eIOs related issues\n var $body = $('body'); // @fixme: use document element instead of body ...\n\n var menu = (UX.menu = UX.menu || {});\n\n menu.init = function () {\n $('.main-nav').each(function (index) {\n menu.menuHeaderMainTitle = $(this).find('.menu-header').text();\n menu.$target = $(this);\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n menu.items = $('.main-nav').find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.iosControl(); // this is the only difference between this init function and the generic one (drawer.js in ux3 )\n menu.control();\n menu.additionalControl();\n };\n\n menu.iosControl = function () {\n if ($('body').hasClass('iOS')) {\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n $(window).scrollTop(menu.offsetY); // scroll to previous scrolling point for IOs devices\n });\n\n $body.on('click', '[data-toggle=\"nav\"]', function (e) {\n menu.offsetY = $body.data('yoffset') || window.pageYOffset; // get current scrolling point for IOS devices\n $body.data('yoffset', menu.offsetY);\n });\n }\n };\n\n menu.on.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 if ($parenNestedMenu.is('#menubar')) $(\"[data-toggle='nav']\").removeClass('js--nested-open'); // <-- difference between classic and core\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\n menu.additionalControl = function () {\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.on.hide(e);\n menu.$target.attr('style', 'display: none !important');\n });\n };\n})();\n","import 'ui-core/plugins/slide/js/slide';\n(function (UX) {\n var $body = $('body');\n let _ux3lvl_slide_init, _ux3lvl_slide_onShow, _ux3lvl_slide_onHide, _ux3lvl_slide_onOff;\n var slide = UX.slide;\n\n slide.vPort = 'screen-xs';\n\n // Save original functions\n\n _ux3lvl_slide_init = slide.init;\n _ux3lvl_slide_onShow = slide.on.show;\n _ux3lvl_slide_onHide = slide.on.hide;\n _ux3lvl_slide_onOff = slide.on.off;\n\n slide.init = function () {\n _ux3lvl_slide_init.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.show = function () {\n _ux3lvl_slide_onShow.apply(this, arguments);\n slide.$back.removeAttr('tabindex');\n };\n\n slide.on.hide = function () {\n _ux3lvl_slide_onHide.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.off = function () {\n _ux3lvl_slide_onOff.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.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 slide.$elements.css('transform', '');\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 slide.$elements.css('transform', '');\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\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\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\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\n slide.on.hide(e);\n }\n });\n };\n})(UX);\n","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-theme/js/components/_drawer';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-theme/js/components/slide';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-core/widgets/menu/js/responsive-menu';\n \nconst main = (UX) => {\n const $menu = Array.prototype.slice.call(document.getElementsByClassName('drawer__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 ","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/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/aasm/node_modules/ui-core/utility/js/observe-dom';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-theme/js/utility/_sticky';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-core/plugins/cookies/js/cookies';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-core/basic/lists/js/list';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-theme/js/components/_modal';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-core/components/accordion/js/accordion';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/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/aasm/node_modules/ui-theme/js/components/transplant';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/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/aasm/node_modules/ui-core/components/back-to-top/js/back-to-top';\n\nimport ipRanges from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-core/widgets/ip-ranges/js/ip-ranges';\nimport QuickSearch from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/node_modules/ui-theme/js/widgets/_quick-search';\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/aasm/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/aasm/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/aasm/node_modules/ui-core/widgets/raa/js/raa';\n\nimport mobileMenuMain from './groups/_mobile-menu';\nconst main = (UX) => {\n const $list = Array.prototype.slice.call(document.getElementsByClassName('expandable-list')),\n $modal = Array.prototype.slice.call(document.getElementsByClassName('modal')),\n $accordion = Array.prototype.slice.call(document.getElementsByClassName('accordion')),\n $alertPopup = Array.prototype.slice.call(document.getElementsByClassName('ux-alert-container')),\n $transplant = Array.prototype.slice.call(document.querySelectorAll('[data-toggle=\"transplant\"]')),\n $dropBlock = Array.prototype.slice.call(document.querySelectorAll('[data-db-target-for]')),\n $backToTop = Array.prototype.slice.call(document.getElementsByClassName('back-to-top')),\n $ipRanges = document.querySelector('.ipRangesWidget'),\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\ntry {\n UX.noFocusableSVG.init();\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($list.length ) {\n UX.list.init($list);\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 ($accordion.length ) {\n UX.accordion.init($accordion);\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 ($transplant.length ) {\n UX.transplant.init($transplant);\n }\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 ($backToTop.length ) {\n UX.backToTop.init($backToTop);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($ipRanges ) {\n UX.ipRanges = new ipRanges($ipRanges).initialize()\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 \nmobileMenuMain(UX);\n\n}\n\n export default main;\n ","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"],"sourceRoot":""}