{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/quick-access.js","webpack://@verndale/toolkit/./src/js/modules/tabs.js"],"names":["Module","Component","isActive","BREAKPOINTS","el","i","tab","controls","Tabs","_","allowMultopleOnMobile","identifier","e","KEYS","setFocus","keepOtherTabsActivated","event","panel","KEYS_DIRECTION","index"],"mappings":"mLAIA,MAAMA,UAAeC,WAAU,CAC7B,eAAgB,CACd,KAAK,IAAM,CACT,eAAgB,KAAK,GAAG,GAAG,qBAAqB,EAChD,UAAW,KAAK,GAAG,IAAI,wBAAwB,EAC/C,QAAS,KAAK,GAAG,IAAI,mBAAmB,EACxC,mBAAoB,KAAK,GAAG,GAAG,yBAAyB,CAC1D,EAEA,KAAK,WAAa,KAAK,IAAI,eAAe,QAAQ,WAClD,KAAK,eAAiB,2BAClB,KAAK,IAAI,UAAU,QAAQ,KAAK,iBAAiB,EACrD,KAAK,MAAM,CACb,CAEA,cAAe,CACb,KAAK,IAAI,UAAU,IAAI,QAAS,KAAK,mBAAmB,KAAK,IAAI,CAAC,CACpE,CAEA,oBAAqB,CACnB,MAAMC,EAAW,KAAK,GAAG,UAAU,SAAS,KAAK,cAAc,EAE3D,OAAO,WAAW,eAAeC,KAAY,iBAAmB,MAAM,EAAE,SAAWD,GACrF,KAAK,IAAI,QAAQ,QAAQ,CAACE,EAAIC,IAAMA,IAAM,EAAID,EAAG,gBAAgB,aAAa,EAAIA,EAAG,WAAa,EAAI,EAExG,KAAK,GAAG,UAAU,OAAO,KAAK,eAAgB,CAACF,CAAQ,CACzD,CAEA,kBAAmB,CACjB,MAAMI,EAAM,KAAK,IAAI,UAAU,GAC/BA,EAAI,aAAa,gBAAiB,MAAM,EACxC,MAAMC,EAAWD,EAAI,aAAa,eAAe,EACjD,SAAS,eAAeC,CAAQ,EAAE,gBAAgB,aAAa,CACjE,CAEA,OAAQ,CACN,CAAC,GAAG,KAAK,IAAI,UAAW,GAAG,KAAK,IAAI,OAAO,EAAE,QAAQH,GAAM,CACzDA,EAAG,QAAQ,WAAa,KAAK,UAC/B,CAAC,EACD,KAAK,IAAI,UAAU,QAAQ,CAACA,EAAIC,IAAM,CACpCD,EAAG,QAAQ,MAAQC,EACnB,KAAK,IAAI,mBAAmB,OAAOD,CAAE,CACvC,CAAC,EAED,IAAII,UAAK,KAAK,IAAI,cAAc,CAClC,CACF,CAEA,UAAeR,C,+DCjDf,MAAMA,UAAeC,WAAU,CAC7B,YAAYQ,EAAGC,EAAuB,CACpC,MAAMD,EAAGC,CAAqB,EAC9B,KAAK,sBAAwB,CAAC,CAACA,CACjC,CAEA,eAAgB,CACd,MAAMC,EAAa,KAAK,GAAG,QAAQ,WAEnC,KAAK,IAAM,CACT,MAAO,KAAK,GAAG,IAAI,qBAAqBA,iBAA0B,EAClE,eAAgB,KAAK,GAAG,IAAI,qBAAqBA,6BAAsC,EACvF,QAAS,KAAK,GAAG,IAAI,qBAAqBA,sBAA+B,CAC3E,EAEA,KAAK,WAAa,KAAK,GAAG,QAAQ,aAAe,OACjD,KAAK,yBAA2B,IACb,OAAO,WAAW,qBAAqB,EAAE,SACvC,KAAK,qBAE5B,CAEA,cAAe,CACb,KAAK,IAAI,MAAM,IAAI,QAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,EACnD,KAAK,IAAI,MAAM,IAAI,UAAW,KAAK,UAAU,KAAK,IAAI,CAAC,EACvD,KAAK,IAAI,MAAM,IAAI,QAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,EACnD,KAAK,GAAG,IAAI,cAAe,KAAK,cAAc,KAAK,IAAI,CAAC,EACxD,KAAK,GAAG,IAAI,gBAAiB,KAAK,gBAAgB,KAAK,IAAI,CAAC,EAC5D,KAAK,GAAG,IAAI,QAAS,KAAK,QAAQ,KAAK,IAAI,CAAC,CAC9C,CAEA,QAAQC,EAAG,CACT,KAAK,YAAYA,EAAE,cAAe,GAAO,KAAK,yBAAyB,CAAC,CAC1E,CAEA,UAAUA,EAAG,CACX,OAAQA,EAAE,cACLC,KAAK,IACRD,EAAE,eAAe,EACjB,KAAK,YAAY,KAAK,IAAI,MAAM,KAAK,IAAI,MAAM,OAAS,EAAE,EAC1D,WACGC,KAAK,KACRD,EAAE,eAAe,EACjB,KAAK,YAAY,KAAK,IAAI,MAAM,EAAE,EAClC,WACGC,KAAK,QACLA,KAAK,KACJ,KAAK,YAAYD,EAAE,eAAe,EACtC,MAEJ,CAEA,QAAQA,EAAG,CACT,OAAQA,EAAE,cACLC,KAAK,UACLA,KAAK,MACH,KAAK,YAAY,KAAK,sBAAsBD,CAAC,EAClD,WACGC,KAAK,QACLA,KAAK,KACJ,KAAK,YAAY,KAAK,sBAAsBD,CAAC,EACjD,MAEJ,CAEA,cAAcA,EAAG,CACf,MAAMN,EAAM,SAAS,eAAeM,EAAE,OAAO,EAAE,EAC/C,KAAK,YAAYN,EAAK,CAAC,CAACM,EAAE,OAAO,SAAU,CAAC,CAACA,EAAE,OAAO,sBAAsB,CAC9E,CAEA,gBAAgBA,EAAG,CACjB,MAAMN,EAAM,SAAS,eAAeM,EAAE,OAAO,EAAE,EAC/C,KAAK,cAAcN,CAAG,CACxB,CAEA,SAAU,CACR,KAAK,eAAe,EACpB,KAAK,IAAI,MAAM,GAAG,aAAa,WAAY,GAAG,CAChD,CAEA,YAAYA,EAAKQ,EAAW,GAAMC,EAAyB,GAAO,CAEhE,GADiBT,EAAI,aAAa,eAAe,IAAM,OACzC,CACRS,GAAwB,KAAK,cAAcT,CAAG,EAClD,MACF,CACKS,GAAwB,KAAK,eAAe,EACjDT,EAAI,gBAAgB,UAAU,EAC9BA,EAAI,aAAa,gBAAiB,MAAM,EACxC,MAAMC,EAAWD,EAAI,aAAa,eAAe,EACjD,SAAS,eAAeC,CAAQ,EAAE,gBAAgB,aAAa,EAC3DO,GACFR,EAAI,MAAM,EAEZ,MAAMU,EAAQ,IAAI,YAAY,YAAa,CAAE,OAAQ,CAAE,GAAIV,EAAI,EAAG,CAAE,CAAC,EACrE,KAAK,GAAG,cAAcU,CAAK,CAC7B,CAEA,cAAcV,EAAK,CACjB,MAAMW,EAAQ,SAAS,eAAeX,EAAI,aAAa,eAAe,CAAC,EACvEA,EAAI,aAAa,WAAY,IAAI,EACjCA,EAAI,aAAa,gBAAiB,OAAO,EACzCW,EAAM,aAAa,cAAe,MAAM,CAC1C,CAEA,gBAAiB,CACf,KAAK,IAAI,MAAM,QAAQX,GAAO,CAC5BA,EAAI,aAAa,WAAY,IAAI,EACjCA,EAAI,aAAa,gBAAiB,OAAO,CAC3C,CAAC,EAED,KAAK,IAAI,QAAQ,QAAQW,GAAS,CAChCA,EAAM,aAAa,cAAe,MAAM,CAC1C,CAAC,CACH,CAEA,sBAAsBL,EAAG,CAEvB,GADI,CAACM,KAAeN,EAAE,UAClB,OAAOA,EAAE,OAAO,QAAQ,MAAU,IAAa,OACnD,MAAMO,EAAQ,SAASP,EAAE,OAAO,QAAQ,MAAO,EAAE,EAEjD,GAAI,KAAK,IAAI,eAAeO,EAAQD,KAAeN,EAAE,UAAW,CAC9D,KAAK,YAAY,KAAK,IAAI,eAAeO,EAAQD,KAAeN,EAAE,UAAW,EAAI,EACjF,MACF,CAEI,KAAK,WACHA,EAAE,UAAYC,KAAK,GACrB,KAAK,YAAY,KAAK,IAAI,eAAe,KAAK,IAAI,eAAe,OAAS,GAAI,EAAI,EACzED,EAAE,UAAYC,KAAK,MAC5B,KAAK,YAAY,KAAK,IAAI,eAAe,GAAI,EAAI,EAG/CD,EAAE,UAAYC,KAAK,KACrB,KAAK,YAAY,KAAK,IAAI,eAAe,KAAK,IAAI,eAAe,OAAS,GAAI,EAAI,EACzED,EAAE,UAAYC,KAAK,OAC5B,KAAK,YAAY,KAAK,IAAI,eAAe,GAAI,EAAI,CAGvD,CACF,CAEA,UAAeb,C","file":"Areas/SunriseSeniorLiving/Scripts/1404.fbcca246bcf26d46cb5f.bundle.js","sourcesContent":["import { Component } from '@verndale/core';\nimport { BREAKPOINTS } from '../constants';\nimport Tabs from './tabs';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $tabsContainer: this.el._$('.quick-access__tabs'),\n $triggers: this.el._$$('.quick-access__trigger'),\n $panels: this.el._$$('[role=\"tabpanel\"]'),\n $triggersContainer: this.el._$('.quick-access__triggers')\n };\n\n this.identifier = this.dom.$tabsContainer.dataset.identifier;\n this.tabActiveClass = 'quick-access--tab-active';\n if (this.dom.$triggers.length) this.activateFirstTab();\n this.setup();\n }\n\n addListeners() {\n this.dom.$triggers._on('click', this.handleTriggerClick.bind(this))\n }\n\n handleTriggerClick() {\n const isActive = this.el.classList.contains(this.tabActiveClass);\n\n if (window.matchMedia(`(max-width: ${BREAKPOINTS.TABLET_LANDSCAPE - 1}px)`).matches && isActive)\n this.dom.$panels.forEach((el, i) => i === 0 ? el.removeAttribute('aria-hidden') : el.ariaHidden = true);\n\n this.el.classList.toggle(this.tabActiveClass, !isActive);\n }\n\n activateFirstTab() {\n const tab = this.dom.$triggers[0];\n tab.setAttribute('aria-selected', 'true');\n const controls = tab.getAttribute('aria-controls');\n document.getElementById(controls).removeAttribute('aria-hidden');\n }\n\n setup() {\n [...this.dom.$triggers, ...this.dom.$panels].forEach(el => {\n el.dataset.identifier = this.identifier;\n });\n this.dom.$triggers.forEach((el, i) => {\n el.dataset.index = i;\n this.dom.$triggersContainer.append(el);\n });\n\n new Tabs(this.dom.$tabsContainer);\n }\n}\n\nexport default Module;\n","import { Component } from '@verndale/core';\nimport { KEYS, KEYS_DIRECTION } from '../constants';\n\nclass Module extends Component {\n constructor(_, allowMultopleOnMobile) {\n super(_, allowMultopleOnMobile);\n this.allowMultopleOnMobile = !!allowMultopleOnMobile;\n }\n\n setupDefaults() {\n const identifier = this.el.dataset.identifier;\n\n this.dom = {\n $tabs: this.el._$$(`[data-identifier=\"${identifier}\"][role=\"tab\"]`),\n $tabsWithIndex: this.el._$$(`[data-identifier=\"${identifier}\"][role=\"tab\"][data-index]`),\n $panels: this.el._$$(`[data-identifier=\"${identifier}\"][role=\"tabpanel\"]`)\n };\n\n this.isVertical = this.el.dataset.isVertical === 'true';\n this.isMultipleOMobileAllowed = () => {\n const isMobile = window.matchMedia('(max-width: 1023px)').matches;\n return isMobile && this.allowMultopleOnMobile;\n };\n }\n\n addListeners() {\n this.dom.$tabs._on('click', this.onClick.bind(this))\n this.dom.$tabs._on('keydown', this.onKeyDown.bind(this));\n this.dom.$tabs._on('keyup', this.onKeyUp.bind(this));\n this.el._on('activatetab', this.onActivatetab.bind(this));\n this.el._on('deactivatetab', this.onDeactivatetab.bind(this));\n this.el._on('reset', this.onReset.bind(this));\n }\n\n onClick(e) {\n this.activateTab(e.currentTarget, false, this.isMultipleOMobileAllowed());\n }\n\n onKeyDown(e) {\n switch (e.keyCode) {\n case KEYS.END:\n e.preventDefault();\n this.activateTab(this.dom.$tabs[this.dom.$tabs.length - 1]);\n break;\n case KEYS.HOME:\n e.preventDefault();\n this.activateTab(this.don.$tabs[0]);\n break;\n case KEYS.UP:\n case KEYS.DOWN:\n if (this.isVertical) e.preventDefault();\n break\n }\n }\n\n onKeyUp(e) {\n switch (e.keyCode) {\n case KEYS.LEFT:\n case KEYS.RIGHT:\n if (!this.isVertical) this.switchTabOnArrowPress(e);\n break;\n case KEYS.UP:\n case KEYS.DOWN:\n if (this.isVertical) this.switchTabOnArrowPress(e);\n break;\n }\n }\n\n onActivatetab(e) {\n const tab = document.getElementById(e.detail.id);\n this.activateTab(tab, !!e.detail.setFocus, !!e.detail.keepOtherTabsActivated);\n }\n\n onDeactivatetab(e) {\n const tab = document.getElementById(e.detail.id);\n this.deactivateTab(tab)\n }\n\n onReset() {\n this.deactivateTabs();\n this.dom.$tabs[0].setAttribute('tabindex', '0');\n }\n\n activateTab(tab, setFocus = true, keepOtherTabsActivated = false) {\n const selected = tab.getAttribute('aria-selected') === 'true';\n if (selected) {\n if (keepOtherTabsActivated) this.deactivateTab(tab);\n return;\n }\n if (!keepOtherTabsActivated) this.deactivateTabs();\n tab.removeAttribute('tabindex');\n tab.setAttribute('aria-selected', 'true');\n const controls = tab.getAttribute('aria-controls');\n document.getElementById(controls).removeAttribute('aria-hidden');\n if (setFocus) {\n tab.focus();\n }\n const event = new CustomEvent('tabchange', { detail: { id: tab.id } });\n this.el.dispatchEvent(event);\n }\n\n deactivateTab(tab) {\n const panel = document.getElementById(tab.getAttribute('aria-controls'));\n tab.setAttribute('tabindex', '-1');\n tab.setAttribute('aria-selected', 'false');\n panel.setAttribute('aria-hidden', 'true');\n }\n\n deactivateTabs() {\n this.dom.$tabs.forEach(tab => {\n tab.setAttribute('tabindex', '-1');\n tab.setAttribute('aria-selected', 'false');\n });\n\n this.dom.$panels.forEach(panel => {\n panel.setAttribute('aria-hidden', 'true');\n });\n }\n\n switchTabOnArrowPress(e) {\n if (!KEYS_DIRECTION[e.keyCode]) return;\n if (typeof e.target.dataset.index === 'undefined') return;\n const index = parseInt(e.target.dataset.index, 10);\n\n if (this.dom.$tabsWithIndex[index + KEYS_DIRECTION[e.keyCode]]) {\n this.activateTab(this.dom.$tabsWithIndex[index + KEYS_DIRECTION[e.keyCode]], true);\n return;\n }\n\n if (this.isVertical) {\n if (e.keyCode === KEYS.UP) {\n this.activateTab(this.dom.$tabsWithIndex[this.dom.$tabsWithIndex.length - 1], true);\n } else if (e.keyCode === KEYS.DOWN) {\n this.activateTab(this.dom.$tabsWithIndex[0], true);\n }\n } else {\n if (e.keyCode === KEYS.LEFT) {\n this.activateTab(this.dom.$tabsWithIndex[this.dom.$tabsWithIndex.length - 1], true);\n } else if (e.keyCode === KEYS.RIGHT) {\n this.activateTab(this.dom.$tabsWithIndex[0], true);\n }\n }\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}