{"version":3,"sources":["webpack:///../../../src/components/VGrid/VRow.ts","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/components/VGrid/VCol.ts"],"names":["breakpoints","ALIGNMENT","makeProps","prefix","def","reduce","props","val","upperFirst","alignValidator","str","includes","alignProps","type","String","default","validator","justifyValidator","justifyProps","alignContentValidator","alignContentProps","propMap","align","Object","keys","justify","alignContent","classMap","breakpointClass","prop","className","breakpoint","replace","toLowerCase","cache","Map","Vue","extend","name","functional","tag","dense","Boolean","noGutters","render","h","data","children","cacheKey","classList","get","forEach","value","push","set","mergeData","staticClass","class","baseMixins","mixins","Dependent","Detachable","Overlayable","Returnable","Stackable","Activatable","directives","ClickOutside","dark","disabled","fullscreen","light","maxWidth","Number","noClickAnimation","origin","persistent","retainFocus","scrollable","transition","width","activatedBy","animate","animateTimeout","stackMinZIndex","previousActiveElement","computed","classes","this","contentClass","trim","isActive","contentClasses","hasActivator","$slots","activator","$scopedSlots","watch","show","hideScroll","removeOverlay","unbind","_a","focus","showScroll","genOverlay","created","$attrs","hasOwnProperty","removed","beforeMount","$nextTick","isBooted","beforeDestroy","window","methods","animateClick","clearTimeout","setTimeout","closeConditional","e","target","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","getMaxZIndex","document","documentElement","add","options","call","hideOverlay","dialog","activeElement","_b","bind","addEventListener","onFocusin","removeEventListener","onClickOutside","$emit","onKeydown","keyCode","keyCodes","esc","getOpenDependents","length","getActivator","getOpenDependentElements","some","el","focusable","querySelectorAll","find","hasAttribute","matches","genContent","showLazyContent","$createElement","VThemeProvider","root","attrs","role","undefined","getScopeIdAttrs","on","keydown","style","zIndex","ref","genTransition","genInnerContent","appear","tabindex","handler","include","transformOrigin","convertToUnit","getContentSlot","attach","genActivator","breakpointProps","offsetProps","orderProps","col","offset","order","cols","alignSelf","parent","hasColClasses","startsWith"],"mappings":"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","file":"js/chunk-c1292b90.c2c429ed.js","sourcesContent":["import './VGrid.sass'\n\nimport Vue, { PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst ALIGNMENT = ['start', 'end', 'center']\n\nfunction makeProps (prefix: string, def: () => PropOptions) {\n return breakpoints.reduce((props, val) => {\n props[prefix + upperFirst(val)] = def()\n return props\n }, {} as Dictionary)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-row',\n functional: true,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n },\n render (h, { props, data, children }) {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'no-gutters': props.noGutters,\n 'row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'row',\n class: classList,\n }),\n children\n )\n },\n})\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\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'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { 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 as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\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 contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$scopedSlots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\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 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\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // 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 return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\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 show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\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 onKeydown (e: KeyboardEvent) {\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 as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // 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.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: this.onKeydown },\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n attrs: {\n tabindex: this.isActive ? 0 : undefined,\n },\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\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 render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + upperFirst(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst cache = new Map()\n\nexport default Vue.extend({\n name: 'v-col',\n functional: true,\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n tag: {\n type: String,\n default: 'div',\n },\n },\n render (h, { props, data, children, parent }): VNode {\n // Super-fast memoization based on props, 5x faster than JSON.stringify\n let cacheKey = ''\n for (const prop in props) {\n cacheKey += String((props as any)[prop])\n }\n let classList = cache.get(cacheKey)\n\n if (!classList) {\n classList = []\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n classList.push({\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: !hasColClasses || !props.cols,\n [`col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n cache.set(cacheKey, classList)\n }\n\n return h(props.tag, mergeData(data, { class: classList }), children)\n },\n})\n"],"sourceRoot":""}