{"version":3,"file":"chunks/7ef0d46f0f73c9.js","mappings":"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","sources":["webpack:///./resources/js/components/generic/prototype-tabs.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport imkt from '../../imkt';\nimport url from '../../utils/url';\n\nexport default class PrototypeTabs {\n activeClass = \"active\";\n mobileSelectClassName = \"imkt-ui-tabs--mobile__select\";\n domRoot: JQuery<any>;\n params: any;\n menuLis: JQuery<HTMLElement>;\n menuLinks: JQuery<HTMLElement>;\n tabSections: JQuery<HTMLElement>;\n currentIndex: any;\n\n constructor(domRoot: HTMLElement, params: any) {\n this.domRoot = $(domRoot);\n this.params = {\n // define default params here\n useScrolling: false,\n noDefault: false,\n useMobileSelect: false,\n ...params,\n };\n this.init();\n }\n\n init() {\n this.menuLis = $(\".tab-menu > li\", this.domRoot);\n this.menuLinks = $(\"a\", this.menuLis);\n this.tabSections = $(\".tab-content\");\n\n this.menuLinks.filter(\"[data-additional-content]\").each(function (i, el) {\n var tab = $(el);\n tab.data(\"additionalContent\", $(tab.attr(\"data-additional-content\")));\n });\n\n this.bindEvents();\n this.setInitialState();\n\n if (this.params.useMobileSelect) {\n this.initMobileSelect();\n }\n }\n\n activateByTabName(tabName: string) {\n var tabElement = this.menuLinks.filter(\"[data-name='\" + tabName + \"']\");\n if (tabElement.length) {\n this.activateTab(tabElement);\n } else {\n this.activateTab(this.menuLinks.eq(0), true);\n }\n }\n\n activateByTabIndex(index: number) {\n this.activateTab(this.menuLinks.eq(index));\n }\n\n setInitialState() {\n var urlParams = url.getUrlParams();\n\n this.menuLinks.trigger(\"close.tab\");\n\n if (!this.params.noDefault) {\n urlParams && urlParams.tab\n ? this.activateByTabName(urlParams.tab)\n : this.activateByTabIndex(0);\n }\n }\n\n bindEvents() {\n this.menuLinks\n .on(\"click\", $.proxy(this.onclick_menuLink, this))\n .on(\"open.tab\", $.proxy(this.onopen_tab, this))\n .on(\"close.tab\", $.proxy(this.onclose_tab, this));\n }\n\n onclick_menuLink(e: MouseEvent) {\n e.preventDefault();\n this.activateTab($(e.currentTarget));\n }\n \n onopen_tab(e) {\n var additionalContent = $(e.currentTarget).data(\"additionalContent\");\n if (additionalContent && additionalContent.length) {\n additionalContent.show();\n }\n }\n\n onclose_tab(e) {\n var additionalContent = $(e.currentTarget).data(\"additionalContent\");\n if (additionalContent && additionalContent.length) {\n additionalContent.hide();\n }\n }\n\n updateHistory(tab: JQuery<HTMLElement>) {\n var tabName;\n\n if (imkt.core.supports.history()) {\n tabName = tab.attr(\"data-name\");\n\n // Append url params from incoming URL on history state\n if (typeof tabName !== typeof undefined && tabName !== false) {\n var currentUrl = window.location.href;\n var urlParams = url.getUrlParams(currentUrl);\n\n if (urlParams) {\n urlParams[\"tab\"] = tabName;\n } else {\n urlParams = { tab: tabName };\n }\n\n window.history.replaceState(\n tabName,\n document.title,\n \"?\" + $.param(urlParams) + window.location.hash\n );\n }\n }\n }\n\n checkScrollPosition() {\n var tabOffsetTop = this.domRoot.offset().top - 30;\n if ($(window).scrollTop() < tabOffsetTop) {\n $(\"body, html\").scrollTop(tabOffsetTop);\n }\n }\n\n activateTab(tab: JQuery<HTMLElement>, skipHistory?: boolean) {\n var previousTab =\n typeof this.currentIndex === \"number\"\n ? this.menuLinks.eq(this.currentIndex)\n : null;\n\n if (tab.length && !tab.is(previousTab)) {\n this.menuLis.removeClass(this.activeClass);\n tab.closest(\"li\").addClass(this.activeClass);\n\n this.tabSections.hide().filter(tab.attr(\"href\")).show();\n\n this.currentIndex = this.menuLinks.index(tab);\n\n if (this.params.useScrolling) this.checkScrollPosition();\n\n if (previousTab) {\n previousTab.trigger(\"close.tab\");\n }\n tab.trigger(\"open.tab\");\n\n if (!skipHistory) {\n this.updateHistory(tab);\n }\n }\n }\n\n initMobileSelect() {\n var self = this;\n var select = document.createElement(\"select\");\n select.className = this.mobileSelectClassName;\n\n $.each(this.menuLinks, function (i, link) {\n var option = document.createElement(\"option\");\n var dataName = $(link).data(\"name\");\n var dataAdditionalContent = $(link).data(\"additional-content\");\n var value = $(link).text();\n\n $(option).data(\"name\", dataName);\n $(option).data(\"additional-content\", dataAdditionalContent);\n $(option).val(dataName);\n $(option).text(value);\n\n if ($(link).parent().hasClass(\"active\")) {\n $(option).attr(\"selected\", \"selected\");\n }\n\n $(select).append(option);\n });\n this.domRoot.prepend(select);\n\n $(select).on(\"change\", function () {\n var index = $(this).find(\":selected\").index();\n self.activateTab(self.menuLinks.eq(index));\n });\n }\n}\n"],"names":["PrototypeTabs","domRoot","params","_classCallCheck","_defineProperty","this","$","_objectSpread","useScrolling","noDefault","useMobileSelect","init","key","value","menuLis","menuLinks","tabSections","filter","each","i","el","tab","data","attr","bindEvents","setInitialState","initMobileSelect","tabName","tabElement","length","activateTab","eq","index","urlParams","url","trigger","activateByTabName","activateByTabIndex","on","onclick_menuLink","onopen_tab","onclose_tab","e","preventDefault","currentTarget","additionalContent","show","hide","imkt","_typeof","currentUrl","window","location","href","history","replaceState","document","title","hash","tabOffsetTop","offset","top","scrollTop","skipHistory","previousTab","currentIndex","is","removeClass","activeClass","closest","addClass","checkScrollPosition","updateHistory","self","select","createElement","className","mobileSelectClassName","link","option","dataName","dataAdditionalContent","text","val","parent","hasClass","append","prepend","find"],"sourceRoot":""}