{"version":3,"sources":["webpack:///./node_modules/vuetify/lib/mixins/overlayable/index.js","webpack:///./node_modules/vuetify/lib/components/VDialog/VDialog.js","webpack:///./node_modules/vuetify/lib/components/VOverlay/index.js","webpack:///./node_modules/vuetify/lib/components/VGrid/VSpacer.js"],"names":["extend","name","props","hideOverlay","Boolean","overlayColor","String","overlayOpacity","Number","animationFrame","overlay","watch","value","this","isActive","removeOverlay","genOverlay","methods","VOverlay","propsData","absolute","color","opacity","$mount","parent","$el","parentNode","document","querySelector","insertBefore","firstChild","hideScroll","createOverlay","requestAnimationFrame","undefined","activeZIndex","zIndex","showScroll","removeChild","$destroy","cancelAnimationFrame","e","type","includes","target","tagName","isContentEditable","up","pageup","down","pagedown","keyCode","deltaY","body","checkPath","preventDefault","el","nodeType","Node","ELEMENT_NODE","style","window","getComputedStyle","overflowY","scrollHeight","clientHeight","overflowX","scrollWidth","clientWidth","hasAttribute","dir","shiftKey","deltaX","delta","alreadyAtStart","alreadyAtEnd","scrollTop","scrollLeft","scrollingUp","scrollingDown","shouldScroll","isInside","path","dialog","$refs","selected","getSelection","anchorNode","hasScrollbar","index","length","documentElement","content","$vuetify","breakpoint","smAndDown","classList","add","scrollListener","passive","addEventListener","remove","removeEventListener","baseMixins","mixins","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","noClickAnimation","origin","default","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","computed","contentClass","trim","$slots","activator","$scopedSlots","val","_this$previousActiveE","show","unbind","focus","$attrs","hasOwnProperty","$nextTick","isBooted","clearTimeout","setTimeout","_isDestroyed","contains","getMaxZIndex","options","call","activeElement","bind","onFocusin","$emit","animateClick","esc","getOpenDependents","getActivator","getOpenDependentElements","some","focusable","querySelectorAll","find","showLazyContent","$createElement","VThemeProvider","root","class","contentClasses","attrs","role","tabindex","getScopeIdAttrs","on","keydown","onKeydown","ref","genTransition","genInnerContent","appear","data","classes","handler","onClickOutside","closeConditional","include","transformOrigin","getContentSlot","h","staticClass","attach","genActivator","genContent"],"mappings":"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","file":"js/chunk-1067020f.fd289bc6.js","sourcesContent":["// Components\nimport VOverlay from '../../components/VOverlay'; // Utilities\n\nimport { keyCodes, addOnceEventListener, addPassiveEventListener, getZIndex, composedPath } from '../../util/helpers'; // Types\n\nimport Vue from 'vue';\n/* @vue/component */\n\nexport default Vue.extend().extend({\n name: 'overlayable',\n props: {\n hideOverlay: Boolean,\n overlayColor: String,\n overlayOpacity: [Number, String]\n },\n\n data() {\n return {\n animationFrame: 0,\n overlay: null\n };\n },\n\n watch: {\n hideOverlay(value) {\n if (!this.isActive) return;\n if (value) this.removeOverlay();else this.genOverlay();\n }\n\n },\n\n beforeDestroy() {\n this.removeOverlay();\n },\n\n methods: {\n createOverlay() {\n const overlay = new VOverlay({\n propsData: {\n absolute: this.absolute,\n value: false,\n color: this.overlayColor,\n opacity: this.overlayOpacity\n }\n });\n overlay.$mount();\n const parent = this.absolute ? this.$el.parentNode : document.querySelector('[data-app]');\n parent && parent.insertBefore(overlay.$el, parent.firstChild);\n this.overlay = overlay;\n },\n\n genOverlay() {\n this.hideScroll();\n if (this.hideOverlay) return;\n if (!this.overlay) this.createOverlay();\n this.animationFrame = requestAnimationFrame(() => {\n if (!this.overlay) return;\n\n if (this.activeZIndex !== undefined) {\n this.overlay.zIndex = String(this.activeZIndex - 1);\n } else if (this.$el) {\n this.overlay.zIndex = getZIndex(this.$el);\n }\n\n this.overlay.value = true;\n });\n return true;\n },\n\n /** removeOverlay(false) will not restore the scollbar afterwards */\n removeOverlay(showScroll = true) {\n if (this.overlay) {\n addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n if (!this.overlay || !this.overlay.$el || !this.overlay.$el.parentNode || this.overlay.value || this.isActive) return;\n this.overlay.$el.parentNode.removeChild(this.overlay.$el);\n this.overlay.$destroy();\n this.overlay = null;\n }); // Cancel animation frame in case\n // overlay is removed before it\n // has finished its animation\n\n cancelAnimationFrame(this.animationFrame);\n this.overlay.value = false;\n }\n\n showScroll && this.showScroll();\n },\n\n scrollListener(e) {\n if (e.type === 'keydown') {\n if (['INPUT', 'TEXTAREA', 'SELECT'].includes(e.target.tagName) || // https://github.com/vuetifyjs/vuetify/issues/4715\n e.target.isContentEditable) return;\n const up = [keyCodes.up, keyCodes.pageup];\n const down = [keyCodes.down, keyCodes.pagedown];\n\n if (up.includes(e.keyCode)) {\n e.deltaY = -1;\n } else if (down.includes(e.keyCode)) {\n e.deltaY = 1;\n } else {\n return;\n }\n }\n\n if (e.target === this.overlay || e.type !== 'keydown' && e.target === document.body || this.checkPath(e)) e.preventDefault();\n },\n\n hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return (['auto', 'scroll'].includes(style.overflowY) || el.tagName === 'SELECT') && el.scrollHeight > el.clientHeight || ['auto', 'scroll'].includes(style.overflowX) && el.scrollWidth > el.clientWidth;\n },\n\n shouldScroll(el, e) {\n if (el.hasAttribute('data-app')) return false;\n const dir = e.shiftKey || e.deltaX ? 'x' : 'y';\n const delta = dir === 'y' ? e.deltaY : e.deltaX || e.deltaY;\n let alreadyAtStart;\n let alreadyAtEnd;\n\n if (dir === 'y') {\n alreadyAtStart = el.scrollTop === 0;\n alreadyAtEnd = el.scrollTop + el.clientHeight === el.scrollHeight;\n } else {\n alreadyAtStart = el.scrollLeft === 0;\n alreadyAtEnd = el.scrollLeft + el.clientWidth === el.scrollWidth;\n }\n\n const scrollingUp = delta < 0;\n const scrollingDown = delta > 0;\n if (!alreadyAtStart && scrollingUp) return true;\n if (!alreadyAtEnd && scrollingDown) return true;\n\n if (alreadyAtStart || alreadyAtEnd) {\n return this.shouldScroll(el.parentNode, e);\n }\n\n return false;\n },\n\n isInside(el, parent) {\n if (el === parent) {\n return true;\n } else if (el === null || el === document.body) {\n return false;\n } else {\n return this.isInside(el.parentNode, parent);\n }\n },\n\n checkPath(e) {\n const path = composedPath(e);\n\n if (e.type === 'keydown' && path[0] === document.body) {\n const dialog = this.$refs.dialog; // getSelection returns null in firefox in some edge cases, can be ignored\n\n const selected = window.getSelection().anchorNode;\n\n if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n return !this.shouldScroll(dialog, e);\n }\n\n return true;\n }\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index];\n if (el === document) return true;\n if (el === document.documentElement) return true;\n if (el === this.$refs.content) return true;\n if (this.hasScrollbar(el)) return !this.shouldScroll(el, e);\n }\n\n return true;\n },\n\n hideScroll() {\n if (this.$vuetify.breakpoint.smAndDown) {\n document.documentElement.classList.add('overflow-y-hidden');\n } else {\n addPassiveEventListener(window, 'wheel', this.scrollListener, {\n passive: false\n });\n window.addEventListener('keydown', this.scrollListener);\n }\n },\n\n showScroll() {\n document.documentElement.classList.remove('overflow-y-hidden');\n window.removeEventListener('wheel', this.scrollListener);\n window.removeEventListener('keydown', this.scrollListener);\n }\n\n }\n});\n//# sourceMappingURL=index.js.map","// Styles\nimport \"../../../src/components/VDialog/VDialog.sass\"; // Components\n\nimport { VThemeProvider } from '../VThemeProvider'; // Mixins\n\nimport Activatable from '../../mixins/activatable';\nimport Dependent from '../../mixins/dependent';\nimport Detachable from '../../mixins/detachable';\nimport Overlayable from '../../mixins/overlayable';\nimport Returnable from '../../mixins/returnable';\nimport Stackable from '../../mixins/stackable'; // Directives\n\nimport ClickOutside from '../../directives/click-outside'; // Helpers\n\nimport mixins from '../../util/mixins';\nimport { removed } from '../../util/console';\nimport { convertToUnit, keyCodes } from '../../util/helpers';\nconst baseMixins = mixins(Dependent, Detachable, Overlayable, Returnable, Stackable, Activatable);\n/* @vue/component */\n\nexport default baseMixins.extend({\n name: 'v-dialog',\n directives: {\n ClickOutside\n },\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center'\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition'\n },\n width: [String, Number]\n },\n\n data() {\n return {\n activatedBy: null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null\n };\n },\n\n computed: {\n classes() {\n return {\n [`v-dialog ${this.contentClass}`.trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate\n };\n },\n\n contentClasses() {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive\n };\n },\n\n hasActivator() {\n return Boolean(!!this.$slots.activator || !!this.$scopedSlots.activator);\n }\n\n },\n watch: {\n isActive(val) {\n if (val) {\n this.show();\n this.hideScroll();\n } else {\n var _this$previousActiveE;\n\n this.removeOverlay();\n this.unbind();\n (_this$previousActiveE = this.previousActiveElement) == null ? void 0 : _this$previousActiveE.focus();\n }\n },\n\n fullscreen(val) {\n if (!this.isActive) return;\n\n if (val) {\n this.hideScroll();\n this.removeOverlay(false);\n } else {\n this.showScroll();\n this.genOverlay();\n }\n }\n\n },\n\n created() {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this);\n }\n },\n\n beforeMount() {\n this.$nextTick(() => {\n this.isBooted = this.isActive;\n this.isActive && this.show();\n });\n },\n\n beforeDestroy() {\n if (typeof window !== 'undefined') this.unbind();\n },\n\n methods: {\n animateClick() {\n this.animate = false; // Needed for when clicking very fast\n // outside of the dialog\n\n this.$nextTick(() => {\n this.animate = true;\n window.clearTimeout(this.animateTimeout);\n this.animateTimeout = window.setTimeout(() => this.animate = false, 150);\n });\n },\n\n closeConditional(e) {\n const target = e.target; // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n\n return !(this._isDestroyed || !this.isActive || this.$refs.content.contains(target) || this.overlay && target && !this.overlay.$el.contains(target)) && this.activeZIndex >= this.getMaxZIndex();\n },\n\n hideScroll() {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden');\n } else {\n Overlayable.options.methods.hideScroll.call(this);\n }\n },\n\n show() {\n !this.fullscreen && !this.hideOverlay && this.genOverlay(); // Double nextTick to wait for lazy content to be generated\n\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement;\n this.$refs.content.focus();\n }\n\n this.bind();\n });\n });\n },\n\n bind() {\n window.addEventListener('focusin', this.onFocusin);\n },\n\n unbind() {\n window.removeEventListener('focusin', this.onFocusin);\n },\n\n onClickOutside(e) {\n this.$emit('click:outside', e);\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick();\n } else {\n this.isActive = false;\n }\n },\n\n onKeydown(e) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false;\n const activator = this.getActivator();\n this.$nextTick(() => activator && activator.focus());\n } else if (!this.noClickAnimation) {\n this.animateClick();\n }\n }\n\n this.$emit('keydown', e);\n },\n\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin(e) {\n if (!e || !this.retainFocus) return;\n const target = e.target;\n\n if (!!target && // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) && // It isn't inside the dialog body\n !this.$refs.content.contains(target) && // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() && // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target)) // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n const el = [...focusable].find(el => !el.hasAttribute('disabled'));\n el && el.focus();\n }\n },\n\n genContent() {\n return this.showLazyContent(() => [this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark\n }\n }, [this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n tabindex: this.isActive ? 0 : undefined,\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs()\n },\n on: {\n keydown: this.onKeydown\n },\n style: {\n zIndex: this.activeZIndex\n },\n ref: 'content'\n }, [this.genTransition()])])]);\n },\n\n genTransition() {\n const content = this.genInnerContent();\n if (!this.transition) return content;\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true\n }\n }, [content]);\n },\n\n genInnerContent() {\n const data = {\n class: this.classes,\n ref: 'dialog',\n directives: [{\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements\n }\n }, {\n name: 'show',\n value: this.isActive\n }],\n style: {\n transformOrigin: this.origin\n }\n };\n\n if (!this.fullscreen) {\n data.style = { ...data.style,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width)\n };\n }\n\n return this.$createElement('div', data, this.getContentSlot());\n }\n\n },\n\n render(h) {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached': this.attach === '' || this.attach === true || this.attach === 'attach'\n }\n }, [this.genActivator(), this.genContent()]);\n }\n\n});\n//# sourceMappingURL=VDialog.js.map","import VOverlay from './VOverlay';\nexport { VOverlay };\nexport default VOverlay;\n//# sourceMappingURL=index.js.map","import \"../../../src/components/VGrid/_grid.sass\";\nimport { createSimpleFunctional } from '../../util/helpers';\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer');\n//# sourceMappingURL=VSpacer.js.map"],"sourceRoot":""}