{"version":3,"sources":["webpack:///./src/modules/AnchorBarModule/AnchorBarModule.vue?3129","webpack:///./src/modules/AnchorBarModule/AnchorBarModule.ts?421e","webpack:///./src/modules/AnchorBarModule/AnchorBarModule.ts","webpack:///./src/modules/AnchorBarModule/AnchorBarModule.vue","webpack:///./src/common/interfaces/CtaLinkItem.ts","webpack:///./src/components/CtaButton/CtaButton.vue?e691","webpack:///./src/components/CtaButton/CtaButton.ts?4ae3","webpack:///./src/components/CtaButton/CtaButton.ts","webpack:///./src/components/CtaButton/CtaButton.vue","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///./src/store/actions.ts","webpack:///./src/mixins/OverlayMixin.ts"],"names":["isOpen","offsetTop","function","this","openCloseOverlay","anchorLinks","navbar","windowOffset","getOffsetTop","expanded","scrollToLink","link","text","setLink","SegmentElement","sendEvent","url","document","URL","$root","$emit","window","pageYOffset","orientationChange","windowSize","matchMedia","matches","lgCloseOverlay","outerWidth","getCurrentLink","uri","currentUri","anchorBarLinks","filter","Link","Title","p","Header","map","itineraryName","location","pathname","replace","fullLink","Ctas","button","includes","mounted","setHasAnchorBar","nextTick","changeWindowSize","innerWidth","addEventListener","AnchorBarModule","props","components","CtaButton","Chevron","OverlayMixin","component","_vm","_h","$createElement","_c","_self","ref","class","rootClass","attrs","staticClass","linksWithoutSlash","on","$event","_v","_e","length","_l","item","index","key","preventDefault","type","indexOf","_k","keyCode","_s","CtaButtonStyle","getButtonClass","ButtonStyle","Primary","Secondary","Tertiary","White","Black","Ghost","PrimaryDarkBlack","None","Action","prefix","state","Meta","BookingUrl","customClasses","buttonStyleClass","isPhone","removeClasses","endsWith","onLinkClick","e","split","CtaButtonComponent","Phone","extend","Object","Boolean","disabled","startsWith","buttonClass","_t","Target","downloadTitle","hasPassiveEvents","passiveTestOptions","removeEventListener","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","some","lock","options","rawEvent","event","target","touches","restoreOverflowSetting","undefined","body","style","paddingRight","overflow","disableBodyScroll","targetElement","concat","arr","Array","isArray","i","arr2","from","_toConsumableArray","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","passive","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","documentElement","clientWidth","setOverflowHidden","console","error","clearAllBodyScrollLocks","forEach","enableBodyScroll","scrollableElement","openOverlay","closeOverlay"],"mappings":"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","file":"96.c1b6292b4222b828c313.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{ref:\"navbar\",class:_vm.rootClass,attrs:{\"role\":\"navigation\",\"aria-label\":\"anchor bar\"}},[_c('div',{staticClass:\"anchor-bar__button-holder\"},[(_vm.linksWithoutSlash.length)?_c('div',{staticClass:\"anchor-bar__destinations\"},[_c('button',{staticClass:\"anchor-bar__destination-link\",attrs:{\"aria-label\":\"Skip to a section\"},on:{\"click\":function($event){_vm.isOpen = !_vm.isOpen}}},[_vm._v(\"\\n Skip to\\n \"),_c('Chevron',{staticClass:\"anchor-bar__chevron\"})],1)]):_vm._e(),(_vm.p.Ctas && _vm.p.Ctas.length)?_c('div',{staticClass:\"anchor-bar__cta\"},_vm._l((_vm.Ctas),function(item,index){return _c('CtaButton',{key:index,attrs:{\"item\":item},on:{\"click\":_vm.setLink}})}),1):_vm._e()]),_c('div',{staticClass:\"anchor-bar-content\"},[(_vm.linksWithoutSlash.length > 1)?_c('ul',{ref:\"anchor-links\",staticClass:\"anchor-bar__links\"},_vm._l((_vm.linksWithoutSlash),function(link){return _c('li',{key:link.Title,staticClass:\"anchor-bar__item\"},[_c('a',{staticClass:\"anchor-link\",class:{ 'is-active': _vm.currentUri === link.Link },attrs:{\"href\":link.fullLink},on:{\"click\":function($event){$event.preventDefault();return _vm.scrollToLink(link.Link, link.Title)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.scrollToLink(link.Link, link.Title)}}},[_vm._v(\"\\n \"+_vm._s(link.Title))])])}),0):(_vm.linksWithoutSlash.length)?_c('div',{ref:\"anchor-links\",staticClass:\"anchor-bar__links\"},_vm._l((_vm.linksWithoutSlash),function(link){return _c('div',{key:link.Title,staticClass:\"anchor-bar__item\"},[_c('a',{staticClass:\"anchor-link text--small\",class:{ 'is-active': _vm.currentUri === link.Link },attrs:{\"href\":link.fullLink},on:{\"click\":function($event){$event.preventDefault();return _vm.scrollToLink(link.Link, link.Title)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.scrollToLink(link.Link, link.Title)}}},[_vm._v(\"\\n \"+_vm._s(link.Title))])])}),0):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--0!./AnchorBarModule.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--0!./AnchorBarModule.ts?vue&type=script&lang=ts&\"","import { Component, Vue, Ref, Watch } from 'vue-property-decorator';\nimport { Getter, Action, Mutation } from 'vuex-class';\n\nimport { AnchorBarBlockViewModel } from './AnchorBarModule.types';\nimport { getComponentProps } from '@/utils/vueUtils';\nimport SizeBreakpoints from '@/common/interfaces/SizeBreakpoints';\n\nimport CtaButton from '@/components/CtaButton/CtaButton.vue';\nimport Chevron from '@/assets/icons/chevron.svg?inline';\n\nimport { SET_FROM_ANCHOR } from '@/store/actions';\nimport LinkItem from '@/common/interfaces/LinkItem';\n\nimport { throttled } from '@/utils/commonUtils';\n\nimport OverlayMixin from '@/mixins/OverlayMixin';\nimport { mixins } from 'vue-class-component';\n\nimport { currentUri, windowOffset, windowSize, anchorBarLinks } from '@/store/getters';\nimport { CHANGE_WINDOW_SIZE, M_SET_HAS_ANCHOR_BAR } from '@/store/mutations';\nimport { SegmentElement } from '@/plugins/utm/SegmentElement';\n\n@Component({\n props: getComponentProps({\n Header: 'Alaska',\n Ctas: [{ Title: 'Brochure', Link: '#' }],\n }),\n components: {\n CtaButton,\n Chevron,\n },\n})\nexport default class AnchorBarModule extends mixins(OverlayMixin) {\n readonly p!: AnchorBarBlockViewModel;\n\n isOpen = false;\n offsetTop = null;\n\n @Ref('navbar') readonly navbar!: HTMLElement;\n @Ref('anchor-links') readonly anchorLinks!: HTMLElement;\n\n @Getter(windowSize) windowSize!: SizeBreakpoints;\n @Getter(windowOffset) windowOffset!: number;\n @Getter(currentUri) currentUri!: string;\n @Getter(anchorBarLinks) anchorBarLinks!: LinkItem[];\n\n @Action(SET_FROM_ANCHOR) setLink!: (link: string) => void;\n\n @Watch('isOpen')\n function(isOpen: boolean) {\n this.openCloseOverlay(isOpen, this.anchorLinks);\n }\n\n get isSticky() {\n if (this.navbar) {\n return this.windowOffset >= this.offsetTop;\n }\n\n return this.windowOffset < 0;\n }\n\n getOffsetTop() {\n if (this.navbar) {\n this.offsetTop = this.navbar.offsetTop;\n } else {\n return;\n }\n }\n\n get rootClass() {\n return {\n 'anchor-bar': true,\n expanded: this.isOpen,\n };\n }\n\n scrollToLink(link: string, text: string) {\n this.isOpen = false;\n this.setLink(link);\n SegmentElement.sendEvent('subNavigationClicked', {text, url: document.URL})\n this.$root.$emit('clickedNavBar', window.pageYOffset);\n }\n\n @Watch('windowSize')\n orientationChange() {\n if (this.windowSize === 'xs' || this.windowSize === 'sm' || this.windowSize === 'md') {\n if (window.matchMedia('(orientation: landscape)').matches) {\n this.getOffsetTop;\n }\n } else {\n return;\n }\n }\n\n @Watch('windowSize')\n lgCloseOverlay() {\n if (window.outerWidth >= 1024) {\n this.isOpen = false;\n }\n }\n\n getCurrentLink() {\n let uri = this.currentUri;\n if (this.anchorBarLinks) {\n var currentLinkTitle = this.anchorBarLinks.filter(function (link) {\n if (link.Link === uri) {\n return link.Title;\n } else {\n return;\n }\n });\n } else {\n return this.p.Header;\n }\n return currentLinkTitle[0].Title;\n }\n\n get linksWithoutSlash() {\n return this.anchorBarLinks.map(link => {\n let itineraryName = window.location.pathname.replace(/\\/$/, '');\n return {\n ...link,\n fullLink: itineraryName + link.Link\n }\n })\n }\n\n get Ctas() {\n return this.p.Ctas.map(button => {\n if (button.Link && button.Link.includes('#')) {\n return {\n ...button,\n Link: window.location.pathname.replace(/\\/$/, '') + button.Link\n }\n }\n return button\n })\n }\n\n @Mutation(M_SET_HAS_ANCHOR_BAR) setHasAnchorBar: () => void;\n\n @Mutation(CHANGE_WINDOW_SIZE) changeWindowSize: (width: number) => void;\n\n mounted() {\n this.setHasAnchorBar();\n\n Vue.nextTick(() => {\n this.changeWindowSize(window.innerWidth);\n });\n\n this.getOffsetTop();\n\n window.addEventListener('resize', () => {\n throttled(500, this.getOffsetTop);\n });\n }\n}\n","import { render, staticRenderFns } from \"./AnchorBarModule.vue?vue&type=template&id=6a72fcd9&\"\nimport script from \"./AnchorBarModule.ts?vue&type=script&lang=ts&\"\nexport * from \"./AnchorBarModule.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./AnchorBarModule.scss?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import LinkItem from './LinkItem';\n\nexport type ActionType = 'Button' | 'Phone' | 'Book' | 'Custom';\n\nexport enum CtaButtonStyle {\n Primary = 1,\n Secondary = 2,\n Tertiary = 3,\n White = 4,\n Black = 5,\n Ghost = 6,\n PrimaryDarkBlack = 7,\n None = 99,\n}\n\nexport default interface CtaLinkItem extends LinkItem {\n Action?: ActionType;\n ButtonStyle?: CtaButtonStyle;\n}\n\nexport const getButtonClass = (ButtonStyle: CtaButtonStyle) => {\n switch (ButtonStyle) {\n case CtaButtonStyle.Primary:\n return 'button--primary';\n case CtaButtonStyle.Secondary:\n return 'button--secondary';\n case CtaButtonStyle.Tertiary:\n return 'button--tertiary';\n case CtaButtonStyle.White:\n return 'button--white';\n case CtaButtonStyle.Black:\n return 'button--black';\n case CtaButtonStyle.Ghost:\n return 'button--ghost';\n case CtaButtonStyle.PrimaryDarkBlack:\n return 'button--primary button--primary--dark';\n case CtaButtonStyle.None:\n return '';\n default:\n return 'button--primary';\n }\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.link && _vm.link.startsWith('tel:'))?_c('a',{staticClass:\"button\",class:_vm.buttonClass,attrs:{\"href\":_vm.link.replace(/ /g,'.')}},[_vm._t(\"icon\",[(_vm.isPhone)?_c('Phone',{staticClass:\"button__icon\"}):_vm._e()]),_vm._v(\"\\n \"+_vm._s(_vm.item.Title)+\"\\n\")],2):(_vm.link)?_c('a',{staticClass:\"button\",class:_vm.buttonClass,attrs:{\"target\":_vm.item.Target,\"href\":_vm.link,\"title\":_vm.downloadTitle},on:{\"click\":_vm.onLinkClick}},[_vm._t(\"icon\",[(_vm.isPhone)?_c('Phone',{staticClass:\"button__icon\"}):_vm._e()]),_vm._v(\"\\n \"+_vm._s(_vm.item.Title)+\"\\n\")],2):_c('button',{staticClass:\"button\",class:_vm.buttonClass,attrs:{\"disabled\":_vm.disabled},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('click')}}},[_vm._t(\"icon\",[(_vm.isPhone)?_c('Phone',{staticClass:\"button__icon\"}):_vm._e()]),_vm._v(\"\\n \"+_vm._s(_vm.item.Title)+\"\\n\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--0!./CtaButton.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--0!./CtaButton.ts?vue&type=script&lang=ts&\"","import Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\nimport CtaLinkItem, { getButtonClass } from '@/common/interfaces/CtaLinkItem';\n\nimport Phone from '@/assets/icons/phone.svg?inline';\nimport { getStore } from '@/store';\n\nconst CtaButtonProps = Vue.extend({\n props: {\n item: Object as () => CtaLinkItem,\n removeClasses: Boolean,\n customClasses: Boolean,\n disabled: Boolean,\n },\n});\n\n@Component({ components: { Phone } })\nexport default class CtaButtonComponent extends CtaButtonProps {\n get link() {\n const { Action, Link } = this.item;\n if (this.item.Action !== 'Custom') {\n let prefix = '';\n switch (Action) {\n case 'Phone':\n {\n prefix = 'tel:';\n }\n break;\n case 'Book':\n {\n return getStore()?.state?.Meta?.BookingUrl as string;\n }\n break;\n }\n\n return `${prefix}${this.item.Link}`;\n }\n\n return null;\n }\n\n get isPhone() {\n return this.item.Action === 'Phone';\n }\n\n get buttonClass() {\n if (this.customClasses) return '';\n\n const buttonStyleClass = getButtonClass(this.item.ButtonStyle)\n\n return {\n 'cta-item__call-cta': this.isPhone && !this.removeClasses,\n [buttonStyleClass]: true,\n };\n }\n\n get downloadTitle() {\n if (this.link && this.link.endsWith('.pdf')) return 'PDF download';\n }\n\n onLinkClick(e: Event) {\n if (this.link.includes('#')) {\n let btnLink = new URL(`https://www.expeditions.com${this.link}`)\n if (btnLink.pathname === window.location.pathname) {\n e.preventDefault()\n this.$emit('click', `#${this.link.split('#')[1]}`)\n }\n }\n }\n}\n","import { render, staticRenderFns } from \"./CtaButton.vue?vue&type=template&id=f0be7acc&\"\nimport script from \"./CtaButton.ts?vue&type=script&lang=ts&\"\nexport * from \"./CtaButton.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","export {\n SET_FROM_ANCHOR,\n CHANGE_FROM_HISTORY,\n UPDATE_URL,\n SET_FROM_ANCHORABLE_CONTENT,\n SCROLL_TO,\n SCROLL_TO_TOP,\n ON_SCROLL,\n} from './modules/groupUriModule';\n","import Vue from 'vue';\nimport Component from 'vue-class-component';\n\nimport { disableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\nimport { Mutation } from 'vuex-class';\nimport { OPEN_OVERLAY, CLOSE_OVERLAY } from '@/store/mutations';\n\n@Component({})\nexport default class OverlayMixin extends Vue {\n @Mutation(OPEN_OVERLAY)\n openOverlay!: () => void;\n\n @Mutation(CLOSE_OVERLAY)\n closeOverlay!: () => void;\n\n openCloseOverlay(isOpen: boolean, scrollableElement?: any) {\n if (isOpen) {\n this.openOverlay();\n disableBodyScroll(scrollableElement);\n } else {\n this.closeOverlay();\n clearAllBodyScrollLocks();\n }\n }\n}\n"],"sourceRoot":""}