{"version":3,"sources":["webpack:///./app/components/m/tab-navigation/index.js"],"names":["location","hash","tabLink","$","length","tab","timeout","tabNavigation","document","querySelector","classList","contains","tabs","querySelectorAll","changeTab","initFlag","activeTab","activeNav","parentNode","activeIndex","children","indexOf","nextIndex","trigger","setTimeout","content","addEventListener","clearTimeout","searchInputFocused","searchInputId","$searchInput","tabNav","on","ev","target","href","posY","window","scrollTop","currentTab","id","sliderContainer","thumbsSlider","mainSlider","swiper","update","add","focus","$focused","attr"],"mappings":"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","file":"tab-navigation.chunk.js","sourcesContent":["/*\r\n * Allow Tabs with hashtag\r\n */\r\n\r\nif (location.hash) {\r\n const tabLink = $(`.tab-navigation a[href=\"${location.hash}\"]`);\r\n\r\n if (tabLink.length) {\r\n tabLink.tab('show');\r\n }\r\n}\r\n\r\nlet timeout;\r\nconst tabNavigation = document.querySelector('.tab-navigation');\r\nif (tabNavigation.classList.contains('tab-autoplay')) {\r\n const tabs = tabNavigation.querySelectorAll('.nav-link');\r\n function changeTab(initFlag) {\r\n if (!initFlag) {\r\n const activeTab = tabNavigation.querySelector('.nav-link.active');\r\n const activeNav = activeTab.parentNode;\r\n const activeIndex = [...activeNav.parentNode.children].indexOf(activeNav);\r\n const nextIndex = activeIndex < tabs.length - 1 ? activeIndex + 1 : 0;\r\n $(tabs[nextIndex]).trigger('click');\r\n }\r\n timeout = setTimeout(changeTab, 9000);\r\n }\r\n\r\n const content = document.querySelector('.tab-content');\r\n\r\n content.addEventListener('mousedown', function () {\r\n clearTimeout(timeout);\r\n });\r\n\r\n changeTab(true);\r\n}\r\n\r\n/**\r\n * ODSUPPORT-4946 - prevent search-input field\r\n * to lose focus after a tab has changed\r\n */\r\nlet searchInputFocused = false;\r\nconst searchInputId = 'stage-search';\r\nconst $searchInput = $(`#${searchInputId}`);\r\nconst tabNav = $('.tab-navigation a[data-toggle=\"tab\"]');\r\n\r\n/**\r\n * Callback for \"custom\" clicks on a single tab. Here we\r\n * prevent jumping to the search field which will appear\r\n * if we focus the field.\r\n */\r\ntabNav.on('click', function () {\r\n searchInputFocused = false;\r\n // stop autoplay if a tab was clicked\r\n if (timeout !== null) {\r\n clearTimeout(timeout);\r\n }\r\n});\r\n\r\n/**\r\n * Callback for when a tab will get to be active eg. shown\r\n */\r\ntabNav.on('show.bs.tab', function (ev) {\r\n if (ev.target.href.indexOf('#') > 0) {\r\n // Change hashtag and restore scroll position\r\n const posY = $(window).scrollTop();\r\n // const hash = ev.target.href.split('#')[1];\r\n\r\n // location.hash = hash;\r\n $(window).scrollTop(posY);\r\n }\r\n const currentTab = document.querySelector(`[aria-labelledby='${this.id}']`);\r\n const sliderContainer = currentTab ? currentTab.querySelector('.hotspots-slider') : null;\r\n if (sliderContainer) {\r\n const thumbsSlider = sliderContainer.querySelector('.hotspots-slider__thumbs');\r\n const mainSlider = sliderContainer.querySelector('.hotspots-slider__main');\r\n mainSlider.querySelector('.hotspots__image').addEventListener('lazyloaded', () => {\r\n mainSlider.swiper.update();\r\n if (thumbsSlider) {\r\n thumbsSlider.swiper.update();\r\n thumbsSlider\r\n .querySelectorAll(`.swiper-slide`)\r\n [mainSlider.swiper.activeIndex].classList.add('swiper-slide-thumb-active');\r\n }\r\n });\r\n }\r\n\r\n // if the search-input was focused before the\r\n // tab change, re-focus the search-field again\r\n if (searchInputFocused) {\r\n $searchInput.focus();\r\n }\r\n});\r\n\r\n/**\r\n * Callback for when a tab will get to be inactive eg. hidden\r\n */\r\ntabNav.on('hide.bs.tab', function (ev) {\r\n // get current focused element\r\n const $focused = $(':focus');\r\n\r\n // save whether the search-field was focused before the tab change\r\n if ($focused.attr('id') === searchInputId) searchInputFocused = true;\r\n});\r\n\r\n// add listeners to the modals of the hotspots, so\r\n// we can prevent swiper-sliders autoplay during\r\n// a modal are open\r\n$('.modal--hotspots').on('shown.bs.modal', () => {\r\n // stop tabs from changing\r\n clearTimeout(timeout);\r\n});\r\n"],"sourceRoot":""}